Prepping for first release
Less than one week away from release! Looking at the to-do list from last week, I actually haven't worked a lot on the items listed. I've been ironing out a lot of bugs and adding polish. The multiplayer scoring is now working, and you can see everyone's scores on the top of the screen, conveniently color-coded. I killed the ugly black boxes around the scores and added drop shadows instead, and I moved your current balance to the right side of the screen, to avoid confusion. Take a gander:
The bar on the left shows you how long before you can use your grenade again. The recharge time is around 12 seconds, and I'm counting it as the player's "special action".
The main thing I've been working on is networking. The old system made the game simply unplayable. I couldn't figure out why there was so much lag. The game itself didn't run particularly slow, but the network seemed to be clogged or something. I decided to use threading to speed up network performance, at the cost of CPU performance. After a great deal of debugging and hacking, I managed to get it working.
I also took the opportunity to implement a new packet system that can mix-and-match packets when sending them out, which allowed me to package the different types of packets (entity creation, deletion, and controller updates) into one comprehensive packet that is sent out at 30 FPS. as opposed to 24 FPS with the old system. The new setup also queues critical packets in between network updates, in case something important (like firing a gun) happens during one of the frames where we don't send out a network packet.
One big advantage of the threaded network system is that resource cleanup has been, well, cleaned up. All the network resources are allocated in the thread function, and they fall out of scope when I kill the thread.
More on networking later. For now, there are other more exciting changes! I removed the "Cloud City" map from earlier, and added a work-in-progress map called "Impact". It's the largest, most complex map so far. I haven't done any detailed modeling or texturing, so here's a first glimpse at it:
First release is going to be AWESOME.