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.

👥
7
Team Size
⏱️
10 weeks
Development Time
💻
10,804
Lines of Code
🔧
8
Technologies

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