CS 428 Games and Virtual Environments Homework #4

Due: 4/20/20, 11:59pm. Turnin is by blackboard. Remember to put your NAME in a comment at the top of your file(s)/document(s).

This assignment includes two tasks that may be done in parallel. You can get full credit for one part, even if you don't succeed with the other part.

1. Many "Rooms"

Extend your shooter game to handle larger .json files with more rooms, for example, jeb.json, a JSON-and-GDX adaptation of jeb.dat.

Suggestion: for substantial partial credit, add one room at a time and report how many rooms/doors/openings you managed to incorporate. You do not have to use jeb.json, you can add multiple rooms to your own design. By induction, if you got > 2 rooms working, adding more should get easier and easier, at least until your OpenGL implementation gives out on you.

2. Combat system: network messages for combat and damage

You have a lot of latidude on how you choose to implement this
Add a notion of Health points to characters and/or monsters. Most likely this will be dynamic state represented on both clients and server, but of course server is the final judge/referee of game outcome.
Add a \attack command to your network protocol

3. libGDX Chat Client and Session Monitor

Implement enough of the CVE network protocol in Java (and libGDX, if possible) to login and send and receive text chat messages with other users. You should implement \login, \version, \logout, \say, and \tell commands. For all other commands received from the server, you should just echo them to the screen. Replace any sequence of binary or unprintable content (if any) with the string "##". You may adapt existing libGDX code from the internet; if you borrow code, say where it came from. But you are trying to implement the CVE protocol.