You can find your Assignment 3 grade and comments in your mailbox. Click “more” to double check that the grade is entered correctly. As usual, if there is any surprise in my comments and your grades, let me know ASAP.
This is an open ended assignment and many different solutions are submitted. The best (and closest to the solution I came up with) is the one by Yang Shun and Hieu (read their report here). Basically, the idea is to find the set of ships that could possibly collide with a rocket, and only send the “fire” commands to these ships. Two other teams have similar solutions. This turned out to be tricky to compute, but with some thoughts, it is doable.
Another popular solution that does not work as well is to use cell-based, distance IM (either a fixed distance or a “cross” ala Problem Set 2). If “turn” or “fire” are sent only when the ship/rocket enters into the AOI, the player will see sudden appearance / teleportation of ships/rockets. Depending on the implementation, this could be either subtle or annoying. Another tricky part is to compute the cell a ship/rocket is in efficiently. If you compute the cell every gameLoop(), it is going to be slow. So you need to predict when a rocket/ship will cross the boundary and update the cell the rocket/ship belongs to only then.
Most of you got the efficiency part right, by considering only rockets and ships in each other’s AOI. But, note that if you recompute the AOI of every rocket and every ship in a loop before checking hasHit(), it does not actually make it more efficient! It would be more efficient only if hasHit() is more expensive to compute than the AOI, which is not the case here.
Several teams tried the multiple server solutions, but none got it perfectly right.
Here is a video explaining Assignment 2.
By now, you should have received an email with comments on your specific assignment. Do let me know if there are any surprises or bug in my marking.
You did not do as well as expected. Specific comments will be emailed to you. I will post a video with a solution.
You should received your assignment 1 grade and comments back in your NUS email. The PDF is annotated. Some of you may have issues reading the annotation using some PDF reader (esp on mobile devices). Please try another PDF reader if you don’t see any annotation at all.
If you don’t receive anything, or can’t see any annotation after trying very hard, or is surprised by your grade, feel free to contact me.
Most of you are able to obtain the basic traffic traces and characterize the traffic in terms of throughput, packet load, and packet size properly. Well done! There are, however, many of you who did not plot a histogram properly. Most common mistakes are (i) use non-uniform bucket size, (ii) use non-integer bucket, (iii) plot packet size versus time.
The analysis of traffic patterns, especially the periodic pattern, is missing in many submissions.
Here are your grades:
You have been shown a naive implementation of a massively multi-player Space Battle game. In this assignment, your task is to improve the implementation so as to improve the efficiency of the server and to reduce the number of messages sent using interest management. For extra bonus, you can improve the scalability of the server by using multiple servers while maintaining a seamless world.
You have been shown a naive implementation of a two-player Pong game in class. In this assignment, your task is to improve the implementation so as to improve the consistency and responsiveness of the game, while at the same time reduce the visual disruption and jerkiness of the entity movement in the game.
In this assignment, you are to collect packet traces of a real-time, interactive, multi-player game, and study the basic characteristic of network traffic from the game. This assignment helps us understand what game traffic looks like (does it need a lot of bandwidth? Are packets being sent frequently? What is the size of packets being sent?) This is important for us to understand how the existing game protocol works, and will help us see the inadequacy of existing transport protocol in supporting most games.