Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Worked on level generation a bit more. Since I don't have anything visible yet I'll explain how it works instead:

A level is represented by a grid of cells with set width and height. Each cell can be an enemy (red; attacks, and player can't leave until it's killed), boss (purple; currently same as enemy except for colour), health pickup (green; doesn't attack and can be exited at any time), or exit (yellow; the player goes to the next level after typing it). The player always spawns at the top left of the level. When initializing, the game reads from a JSON file and loops through each item in the list, spawning and configuring cells based on the properties. When it finds an empty string it generates a random enemy to fill it based on level difficulty (also in the data file). The exit/bosses/health pickups of each level are manually defined. 

While this was the easiest option for a jam game that most reviewers would only play once, it quickly becomes repetitive and replaces actual gameplay with memorization.

In the new system, the game will first select the spawn, then place an exit a set distance away, then place health pickups and finally fill in the rest of the cells with enemies. The health pickup and exit names (what the player types) will also be randomized. This increases replayability a lot without noticably changing the game feel or pace.

As for other progress, there are now gutters to the top and left of the "spreadsheet"! Ive also added a button to skip the opening dialogue and a few more enemies/adjectives. Here's a gif of current gameplay. (Turns out not having graphics makes gif files small as hell, so this 16-second gif is only 2.5mb)

TLDR: The current level generation is a band-aid solution because all the interesting stuff is hard-coded. I'm working to make it slightly less bad.