Game: Destination

This is a test level for my game titled “Destination”. It’s in early development at this stage, so nothing you see here is final. There are still placeholders in place for a few things. The level is for both testing the individual blueprints, as well as stress testing things as a whole.

The game is a platformer where your main goal is to collect enough pickups to get through the exit as quickly as possible, but the environment is what stands between you and achieving that goal. You can change the material you’re made of on the fly, and the environment can be destroyed, but it has a ‘rock, paper, scissors’ aspect to it. For example, if you’re a rock you can’t break steel, but if you’re steel you can break rocks. Different hazards will impede your progress, and you get ranked on time, the number of pickups missed, the amount of times you die, and how many tiles you interact with.

You will be able to play casually where your only real goal is to get to the end, or you can try to better your previous scores by finding shortcuts, different routes and using different materials to your advantage.

I’ll update this as the game grows. This is the first time I’ve shown it to the public, and it’s taken roughly 1.5 years to get everything created and to this point. I should mention, I haven’t done an audio pass yet, that’s why there’s no SFX.

(Feel free to mute the video if the music gets annoying, it’s roughly 16 minutes long to zip around everything).

Hope you enjoy!

2 Likes

Pipes:
It is a quick test of the pipes, and how they behave with the assets in the scene.

The automatic pipes need to have limits put on them due to some assets being too large to even fit in a pipe, as well as taking into consideration the physics constraints of some assets. The main cubes for example don’t fit inside the pipes, but when they get sucked into a pipe they get crushed into their smaller counterparts and spat out the other end.

The pipes have two ends, so there are two collision volumes used. If you cross the start, you will automatically animate too the end and any custom tasks that need to be done at the start (like crushing a cube) are done there. If you pass the end without triggering the beginning first, the game knows this and simply spits you out of the end.

While in the pipe, the assets have their pipe collision disabled to make the animations much smoother, and they’re re-enabled at the end when they’re spat out. Doing this makes sure nothing pushes anything else outside the pipe and gets stuck on the other side of the glass.

Materials:
This video shows the majority of the materials currently in the game. (water not included, it’s a bit unique from the rest. Water CAN’T be destroyed, but all of these material types can be).

Some tweaks might be done later, but these are the foundation as of right now. Each one has its own ‘strength’, so only stronger values can destroy weaker or equal values. For example, glass is weak and can’t break stone or metal, but everything can break glass. They each also have a ‘heat tolerance’ value to it, so each material heats up differently before they’re destroyed.

Foundation Blueprint:

The creation of a lot of the world will be done by a single blueprint. It spawns the appropriate instance static mesh based on the options given. This blueprint also contains the instance destruction logic for when the individual pieces are destroyed.

If the material is set to something that you can dynamically interact with like lava or water, those pieces will be swapped out for the appropriate blueprint when the game starts. At runtime the blueprint will feed the required information to any blueprint it spawns to make their visuals match. This is not just the location and orientation and geometry, but also the transforms for the world coordinates of the materials to ensure each piece that’s destroyed will have its material line up correctly. This information is passed onto the mesh using ‘custom data’ to keep the draw calls low.

This video shows some of the various options it has.

Lava and Water Shaders

This video shows off the lava and water shaders.

Lava is stationary and doesn’t have a current. Everything that touches the lava will simply burn up and get destroyed. There is a ‘cooling’ aspect to it for when it comes in contact with the water, but that’s not shown here. This is purely the lava material itself.

Water is a bit different. Mid-way through the video you’ll see a ‘current’ blueprint showcased. This is used to determine the location, size, and strength a current will have. This can be used to make assets circle an area, or act as a river that pushes them off the edge of a waterfall. This blueprint not only drives the material, but also the buoyancy that each component spawns when it overlaps a body of water.

Looks amazing. Remember me of the game “Marble Madness” 1998 from sega. But your’s is cooler and much more 2023. :wink:
Great work, go on.

Changing the players material

The player needs some visual representation of what materials are at his or her disposal, as well as what’s coming up next. This video showcases the UI that fixes that issue.

The UI has been updated to show the available materials when the level starts as well as which one is currently being used by the player. Changing the materials can be done on the fly, and there are stations throughout the world that can be used to change to completely new material. When you do this, the material will be added to your available materials list for your player, and shown in the UI. If you don’t change the material, after a short time the UI will fade so it’s not as distracting, but is still visible. Its opacity will come back when you change the material again.

Foot note: I have also done noticeable performance improvements. I am running a 2080 Super, and at 1920x1080 I am rarely dipping below 60fps when a ton of things are exploding on the screen.

1 Like

Interior lighting test

The game is using Lumen to light the scene, so this is a test to see how interior lighting looks and how things render out when in an enclosed area, and how that reacts to sections of the wall being destroyed.

This is also to test how the ‘cutout’ effect looks and feels in a level that’s more vertical in nature.