Master Builder Daedalus - Postmortem

If I keep postponing it I fear that it will not get done at all, so here we go.

Master Builder Daedalus is a 2D puzzle-dungeon crawler hybrid where you play the role of the legendary Daedalus, responsible for the Cretan Labyrinth, a bronze giant and a set of working wings, among other stuff. Here you find yourself imprisoned in a strange chamber. A deep chasm separates you from the chamber's only exit, and you have nothing to help you cross to the other side.

Or well, almost nothing.

daedalus-level02.gif

The one about how the game came to be

I took advantage of the early start to wake up earlier than usual and go to a cafe to have a proper breakfast and start brainstorming ideas for the game. After a while I'd sketched a lot of concepts, but nothing solid enough to be translated into a game, so I used a technique we've used at work sometimes, the Crazy 8s, to generate ideas quickly. Essentially, you divide a sheet of paper into 8 parts and you've got one minute to make a quick mockup or description of (in this case) a game idea. Rinse and repeat for all 8 parts, and you end up with something like this (sorry about the mix of English and Spanish; one is my mother tongue, and the other my gamedev language :sweat_smile:) ideas-00.jpg

After that I flagged the three I liked the most and started refining them a bit more: ideas-01.jpg

And then something interesting happened. The Reigns-like dungeon crawler idea began to mutate and incorporate some staples of the genre, like the need to draw the map as you traverse the dungeon, which also fit well with the idea about having the game rules/world expand and change as you moved around ("what you map becomes real").

Eventually the Reigns-specific features were completely gone and the mapping/building part became the core mechanic; the dynamic game rules concept plus other key elements of dungeon crawling like combat and so on got postponed for future iterations in order to keep the scope under control.

Last, about the setting and plot. During the voting rounds "Ancient mythology" appeared. I've been a sucker for myths (particularly Greek ones) and legends since I can remember, and I thought it would be really cool to have it as the jam theme (lots of plots can lead to interesting game mechanics). Alas, not everybody thought the same. However, I decided that I'd try to fit it into my game together with the final theme either way. Once I had the basic mechanics coded and started to think about the visuals the Cretan labyrinth and its builder just seemed like natural choices. I couldn't implement enemies, but the first one would have been the Minotaur for sure :smile:

The one about things that turned out okay after all

  • Ideation. Besides the game idea, which I really like, I came across a couple more mechanics that could be worth keeping track of for the future.
  • Graphics, to some degree.
  • Pathfinding code reuse. This is the second or maybe even third time that I reuse the same A* implementation to perform pathfinding on a tile map, which is great. I had to tweak some of the data types because the implementation I brought over was using hexagonal maps that used 3 coordinates to resolve the position on a grid, but it took me less than 15 minutes to change it, compared to the hours I would have spent coding and testing it from scratch.
  • Unity 2019.3 beta turned out to be relatively stable. I'd attended Unite Copenhagen the week before and was hyped about some of the new features, so I wanted to experiment a bit. In the past I had stability issues during a game jam because of a Unity upgrade, but save for a a couple of hiccups related to the usage of the new Input System I could work around I don't remember anything super important. On the other hand, the new editor looked way smoother than before.

The one about things that didn't turn out so well :sweat_smile:

  • Saturday afternoon's motivation slump. This was really weird after the fruitful ideation session during the morning, but I spent the afternoon and into the evening working at half speed and procrastinating a lot without any clear reason why.
  • A lot of time spent learning and tweaking Unity's Input System. It is way better than the old one for sure, but trying to get used to how it worked took a while. What's worse, it doesn't FEEL right when you play it, but this falls on me, not the system, so I'll have to fix it.
  • For the small amount of sprites and tiles in the game, it took more time than it should have. Also, I had to go with a more minimalistic take on the dungeon tiles instead of the lush, Minoan palace style I had in mind as reference. PY%20meg.jpg
  • No time for sounds or music again :sob:
  • I'm still finding myself coding lots of similar systems over and over (turn-tracking systems or tile map management for roguelikes, for instance). It's true that all of them had their own quirks, but perhaps it's time to start creating some code base from the shared functionality I've been piling up over multiple game jam prototypes.
  • Because I couldn't create enough levels there's a steep difficutly spike between the last level and the others. The reason behind it is that the last level was the test level I was using while coding the systems. I had started working on a batch of levels with a smooth progression, but the deadline was looming and I still needed to change the graphics and code the UI screens. Since that one was harder but could still be completed, I decided to keep it on the build as a "boss level", but it feels out of place compared to the others (it's also introducing for the first time some blocks with walls that make paths harder to connect).

The morals of the story

  • I'm going to start spam-proposing "Mythology" in future rounds until we get it as a theme. Just Greek mythology alone is so vast, imagine being able to pick from all pantheons :heart:
  • Even if I regret the wasted time on Saturday, I'm relatively glad that I didn't become stressed about it like other times. Motivation eventually came on its own.
  • Stop using development levels as part of the final batch. They tend to be crappy and break the pacing of the rest.
  • Trying out new tech is fine, but decide which is your focus for the game jam and commit to it. If you're focusing on the game itself, then it's okay to go back to what you know.

As always, if you've reached this far thanks for reading! Play and rate the game here!