All posts by Scott Goodrow

What is The Wild Eternal?

The Wild Eternal is a story-driven, first-person exploration game with light platforming, maze-solving and progression elements. Players are challenged to find their way through the foggy wilderness, or get lost trying.

It is the early 1600’s.

You are an old woman named Ananta who has fled a life of suffering in search for lasting peace in the Himalayan wild. After a traumatic life, you long to escape the cycle of reincarnation so that you may finally rest.

Your defiance of reincarnation has landed you in a lush, deserted wilderness covered in fog. A fox-shaped demigod agrees to help you escape your fate, but only if you’ll help him in return.

To escape the cycle of reincarnation, the fox asks you to collect crystalline keys from each of the landmarks that poke up above the fog. These keys unlock sealed doors to other forests where you’ll (supposedly) find what you’re looking for.

Beneath the fog, the wilderness is an overgrown labyrinth. Every forked path is a challenge to remember where you’ve been and where you’re going. Obstacles and critters will often block your way, forcing you to confront them or choose another path.

Additionally, the forests are also filled with content designed to distract you and get you lost. Ancient artifacts and hidden shrines have a particularly alluring pull.

Offering these artifacts as tribute will bestow you with a powerful blessing. Each shrine will reveal one or two unique blessings, and each blessing is transformative in its own right. For instance, a frail old woman is no mountaineer, right?

Wrong! With the “Descender” blessing, you can slide safely down even the steepest of cliffs. There are over 20 unique blessings to discover, as well as a bunch of critters to meet, tools to augment, an intricate story to unravel, a relaxing soundtrack to carry you through colorful atmospheric landscapes, and much more!

You can buy The Wild Eternal on Steam for $14.99 with the 25% early-adopter discount on April 13th. Happy hiking and we’ll see you on the trails!

Devlog: Better Color Lerping in Shaders

After reading a few articles about color interpolation, I whipped up a  quick CG solution for lerping colors through the HSV color model.

You can read about this in this excellent series by Alan Zucconi. Happy shadering!

The Secrets of Colour Interpolation

Code Snippet

float3 HueToRGB(float hue)
 float h = hue * 6;

 return saturate(float3(abs(h - 3) - 1, 2 - abs(h - 2), 2 - abs(h - 4)));

float3 HSVToRGB(float3 hsv)
 float3 rgb = HueToRGB(hsv.x);
 float3 vc = ((rgb - 1) * hsv.y + 1) * hsv.z;

 return vc;

float3 RGBToHCV(float3 rgb)
 float4 p = (rgb.g < rgb.b) ? float4(rgb.b, rgb.g, -1, 2f / 3f) : float4(rgb.g, rgb.b, 0, -1f / 3f);
 float4 q = (rgb.r < p.x) ? float4(p.x, p.y, p.w, rgb.r) : float4(rgb.r, p.y, p.z, p.x);
 float c = q.x - min(q.w, q.y);
 float h = abs((q.w - q.y) / (6 * c + 1.0e-10f) + q.z);

 return float3(h, c, q.x);

float3 RGBToHSV(float3 rgb)
 float3 hcv = RGBToHCV(rgb);
 float s = hcv.y / (hcv.z + 1.0e-10f);

 return float3(hcv.x, s, hcv.z);

float3 LerpThroughHSV(float3 rgb1, float3 rgb2, float t)
 float3 hsv1 = RGBToHSV(rgb1);
 float3 hsv2 = RGBToHSV(rgb2);

 float3 hsv = lerp(hsv1, hsv2, t);

 return HSVToRGB(hsv);

Devlog: Immutable Inspector Fields

Inspired by a question posted on Reddit (Read Only Parameter with SerializeField), I realized that I don’t have a way of communicating to other developers on my team which fields are not designed to be modified while playing in the editor! So I decided to solve this problem by adding a new attribute [Immutable] which disables fields in the inspector.

Continue reading Devlog: Immutable Inspector Fields

Devlog: How to Add Flowmaps to Unity Water

Unity Pro offers some great looking water in the Water4 package. Edge fade, foam, refraction, reflection (sort of) and surface waves are just some of the features. For our environments in The Wild Eternal however, we needed flowing water and Water4 does not offer this out of the box. Though the water does move, it is a very simple directional movement. For our creeks and rivers, we need real movement to bring them to life. Not to mention we can use the flow direction to affect gameplay!

Continue reading Devlog: How to Add Flowmaps to Unity Water