Freedom of Motion Alpha 6

by Taylor Hadden | 19:30

An Exploration Update

For this alpha, we had two primary goals. We wanted to make a solid pass at improving the exploration experience, and we also wanted to implement a few graphics and lighting improvements.

The two big gameplay additions come in the form of glowing orbs. The larger and most active glowing orb has been named Ivan, and he follows you around providing light. The smaller orbs are called mementos, and act as keys for gates that unlock new areas. The mementos are supported by new behind-the-scenes infrastructure that lets world entities store references to each other. This is a core bit of tech that will continue to be exploited in the future.

Two other important pieces of technology introduced in this alpha are screen-space ambient occlusion and bloom. We are using Sonic Ether’s excellent implementations of both. These two additions have let us greatly expand the dynamic range of lighting while maintaining a readable image. It does get a little dark sometimes though; Ivan is not yet perfect.

We’re moving away from using static, stationary lights for a couple of reasons. Our levels are built dynamically at runtime, cutting us off from the baked lighting and global illumination solutions of Unity. As we get further into our work with physically shaded pixel art, we’ve found that dynamic lighting and the constant fluctuation of the lighting angle really helps sell the affect of normal and parallax maps. However, dynamic shadowed lights quickly become very expensive. Having Ivan (and the sun in outdoor areas) be the primary light source, cuts down on the number of lights we can expect to be rendering at any given time dramatically. At the same time, sometimes you want to illuminate a certain area “just so”, and the crystals that Ivan illuminates throughout the world gives us some authorial control.

The loss of global illumination is not something we take lightly; the image quality improvements it brings are very impressive. As we continue to delve into possible art styles, we will be reevaluating the potential impact of such systems and how they would feed into the kind of game world we are trying to build.

An incomplete changelist:

  • Added bloom and SSAO along with graphical options for some basic control over them.
  • The beginnings of a custom skybox shader that matches the sun’s direction
  • Added an illumination-providing glowing orb named Ivan
  • Added crystal sconces for Ivan to illuminate
  • Added the ability to direct Ivan by holding “E”.
  • Added the ability for entities to store type-safe individual, list, and set references to other entities.
  • Added Memento Groups
    • Added collectible mementos
    • Added memento gates that open when the requisite number of mementos have been collected.
    • Added crystalline memento trees that display a leaf node that glows when you have picked up a memento and provide a way of keeping track of what mementos you need.
  • Made it so that the position of the sun is dependent on the number of mementos you’ve collected.
  • Added a new tab to the entity tools allowing you to access world entities.
  • Added new visual and sound effects for spawning.
  • Added ragdolling and visual and sound effects for death.
  • Improved how the editor interface selects entities so that entities with triggers can choose whether or not their triggers can be used to select the entity.
  • Improved the world materials to include the use of the specular, normal, and parallax maps.
  • Fixed a bug that would cause the game to crash if you had autosave enabled, left a world, and sat on the main menu long enough for the autosave timer to fire.

Future Plans

For Alpha 7, we will be pursuing some performance and functionality improvements for the voxel engine. We hope to add level-of-detail support and greatly improve the render distance, and we will also be exploring the implementation of foliage and soils. As always, you can follow our progress on Trello.