Week 44 Update

by ⚡ Shockk on 2020-05-18

Welcome back to another Corporeality developer update! This week we have a couple of things to share as well as a little bit of insight into our thought process as we press on through development.

Breakout - Physics

This week we’ve managed to implement some simple physics code that linearly morphs the speed of the ball towards a target speed, in order to try and loosely maintain that speed. Put simply, when the ball is moving too slowly or too quickly, it’ll speed up or slow down to bring itself closer to its target speed once again.

This is important as it solves half of the problem where the ball can get stuck moving too slowly or in a wonky direction, making the game very frustrating as the player has to wait for the ball to finally return. The other half of this will involve applying some kind of directional impulse when the angle is too close to a direct up/down direction, although a more elegant-looking way to do this may even be to apply a little spin impulse to the ball’s angular velocity.

One of the problems we’re tackling currently is the way physics work in Unreal. Unfortunately, we’ve noticed a few issues with our current physics where the ball either bounces in weird unexpected ways or straight-up phases through objects. We have some theories for why this behaviour happens, but as of right now we’re unfortunately kind of clueless on how to solve it! However, we’re confident in our ability to solve this as we gain more experience working in Unreal.

Breakout - Inspiration

Today, we jumped into two breakout-inspired games that we’ve played before and hold very highly by our standards – Z-Ball and Shatter. Z-Ball is a pretty old game that I don’t believe to be available online anymore, but it accomplishes the breakout aesthetic in a really nice way, with a physical spinning ball and some pretty interesting physics-based mechanics placed in many of its levels, whereas Shatter actually gives physics to all blocks in the level, allowing them to be sort of pushed and bumped around as your ball is pushed/pulled by an air sucker/blower on your paddle.

The reason we wanted to mention both of these games is simply to acknowledge the inspiration we take from each of them, their unique mechanics, and, in particular, the innovative use of physics at the core of their gameplay. As we continue to develop our breakout-inspired game, we hope to end up with gameplay that will be just as engaging as it was for us when playing these games.

Breakout - Fun Stuff

We thought we’d share a couple of videos of our… ‘progress’. Hope you enjoy!

Unreal vs Polar

On our journey towards learning Unreal, we’ve come to realize that we made the right choice in porting our existing codebase over to it. Although Polar is a feat of engineering that I would love to continue to flesh out later down the line, we have to face the reality. It’s simply not ready for prime time yet. Unreal is a fully developed game engine with countless ways of doing many different tasks, as well as a visual flow programming language (Blueprints) that I’ve loved using and has made me want to add something similar to Polar in the far future.

A day may come in the future when Polar is ready for its first big game project, but, for now, Unreal is simply a better choice if we really want to create our game.

Next Steps

Our path forward over the next few weeks will be to learn more about how physics work in Unreal, and try to resolve the issues we’ve been seeing with them. We’d also love to start making decisions on how we want to do the levels in the game, as currently we just have a hardcoded default level that doesn’t even reset once you beat it. What kind of a level is that?!

Thank you for sticking with us on our journey, as always, and, until next time, Äddi!

⚡ Shockk, Lead Programmer