I’m back again with another game jam game that I put together.
This project was not as successful as I wanted it to be, but I still learned some good stuff.
The concept behind this indie mix tape was to make a game that involved procedural generation. One of my first thoughts was to create a survival game, and to procedurally generate an island that the game could take place on. Even though I didn’t love this idea, I decided to go with it, and see what happened.
This was an interesting project to work on because I’ve never really done anything of this scale before. On top of that, this was the first time I ever tried to generate content procedurally. While some elements were successful, such as generating the island, and making a basic time of day/lighting system, I really underestimated what I was getting into. So to look at where this project went, and how it turned out, let’s start at the beginning.
Since the focus of the project was on procedural generation, I decided to start there, and immediately set about trying to generate an island for the game. The system I decided to use was very simple. First, it would go through an array of blank squares and create an oval island in the center. Then, after the full island was generated, it would do another pass where it determined whether each tile on the island should be a beach tile, a grass tile, or a forest tile, depending on how far it was from the center of the island, or how close it was to water. After that it would go through all of the tiles again, and start generating various other objects like bushes, trees, rocks, and so on. The goal here was to create a very basic island, with items on it that I could turn into resources later(trees could be mined for wood, rocks for ore, etc). You can see some examples of what this system might spit out below:
Even though this system was working very well, I got obsessed with trying to make the island generation better, and lost focus on some of the more important aspects that would turn it into an actual game. So even after it was working I started worrying about how often trees were spawning, how large beaches were, how big the islands were, and how varied the shapes were. All of these things mattered, but many of them could easily be classified as polish, and could have been sorted out later when I had more actual gameplay done. Despite this, I ended up spending more than half of my time on this one element of the game, and the deadline was quickly approaching.
I was still unhappy with this system, but I pushed forward with the game anyway, and got to work on the rest of the game elements. From there I started working on Player movement, enemies, combat, inventory, day/night cycles, and many other things. To put it simply, I was trying to do everything at once.
Eventually the deadline for the game jam hit, and I was nowhere near finishing. While I did complete some of my goals, such as completing player movement, having an explorable map with a fog of war element on the map screen, creating a day/night cycle and a lighting system to go with it, and even had some basic enemy AI, I didn’t have anything near a full game. Below you can see some examples of what the game looked like at the end of the jam.
After the game jam ended, I decided to continue working on the game to see what I could do to complete it. Once again though, I got bogged down with the island generation because I had an “epiphany” about how to generate the island faster with more variety. Just like before, that ended up being the only element I really worked on for a week or so, and the game didn’t get much better overall.
Finally, after June ended, I was forced to stop working on the game because I had other commitments. Despite all the time I put into it, the only thing that really got close to the point I wanted was the random generation of islands. Everything else was lackluster and incomplete.
This game didn’t turn out very well, but it was an interesting project , and it did help me learn one important lesson about prioritization. While I easily had the time to make the basic gameplay I wanted, I spent almost all of that time trying to make a really powerful island generation system. When I should have been focusing on what would make the game fun, I focused on making a system that could create rivers, and unique island shapes, and which would create just the right amount of trees and rocks, and everything else. In the end, I was, funnily enough, unable to see the forest for the trees, and spent a lot of time making sure the forests were just right.
This project also taught me a good lesson about scale. Survival games are interesting to look at because many of the systems at play are often very simple. Movement is very simple. Mining for resources, at its heart, is very simple. Even combat can be very simple. Together though, these systems are very complex, and create a very large game. By underestimating the amoutn of time it would take me to combine all of these elements into a single piece, I underestimated the game as a whole, and failed to appreciate the task I was taking on.In the future I will definitely keep this in mind, and try to look more at the project as a whole, and how elements interact with each other, rather than just taking each element as a single piece.
While I definitely won’t be trying to make a project of this scale again any time soon, it was a good learning experience, and it was fun to tackle procedural generation from a programming perspective.
If yoiu want to check out the final version that i did post, you can find it on itch.io.