After hearing about the competition I started trying to come up with a game concept. I asked some people for ideas and thought myself, but there were no appealing ideas.
But today I realized that I already have it all planned out, even posted on GameDev about the idea and started a (fruitless) attempt of doing it using the UDK. But when that didn't work out as planned, probably mostly due it being my first UDK project, I kind of forgot about it.
By now you're probably thinking: "That's nice and all, but what are you talking about?" Let me briefly tell you about the game.
- The game is a top-down 2D mp shooter. Run around the levels with WASD, aim with the mouse, click to shoot. Possibly collect weapons and ammo.
- The core idea is that all players have permanent invisibility.
- Shooting makes you visible (and thus a target) so you better be careful.
- Becoming visible is potentially rewarding, depending on the game mode. Here are some ideas (have you got any more?):
- Capture the Crown: The player with the crown constantly gets points but is visible (Or only the crown is?). When you die, you loose the crown.
- Capture the Flag: Two teams. You can see members of your own team and enemies carrying the flag.
- (Team) Deathmatch: Not that simple, because camping is encouraged. Needs testing.
I'll definitely need some testing, this may need a lot of tweaking, but sounds promising to me.
Some more ideas I've had:
- You're not invisible, it's pitch black. Shooting creates light, revealing your position. Problem: How to make the level visible?
- Players get an "enemy detector" that beeps increasingly fast as you get closer to enemies. Should be especially useful when guarding in CTF.
- Things like puddles of water may reveal a players location.
- Items. Enemies will see the item vanish as it is picked up. Ideas:
- Paint traps: After they've been placed they'll release a puddle of paint once triggered, making the victim (and other players walking through it) leave footprints for some time (or until he walks through water)
- Every couple of seconds every player's position is revealed for a moment - like radar
I'm not sure whether these will work, but I might try them out.
I will code in C++ using SFML. If I go the quick route, not caring much about reusing my code, that will suffice. Or I may also use PhysicsFS, zlib, minizip, Boost, Lua and Luabind and work with my WIP game framework. The latter would take more time (it's far from finished) and I'm not sure I'd be done in time, but I may do it anyway... I'm not sure yet.
What do you think? Please comment.
Am I even allowed to reuse code? The rules state you have to start your project after the beginning of the competition, but I don't think that extends to custom libraries. I don't think it extends to ideas, either, since that'd be a problem.
I've seen others write down milestones and thought that I should do the same. Here's what I came up with:Milestone 1: Basic Framework - Pong
I'll use a framework that I've been working on for a couple of weeks. May not give results as quickly but the product will be of use to me in the future. It's far from done, so my first priority is to create all the missing core components:
Milestone 2: Core Gameplay
- window, basic graphics (sprites, text, shapes) - done - provided by SFML - done before competition
- Low-level input / event system - done - partially SFML Event System, partially DirectX & XInput (for controllers) - done before competition
- FileSystem - done - Using PhysicsFS, has mod support - done before competition
- Lua + Luabind - done - Setting up Lua, making it work with PhysicsFS etc. (Since most code is in Lua for moddability (important in future projects)) - done before competition
- Console commands & variables - done - much like in the Quake 3 engine, key presses will execute a command string and settings are saved via "CVars" - 2010-01-20
- Instruction interpreting - done - Basically a little compiler/executer that interprets strings of commands (including setting and printing cvars) - 2010-01-27
- Font rendering - done - Reading Jedi Academy's .fontdat file format and drawing strings, optionally colored - 2010-02-
0104 (done for real this time?)
- Logging - done - Logging via cout, ingame console and logfile. - 2010-02-06
- Console - done - Easy way of using console commands and variables (hence their name), much like in Quake 3 - 2010-02-06
- High-level input system - working temporary system - Binding instructions to buttons/keys and axes. 2011-02-19
- Menu System - not yet started
- Sound - not yet started - I can probably get away with sfml's sound system
- Pong - not yet started - To make sure everything I've programmed so far works, a little game seems appropriate. Let's do Pong.
Once I've got the Framework I can start writing the actual game
Milestone 3: More
- Multiplayer, basic Server/Client stuff - not yet started - I may just create a networked version of Pong to begin with...
- Map - not yet started - probably top-down (easier than isometric(?))
- 2D collision detection/physics - not yet started - May take a look into Box2D and other libraries as a shortcut, once again using Pong as a prototype
- Player & Movement - not yet started
- Invisibility - not yet started
- Shooting, dying, respawning etc. - not yet started
Once the basic game is done I can start adding more to it.
- Additional game modes - not yet started - ctf, capture the crown etc.
- Balancing - not yet started - the game must be fun!
- Leaderboard, rounds - not yet started
- Traps/items - not yet started
These things would be nice, but I don't really need them. Yet.
- Level editor - not yet started - I will probably need one myself, writing levels in plain text seems unpractical
- Command line argument parsing - not yet started - for example starting a server or connecting to one etc.
- Security - not yet started - protection against cheaters/hackers/..., not important yet
- Additional Weapons - not yet started - I may add more weapons later, but I'm not sure I need to.
- Nice art - not yet started - the game probably won't look very good. I'm a coder, no artist. I may keep it abstract? Lines and Circles?
- Music - not yet started - See "Nice art".
- Porting to Mac/Linux - not yet started - I don't have a Mac and I haven't taken the time to port to Linux yet. Shouldn't be too much work though, thanks to SFML.
This list is intimidatingly long - I don't know if I'll be done in time. I'll try. (Yeah, "Do, or do not. There is no try." I know. I'll do my best. Better?)