CS 428 Games and Virtual Environments Homework #3
Due: Sunday 3/22/2020, 11:59pm. Turnin is by bblearn.
Remember to
put your NAME in a comment at the top of your source code file(s), and
to provide detailed makefiles or build instructions.
1. Add a Range Weapon
- If you haven't already, work through Chapter 4, which develops a
gun for the space gladiator game
- Watch whatever additional youtube videos you find necessary to get a
feel for Blender.
- Add a ranged weapon as per that provided in our
Di Giuseppe textbook. You may alter/embellish.
2. Develop a Novel Enemy
- Change the enemy from a pill shape, to something more interesting of
your choosing. Some of you may have to restore the enemy functionality.
- Add (one or more) enemy models your game
- develop/select models in .fbx format
- run
fbx-conv
to produce a .g3db or .g3dj file
- write enough Java/libGDX code to load and render the (one or more)
3d models in-game.
3. FPS Over the Network
This part of the assignment should transmit, via new (human-readable)
network commands, information regarding character movement and
orientation, so players can see each other, and see each other's movements,
in-game.
-
- Add a \move command to the network protocol
-
\move name x,y,z,theta,delta
sends an avatar move through the server to the other clients.
Angle theta
gives an avatar orientation, in degrees,
going counter-clockwise, where 0.0 is east, 90.0 north, 180.0 is west,
and 270.0 is south. Time delta
is the number of
milliseconds since the previous \move (if any); its purpose is to allow
a bundled set of \move commands to be replayed at approximately the
rate at which the player performed those movements.
- Implement packet aggregation.
- Measure however-many moves the client is capable of generating per
second. Is it 5? 30? 120? However many it is, queue up your outgoing
commands and send out at most 3 packets per second from the client to
the server and from the server to each client.