Infernal Garden : Devlog Pt3. "My First Release"

First game jam? Yeah me too!
Well at least it was the first game jam I have completed and submitted! I’m sure some of you know what I’m talking about. Game Jams are HARD but also a whole lot of fun if you allow yourself to enjoy the process!
It goes without saying being a solo developer in a jam takes a special kind of skill, which I don’t believe I have yet, but if you are one of those unicorns that can juggle all the aspects of making a fun game in a weekend alone then I tip my hat to you sir. Keep up the hard work!
So let’s talk about teams.
As a somewhat anxious and introverted person I found it hard to find teams in the past and always reverted to trying to become one of those unicorns, which I do think if you put in enough hard work and practice you can get to that point but you need to be okay with failing along the way.
This is where friends come into play… I am lucky enough to have work mates that are far more capable than I am when it comes to game jams so I think I got lucky here, but this same rule applies for all of your other friends who might be interested in making a game for the first time, especially if you wanted it to be more of a learning experience. If like me none of your out of work friends are interested in making games it’s a lot harder to form a team that you feel like you fit into and I understand how you feel here.
If that sounds like you, here's my honest advice… Just join a team, any team it really doesn’t matter, what matters is getting used to working as part of a team. Having discussions, sometimes arguments or disagreements, listening to other ideas, taking ideas and incrementally improving them even if just a little. If you are a programmer like me then this will benefit you in the long run, it’s easy implementing features and mechanics you have thought about but it’s harder to nail what others had envisioned and deliver on their expectations. This will make you a much better programmer in the long run and you will much more easily integrate into teams in the future.
So before I talk about some of the things I did, here are some key things I picked up this jam;
- Listen to the whole team! You might not agree with what they are saying but they are still providing a perspective you don’t have. This is good, try and find the good things in what they are saying and if you have one, counter with a better solution that also takes their concerns into account.
- Quickly find the things that are not fun. It’s a lot easier to adjust your design on day one than on the last day. If you find something, bring it up with the team but also try to add something to the conversation, don’t just say “This is terrible” or “This isn’t fun” try to help out by suggesting what would make it fun or less terrible.
- Modularity. I’d love to take credit for this but Simeon (our coder extraordinaire) was the one who charged head first into the project architecture and code design. He made a well informed call and he was right. Make everything modular! This made so much stuff faster and easier to extend and change.
- Set two release goals. You should have two release goals, first the MVP; this should contain everything needed for the game to be fun and enjoyable. Aim your sights firmly at this as you most likely only have enough time for this. And second, you want a “Perfection/Full” release goal where you have all of the extra stuff that you think will really push the game into the major leagues. Once you are happy with the MVP and the polish, start fleshing out the extra content, go nuts!
- Polish, Polish, Polish! Taking into account the point above this should always be done no matter if you have time for the perfection/full release candidate or not. This should be the next step after completing the MVP. Polish will benefit the game a lot more than an extra enemy or feature. Players notice this ALOT!
Okay so I talked alot about the team and how to best ensure you work well in a team, let’s talk a little bit about what I actually did and what I could have done better. A little retrospective if I may.
Most of the jam I worked on these little guys

First off, Don’t try to be clever, be reliable and competent. I thought it would be ‘clever’ to handle the enemy behaviours in behaviour scripts with Interfaces so the main enemy script can pick up any behaviour and it just works, this was not entirely the case and a simple base class inheritance would have done the job perfectly fine, in fact we ended up adding a base class anyway to handle a lot of the logic and references that were the same for all plants, which my original approach ended up having a lot of copy pasted boilerplate code in each behaviour script. Not Good!
Simplicity always wins! If you feel like you are being clever then you are probably being too clever for your own good. Scale it back a little, think about what you are trying to solve and solve that problem, you don’t want to be creating problems for yourself or more importantly your team later.
The Blackthorn Bush! Probably my favourite plant in the whole game!
This was a great example of “keeping it simple”. The spikes effect could have been another opportunity for me to overthink and complicate things but I think I made the right choice this time round. So how do they work?
Well as I suggested, it’s pretty simple. I used a particle effect that emitted spikes with colliders in a circle, three of those, add a little delay for each one and you are good to go. The behaviour triggers the parent effect and subsequently emits all child effects. The collision detection is handled by each particle which fires the usual OnCollisionEnter unity event on anything that touches it. I set each spike to be destroyed on collision so they are not too overpowered and that’s it.

Oh and also I almost forgot, Prefab variants!! You should try and make use of them where it makes sense, this can really speed up iteration times when dealing with multiple prefabs for many enemies etc.
That’s really all I have to say, I hope this benefits someone and helps them become a better game developer. Godspeed.
Did you enjoy this devlog or learn something new? Please check out the game on Itch.io and rate it on ldjam.com!
https://ernani.itch.io/infernalgarden
https://ldjam.com/events/ludum-dare/52/infernal-garden
Thanks for taking the time to read this blog, I hope to see some more awesome games next jam! Keep up the good work guys!
Adam Normoyle. Programmer