Lessons learned


Intro

I was looking to do a game jam, and this one fitted perfectly in my vacation. It was 10 days, so I had plenty of time.  I wouldn't spend the whole day on the game,  just a couple hours each day. The rest  of the day would be family time. Of course, I was looking forward to the theme reveal. When it was announced: Ecosystem, I immediately liked it.  The workings of ecosystem are interesting (at least to me) and it would be nice to make something about this theme.

Goal

The first day I spent on googling and reading about ecosystems. Most of it I could remember from high school, but since that is 30 years ago, it needed some freshen up. I decided that I wanted to use this jam to learn some new stuff.  Try out some coding but mainly trying to get a ecosystem simulation going.  My focus wouldn't be making a great game (let alone winning the jam) but on the workings of an ecosystem. Learning was also highly encouraged by the Goedware Game Jam.

Perspective

I had to choose how I would portray the game. I didn't want to use a top-down perspective,. That's what I would use most of the time and I wanted to do something different. Also I knew I had to draw some animals and the side perspective was much easier for me to draw. After a day of thinking I had a rough plan of how the game would look and play. It wasn't going to be a more standard game type (platformer, top-down rpg, puzzle etc).  That had one drawback, it would take a lot more time to develop. With the more familiar game genres, you know how it's supposed to look and behave, and I have more experience with those.

World

I started with the world. Like I said, it had a side view perspective.  I wanted it to have some different ground levels, just for breaking up the monotony. And I wanted the world to be 'circular', meaning that when you went long enough in one direction, you would end up at the start. I had never made that before, and I have to say, it was a bit of challenge to get it right.  One simple problem for example, was to get the height levels of the start and end about the same. I didn't want to have an obvious cut-off point.  Also the scrolling wasn't as easy as I was used to.

Player character

Then I made the main character, Nymph. I've read a bit on Greek and Roman deities and she would fit as a life and nature Goddess. Her objective was to bring life to a barren world and to keep nature  balanced. Nutrients would flow from her hands to the ground and feed it. She could place plants and animals. The plants would use the nutrients from the soil to grow, herbivores would eat the plants and carnivores would eat the herbivores. All the animals would excrete nutrients as droppings and when they would die. That way the nutrients would be in a closed loop. 

Plants and animals

I created sprites for the plants and animals and placed them onto the map. If - for example - tile number 30 had a fox and a mouse standing on top of it, I would place them in an array of that tile. That way I could potentially create a very big world with thousands of animals without looping through all of them each tick to see if I should draw them on the screen. And interaction between animals that are nearby would be very easy. This would optimize the game speed. Of course, in the end my game never needed such an high number of animals, so I probably didn't need this more complicated approach. Still, it worked how I hoped it would and I can use this system in the future when needed.

Food cycle

Then I made a scoring system for the animals. They look left and right and score the neighboring tiles for food and danger. The danger was ultimately never implemented. If the animals didn't find enough food, they would die. At first, the nutrients system was completely closed, meaning that every nutrient would pass through plants and animals and end up in the soil again. There was only one problem, since the Nymph added nutrients constantly to the soil, the amount of nutrients in the world would keep increasing. That's why I've decided that a portion of the nutrients leaks away. Actually that's a better simulation of reality anyway, because sun light is the main source of energy in the world, and most of the energy disappears in the form of heat when life uses that energy for its chemistry.

Interface

I created an interface for the player, so that the Nymph can add plants and animals. Originally I had a scrollable 'inventory' with all the plants and animals. But quickly I realized I could never make as many animals as I had planned. Overscoping is always a serious danger in game jams. I decided to focus on the two animals that I had and skip the rest. The interface was simplified accordingly. The basics of the game were done.

There's no game

I was about a week into the game jam (and I had 3 days left) when I came to the conclusion that my game wasn't much fun to play. I had had a lot of fun making it, and I had learned a lot.  Since this was my main objective, I didn't feel to bad about it. But the game just wasn't much fun. You could place animals and watch them interact, but after placing them you hadn't much to do. And there was no clear objective.  You couldn't win and you couldn't lose, meaning basically I didn't have a game...

Animal properties

First I thought of an objective. It was hard to get a lot of foxes. Most of them would die of starvation. I thought that the number of foxes could be a scoring system. But then of course you should have some influence over how succesful foxes and mice would be.  That's when I thought of the properties interface.  I came up with 3 major properties (weight, fertility and speed) that would determine how the animals would behave.  Higher scores on these properties would have benefits aswell as drawbacks. As a player, you needed to find the most optimal settings for both animals to get as much foxes (and mice) as possible. 

Finishing up

Now I had a game. You could place three instances of each plant and animal. When the foxes went extinct, the game was over.  During the game you could change the properties of the animals. I added a simple menu and a high score. The music was actually one of the first things I finished. Because I would leave my home during my vacation, I wouldn't have access to my Mac with all the music tools I have on that.  That's why I made it in advance. I knew what vibe the game would be, so I was able (I hope) to create relaxing music that fitted the game play. 

Hit or miss

To be honest, I don't think Nymph is a very good game. It is playable, doesn't have many bugs but still isn't much fun to play. From the start I knew this was a potential hazard.  If you don't focus on game play when designing, it will probably not be a good game.  On the other hand, I learned a lot during the game jam and had a lot of fun. So that's a success.  Something else that could be better; there's a lot going on 'under the hood'. The player won't notice all the details that went into the energy cycle and animal behaviour. I could have made a couple of things a lot simpler and it wouldn't matter to the player anyway . But those details were the most interesting part for me as a programmer. Conclusion: if I want to make a great game I should use a different approach, but for me this was a succesful game jam! Thanks Goedware.

Files

Nymph Play in browser
Apr 30, 2023

Leave a comment

Log in with itch.io to leave a comment.