Made for Ludum Dare 31 (with a theme of 'Entire Game on One Screen'), I'm quite pleased with the end result here. It's a stealth game where you have escaped a prison execution and now have to hide from the guards people hunting you for the titular 12 hours, at which point the resistance will arrive and liberate the area. More info and other thoughts about the development below, or try it from the Games page.
As with most games I make, there are a number of random elements involved. Usually this is so I can get more entertainment out of playtesting, and for a quick game like this it's good for replayability too. The landscape is made up of grass/forest tiles, bushes, and trees. Of these, only the bushes are really important for gameplay, since when you are in them you are concealed unless enemies walk into you. The trees are just visual fluff, and the forest tiles mainly serve to control tree generation, with bushes more common on forest tiles too. Your footprints actually fade faster on forest tiles as well, but I can't imagine anyone playing would really notice this - I originally planned for more terrain types and more differences between them (maybe some water, swamps, etc) and the fading speed of footprints was meant to be more important, but as the game developed that just didn't turn out to really work with the other mechanics. Especially on the harder difficulties there are just too many enemies and too little space for you to really escape once someone spots you and gives chase - though it can be done on the easier difficulties.
The enemies themselves are a mix of random and reliable behaviours. When they are searching without any idea where you are, they simply move back and forth across the screen randomly switching between moving upwards, downwards or straight ahead. Most of the enemies are organized into squads, sharing a shoulder pad colour and following the movement of their leader (who has the same behaviour as an individual searcher). Their formation will change as the light increases their sight range, so they always form an impassable vertical dragnet that you can't evade without being hidden or skirting around. The light changing gives a sense of passing time, and also provides a natural increase of the difficulty, since more light increases the sight range of the enemies. It's just a simple radius around each enemy, which is also easy to show to the player. By default I have these circles appear when the player is near being inside them and hidden otherwise, but the player can toggle them between always visible, always invisible and the standard 'smart' mode.
If enemies see the player, they will give chase and run towards them - if the player leaves their sight (using their sprint ability to outpace the pursuer and/or hiding) then they will keep moving in the same direction for some time, before resuming random searching. If they see footprints, they will follow them, but players can hide their footprints by sneaking, at the cost of moving more slowly. Difficulties three and four (of four) introduce dog handlers, who follow your scent - this is pretty much the same in game terms as footprints, except the player can't see their scent markers, and they can't prevent them spawning like footprints. The code I wrote for this tracking basically involved each set of footprints linking itself to the previously spawned set, and enemies use this to get a direction when they reach each set of footprints. When the player moves back and forth across their footprints, there is an age value so in theory they follow the latest one, but to be honest it's a somewhat buggy system... which I think is actually okay in this case.
Of course I would have debugged it properly if I could, but given the limited time it works well enough most of the time, and when it does break, I would put it down to human error on the part of the guards. It adds a bit more randomness to the game, and I'd like to think it also gives a bit more human weakness to the guards, rather than them being relentless tracking cyborgs. Even the dogs can get confused, though it was easier to ensure a solid scent trail because people can't see their scent, and the spawning frequency doesn't need to change based on player movement speed. Players expect to see the same number of footprints in a given distance regardless of their speed, but more footprints generally makes the AI guards more likely to make mistakes, so not requiring this for the scent makes it work better (which also fits nicely with the idea of the dog handlers being mostly impossible to shake off).
If enemies see the player, they will give chase and run towards them - if the player leaves their sight (using their sprint ability to outpace the pursuer and/or hiding) then they will keep moving in the same direction for some time, before resuming random searching. If they see footprints, they will follow them, but players can hide their footprints by sneaking, at the cost of moving more slowly. Difficulties three and four (of four) introduce dog handlers, who follow your scent - this is pretty much the same in game terms as footprints, except the player can't see their scent markers, and they can't prevent them spawning like footprints. The code I wrote for this tracking basically involved each set of footprints linking itself to the previously spawned set, and enemies use this to get a direction when they reach each set of footprints. When the player moves back and forth across their footprints, there is an age value so in theory they follow the latest one, but to be honest it's a somewhat buggy system... which I think is actually okay in this case.
Of course I would have debugged it properly if I could, but given the limited time it works well enough most of the time, and when it does break, I would put it down to human error on the part of the guards. It adds a bit more randomness to the game, and I'd like to think it also gives a bit more human weakness to the guards, rather than them being relentless tracking cyborgs. Even the dogs can get confused, though it was easier to ensure a solid scent trail because people can't see their scent, and the spawning frequency doesn't need to change based on player movement speed. Players expect to see the same number of footprints in a given distance regardless of their speed, but more footprints generally makes the AI guards more likely to make mistakes, so not requiring this for the scent makes it work better (which also fits nicely with the idea of the dog handlers being mostly impossible to shake off).
I was surprised to find that in game time, that 12 hours only lasts 96 seconds - I based the time on gut feeling and some minor adjustments, but once you get past the first difficulty level there are quite a lot of people searching for you, so lasting that long is no mean feat. I didn't know the exact time before calculating it just now because it's done via code which advances X minutes per step, with a default of 30 steps a second in GameMaker, so my final time was bases on advancing 0.25 minutes a step. I could have set it up on a per second basis to make things clearer, but since the project was time limited and I came across what felt like the right pace fairly quickly, I just left it.
The less said about the art, probably the better? I'd like to think it has a certain charm to it, but yeah, really it's an ugly game. I'm not too bothered about that - there wasn't a lot of time and I'm no artist, so it was never gonna win awards for art. Most people seemed to find it acceptable though, and I think it's clear at least. Your character doesn't stand out, but that's kind of the point of the game. For sounds I used SFXR to make a footstep sound and a kind of impact sound to play repeatedly when you're caught. To add a bit of mood I found a wind loop online and included that, which I think worked surprisingly well. Most of the time with my games I don't really bother with sounds - I listen to music while making stuff, and don't do many faster paced games where sound cues might be necessary. This is laziness of course, since nearly any game is better with at least a few sounds, but there you go.
All the game options, and restarting the game or changing difficulty, are done by button presses in order to fit with the 'Entire Game on One Screen' theme. This is also why the basic difficulty the game starts in has explanation text appear on screen, and a substantial delay before any enemies appear so players have time to read. It's not particularly elegant, and doesn't do anything clever with the theme, which is a shame - but I'll admit I didn't find the theme particularly engaging. Especially for a time limited game dev event, it doesn't seem like a great choice - a lot of LD games are likely to be only one screen anyway, so I think something to do with setting or actual gameplay would have been more interesting. It's also very rigid, without that much room for interpretation. I don't remember playing many games that did anything really clever with the concept, and quite a few basically ignored it entirely, which I don't really blame them for. Hopefully people will vote for something more interesting for the next one!
The less said about the art, probably the better? I'd like to think it has a certain charm to it, but yeah, really it's an ugly game. I'm not too bothered about that - there wasn't a lot of time and I'm no artist, so it was never gonna win awards for art. Most people seemed to find it acceptable though, and I think it's clear at least. Your character doesn't stand out, but that's kind of the point of the game. For sounds I used SFXR to make a footstep sound and a kind of impact sound to play repeatedly when you're caught. To add a bit of mood I found a wind loop online and included that, which I think worked surprisingly well. Most of the time with my games I don't really bother with sounds - I listen to music while making stuff, and don't do many faster paced games where sound cues might be necessary. This is laziness of course, since nearly any game is better with at least a few sounds, but there you go.
All the game options, and restarting the game or changing difficulty, are done by button presses in order to fit with the 'Entire Game on One Screen' theme. This is also why the basic difficulty the game starts in has explanation text appear on screen, and a substantial delay before any enemies appear so players have time to read. It's not particularly elegant, and doesn't do anything clever with the theme, which is a shame - but I'll admit I didn't find the theme particularly engaging. Especially for a time limited game dev event, it doesn't seem like a great choice - a lot of LD games are likely to be only one screen anyway, so I think something to do with setting or actual gameplay would have been more interesting. It's also very rigid, without that much room for interpretation. I don't remember playing many games that did anything really clever with the concept, and quite a few basically ignored it entirely, which I don't really blame them for. Hopefully people will vote for something more interesting for the next one!
As I said initially, I'm generally happy with the game. It took a while for me to come up with a concept I liked, and there were some tricky moments getting the footprint tracking working (which is really the only slightly complex system in the game), but I'm pleased I managed to add multiple difficulty levels which actually play differently, and get the dog handlers in. I also think the length of each play session is good, and the randomness is sufficient to make it replayable. You can definitely get caught in impossible situations based on random guard movement, but because the game is so quick to play I don't think it's a problem.
To improve it I think a larger play area would be necessary, if only to really make space for extra gameplay features. For instance, more terrain types or new enemies would make things extremely cluttered if I tried to add them into the same space. The limited space currently also tends to strongly encourage a sneaking evasion style without too much movement, which I feel would reduce the impact of any new terrain. In contrast, having the option to run through different zones, stopping to hide from faster enemies passing by (jeeps, helicopters?) before picking up the pace again, while trying to find streams or hard ground to leave less clear tracks, could make the game deeper without needing loads of new mechanics.
To improve it I think a larger play area would be necessary, if only to really make space for extra gameplay features. For instance, more terrain types or new enemies would make things extremely cluttered if I tried to add them into the same space. The limited space currently also tends to strongly encourage a sneaking evasion style without too much movement, which I feel would reduce the impact of any new terrain. In contrast, having the option to run through different zones, stopping to hide from faster enemies passing by (jeeps, helicopters?) before picking up the pace again, while trying to find streams or hard ground to leave less clear tracks, could make the game deeper without needing loads of new mechanics.