Developed by: Gavin Baker*
CPE 471
Winter 2015
The final project I developed for CPE 471 was a simple multiplayer world where users could move around and interact with other players. The original idea was a world that would allow multiple people to construct a world together by placing blocks. These blocks would be built both vertically and horizontally to create interesting structures in a similiar method to minecraft. This inital idea would require a tcp message server to keep track of the player's state as well as the state of the world. The progress I made toward this goal for my final project involved completion of the Server/Client tcp communication framework and creating the heirarchical models of the in-game characters. These characters held a state consisting of their global coordinates, yaw (angle of direction they are facing) and the angle of all rotating body parts. This state was updated to the server about 60 times a second and would then be combined with all the user states into a list that would represent the state of the game. This state would then be propagated to all clients every 30ms which synchronizes all the clients so players have the same movement from every player's perspective. While the world state was not implemented fully, the message passing framework is setup such that the world's state could be passed successfully once it was implemented. The player states are fully functional and additional animations could be added with simple modifications to the stored state of players.
-Multiple Players: TCP client and server
-Full screen gameplay
-Invisible mouse
-smooth player world movements
W = Move Forward
S = Move Backward
A = Strafe left (disabled for demo)
D = Strafe right (disabled for demo)
Z = Toggle shading model and ground color (phong = red; gouraud = grey)
X = Wave at friends!
Mouse = pitch/yaw of person/camera
Esc = exit all clients
2) Open a terminal
3) Enter the command: "cd Download"
4) Enter the command: "./Worldbuilder username hostname 5555"
5) Enjoy the game!
1) Download full code
2) Extract the folder to "/destination_folder/"
3) Open a terminal connection
4) Navigate to server folder => Enter Command: "cd /destination_folder/Worldbuilder/serv/"
5) Compile the server => Enter Command: "make"
6) Start the server => Enter Command: "./server 5555"
7) Open a second terminal connection
8) Navigate to the app directory => Enter Command: "cd /destination_folder/Worldbuilder/"
9) Create a makefile => Enter Command: "cmake ./"
10) Compile the Worldbuilder app => Enter Command: "make"
11) Start the client => Enter command: "./Worldbuilder username server_ip_address 5555"
12) Enjoy the game!
*Press Esc key to exit