Post-mortem


Motivation

The motivation to build Broken Hearts in the Dreamland - and to join Devtober was to first pick up a pace - I have other projects and I needed to find my rhythm after being almost an year without building any finished game. My second strongest motivation was to take notes of all challenges and possible issues that I would find starting a game from scratch, and use this knowledge to build a template to use in our next games.

It was really fun, it was also the first time I worked on a game project full-time. Over this past 21 days, this game was my only main focus, and was really an incredible experience. I joined the jam late as I learned about the jam on the second week of October and decide to do what I could on the remaining days. 


What went wrong?

  • The code for my UI was a mess. I used a Scriptable Object architecture to send messages across all systems. Turns out that because the way I designed my UI components - highly decoupled but without a common manager to organize how (and when) they were showing - I had to create events to enable/disable specific parts of the UI in response to other events. That is something that I could have done better with a bit more of planning and a strategy to build these UI components. 
  • Turns out that managing and handling sounds is my weakest point in Unity. In the beginning, I thought about copying the Audio Manager System from our other game - Space Adventure. But as I had done quite a bit of refactoring on it after that game jam, it felt unfair to reuse that system on this project. So I went down the naive path of just adding audio listeners to the relevant prefabs... great mistake. As soon I learned I had a lot more components that needed to give an audio feedback than I have initially thought. 
  • Polybrush is kinda... awful sometimes. I learned the hard way that when you try to paint prefabs in surfaces that are not even (maybe an issue with mesh normals pointing in the "wrong" direction???) polybrush tends to leave the prefabs floating in the air... thing that I only saw later on in the project that caused me a lot of rework. In the end I almost decided to drop polybrush to place my vegetation entirely and began building a component to spawn my vegetation on a surface. But I realized that I would spend too much time studying the edge cases that I would need to handle to make it viable for this project. So I left my vegetation as it is, and decided to pick it up later when I finish writing that component.
  • I started this jam 10 days after the start date, and I felt that they would be very well used fixing my vegetation and polishing the Shadows. The Shadows and stealth was a mechanic that I decided to add a bit late in the project, in order to give an extra challenge to players - and to better use the space on the second island, that would be basically meaningless in case it didn't have it is own particular challenge.
  • Using meshes built in Probuilder meant that I couldn't use assets like Nature Renderer that would add procedural instancing to my foliage and trees... add this to the village pack I used that was a bunch of modular pieces using different materials and boom... even combining some objects on a single mesh, the number of draw calls after batching skyrocket... 
  • Starting late and spending too much time worrying about the draw calls issue above (as well redoing some work because of polybrush) caused me to not be able to proper refine all the mechanics I've implemented. Harvesting items could have animations - it only has sound effects for now, implementing more emotes to make the dialogues more fun, and also implement a way to highlight actors that are speaking in a dialogue, where the things that I felt will break players immersion and make the game less interesting. 
  • I couldn't find a nice sound of a whale... it felt that it would be really nice to hear to that giant floating over our heads!

What worked well?

  • I'm not an artist, so using stock assets for vegetation and props were my way to go, and that allowed me to move this far with this game, and I absolutely loved the end result, as the assets end up blending well, even with my custom props, like the altars, furnaces and the memorial building. 
  • Early on in the project I decided to build a save/load system - based on Json files. This was the piece the helped me glue the storyline together and allowed me to debug and identify issues fast, as all I had to do was to take snapshots of the scenarios with issues and replay them from the exact point where the bugs were happening to test fixes. 
  • I build a very rudimentary quest system, based on global events and inventory requirements, and it worked pretty fine. In truth this is probably the bit that got me excited the most during development, as I can't wait to try to improve it and make it something even more robust.
  • This was the first time where I went through the brainstorm process by myself, and it helped me to develop the story and the core concepts of the game in just a few hours of work. Even the layout of the map come from that exercise.
  • The storyline also came as a natural consequence of the brainstorming. It felt really cool and nice seeing all those ideas popping into my head and being able to organize them as dialogues and quests! 
  • That footstep sound effect mixed with the scenario is sooooo satisfying! 

What did I learn?

  • So, making a game is fun.. but also hard, and you need to think about a lot of things in advance, like how your UI will react to events sent by cutscenes, how your NPCs will respond to environment changes, etc. etc. And this is something that I felt I could have done better, sitting down and do a bit more planning. I end up learning a lot from this bit in particular, as it kept me thinking  how I could improve as a game developer - and a programming in general. Thinking about how theses systems will integrate with each other before starting writing code.
  • This was the first project were I used the Timeline to make cutscenes and NPCs interacting with each other. It was fun! The system has a lot more depth and impact on the general game flow - specially when you are going for in game cutscenes, and open almost limitless possibilities for storytelling. I'm looking forward to practice more with the tool.
  • I can make a game start-to-finish with story telling \o/.
  • Sound is hard - the thing that I always leave for last in my projects, this is an habit that I need to change, and I need to learn to incorporate early on in the project. 
  • Splines are awesome! You can build a lot of things with them, like the bridges, roads and the skyline that I build in this project!


Closing notes

This project was amazing! And I feel that I still have a lot of the story of the game to tell, as well, I want to fix and refine some bits. I'm looking forward for the next time I'll be free to pick it up again, and make it an even better game!


Thanks for reading until here. I hope you have fun with my game!


Att. 

Edmar from the Star Travellers.

Files

Broken Hearts in the Dreamland - windows.zip
Oct 31, 2022

Get Broken Hearts In the Dreamland

Leave a comment

Log in with itch.io to leave a comment.