Current progress - v0.3.5
Devlog

Welcome to the first update since the early access release of The Adventures of Elena Temple! Since almost two weeks ago I've been busy with three major things: creating 3 new dungeon screens, implementing a dynamic music manager and finishing up the pause menu, with all the relevant options and functionality. Let's go a bit over what v0.3.5 includes, before going into detail on each of these three major things.

v0.3.5

  • 3 new screens to play, for a total of 11 (only the first 8 are in the demo)
  • tweaks for some of the previous dungeon screens
  • dynamic music with 5 songs (2 available in the demo)
  • updated pause menu
  • sound and music volume options
  • info section with controls
  • confirmation dialogs for restart and exit
  • intro logo
  • game icon
  • configuration tool banner
  • new sounds for button select and button press

New game screens

Why create just 3 new dungeon screens? Well, because I wanted to finish the current set that's using snakes, moving platforms and pressure pads as unique mechanics. Yes, you've heard right. The first set of 11 screens uses those unique mechanics besides some other generic ones, but there will be 3 more sets each with their own unique mechanics. In case you haven't seen it already, here is a screenshot with one of these new dungeon screens.

Pause menu

There were a bunch of changes I had in plan for the pause menu, but first I wanted to solve everything with the buttons, like adding sounds, correctly handling the highlighted and pressed states and so on. Having finished with that, I replaced the Help button with the Options one and added a submenu with buttons for sound volume, music volume, info and back. And since I was there, I quickly created an info panel detailing the various controls of the game, with a Back button to close it. All good so far, navigating between menus was working as it should. Was it easy? Well of course... not!

Unity is a beautiful engine, but it's not perfect and it caused some issues with my no mouse approach. So I gave up on its UI buttons and implemented my custom class to mimic the Unity usage and behavior, but also to add some extra functionality and support for handling everything properly using only keys. What I really needed and couldn't get in an easy way with the standard buttons was to be able to press and hold a button, which would lead to a change in its state and visuals. And, on release, to execute its action. Seems like something you should be able to do with the standard buttons, right? Well, you sort of can, if you're using a mouse, but when it comes to keys, it's not that simple, so my custom class was the best approach for me. You can check out below a screenshot of how the custom button looks in the editor, if you're into that sort of thing.

Custom button class (bottom) vs standard UI button (top)

Next up was making the volume buttons work. Here I used the beautiful AudioMixer from Unity and things went pretty smooth. The only mentionable thing I did was to change the highlighted and pressed sprites of the volume buttons with some arrows pointing outwards to indicate you can change the volume by pressing left and right. You can still press the button, since it is a button, leading to a one unit increase in volume or cycling back to zero if it was already at max. This stuff is so not interesting, I have no idea why I'm writing about it.

Finally, I added some confirmation panels for restarting and exiting the game. And made the restart option simply reload the game inside the current machine, not take you to the virtual museum again. So, in the end, I have a regular, decent menu, that most games should have. Good for me, right? You can check it out in action in the video below.

Dynamic music

So what's this dynamic music I keep mentioning? First of all, I have my songs split into loopable sections. Which means I can assign each section to a different game element, like snakes or moving platforms. Then, each dungeon screen is aware of what game elements it has in it. So, when the currently playing music section ends, I can start a new one corresponding to an element in the current dungeon screen that the player is in. This creates a dynamic music, instead of repeating the same song again I recompose it playing its different sections in an order dictated by where the player is going. Which also leads to variations in the songs depending on what area of the dungeon the player is in. While the baselines are the same, the melodies change between the area with snakes and the ones with... some other unique mechanics I won't spoil.

Having finished the implementation, what was left was to assign each section of my songs one or more tags that tell when the system can play them. I also decided I needed to repeat some sections because it makes for a better result. And I wrote some rules on how some tags can follow others. I'm quite happy with the results, I like that the same song can significantly vary between two plays and I'm glad I found the awesome music of The Indie Devs Nation which fits perfectly in my game.

What's next

Next up is v0.4.0 which should contain:
  • 3 new unique mechanics
  • 11 new dungeon screens featuring those mechanics
I guess I shouldn't have made a list if I only had two items in it, huh? Well, maybe there'll be more, who knows? I don't know if I can release v0.4.0 this year, with holidays coming and all, and who knows what else I'll implement until 2018? In the meantime, since I know you're so curious to know what the new mechanics are, all I can say is: maybe you should listen to the winds of change... Thank you for reading!