CS435 Class Project
Server Milestone 1 September 18
Server must pass basic test with lurk_test on October 9
Server is due October 28
Client due Monday, December 2, at 9:00 AM
Each student will create a client and a server. These should be unique, and not share any source code, but be able to communicate with each other. They can be written in any language, although the server must be able to run and Internet-accessible server such as isoptera. There is no such requirement for the client, but if it doesn't run on my computer, I might ask you to demonstrate it.
Client Requirements:
- All information the user needs must be presented to them (i.e. health and status after battles, players entering the room they are in, messages, etc). The user should not be expected to remember things like their own health, nearby monsters, etc. So the client should track these things. The player should not have to be aware of technical details such as the types of lurk messages or the bit order of the player flags.
- If the user is required to type, incoming information must not disturb the typing
- Client must support the full Lurk protocol. Any server following that protocol should be able to communicate with your client. You should be able to use your own client during in-class server testing to connect to any game server. Your client does not have to support extensions.
- On the day clients are due, we will expore a server together as a class. So your client should be ready for you to use.
Server Requirements:
- Must support the full Lurk protocol. All message must work as expected. The only exceptions here are that pvp fights can be disallowed on the server (but appropriate error messages should be sent if these are attempted).
- Must support multiple clients at once, which will interact with each other
- Map must have at least 10 rooms
- Map must contain at least 10 entities (these don't have to be allocated one per room). These can be monsters, but don't have to be.
- Server state must be persistent. So if a player enters the game and dies, the body should remain visible to other players. You can implement a cleanup mechanism that removes dead players to avoid an overly cluttered server.
Milestone 1
To pass server milestone 1, the server must pass lurk_test with no bots (as in, run "lurk_test -b 0 ip_address port"). This does not require multithreading.
Milestone 2
For milestone 2, the server must be able to pass the basic lurk test (default options). This uses 5 bots, 20 move maximum, and more relaxed timings than the thorough test.
More thorough testing
Prior to presenting your server to the class, I recommend testing your server with thorough (-t) and at least 20 bots (-b 20).
Server grade items:
- 20 points: Milestone 1
- 20 points: Milestone 2
- 20 points: Meets map and entity requirements, graded at in-class demo.
- 40 points: Allows the class to play your game during in-class testing. This means it can't crash or otherwise fail to perform when everyone in the class is connected and playing the game together at the same time.