At dusk, far from civilization, in the center of a forest clearing sits a magical campfire shielded from time, secrets hidden within its long lost flames.
You have many questions,
But only a star can light the fire.
Features
Starfire is a personal project focused on simulating a fire. It is not a product yet and I’m not sure it will be, and for now it’s just a tech & design experiment. It includes:
Simulated fire that can consume wooden logs (or any kind of voxel-based objects)
Point & click interaction system with items that can be picked up and used
Forest clearing environment at dusk with windy trees, grass, rocks, and some flowers
Minimalistic UI, a gauge on the top for the fire strength, and contextual info on the bottom
Beautiful night sky with procedural stars
Demo
Try the demo for Windows (38Mo DL)
How to play:
Mouse to look, left-button to pick-up objects and use them, right-button to rotate them
WASD (or ZQSD for French language) to move around
Find the star and use it on the fire! Find some wood in the clearing and put it in in the fire too
For now there is no sound effect or music, but I suggest you listen to relaxing music while trying the demo. My pick would be the Outer Wilds OST
There is not much to do except watch the fire roar, and look at the stars
Concept
If you’re wondering what Starfire is I’m sorry I don’t really have a definitive answer for you. At first I wanted to see if I could make a puzzle game using a fire and then I used it as an excuse to build a small 3D environment and now it’s more of a point & click adventure experience. I really enjoy working with lights and shadows, so this led me to choosing this particular time of day. I choose an art direction with highly saturated fog to see the tree line, and I really like starry nights so I blended all those things together.
Inspirations include Among Trees, camping illustrations, Outer Wilds
The Starfire Effect
The fire is the focal point of the scene. It burns wood and turns it into flames and smokes, as if it was a portal between earth and sky. I love the idea of a fire made of stars and trying to merge those two elements together is really fun. Here is the main effect shown when a star is used on the fire:
Fire Simulation
The starfire is the hero of this project. It is not a realistic simulation but it is still a complicated system where voxel-based objects can be slowly consumed. In brief:
Wooden logs are created using 3D grids of voxels and the marching cube algorithm, they are fully procedural following the shape of a cylinder with a controllable noise. They have a rigidbody and a collision mesh using the convex hull of their procedural geometry
A heat source is located at the base of the campfire, and every few frames it determines what needs to be heated using my real-time per-triangle GPU occlusion. Visible triangles from the heat source are mapped to voxels and then the heat source apply a secret heating formula to change the fill values of all voxels in range
The mesh of every voxel object that is being heated is re-generated every frame (almost!) to show the change of shapes in real-time. We take the opportunity to set some vertex color using the current heating intensity of related voxel and distance to heat source
The wooden logs have a triplanar surface shader that use those vertex color to blend between 3 states : normal wood (brown texture with a normal), black burnt wood, and burning wood (red ambers with high emission)
Wooden logs can be cut. Voxels objects can be sliced entirely after burning for a while, to form 2 new objects allowing wooden logs to break and fall
The fire strength slowly increase or decrease based on the volume of voxels it is currently heating, and this is a global value driving the top UI gauge and a ton of secondary systems, including the light, the fire radius, particle systems, materials, etc.
Created by Alexis Bacot
Unity 2019 LTS - Built-in render pipeline