avatar

Dev Diary #9: One week off :)

Good morning boys and girls! We have to take some time off the Mercury Shift 3D and finish a different project.

So this week we still had some great stuff going on. The gamedesigners finished their work on the canyon levels, which means they are ready for art integration.

Part of the improvements added to the game lately is a new camera-orientation system. Although Mic has finished his work on that, Oli integrated it now in every level. It allows smoother controls over the camera. To implement the system, Oli, Beff and Matt worked out a set of rules for the camera. Visibility of points of interest, player movement and such things are considered in these rules.

Camera movement is one of those things that will not necessarily be noticed by every player. The only exception here being a bad camera movement system, which will throw you off the game-flow. Maybe you will spot the difference in this video. We have parallel-played a level with the new and with the old system. Although barely noticeable if you do not focus on it, it makes a difference in play.

The players are now able to see, where they are jumping and certain areas of interest can be shown to the player.

Relentless Mic has been collaborating with Simon to work with the death-areas. I am pretty excited about that collaboration, as Mic being a great coder and Simon a shader wizard. This time the two worked on the display of death-areas. They are a pretty important part of the game, as players will be confronted with them quite a lot. They come in a lot of different sizes, which makes it complicated to find an applicable visual interpretation that can be re-sized to all of your needs. You would have to create a lot of different assets for every application of the death-area.

The answer to the problem was mesh-generation. Using a “simple” mesh as template, Mic would build a script that generates a mesh to a certain set of rules. The areas have a fixed-size border and are vertex-painted by code.

planning mesh generation in unity on paper

To achieve the desired result, Mic had to generate every vertex, its vcolor and the texture coordinates. As you may have noted from the picture above, this required quite a bit of planning and complex layout. The result is visible with our debugging-shaders here:

Vertexcoloring is set with the mesh generating code

So every time somebody sets up a death-area with varying size, this tiny little button “Generate Mesh” makes a visual death-area out of it.

Generate Mesh button in Unity 3D

This makes all of our lives easier and takes some work off our desks. Nevertheless, mesh-generation is a pretty hard thing to do and will be used in only some rare cases.

And this is the result:

Speaking of the death-areas: for some areas we tried using round shapes as colliders. This gives a more dynamic feel to them, as you can pass them by a little easier. Visually, nothing is changing but you now can trick death by ignoring the hard edges of the object. Mind that this is only the case for critical areas, not in general.

round death area allows a more dynamic gameplaySo only the rounds parts bring the inevitable with them. the outer part of the capsule is safe.

Furthermore Mic implemented the highlight system for objects. It outlines the object you are about to interact with:

Unity Highlight System in action

We are using this asset store plugin by the beautiful people of Deep Dream Games. Easy to integrate and good performance so far. We can only recommend buying it, if you are thinking about building your own. It will save you a lot of time and is pretty straightforward to integrate.

Whilst our players animations are being controlled by the player, we keep adding animations for background animals and such. Bases on his bezier-system for Unity3D Mic built a rudimentary waypoint-animation system for background animations. You can now define a path and let rats on it. Or beavers. Or lions. It is very powerful.

Also related to dying in the game, is the so called footstep system. It lays footsteps at your feet to track your path. This ensures that your respawn point for reviving will be in a safe zone, so you do not get revived under water, between two boxes with not enough space and so on. But sometimes this system can spoil a riddle. Thus, Mic implemented an inhibitor, that prevents footsteps from being set in certain areas. It looks like this:

Setting footsteps for player waypoints in Mercury Shift 3D

The green debug-line shows where the sweep sets the footsteps (tiny red points). In case of an active inhibitor, the steps are not set and the player will be revived at the last viable step.

Rika worked with Nora on a better implementation of the animations of the characters interacting with objects, buttons, Levers and so on. The proximity of the character now triggers different animations of the arms. The arm that is closer to the object will be used for the animation. See for yourselves:

Triggering the lever according to position of the character via Match IK

Rika also solved some issues with the crates. A few bugs kept them from working as intended.

Elena and Niko have both been working with the AntiGrav fields that propel players upwards. Simon took the two concepts and created this ingame version of it:

Well, that’s it for the week! We are working on something different the rest of the week, but you’ll be able to visit us at the annual “Werkschau” at the MD.H on friday.

All the best!

This entry was posted in Dev Diary, Devblog and tagged , , , , . Bookmark the permalink.