Welcome back to another Corporeality developer update! This week, we’ve made a fair amount of progress in Unreal Engine and we’re delighted to share a little something with you.
First things first, we’re going to try writing a little section like this in each of our developer updates from now on. It should make it easier to digest if you’re only interested in an outline of what we’ve done since last time.
This week, we’re very happy to announce our first public release of our breakout game! The download is available here:
We now have a custom file format for breakout levels, as well as a parser that reads in levels and places blocks in the right spots! Up until now, we’ve been restricted to generating the level on-the-fly in code, but now we’ll be able to create and modify levels a lot more quickly.
Our plan for the future is to expand this format to include additional level metadata like paddle attachment side, block size, ball physics properties, and more. We also plan to create another file format to define level packs (i.e. levels that will be playable in sequence).
We spent a while this week deciding on a good size for our bricks. Although it’s subject to change, we’ve settled on a good balance of 11 rows of bricks for the time being. It took us some time to make appropriate calculations to the point where we now have perfectly even spacing between each individual brick.
Building and packaging up an Unreal project isn’t such a complicated thing–just click on the menu item to package it up for the appropriate platform. However, it took a fair amount of research on our part to figure out how to reduce the size and impact of our game.
One of the things we had to do was to go the list of plugins associated with our project and disable any of them that we aren’t using. It sounds simple enough, but stuff like TCP and UDP networking support, which doesn’t seem like it should actually do anything, actually semeed to cause Windows Firewall to prompt for a firewall exception upon first launch. For a game without any need for network play, this is obviously a no-no, so we’re very happy to have found the source of this.
As a last-minute addition, the game now has custom-built sound effects that play whenever the ball hits a surface! We used a custom synth instrument for this, playing beeps at various tones depending on the surface being hit. We also have a custom death sound too, built around the same theme.
As we branch out into the creation of sound effects and custom music, we’re realizing more and more that it’s important to maintain consistent sound design across what we build. To this end, I’ve started building an internal library of instruments for us to use. We’re categorizing based on the design, mood, and overall theme of the instruments, so we should be able to pull from complementing instruments as we create multi-track sounds or music.
Part of this effort has also involved a heck of a lot of research into how FMOD works. To put it simply, FMOD is a library used by many games and game engines (including Unreal) and it allows us to more easily achieve non-linearity in our music. For example, we could have one section of the music play in a loop, and then as soon as a player enters combat, we could have FMOD transition us seamlessly into a second loop in the same track. As the combat becomes more intense, we could fade a choir in to add dramatic suspense, and as the player’s health gets lower and lower, we could even apply a low-pass filter to the final output, warping it more and more until the player dies.
None of this is super important in the short term, but doing the research now and building some basic knowledge in these areas will help greatly with the overall design of our games, including how we want to feed back to the player through our sound effects and music.
Our path forward over the next couple of weeks hasn’t changed all too much. One area of focus is still going to be to learn about and resolve the issues we’ve had with the ball physics. However, our main focus will be on adding important game mechanics in order to inch our way closer towards being more than just a tech demo–an actual game.
Until next time, we hope you enjoy playing around with v0.0.1 of our breakout game. Thank you for sticking with us, and, as always, hamba kahle!