Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics

[Devlog] Caverna

A topic by h0wser created Jan 27, 2020 Views: 108 Replies: 14
Viewing posts 1 to 9


Just started work on my game for the Jam. I've decided on creating a platformer with a generated world (based mostly in a cave) where the player explores a cave to find special resources and fight monsters.

I'm making up the story as I go along, but one thing I wish is for the player to have limited amounts of light, so the player must either stock up on coal or oil to burn for light before each entry into the cave, or find light sources while exploring. 

Today was Day1 so I worked on the most important thing: platformer movement and collisions. For simplicity I will be only using a tile-based map without slopes or uneven terrain.

Here is a gif of the movement so far, I want a fast-paced feel to the movement so that the player is rewarded for skillful movement.

Next I will implement a dash movement for more variety as well as start working on generating the base levels.


One thing to consider is an end goal for the player. That way it will give you a definitive end point as well so you don't spend too much time defining the special resources and monsters (feature bloat can unfortunately bog a project down). If the procedural generation takes too long, you can still hand craft a level or two to show off the rest of the mechanics. I'm interested in seeing what these special resources are and how the player will use them!

Yea for sure, my plan is to put a boss at the end of the cave that the player has to fight with the resources/stuff they gather during their run throughout the cave.

If there was more time, I'd like to add persistent rewards between runs for the resources gathered during each run. But that won't be feasible to do during the jam I think. 



I worked on adding some animation to the player character to give more feedback. The animations, along with some tweaking to the acceleration did make the movement feel better. Its not perfect but I want to focus on other things.

After the animations were feasible I started working on the level generation. I tried a few different approaches.

First I tried generating everything in code, but after a while I felt that the levels would probably become very boring, or impossible to complete.

Next, after looking at the map gen for Spelunky, I attempted to do something similar with Unity's Tilemap. I created a few custom tiles which had a certain probability of spawning in the map which was pretty cool. Then I tried creating Template rooms using Tilemaps and Prefabs. I wasn't really happy with how the editing of each Tilemap worked, and it felt like I was fighting Unity the whole time.

Finally I settled on using simple text-files for the room templates which worked the smoothest. Even though editing the templates in a text editor isn't the most inspiring thing in the world, it works.

Next steps will be to create more room templates and add more tile types.

Then I can work on putting more things like enemies into the world.


Wow! I love watching your little guy move! So expressive!


ohhh these player animations are really great! i love expressive it is... it tells so much without needing a lot of pixels! the map gen is really interesting--that sounds like a really cool system and i'm actually sort of curious to see what these text files look like haha.


I can do a little writeup on how the level gen works when I get the time! It is heavily inspired by Spelunky in it's current state, so check that out if you want to know more! :)

So I figured out how to use unity's Rule tile to create a nicer looking tilemap. I went ahead and made a better tileset for the walls. This really gave the game a nicer look.

I also spent some time figuring out how to get some nice 2d lighting in unity, which was really simple one you get the lightweight render pipeline up and running (not that hard either).

Finally I made some sprites for the crystals that I want the player to collect. Each one will have a specific purpose.

  • Yellow: Gives the player light, without it the cave and enemies become harder to spot
  • Red: This is supposed to represent fire, this is used to power all the players offensive abilities
  • Blue: These are going to be related to the players score and might work like a currency if I have the time to implement shops

I also added some nice lights to these to make them more visible and implemented so the player can pick them up.

Submitted (1 edit) (+1)

Wow this is really starting to look impressive! Is this your first game? Or just game jam? lol

Thanks! It's my first game in a while. I did lots of gamedev about 5 years ago in high school, just getting back into it now. I feel like I know a lot more about myself and how to structure projects now that I can produce more faster which feels great.


Damn that looks good! The lighting is great.

Thank you! I feel that lighting is useful in so many games and often has a lot of impact for fairly low effort :)


Alright, so I spent way too much time trying to refactor some code so that it becomes really simple to add new characters or entities to the game. It didn't work for a long time but I finally managed to get it working. Glad I kept at it.

With that new code we can add the first monster to the game!

Introducing the super cute but also deadly (when I implement a health system) SLIME.

I even had some more time tonight and it felt simple enough so I added some health display and damage to the player!

Didn't have any time to work on this during the weekend but today i'm back! I added UI elements so that the player can see how many of each crystal they have and also implemented fireballs that the player can shoot using their collected red crystals!


Besides this, I've been thinking about what to make of this game. I'm leaving for a small vacation on Thursday and won't be able to work more on the game after that. So my plan is to implement a few more room templates for the level generation, add "spikes" that the player must navigate around and finally add a simple boss at the end of the game. The player will have to collect 10 blue crystals around the map in order to unlock the boss room and fight the boss. I've never implemented a boss fight, so it will be a fun challenge.