220 likes | 290 Views
A Space Game. By William Sistar. The Problem. What is provided: Most network games are single player Some do allow team work but not in a common environment What we want: A networked game designed around team play Team members work together to manage what they cannot on their own
E N D
A Space Game By William Sistar
The Problem • What is provided: • Most network games are single player • Some do allow team work but not in a common environment • What we want: • A networked game designed around team play • Team members work together to manage what they cannot on their own • Team members play the roles they either like to or that they do best
A Solution A Space Game • A team based, networked, multi-player game • Designed to be played with at least 4 players • Players would be in teams of at least 2 • Theme: Spaceship fighters • Roles: • Pilot – Controls spaceship maneuvers • Gunner – Manage weapon systems
The Requirements Functional • Common • Communication protocol • Message handling • Data structures for managing player information
The Requirements • Server • Capable of authentication • Ability to create and delete games • Handle multiple games at once • Modular for future requirements
The Requirements Functional • Game • Player should be able to remain logged in to server • Allow for player selection of team and position • Allow for at least 2 players and 2 teams • For demo purposes 1 player on each team • At least one ship with at least one weapon • Collision detection (for weapon fire) • Provide smooth display of enemy ships when in view • Support joystick and keyboard for control • Have a scoring system to determine a winner • Provide basic sound effects
The Design • Spiral design process • Prototyping used for research and proof of concept • Client – Server model • Design with cross-platform in mind • Modular for future expansion
The Design ASG Server ASG Client / Game Server Process Client Process Thread Login Create Join Login Thread Admin Game Process Game Play Threads Game (1) (2) Server communication (3) Client-Server Relationship
The Design Main UDP Client Game Message Handler Team Pilot Display Message Player Arena Gunner Display Spacecraft Texture Loader Weapon Game Class Abstraction
The Design Server Main Client Main _games Message Handler UDP Client Message Handler _teams Message Message _positions Client Class Abstraction Server Class Abstraction
Design Decisions • OpenGL vs. Direct • GLUT vs. DirectX • Command Line Interface vs. Windows Interface • C/C++ vs. Java • UDP vs. TCP • Movement communication
The Challenges • Object synchronization • Collision detection • Graphical Display • Client – Server communication • Development and Testing • Time constraint • Requirement creep • Interest balanced with other commitments
Conclusion • I have developed a networked game designed around team play • Completed a project involving many facets of Computer Science • Learned many lessons about game design and project management
Questions Thank you!