This was my first Ludum Dare, and I loved being part of this amazing community, everyone willing to help one another and the event was pretty well organized. There are two categories, the Compo and the Jam, in which the compo you must participate alone and you are only allowed to use your own art and sound effects, in this category you must submit the game within 48 hours after the theme announcement, whereas in the Jam you can enter with a team, you can use third party assets and you can submit the game within 72 hours. Since I was participating alone and I would only have 48 hours to produce it since I had to work on the day after, I decided to participate on the Compo.
Jam Theme and Game Idea:
They announced the theme, it was “Running out of Power”, the minute I saw the theme all sort of ideas came up, such as driving a car that was running out of fuel and games that you could use energy to power up things. There are over 2000 submissions on a regular Ludum Dare, and I was pretty sure that many people would make a game with those ideas, I wanted something different. I was thinking about some game that you could use the solar power to survive, that it was an active element of the game, from that point on it didn’t take me long to think about a game that you would play as a Plant and that you would be stronger during day time and weaker during the night, I also thought about using Water as a “power” meter and HP too, and seemed clear to me that I should use a Sunflower for this propose, this is how I came up with the title Legend of Sunflower. I was around 2 hours in the Ludum Dare and this was the best idea I had, I knew that it wasn’t very good but it was all that I had, so I proceeded to do it.
At the beginning I was willing to make it a platformer, but I thought that it would be harder to make puzzles and enemies behaviours (I wanted to use Waypoints system for the enemy “AI”, since I had done something similar before and I didn’t have too much time to think of a more advanced approach). So I thought about going for a Top-Down game, and it fitted to the idea of the game.
After that, I needed to think about how I could make the sun/night cycle important enough to the player, and since I wanted it to be faster at daytime I realized that aspects that needed the player to be fast would be the way to go, so I made enemies and obstacles designed to punish the player if he isn’t moving fast. But this only made the player benefit from moving at day time (half of the gameplay would be at night), so in order to make it work I made the day/night cycle very short, up to the point that just moving from point A to point B, would take the player several in-game hours. I also needed something else, so I made that the water level deplete faster at day time (which makes sense) and made the objectives time-based, so it would be harder for the player to make everything on daytime since he could run out of the water if he didn’t plan well enough. And this is how I got the core of the game, it’s not perfect but it is kind of “OK” IMO considering that it is a game with a unique concept.
Unity, C# + Resharper, Krita, Gimp, Otomata, DrPetter’s SFXR, Audacity, Pencil & Paper 🙂
Up to 10 pm: I had some quality time with my girlfriend, organized everything in order to start working, bought some food etc;
From 10 pm to midnight: Theme Announcement, Brainstorming, game ideas, and concepts;
From midnight to 7 am: Sleep;
From 7 am to midnight: Coding;
From midnight till 2 am: Finishing up coding;
From 2 am to 6 am: Sleep;
From 6 am to 6 pm: Art;
From 6 pm to 9 pm: Level Design and wrapping up coding after art;
From 9 pm to 11 pm: Submitting to Ludum Dare and Itch.io.
What went right?
- Base-code, my Standard Asset: Before the Ludum Dare I’ve made a Unity Package with all the Menu Wiring already done, I’ve also added a few custom c# Events such as OnPause(), OnLoadLevel(), OnUnpause(), OnReset(), and so on, besides that I’ve also made a custom editor window to mass change UI colors and elements, and I also made a class to handle music, menu sounds and level changing structure. This base-code helped A LOT, besides speeding things up, it is a good practice to standardize this kind of stuff since we will know how our structure works from process to process.
- Not relying only on inbuilt unity physics: I haven’t used rigid-body physics in this game, I’ve only used colliders and a few kinematic rigid-body. This helped to keep things simple, but I had some problems to add the joints to the Caterpillar since the joint system is dependant on rigid-bodies. I probably lost around 40minutes trying to join the caterpillar body parts using this system and I eventually gave up and ended up implementing my hard coded joints, which for my surprise I was able to build it in less than 10minutes. My lesson from this is that sometimes it is better and faster to use a custom made a system to solve a problem instead of using the pre built engine system which can be overkill and even don’t make things the way you need it.
- Bug + Plant themed game: Choosing the bug+plant theme allowed me to make simple animations, which was essential;
- Editor Scripts to make the waypoints: I had one previous editor script that showed me every transform child to the one that I was currently working on, case it had the Waypoint Script as component, it also added the handles so I could edit each of them. I built something similar for Legend of Sunflower, although I also added Labels and a line rendering between them that showed on the editor only. This was essential to edit the waypoints of each monster very easily and fast. I recommend to all Unity users to learn how to make editor scripts, it is very powerful in some situations;
- Time Schedule and Planning(code first, graphics after): I planned more or less the time that I would take to make every step (coding, art, level design etc.), it helped me to keep track how fast I was producing and if I would have enough time to make what I needed to. I also started by coding everything, and after I was certain that I had the gameplay working I started to produce the art, this reduced the risk of making something that I was not going to use and to know how much time I could spend on every art production;
- Itch.io and early build + Profiling: It is essential to profile a lot and early, every couple hours after implemented something big I built a WebGL and sent it to itch.io for testing, I was able to solve a few game breaker bugs early on this way, and I also ran the Profile in the TARGET PLATFORM, this is very important since sometimes what is the most resource consuming on one platform won’t be on another platform, this also helped me improve the performance by 20%/30% changing a few minor things.
What could have been better?
- Sound effects and Music: Even Otomata and SFXR being amazing tools, I feel that I need to learn something regarding game music and sound effects, probably I should also learn a software to help me create those. Both my sound effects and music for this game was very poor and repetitive, and I felt that if I had enough experience I could create a few audio samples to use in the game within an hour or two, which totally worth it.
- Added mechanic without being sure that I would have enough time to make it worth it: I felt that I wasn’t able to create the kind of deep gameplay that I wanted to create with these mechanics. The time that I had wasn’t enough to create levels and mechanics to make the day/night circle interesting enough, probably if I kept only the water concept I would have time to create more content to the game.
- Thinking that players know what they are supposed to do: I made a few things that required the player to stay on top of some elements around 2 seconds, but the player didn’t have any kind of information to know that they had to stay there a couple of seconds. This caused a problem where most players didn’t know (in a bad way) what they should be doing after I received a few feedbacks regarding this problem I’ve fixed this behavior in the post-compo build.
I changed few aspects of the game after the Compo, I realized that I had to add some elements to make clearer to the player what is happening:
The community gave me precious feedback, which will help me not only with Legend of Sunflower but also with future projects. The Ludum Dare was an amazing experience for me, I learned a lot in a single weekend and I have one more game on my portfolio now! I’m willing to participate on every Ludum Dare from now on! I Recommend anyone to participate, either in the Jam or in the Compo.
I also learned that I need to learn how to produce Music and Sounds, at least at a very basic level since I’m going into the solo game dev road, for now, the sound is very important in the game production and we should give it the right attention.
Regarding the Legend of Sunflower, I’m not sure yet if I will polish it more and if I will produce more levels to it, let’s see how it goes from now on, it is a possibility!
Thank you all for your precious time and for the people behind Ludum Dare for this amazing event.