Realistic 3D graphics and networking are technologies that are becoming vital to today's video games. Aiming to develop a game including both of these important elements, and to experience the underlying technologies used for game development, Bouncing Soul was developed.

Problems

The following are the main problems we need to solve:

  • Transfer game data through limited network bandwidth
  • Maintain consistency among players’ computers
  • Control graphics quality

 


 


A server is implemented on Unix to serve as a chat room and gathering place for the players. In the lobby, players can chat with others, host a game or join a game.

The lobby allows players to meet new friends. 1024 users can online at the same time theoretically.

    Distributed Model:
    Four computers require six connections


    Centralized Model:
    Four computers require three connections only

For the connection between players, a centralized model is used instead of a distributed model because it not only guarantees a consistent game state among players' computers, but also saves network bandwidth due to its simpler topology. The common network API (Application Programming Interface), Winsock, is used for its compatibility on all Windows platforms.


 


Direct3D and OpenGL are widely used APIs for 3D programming. OpenGL is used because of its high rendering performance and stable visualization on different computers. While DirectInput3.0 is used to handle players input from keyboard and joystick owing to its availability in all Windows platforms.

Four players are allowed to play together through the Internet. The objective of the game is to push all your opponents out from the playing platform. The last survivor is the winner.

Our project adopted today's popular PC technologies, including Winsock, OpenGL and DirectX, which is extensively used in today's PC games. This gives us concrete and valuable experience for game development. Further improvements can be done on data compression for data transfer, or on enhancement of visual effects like shadowing and fog.