A Space Game

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
Server Process
ASG Client / Game
Client Process
Thread
Login
Create
Join
Login
Thread
Admin
Game Process
Game Play
Threads
Game (1)
(2)
(3)
Server
communication
Client-Server Relationship
The Design
Main
UDP
Client
Game
Message
Handler
Team
Pilot
Display
Message
Player
Arena
Texture Loader
Gunner
Display
Spacecraft
Weapon
Game Class Abstraction
The Design
Server
Main
Client
Main
_games
Message
Handler
UDP
Client
Message
Handler
_teams
Message
Message
_positions
Server Class
Abstraction
Client 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
Server Running
ASG Client Running
Client logged in to game
Initial view in game
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!