The Plantalist – grow alien plants! [GMTK Jam Entry]

Work out the right recipe, one plant at a time!

Cover

Hello Defold community! This is my first topic here, even though I’ve been around for like… a year or two now? working on and off on a narrative game project. I needed a small break from it, and what’s better than a game jam to get your mind off things?

And so, I’m proud to share my first playable Defold game, an entry for the GMTK Game Jam 2025:

The Plantalist

playable in the browser <:

In this game, your goal is to grow a plant identical to the reference one. You have many (rather obscure) ingredients to choose from, and unlimited tries to find the right recipe. Everytime you are done growing a plant, you will gain insights about which ingredients were accurate and which weren’t, pushing you in the right direction for your next try.

Screenshot
Screen of the jam version

The latest version (see devlog) contains fixes and improvements for the worst and most obvious issues the jam version had. I would like to make a final version with some small improvements, sound, and in-game tutorial eventually, but I don’t know when that’ll come.

Developer notes!

In case you’re interested about the thought process behind it, or how the development went °v° trigger warning for huge wall of text. (btw I’d love to hear your thoughts or feedback even if you only played the game – don’t let huge wall of text scare you ‘^’)

Game design

Following the jam’s theme “Loop”, this game is about the cycle of learning through making mistakes and trying again. You will not be able to beat this game on the first try – just like with many skills and activities in real life, you need to try first, experiment, fail, see what worked and what didn’t, and then try again with that newfound knowledge. It’s about embracing failure as an essential part of the process instead of something to avoid or be punished for!

Read more

In line with this concept, the game encourages you to try as many times as you need, instead of limiting you – hopefully, it conveys well enough that you are allowed to fail, even expected to. The important thing is to never give up till you succeed in growing the right plant.

Initially, that was all there was to it – try different combinations of ingredients until you hit the right one. But after playtesting the first prototype, I realized the experience was really not what I expected it to be. Due to having only three days of time, the recipe-to-plant system was crudely implemented and it was absolutely impossible to tell which ingredient has which effect on the final plant. There was a dire need of a system that lets the player actually learn something from their tries, something useful to figuring out the right recipe.

That’s where the Insights come in – I added this on the last day, taking time away from polishing other important areas, but it was absolutely worth it. It’s what made the whole gameplay loop click together. Now, after the player finishes growing a plant, they will get two hints, letting them know one ingredient which they got right, and one which they got wrong, at random.

One small detail about this system which I like, is that you can decide to abandon your current plant before it’s fully grown and move onto a new one, but you won’t get any Insight then. It mirrors the way many skills are built in real life, which includes drawing and gamedev: going through the whole process and finishing a cycle even if it’s imperfect, will yield more experience and learning than starting over midway through.

Development

Game jams are always a good opportunity to learn new tools, but it’s also important to keep some tools we’re familiar with, or it’s very possible to simply miss the deadline because of the learning time. Thankfully, I’m not completely new to Defold (just wanna say: I’m in love with this engine), nor completely mastered all it has to offer, so I thought it was a perfect time to deepen my knowledge of it a little.

This would be my third game jam and the last one was six years ago (I love them though, I wish I could do more!) but I still remember the lessons I learnt from them like it was yesterday, because yeah, both times my submitted game was unplayable thanks of a very stupid bug I could have fixed in two minutes if I had tested the builds. Here’s a perk for reading this far: access to the jam game of six years past! (pass: this is so old)

So this time, I would make sure to test the exported game and submit it hours before the deadline even if I have to stop development early. I will touch on this later, but of course Defold didn’t disappoint for this *v*

DAY ONE

After giving some thought to the game’s architecture and planning what tasks to tackle on which days, I started coding. The first step was the plant generation, the system which would take in a set of parameters then construct a plant out of many sprites. I don’t know if this counts as procedural generation, but it was my first time doing this and I quickly got excited about seeing all the different plants I’d be able to grow later, when I draw some real assets (for now I was using some placeholders I created in like 30 seconds).

Then came the recipe-to-plant system, which as said above was implemented extremely quickly and crudely and which resulted in the jam version not having access to all the variety of assets I had prepared. I had trouble designing this system and so I didn’t really know how to code it. I wanted to transform a set of ingredients, into visual parameters for a plant. It had to feel “random” and use the whole range of available sprite variations, and it had to be consistent – one recipe should always result in the same plant. I didn’t have time to research it properly and so decided to leave it hardcoded for now (this is probably when I realized, that I probably bit off more than I can chew with this game given the time I had).

So far, it had mostly been coding challenges, not really related to Defold. But the next step was something I was both excited about and wary of – UI. I had never done UI in Defold before, or in a game in general (only dabbled a bit in Godot) mostly because I never got there yet in any project. This is why game jams are nice, they make you go through the whole gamedev process on a very small scale. I decided to use DRUID since it seemed like the easiest and most full-featured lib to get me started quickly, without losing too much time on the small implementation details. Honestly, I thought UI would be a huge beast, but actually DRUID makes everything extremely easy to setup, which was a welcome surprise, and makes me excited to create more UIs for my main game projects.

I was able to setup the main UI which lets the player chooses different ingredients, confirm the recipe and make the plant grow, try a new plant, and regenerate the reference plant. This is also when I setup the main screen and hooked all the different systems together, when the initial prototype took shape. It was now possible to grow a plant based on a chosen recipe!

DAY TWO

The second day was dedicated to producing the art assets! I also don’t have much experience in this area (I mean creating art for games specifically, not drawing), so it was a pretty nice learning time. As I learnt many times before, simple is better, so I settled for a very simple hand-drawn style with cel-shading. I’m rather proud of the result. Drawing the different plant variations was especially fun, and then the ingredient icons, as well. I was just making them up as I went, trying to find interesting and funny shapes. I think I never drew so fast before, I was completely in the zone and finished all art assets in one go.

I followed the principle of always drawing assets in the context in which they’ll be used in-game, and it helped a ton for this project. I created all assets in one single file, with each separate sprite in its own layer so that it can easily be exported later, and keeping their use case in mind. It also helped to export a flat version for reference when putting all the sprites together in Defold later.

Here’s a timelapse c:

According to my commits on Github I also did some code work on this day, after being done with the art. Adding some more plant functionality and ability to regen the reference plant properly.

DAY THREE

The final day and also the most exciting one for me, because this is the moment where all my hard work was coming together and forming a playable game! I integrated all the art into the editor, and lo and behold, procedural plants!! It was rather satisfying that everything worked as expected without a hitch, after adding the art. Now it was time to add the last but very important features of Insights, and the ability to look at past plants to see their recipes.

I was tight on time, and I didn’t forget that I needed to export and test a real build, and submit it at least an hour before the deadline. I could still work on the game after that, but if anything happened at least there’d be a working build available. There’s nothing worse than pouring heart and soul for many days straight into something that will never be seen due to being a few minutes late, or, as it were, a stupid and easily fixable bug.

I developed the features as quickly as I could and decided it was good enough to export. I absolutely wanted a web build, because I knew 80% of people wouldn’t play my game if it required a download. I was a bit traumatized by my past experiences in exporting games in general, and exporting for web specifically (cough Godot cough) but goddamn, Defold as usual carried the whole thing absolutely effortlessly. I was extremely pleased to see my game running on web flawlessly with a single click. After testing a bit, everything looked good, so I submitted that build with I think less than an hour left.

My only frustration was with the camera and window size. I’m not very experienced in this area of Defold yet, but my web game only looked good when in fullscreen and, I presumed, only in my screen size. Otherwise the UI would do some weird things. I could work around it and write on the game page to play in fullscreen, but it was less than ideal and I didn’t want such a bad first impression.

Thankfully, a godsend extra hour was added to the jam’s deadline, due to server issues on itch. I resolved to spend it only on fixing this camera/window size issue. After some dabbling I managed to get it working: the window size would stay fixed and the game + UI scaled down properly when necessary.

At last, I could submit the fixed build, rest, and enjoy the feeling of extreme satisfaction at what I just achieved.

Post-jam

The next few days after the jam submissions closed were spent on creating promo assets and writing for the itch page. Once that was done, it was time to mass-play others’ entries, rate them and leave comments – and then receiving ratings and comments myself! Very wholesome times, and it was incredible seeing peoples’ ideas and work. Very impressive what some were able to achieve in such little time.

In the end, my own entry didn’t rank very high, due to some obvious issues with the experience, (I would really have used an additional day of dev and bug-fixing) but I was still very proud of having finished and submitted a playable game. I learnt a ton, not just about gamedev but about scope and time management as well.

EDIT: well okay after looking at the rating again it’s not bad at all. For the amount of games that were submitted, and ignoring the non-existent sound, my game is always on the top 50% and almost on the top 1000 for the art category. Excuse my perfectionism c’:

I understand better now, what makes a good jam game: a tiny but complete and polished experience. Those were the best received ones. Something extremely small, maybe a couple minutes of gameplay, but that feels tight, well-implemented, that has a clear ending (very important for feeling of closure) and is bug-free (extremely important for not ruining the experience).

This is definitely the direction I’ll take for my next jam eventually <:

***

I have not been active around here (only been perusing the forum silently), but I’d like to thank the Defold team, as well as the community for their efforts in making and helping to use Defold! I have never looked back since switching from Godot a few years ago and it’s only getting better.

Hope to come back soon with a devlog on my main project probably (if I don’t get suddenly passionate about worldbuilding/storytelling/drawing again)! I’m occasionally active on some socials also, but expect the long stretches of nothing, they’re normal c:

Thanks for reading!

9 Likes

Thanks for sharing this! I played the game and it was quite fun. I liked the experimentation and discovery process of it it!

1 Like

Thanks for playing, glad you liked it c: