tisdag 6 mars 2007

Möte 5/3 - 07

Närvarande: David, Joel (Danwei, Andreas var sjuka?)

Diskuterade lite olika lösningar på hur nätverket och spelmotorn behöver kommunicera och hur man löser vissa problem.

Vad skickas från fysikmotorn ut till de andra peersen?
Endast information om det egna skeppet, ett paket bör innehålla följande:
  • Skeppets rörelse, Kordinater för pos, Vridningsgrad (vart den pekar), Fart-vektor (vart den är på väg och i vilken hastighet)
  • Info om skepp träffat: Vilket skott träffade?
  • Info om skeppets avfyrade skott: Positioner och vektorer för dessa, (minor, skott, etc)
  • Info om skepp lever: Om skeppet sprängdes pga skott eller kollision med kropp eller är intakt

Dead reckoning:
  • Om en peer ej har fått ny info från en annan peer använder dess fysikmotor den gamla infon för att uppdatera dess skepp
  • Kommer ny info hoppar skepp till denna möjliga nya position (då vi tidigare har förutsatt att vi inte tar hänsyn till extrem latency är detta ej ett problem)
När man skjuter:
  • Även om ens skott ser ut att träffa så flyger de igenom fiendens skepp tills man får registrerad träff (vilket bör gå på nolltid)
  • Skulle man träffa med dessa skott som flög igenom
Flyga in i planeter:
  • I och med dead reckoning är det samma här, andras skepp ser ut att flyga igenom tills konfirmation (bättre än att de ska sprängas för att sedan dyka upp nån annanstans)
Vad händer vid uppdateringar?
  • Fysikmotorn uppdaterar info (från andras skepp och objekts positioner med spelarens möjliga aktion, vektor och skott kan ändras etc)
  • Skickar ny info till grafikmotor
  • Skickar till alla Peers i sin region/grupp (RegionPeers)
Uppdatering i nätverk
  • Alla RegionPeers skickar till varandra
  • ChefRegionPeerern skickar till de närliggande ChefRegionPeerserns
  • De närliggande ChefRegionPeerserns skickar till sina RegionPeers
En anser träff, en annan anser miss:
Då det ej är full (eller möjligtivs ingen) direkt synkronisering utan alla försöker köra i ett visst uppdateringsintervall och går det så går det så infördes dead reckoning. Dock så innebär detta exempelvis att ett skepp kan anse att den träffar medans motståndaren anser sig vara någon helt annanstans. Då vi som tidigare inte bekymrar oss särskilt om latency så blir det i så fall synd om den stackarn som har slött nät då ett majoritetsbeslut kommer inträffa på följande vis:
  • Om bägge spelare inblandade är överens om träff, inget särskilt behövs, alla glada och nöjda
  • Om missnöjda så när ChefRegionPeerern får info om detta skickar den en förfrågan till alla i regionen om vilken de har (om det exempelvis är endast en extrem flaskhals blir han ensam, har han vissa nära sig så blir de några osv men förhoppningsvis löser detta det okej).
  • Denne skickar sedan ut majoritetsbeslutet och de som ansåg annorlunda får därmed ändra sig
  • Om ChefRegionpeerern tidigare skickade ut annan info till närliggande regioner får detta skickas om

TILL TORSDAG:
Andreas: Klassdiagram, Tech-spec
Flavius: Game design Doc (det som är kvar)
Danwei: Sekvensdiagram (några stycken, om texten här ovan och om grafik-fysik-spelmotor)
Joakim: Sekvensdiagram (med Danwei)
Joel: Fysikmotor, halv-pseudo
David: Flowcharts som ej är klara, sätta ihop

Inga kommentarer: