Regolamento del gioco
Il gioco si svolge su un campo rettangolare e
prevede l'interazione fra due giocatori ed avviene tramite due racchette
ed una pallina.
Ogni giocatore controlla una racchetta di forma circolare
ed ha l'obiettivo di fare entrare la pallina, anch'essa di
forma circolare, nella porta dell'avversario.
La partita termina quando uno dei due giocatori ha raggiunto il numero
di goals precedentemente fissato per vincere (oppure nel caso in cui,
per vari motivi, la comunicazione tra i due non sia più possibile).
Il campo è diviso longitudinalmente in tre parti. Le due parti
esterne costituiscono le due aree di pertinenza dei giocatori e sono
le uniche zone del campo in cui essi possono muoversi, mentre la zona
centrale è off-limits per entrambi.
Un match si articola in due fasi :
- nella prima fase vengono impostati i vari parametri della partita,
in particolare parametri geometrici, dinamici e grafici
- nella seconda fase si svolge la partita vera e propria e l'interazione
avviene finalmente sul campo di gioco, secondo le impostazioni fissate
precedentemente
I parametri personalizzabili possono sostanzialmente essere distinti
in cinque categorie :
- geometrici - riguardano le dimensioni
del campo, delle aree, della pallina, ecc.
- fisici - vanno a calibrare i modelli
fisico-matematici usati per i movimenti delle racchette, della pallina
e gli scontri tra essi
- grafici - permettono di impostare i
colori dei vari elementi del gioco
- regolamentari - in sostanza il numero
do goals per vincere
- personali - riguardano le impostazioni
personali dei singoli giocatori (come il nome)
All'inizio del match si ha una distinzione nel ruolo dei due giocatori.
Vi è un master ed uno slave.
Il master ha il diritto di modificare tutti i parametri (naturalmente
sempre all'interno del loro dominio) a parte quelli personali dello
slave. Viceversa lo slave può modificare solo i propri parametri
personali, ma viene comunque notificato riguardo alla variazione degli
altri.
PARAMETRI GEOMETRICI
Attualmente i parametri geometrici modificabili e i limiti di variabilità
sono
NOME DEL PARAMETRO
|
SIGNIFICATO
|
VAL. MIN.
|
VAL. MAX.
|
UNITA'
|
FIELDLENGTH |
Lunghezza del campo |
200
|
800
|
pixels |
FIELDHEIGHT |
Larghezza del campo |
200
|
400
|
pixels |
ZONE |
Lunghezza delle aree rispetto a FIELDLENGTH |
10
|
45
|
% |
RACD |
Diametro della racchetta |
10
|
FL*ZONE%
|
pixels |
BALLD |
Diametro della pallina |
10
|
RACD
|
pixels |
GOALHEIGHT |
Larghezza della porta rispetto a FIELDHEIGHT |
10
|
100
|
% |
L'immagine seguente può chiarire meglio
come questi parametri andranno ad influenzare l'ambiente di gioco.
PARAMETRI DINAMICI
Per la dinamica degli oggetti coinvolti si sono
usate formule derivate dalle fondamentali della fisica. Quindi i particolare
Evidentemente la trattazione del problema è bidimensionale
e questa formula, insieme alle seguenti, è da intendersi
relativamente ad ognuno dei due assi cartesiani.
In particolare il moto della racchetta è soggetto alla seguente
legge :
(dove con spinta
si intende quella dovuta all'input dell'utente, mentre con attrito_rac
si intende l'attrito viscoso applicato alla racchetta)
Nello scontro della racchetta con le
pareti del campo la componente perpendicolare della sua velocità
è soggetta alla seguente legge:
quindi il paramero anel rappresenta il
coefficiente di anelasticità negli urti della racchetta contro
i bordi del campo
Per quanto riguarda la pallina l'accelerazione è data solo
da
(con attrito_ball = attrito viscoso per
la pallina, che può essere diverso dal corrispondente per le
racchette)
Inoltre per la pallina è possibile settare un valore massimo
per la velocità.
Lo scontro della pallina contro le pareti è modellato come uno
scontro completamente elastico.
Lo scontro tra una racchetta ed una pallina è più complesso.
Si consideri al riguardo la seguente figura:
Lo scontro rappresentato in figura
avviene con i centri di racchetta e pallina allineati sull'asse X. Questo
è il modo più semplice per esprimere le equazione che
lo governano. In seguito si vedrà come considerare il caso generico.
L'assunzione che si è fatta è che la racchetta non risenta
minimamente dell'urto, come se avesse massa infinita rispetto a quella
della pallina. La pallina, invece, in seguito ad un urto vedrà
modificata unicamente la componente della sua velocità sull'asse
che congiunge i due centri.
Indicando con vb' tale velocità prima dell'urto
e con vb'' la stessa dopo l'urto (mentre la vr
rappresenta la componente della velocità della racchetta
sul medesimo asse, la quale come detto rimane invariata) vale
la seguente formula:
Rimane da generalizzare questo discorso,
considerando urti lungo un asse qualsiasi. Semplicemente si
calcoleranno le conseguenze dell'urto in un sistema di riferimento
con asse x coincidente con la retta passante per i due centri.
Questo lo si farà utilizzando la formula appena introdotta.
A questo punto non rimarrà altro che convertire i vettori dal
sistema di riferimento relativo a quello assoluto.
Le formule per passare da un sistema di riferimento ad un altro sono
le seguenti :
Quindi ricapitolando i parametri dinamici sono :
NOME DEL PARAMETRO
|
SIGNIFICATO
|
ATTRITO_RAC |
Attrito viscoso della racchetta |
SPINTA |
Forza di spinta dell'input |
IMPULSO |
Impulso dato dalla racchetta alla pallina |
ANEL |
Anelasticità della racchetta negli urti con
bordi |
ATTRITO_BALL |
Attrito viscoso della pallina |
VELMAX |
Velocità massima della pallina |
PARAMETRI GRAFICI
E' possibile impostare il colore del campo (background) e della pallina.
PARAMETRI REGOLAMENTARI
Si può per ora impostare il numero di goals necessario per
vincere.
PARAMETRI PERSONALI
Ogni giocatore può decidere il proprio nome ed il
colore della propria racchetta .
SECONDA FASE : SVOLGIMENTO DELLA PARTITA
In base alla configurazione scelta nella fase
precedente ha ora inizio il gioco. La pallina viene inizialmente posta
nella zona del master e successivamente ad ogni goal nella zona del
giocatore che l'ha subito. Gli urti tra racchetta e pallina provocano
effetti secondo le formule espresse nel paragrafo precedente.
Tematiche introdotte dal Real-time
La scelta di realizzare un gioco real-time comporta
alcune sostanziali problematiche di ordine tecnico. Per applicazioni
di questo tipo il problema più grande è la prestazione
della rete. Tipicamente si caratterizza tale prestazione con due misure
: la larghezza di banda e la latenza.
La larghezza di banda è la quantità di dati
che si può trasferire in un determinato lasso di tempo,
mentre la latenza è il tempo che impiega un pacchetto
di dati per andare dal mittente al destinatario.
Larghezza di banda e latenza pongono vincoli
molto stringenti nella realizzazione di giochi di rete real-time. Però
mentre la banda influenza sostanzialmente la scalabilità del
gioco e può essere affrontata anche ad uno stadio avanzato del
progetto (per esempio introducendo tecniche di compressione), la latenza
influisce direttamente sulla comprensione del gioco, e questo problema
deve essere già affrontato nelle fasi iniziali di progetto.
Per affrontare le latenze tipiche di una connessione via internet (supponiamole
di 200-300 ms), la tolleranza di tali latenze deve fare parte del modello
di comunicazione del gioco.
Le latenze implicano che le visioni che i giocatori
hanno dello stato del gioco siano non perfettamente sincronizzate. Questo
evidentemente non può essere evitato e del resto è ammissibile
che per piccoli periodi di tempo questo avvenga. La cosa importante
è riconciliare la visioni del mondo in seguito ad avvenimenti
significativi.
Pur non considerando la realizzazione di questo
gioco il punto cruciale del progetto si sono però cercate soluzioni
progettuali che soddisfino almeno in parte le esigenze ora esposte.
|