Technical Discussion June 18 2010
How to solve the Network synchronization challenge
Some ideas
- UDP is commonly used for games and TCP for matchmaking
- Full sync every X
- timestamp interpolation
- timestepping, really fast turns that only track player actions. (AI War does this)
Software design
Piper took us through how they do software design in the software systems lab.
Objects
- players
- entity
- ships
- asteroids
- projectiles
- vector
- hit points
- input
- shield
- damage
- weapon
- view
Functions
- move(entity)
- accelerate(entity)
- collision(entity, entity) // may not work in all cases
- fire(ship, weapon)
- draw(ship)
server-client model game loop
for p in Players
input := getinput(p)
accelerate(ship(p), input)
fire(ship(p), input))
forall e in entity
if e.hitpoints <= 0
destroy(e) // all object have HP?
move(e)
checkCollision()
Members present
- Eric Raue
- Dave Hughes
- Jordan Fox
- Piper Jackson
- … maybe more but it wasn't recorded.
page revision: 1, last edited: 05 Jul 2010 19:47