Here are some more coordinated thoughts about the demo:
- Users have ability to host and join network games.
- Host will be able to choose to change level or start a new game.
- Players will be able to shoot and kill other players. Damage inflicted will depend on the gun that the players are shot with.
- Players re-spawn randomly on the map.
- Deaths, kills and overall score will be counted. Also their rounds won will be recorded until they leave the server.
- Players will win a game if they reach the target score, or achieve the highest score in the set time.
- Players represented by an animated, moving character.
- Pickups are available. Pickups re-appear after a set time. Pickups will be one of three types: weapons, ammo for weapons, or health. Ammo will have a set number of rounds, weapons will be like ammo, except they will supply you with the weapon if you don't have it. You will be able to pick up ammo for a weapon even if you don't have it. Health will supply you with a set amount of health.
- Basic menu for interface.
- Small weapons set.
- Intro sequence.
This is the order of things I will be doing, based on that list:
- Add water code.
- Add code to display player health.
- Upload current code and media required for testing.
- Add custom spawn points, and apply over network so players spawn randomly.
- Edit network bullet code to inflict varying damage depending on gun used.
- Add code to initiate and terminate games over network (whether forced or natural). Initiation will result in players respawning, their scores resetting and the scene returning to normal.
- Add code to determine whether someone has won the game. In which case, end game and start a new game. Players' rounds won will be retained until they leave the server.
- Add ability to enable/disable weapons.
- Add pickups code and apply across network.
- Edit the code so that you can be out-of-a-game, so that the levels aren't loaded automatically when the program launches.
- Improve the character collision code. Polygon collision is quite slow.
- Add visual message code to display messages like "PlayerX killed Player Y!".
- Other stuff (undecided)
Visual things that may not need doing depending on the time:
- Add an effect to show that the player has been hit.
- Water splash effect when bullet hits water.
Somewhere along the line I will integrate the menu code, that hopefully CPU will be doing? It would be a great help! Here are some specs I have thought up for the menu system.
- Simple buttons, text boxes and 'up-down' gadgets. Any other gadget things would of course be fine, but I'm just thinking about the time available for now.
- Some sort of code so that certain buttons when pressed do things. Maybe you could have string value for each button, that could be filled with a console command that is executed when it is pressed? I have created some code for storing several lines in a single string. The file is attached (the bottom 3 functions).
- Maybe the values could be saved in a file somehow, and loaded next time? This would save the user having to type their name each time.
- Anything else you can think of.
Other stuff that we will have to do, not directly related to coding though is:
- Construct at least one level full of physics objects. The engine is fully capable of supporting joints now, so anything with hinges, sliders, corkscrews and ball joints can be supported now. I have not yet put the exploding objects back it, that may have to wait until after the demo, we'll see.
- Animate some hands with guns. It is probably the general feeling that guns look better animated.
- Find some good sounds! We really need some footsteps, bullet ricochets, bullet hits, gun shots, reloading, and people getting hit sounds. Ambient loops may be good too.
- Get a better bullet hole image.