Nick Crockett


Cinder Ridge
Computer game, in progress

Overview     Research     Demos + Artifacts

Demos + Artifacts


Sketches and Storyboards

I’m not as diligent with storyboarding this project because it’s not a film. However sketching on paper, or sometimes on the computer, has been very helpful for working out complex interactions before prototyping. Simply laying out a trail in a 3rd person game became surprisingly complex:


I am especially interested in designing different tasks that the player can complete with a small team. Many wilderness survival games (and tv shows, and literature) emphasize the individual’s ability to overcome and master nature. However a lot of these tasks become easier, and likely more fun with others.
Certain design ideas, like hunting, trapping, and the use of controlled burns to restore soil and manage wildlife are loosely inspired by the practices of the Nisenan people as described in Tribal Chairman Richard B Johnson’s A History of Us.


Iteration on Human Characters

I spent a lot of time iterating on design of the human characters. I think I’m getting closer but have stopped pushing it for now to focus on prototyping other game mechanics.

With the character designs, I wanted to show a wide range of body types including skin tone, weight, proportions, gender presentation, and more. Wanting to honor hippie tradition of skinny dipping at the Yuba River, I also want to show characters in various states of undress. For that, it would be important to arrive at a style that suggests actual contours of human bodies, but is still stylized, expressive, and legible at a distance.

Initially, I tried modeling characters in sculpey and capturing them with photogrammetry. Although I enjoyed aspects of the process, for the level of refinement I actually wanted for my characters would take me too long to accomplish with the physical sculpting.

This is where character designs are at now - a happy medium for me between more stylized proportions but still expressing some more subtle details. I have a few base meshes that I can adjust to produce a variety of proportions and body types, and I use a handful of modular parts for less unique details like hands, ears, and feet. I want to keep iterating on the character designs (especially facial expressions) but for now have moved on to prototyping more of the gameplay.




I want to keep facial animation pretty simple, for now a shader masks the pupils and handles eye movement.


Although my prototypes have been mostly concerned with the style of character’s bodies, I am interested in showing more practical gear for this kind of work:


Rigging, weight painting, and being able to reuse animations on different characters is a big concern with this project.Although I have used Mixamo rigs and animations for some prototyping, I want to eventually use custom animations as much as possible for a more consistent style. I’ve learned a lot about rigging and weight painting for this project.


The only wildlife I’ve worked on so far is this hare:


Vehicles


I haven’t done a lot of work on vehicles and other tech, but one idea I am excited about is imagining green tech that is:
  • modular, easily maintainable
  • practical, “used future” aesthetics and design
  • utility vehicles with cute / appealing / desireable designs, which don’t look like spaceships or angry robots.


This truck is an early example of this - I imagine it as a way to fast travel between different locations, and also a place to store and recharge battery powered tools. I may replace this with more of a camper van style vehicle.

I wanted to try printing and painting the truck to get more texture, but 3D printing is hard to get right! I may come back to this later.

I don’t see green tech as sufficient to solve the problems presented by climate change, but I think that some green future tech could be a good way to make quality-of-life gameplay features make sense diegetically.


Plant Assets


At first I tried using photogrammetry to capture complex textures like tree bark. I ran into issues making the textures from these captures tile believably, and anyways I liked the idea of preserving some ‘handmade’ craft objects in my process, rather than using uncanny photogrammetry captures.


I switched to texture painting en plein air with acrylic paint, especially while I was still living in Grass Valley.
At first I tried simply painting bark textures, and then using photoshop tricks to generate normal maps and AO maps from those. This looked okay, but I was curious what I could do with more three-dimensional sculpting.


Although I liked the bark textures I painted this way, they didn’t translate as cleanly into normal maps and AO maps. For leaves and other small details though, the painting worked well with some experimentation. Below are some lighting tests with these assets.


I’ve also been experimenting with stylized painting for smaller plants. Below are some tests of invasive plants;  Blackberries, Scotch Broom, and the Tree of Heaven.



I began sculpting tiles of tree bark on square pieces of cardboard with sculpey. Making tileable bark this way was initially a challenge, but I realised I could solve the problem by sculpting two tiles. As I worked, I moved the tiles around relative to eachother. The original sculpt doesn’t tile perfectly, as the clay deformed easily when I touched the edges to move it, but it was close enough that I could blend it together with blender and photoshop more easily.



The seams are still a little visible, but some photoshop magic helped hide these defects...


It’s pretty trivial to generate normal maps and AO maps from a 3D scan.



Lighting

Because of how light affects plant growth in real life, I wanted to have a robust system for the sky, where the angle of the sunlight changes throughout the year. I’m not sure yet whether I want the game to use full 12-month cycles, or something more abbreviated, like Stardew Valley’s 4 seasons (each lasting 28 days or 4 weeks), so I set up this system to accommodate any number of days in a year with a few small changes. I’m pleased with how the moon and sun change throughout the year, and how the moon and sun both light the trees. 


This clip shows how the system works from the outside. Instead of a proper “skybox” I use a large inverted sphere, with other, smaller spheres representing the sun and moon that orbit inside.


The sky sphere also has a starry backdrop including the real constellations, which rotates semi-accurately throughout the night.



To make the constellations, I found a spherical map of the sky, mapped it to a UV sphere, and used snapping to model the constellations on the surface of the sphere. Then I used a particle system in Blender to attach a small quad to each vertex, which has a tiny cutout image of a star mapped onto it. I applied a random scale to each star, then for the larger stars manually scaled them up. In the game, these sit on top of a background of dimmer, randomly dispersed stars.


I wrote a custom shader for leaves which:
  • adjusts alpha cutoff inversely based on distance, as discussed in this presentation by Campo Santo’s Jane Ng.
  • slightly modifies hue based on perlin noise and world coordinates to add visual variety.
  • can be made to sway in wind.



The shader also has a “dryness” slider, so I can reproduce the look of trees after they have been scorched by a fire, killed by bark beetles, etc.

Even if a fire doesn’t reach the crown, the heat can still kill the trees, leaving their leaves brittle and orange. The same coloration occurs when bark beetles infect and kill a tree.

To get the lighting to look right on trees, I had to also modify the surface normals of leaves by transfering data from simple shapes, as described in this tutorial by youtuber Akishaqs.

The tree on the left below has default surface normals. Notice how the lighting on the leaves is inconsistent with how the shadows fall on the ground: leaves on the sunny side of the tree aren’t illuminated.
On the right, I’ve transferred normal data from a teardrop shaped mesh placed around the tree.




Prototyping Character Movement
One of the key goals for the project is to examine the relationship between human beings and the landscape. Inspired by games like Death Stranding and Breath of the Wild, as well as the Independence Trail outside Nevada City, CA, I wanted to consider carefully how the human characters physically traverse the landscape.


Traversal
This clip shows an early test of breath of the wild style climbing mechanics - the player can run and climb on basically anything, and is limited by a stamina bar.

At the time I wanted a more sophisticated system for climbing, and wanted to give players a chance to find creative solutions to a climbing “problem”. 

This clip is a later prototype of climbing mechanics. This character has no premade animations other than a neutral crouch pose, all the animation is controlled by the player via IK. The player controls the hands and feet of the character contextually, using only a thumbstick and one button. Which limb reaches out for a hand/foothold depends on which direction the player tilts the joystick - upper left and right quadrants correspond to the upper left and right arms, and the lower left and right correspond to the legs. Movement is constrained by where the character can physically reach with their other 3 limbs planted. I thought later I could possibly add stamina depletion based on the player’s footing.

I liked how this felt a lot, but it didn’t fit with the ‘squad-based’ mechanics of the game. It could become a fun minigame or a future project of it’s own.

NPC characters
This clip shows an early attempt at NPC pathfinding, using a more simplified  system for player movement (without involved climbing) that I think is closer to how the game should ultimately be. This also includes some of the more recent animations I’ve done for the characters.

I’m interested in how the player’s interventions in the landscape like clearing firebreaks, planting, and more affect traversability for other characters, and in turn how that affects logistics of construction projects in the game.

This clip shows my first pass at directing NPC characters to act independently of the player. The player is able to direct NPCS to move to different locations with a few different verbs available: walk, hurry, and sneak.

Behind the scenes this was implemented with a verb-adverb system. Actions like “Go Here” could take an argument for different adverbs like “quietly” or “quickly”, which the player can toggle through with a modifier key. This still basically exists in the code but I’m not sure how useful it is in most situations other than sneaking up on game.



Interacting with wildlife
One of the clearest first gameplay tasks I wanted to prototype was rounding up small game for trapping as the Nisenan would, but also potentially for other purposes - tagging wildlife, etc.

Jackrabbits (and eventually other small game) will run and hide under plants. Dense foliage makes it difficult for the player to track where the rabbits are, although with careful attention you can spot them. 


Walking in formation to roundup
I’m excited about how wildlife interacts with the position of plants, with structures the player can build, and with the NPC characters the player works with. This video shows an early prototype where the player directs NPCs to walk in formation to scare rabbits out of the bushes.


Construction


This video shows one of the first systems I prototyped; a trail planning tool. 
This first iteration generates a spline that uses trail blazes the player puts down as nodes. This included operations like add, insert, delete. 

Later I returned to this system with a pretty major refactor to allow more modular construction. Shown here is a different version for planning fences, which are drawn in straight lines rather than curved splines.
I’m hoping to avoid obviously grid-based gameplay as much as possible to enhance the natural feeling of the environment. The citybuilding simulation game Foundation was an interesting reference.
Once the player draws out a plan, they can work together with other characters to place resources. Here you can see stacked posts and rolls of netting must be carried by characters.
I didn’t want to give players infinitely “deep pockets” for carrying unlimited resources, as many role playing games do. Most resources need to be carried one-at-a-time, or by a small group, encouraging the player to bring NPC companions along for logistics. Having even one companion can cut construction time in half.
I’m considering something similar with the tools, where only one or two can be carried at a time, but for now a handful of tools are available in a “toolbelt” and are accessible with the D-pad.


I didn’t want moment-to-moment control of the NPCs to feel too ‘top down’ or cursor-oriented as in the chasing rabbits example above. To direct NPCs to do something, the player calls them all to follow along. Then, when the player performs an action (such as “pick up resource: post”, or “equip tool: hammer”), the NPCs will do their best to copy that action. When given the “Place Resource” action, NPCs will search outward from the node where the player placed theirs for linked construction nodes. Actions are queued up, so if the player picks up and places two posts, the NPCs will also try to pick up and place two posts.

These features combine pathfinding with a queue of tasks. Each task is represented as an object containing a coroutine that characters execute along with a description and any helper functions or variables the task requires.  For now, I’m using the A* Pathfinding Project asset by Aaron Granberg to handle path finding.


Fire


One way I am interested in complicating mechanics around plant growth and forest management is by simulating aspects of how forest fires spread in real life, including factors like slopes and ladder fuels.

Below is one of my first tests of burning grass on Unity terrain. Instantiating hundreds of flame particle systems got out of hand quickly, and the result is not very visually appealing.



I’ve been experimenting with shader graph to make more interesting looking flames, which are also more performant than a bunch of particle systems. I was also able to encorporate some more handmade crafts into this style of flame, using a simple orange wash as the basis of the effect. These flames also look great scaled up, and with small and large flames combined. For larger or more distant objects I can get away with a single large plane rather than many small flame particles.



Tree Growth


An important goal is to treat the environment as a dynamic ecosystem, rather than a static background for adventure and exploitation. This early test shows a stand of cedar trees growing over many in-game years, at an excellerated rate. Simple rules govern how and where the trees grow based on shade from nearby tall trees, changing weather, ground cover, and rainfall. I was pleased at how much it resembles a real forest after a few years.


I’ve been playing with systems that track levels of leaf litter and shade, which in turn affect the level of moisture in the ground. The images below show some of this data represented visually (RGB values corresponding to different types of leaf litter on the left, and grayscale values corresponding to surface moisture on the right).
I’m especially interested in how plants affect each other’s growth.


Shade and mulch/duff allow soil to keep more moisture longer. However reduced light from shade also affects plant growth, and lots of dry leaf litter (especially dry pine needles hanging on other plants) can contribute to the spread of fires. Other factors like soil composition, and even which way a slope is facing (south, towards the sun, or north, away from the sun) have a big impact on how different types of plants grow. 

I’m not sure how involved these mechanics should be - maybe something more streamlined and gestural would suffice, but for a game about reforestation, it would be good for players to be thinking about these kinds of relationships as they try to grow and maintain a healthy forest.

I’m working on modifying tree growth so it occurs in regular vertical stages. How this looks and works is more obvious with conifers, but I’m still working on how this might work for oaks and other branching trees. This will more easily accommodate certain gameplay like “limbing up” trees to reduce ladder fuels. It also gives me a way to procedurally create stands of trees where leaves only occur at it’s outer “shell”, as in nature. If a tree has enough tall neighbors, it will lose it’s lower leaves that aren’t getting enough sun.




Paper Prototyping


After building a lot of test scenes of the 3rd person game mechanics, I realized I needed to get a handle on the long term progression / strategy of the game. Julia helped me make a paper prototype of an environment broken down into small “open worlds” with tons of pieces made with cardboard and POSCA paint markers.


The player moves a bunch of crew tokens around the board, planting trees, building trails, shelters, and other improvements.
I also did a simple little prototype to help work out how shade and plant growth could work in greater detail:



After a couple of long playtests, it seemed like the rules might be fun, but the data-heavy nature of the game made it unweildy to play as a single player board game. Each tile has a variety of stats that determine how plants grow, how they burn, how moist the soil is, etc. I found that I spent most of the time playing calculating the effects of weather and updating tiles on the board, so I decided to try switching to a digital 2D prototype.

  • Players can upgrade connecting trails, cut / plant various plant types, and start controlled burns.
  • Some tasks require multiple crew to be on the same tile, others can be done by one person but might take several turns to complete.
  • A “predicted weather” track allows you to plan ahead for bad weather.
  • Depending on conditions and weather, fires start and spread uphill (rightward).
  • Plants grow or wither and die (becoming fast-burning dry fuel) based on water, shade, and ashes left by previous fires)
  • Grass and Shrubs instantly grow to their full size. Shrubs are hardy but don’t offer as much shade as a fully grown tree.
  • Trees start small and vulnerable, but if you can keep them alive for a couple of years they grow tall and cast lots of shade, which improves water retention and reduces fire danger.

For all the complexity, actually playing becomes fairly simple once the player learns some basic rules of thumb.




< Research