Gun n' Run is a small prototype made over 48 hours for the 2020 GMTK Jam. All code was written and graphics produced during the jam by myself, and the game was made using the Godot Engine version 3.2.2.

Playing the Game

The goal is to complete 10 short, randomized levels as quickly as possible by activating all targets in the level. You play as the blue circle and the targets are the light grey squares. Targets can be activated by moving into them or hitting them with bullets. As soon as all targets are activated the next level begins, but the position of the player and bullets stays. Use this to your advantage! You lose if the dark grey spot in the center of the player touches a bullet. Bullets can split when touching walls, but eventually disappear.  Fire enough to take down the targets quickly but not so much that you cannot avoid being hit. You will be shown your time upon completing the 10th stage, and your best time is displayed as well. There is no saving so be aware that reloading the page will reset your best time.

Controls

  • WASD : Move
  • Left Click: Fire bullet
  • Right Click (Hold): Reduce movement speed
  • Spacebar: Reset game (at any time, use if you get stuck!)

What does this have to do with the theme?

The theme for the jam, 'loss of control', was incorporated into the game through the hectic and fast paced nature of levels changing rapidly (sometimes in a fraction of a second) and the bullets behaving in a somewhat predictable yet chaotic way. The game asks the player to manage just how much control they're willing to give up in the hope that the bullets can accomplish the goal of hitting the targets faster than the player can.

How are levels being generated?

I don't have any experience randomly generating a level, so I went with an excruciatingly simple approach that has a small chance of giving you an impossible stage. I thought I would write a little bit about why this is a bad idea, in case you're interested.

In the code, the level is just a 6x6 grid of tiles. When you generate a level, each tile is iterated over. First there is a 20% chance that a wall will be placed. If a wall is placed, you move to the next tile. Otherwise, there is a 10% chance a target will be placed. If there is no wall or target then the tile remains empty. The code also takes the position of the player into account and will not place anything in the tile the player is positioned over.

There are two significant issues with this approach. Firstly, it is possible to generate a level with no targets, which instantly ends the stage and generates a new level. The odds of this happening would be equal to 5.4%. Seeing as 10 levels are generated per game I think that means there's a 54% chance of at least one stage ending instantly (and a (2.12*10**-11)% chance of the whole game ending in an instant without the player having to do anything at all, which would be amusing to see). A better approach would be to designate (or randomly decide) a number of tiles to be walls & targets and then place those randomly so that you can control exactly how many of each tile exist rather than leave it to chance.

The second issue is when walls fully enclose a target in a region the player cannot access. I was considering a spelunky-esque solution to this where the game randomly picks and places 4 pre-selected 3x3 groups of walls and targets into each corner of the level, but I didn't pursue that idea due to time constraints. I believe you could also do something with path finding but I don't have experience with that either.

Other notes :)

This is my second time participating in a 48 hour (or less) game jam, with my first time being the 2019 GMTK Jam. I can't say that I've gotten a ton of game dev experience since the last jam but I can say beyond any shadow of doubt that this game beats my submission from last year. I think that the basic premise of having conflict between the players goals & means of completing the goals is interesting, but certainly this is not the best execution of that idea. Regardless I enjoyed participating and look forward to doing better next year!

StatusPrototype
PlatformsHTML5
Rating
Rated 4.0 out of 5 stars
(1 total ratings)
Authorsetmarks
GenreAction
Made withGodot, Paint.net
TagsArcade, Singleplayer, Time Attack, Top down shooter
Average sessionA few seconds
LanguagesEnglish
InputsKeyboard, Mouse

Comments

Log in with itch.io to leave a comment.

(2 edits)

Got 0.43 average. 4.3 total

Managed to get 1.27 average time per stage, felt like pure luck though