Daybloom Post-Mortem

Posted by
December 9th, 2014 12:43 pm

This was my second Ludum Dare, having previously done WORLDS 2D in LD30. You can check out my latest entry here, and my previous here.

Daybloom, by fleegle2000

Daybloom, by fleegle2000

Having one under my belt I thought the second one would go a lot smoother. While that was generally the case, I did experience a few hiccups and frustrations (although thankfully I didn’t run into any show-stopping bugs – so from a coding perspective it went pretty well).

Before the competition began, I went through the theme finalists and jotted down a few ideas for each (well, most. There were some that I didn’t generate any ideas for). I was dreading the prospect that Snowperson would get picked, because I generally dislike snow and holiday-themed games. In the event that it did get picked, I planned on doing some *ahem* creative interpretation of that theme.

Some of the ideas I played around with before I knew the theme were a Pokemon-esque collectible animal game (Artificial Life), a game about being stranded on an asteroid, inspired by the Philae lander (Deep Space), and some kind of endless runner (You Can’t Stop). I tend to interpret themes fairly literally, as you can see.

I knew that whatever I was going to do, I wanted to play around with procedural generation, as I had just started exploring that aspect of game development and wanted to flex those newly-minted skills. I had also been thinking about the Playing Both Sides theme which clearly had an influence on my final design. I wanted to try adding some story elements this time around, too, as my previous entry had minimal story.

When the theme announcement hit, I was extremely relieved, not only because Snowperson didn’t get picked, but because it fit with some ideas I had been playing with in my head. Fortunately I had come up with a few ideas for the theme beforehand. One thing that’s nice about brainstorming¬†before the competition begins is that you can often incorporate ideas you’ve generated for other themes into your game. It means you can hit the ground running and spend minimal time in the brainstorming/design phase.

I decided that I would try livestreaming my progress this time, so I fired up Open Broadcaster and announced it on Facebook and Twitter. Almost immediately, I felt uncomfortable. It felt like someone was looking over my shoulder, and I have trouble concentrating on the task at hand in those situations. So, after about two hours of very distracted development I called the experiment and shut down my broadcast. A combination of little sleep the night before and the added pressure of the camera made me very unproductive in the first couple hours. Once I shut down the broadcast I felt like a huge weight had been lifted and I was better able to focus.

I had the idea to use a radial oscillator to simulate a roiling sun. I would change properties like frequency and amplitude to alter the appearance of the star. The star was essentially just a polygon with points generated by a noise function, using additive blending to cause overlapping parts of the polygon to brighten. I decided that the main goal of the game would be to maintain a delicate balance between the star growing too large, or collapsing and going supernova. Of course there were some issues with plausibility, since that’s not really how stars work, so I added the fantastical element of a “being” living in the star that could affect its properties. This gave the game more of a science-fantasy feel, so I ran with that in generating the rest of the story elements. The player could feed the being, pacifying it but also causing the star to grow larger. To counter this growth, the player could also “attack” it, which would cause the star to shrink but oscillate more erratically. If the star “roiled” too much, it would collapse, and if it grew too large, it would fry everyone in the system. Now I had to come up with a plausible scenario in which the “caretakers” of the star would both feed and attack the being living inside it. Drawing from an idea I had when I had considered the possibility of the “Playing Both Sides” theme being chosen, I decided that there would be two opposing factions, one that felt that the being needed to be fed, and one that felt the being should be attacked. The player is forced to alternately placate and enrage the beast. To keep the player on her toes, both actions had a random modifier that would reduce the possibility of reaching perfect equilibrium (spoiler alert: after some playtesting I realized that it is still possible to find that equilibrium, but it’s mostly dependent on luck). The player would essentially have to see-saw and hold out long enough to beat a timer. That was, in essence, the entirety of the game.

Let me take a moment to explain my design decisions. First, from my past Ludum Dare experience and my observations of other entries, I learned that it is best to settle on a simple premise, focus on making a really solid core mechanic, then work on really polishing that core experience. I wanted to avoid the dangers of feature creep. I feel that it is better to make a short, simple game with a lot of polish than a longer, more complex game with tons of unfinished features. If any features do get left out, the player shouldn’t be able to notice (i.e., it should feel complete even if you know there are all sorts of things you meant to add but couldn’t get to in time). You don’t want the game to feel broken, and you can always add more features in a post-competition version.

Second, I knew that adding a random component could be problematic in that players might feel that they had little control over the outcome. I knew that this was something that would have to be fine-tuned, and I still don’t think it is perfect. I plan on tweaking the balance of the game in a post-competition version.

Third, with respect to the dialogue and characters, my decision to use “hats” instead of faces for the characters was motivated by a number of factors. 1) while I do have some artistic ability, I am not very good at drawing people, at least not without them looking more cartoony than I wanted. 2) the hats I picked are essentially “gender-less,” in the sense that there are no indicators as to whether the characters are male or female, or even whether “male” and “female” are legitimate categories for this species (the hats might suggest that the protagonists are roughly humanoid, but there is no indication in-game as to whether or not they are human). 3) the hats are more “symbolic,” adding a little bit of abstraction that fits with the action outside the dialogue box. It is important that the art style be consistent.

There were a few features I wanted to add that I had to scrap due to time, but that I want to add in my post-competition version. First, I had intended to provide more visual cues as to the status of the star. The radius of the star is easy enough to see, but it can be difficult to judge how close the star is to becoming too erratic. I did add a subtle background glow that gets brighter as the star gets closer to collapsing, but it is probably too subtle. I will likely add warning sounds as well to indicate that action needs to be taken, fast. I also wanted to make the win and loss conditions more visually interesting – currently you just get the characters telling you that you’ve lost (or won), which isn’t very satisfying.

I planned on adding more layers to the star, to indicate that the difficulty had increased. Currently there is a slight increase in difficulty as time progresses, but it’s hard to discern – I want to add more visual feedback, so the experience feels less “random.” It is actually less random than I think people realize, because they do not immediately notice the change in difficulty and attribute it to the usual random fluctuations. I also want to add more levels – with different starting conditions, effectiveness of the acolytes and bombs, and visual differences.

The mechanic for this game was simpler than the one I chose for WORLDS 2D (which was still fairly simple) but as a result I had a bit more time to really polish the experience, which I don’t feel that I did adequately for WORLDS.

That’s it for now. I hope that my experience might be instructive for some of you, and I also hope that you try my game (and WORLDS, if you missed it last time). This was another really valuable experience for me, and maybe next time I’ll be ready to give livestreaming another try. Enjoy the playing and rating portion of the competition – this is the really fun part! I am constantly amazed by the sheer number of great gameplay experiences each Ludum Dare generates, and the amount of talent and passion in this community is just incredible to witness.


Happy game-making!


Leave a Reply

You must be logged in to post a comment.

[cache: storing page]