Deerstalker
A 3D online multiplayer brawler game where players fight to be the last standing on the stage, featuring special ability "hats" for strategic gameplay.
About the Project
Deerstalker is a four-person pseudo-wrestling game where players fight to knock each other off the stage. The game features special ability "hats" that provide unique powers, creating strategic gameplay where choosing the right hat at the right time can be the difference between victory and defeat.
Developed as part of CSE 125 at UC San Diego, this 10-week capstone project showcases advanced game development, network programming, physics simulation, and collaborative software engineering.
Objective
Be the last player standing on the stage
Special Abilities
5 unique hats with distinct powers
Multiplayer
Up to 4 players in networked combat
Real-time Physics
Dynamic physics simulation with Bullet
Development Progress Videos
Development Gallery
Technology Stack
Client-Side
ASSIMP
3D model loading and processing
OpenGL
Modern graphics rendering with VBO/VBA
FMOD
Audio engine for sound effects
FreeType
Font rendering for UI elements
Server-Side
Bullet Physics
Physics simulation and collision detection
Protocol Buffers
Efficient binary serialization
Shared
Boost Networking
TCP-based client-server communication
C++
Primary programming language
My Development Journey
My contributions as the networking and game engine lead throughout the 10-week development cycle
- ▸Implemented core networking framework using Boost Asio
- ▸Set up server broadcasting to multiple clients
- ▸Integrated Google Protocol Buffers for data serialization
- ▸Integrated Bullet Physics into game engine
- ▸Integrated Xbox controller support
- ▸Loaded compound rigid body models from Maya into Bullet
- ▸Debugged camera and skybox rendering with graphics team
- ▸Collaborated on item spawning logic and bullet shooting mechanics
- ▸Developed core game logic and mechanics
- ▸Implemented hat logic and item interactions
- ▸Fixed critical server-client synchronization issues
- ▸Achieved MVP milestone with the team
- ▸Added primary and secondary hat abilities
- ▸Developed rotational physics for bullet shooting orientation
- ▸Refactored codebase for performance
- ▸Added more fighting elements and gameplay refinements
Technical Challenges & Solutions
⚙️ Physics Integration
Challenge: Poor Bullet Physics API documentation
Solution: Extensive trial-and-error experimentation and community research
🌐 Network Synchronization
Challenge: Maintaining consistent game state across multiple clients
Solution: Server-authoritative architecture with Protocol Buffers
🎮 Character Controllers
Challenge: Kinematic controllers had limitations for our use case
Solution: Developed custom dynamic character controllers with physics-based movement
🎨 Animation Pipeline
Challenge: Loading and animating FBX models with skeletal animation
Solution: Used ASSIMP for model loading and developed custom animation system
Lessons Learned
Early Game Design
Starting with clear game mechanics from the beginning is crucial for project success
Team Communication
Regular synchronization prevented integration issues and kept everyone aligned
Sub-team Structure
Breaking into focused teams improved productivity and allowed for specialized work
Learning Curve
Complex libraries like Bullet Physics require significant time investment to master