Multiplayer Milestone Complete
Posted by redbeard on September 14, 2011
I’ve completed my self-imposed “multiplayer milestone”, which means two things: the game has reached a state of coherent playability, and I can now start working on making the game deeper and broader. According to my task & time tracking spreadsheet, I’ve spent over 150 hours on this milestone (and 350 total on the project). My previous milestones were “experimental cube-world rendering” and “basic networked gameplay”. Here are some of the features and tasks which I completed for this one:
- Winnable game mode “team treasure grab”
- Explosive grenades and rocket launcher
- Limited ammo magazines & weapon reloading
- Teams: spawning, scoreboard, player balance,
- Robust object state replication and RPC over reliable UDP
- Dedicated host/client separation, which makes the code more sane and opens the option of dedicated servers
- Client-side movement prediction (essential to avoid laggy player movement)
- Network bandwidth profiling (invaluable for tracking down overactive network objects)
- Player feedback sounds & visual effects for various actions, and incoming damage indicators
- Various UI functionality like compass, health, and weapon info
- BRDF rendering experimentation
The most time-consuming task was probably the client-side player movement prediction. I referenced a few different papers/articles which helped get the concept clear in my head:
- http://developer.valvesoftware.com/wiki/Latency_Compensating_Methods_in_Client/Server_In-game_Protocol_Design_and_Optimization
- http://gafferongames.com/game-physics/networked-physics/
- http://fabiensanglard.net/quakeSource/quakeSourcePrediction.php
My next milestone involves several main categories of work:
- AI helpers, such as builder & tunneler bots, sentry turrets, and patrol bots
- Weapon variety: machine gun, sniper rifle, pistol, etc
- Support items: medic kit, ammo box, repair wrench, etc
- Player class build or economic systems for selecting from the various weapons & support items
- Enhanced rendering effects like ambient illumination, motion-detector vision, and other
- Performance improvements, specifically targeted at Xbox 360 (I’d like to run at 60 fps @ 720p, at least on clients if not the host)
- Polish & style improvements, it would be nice to start using more aesthetically appealing art & sound assets
If you’d like to take the milestone build for a spin, download here. You’ll also need to install the XNA 4 runtime if you haven’t already. Consider it alpha-quality code, it’s probably full of bugs… but if it doesn’t crash, hopefully you have some fun with it!
Leave a Comment