Posted August 02, 2025 by brendan-dev
#general
Hello, and welcome to the very first devlog for my game, Substantial Man.
My name is Brendan. I'm a software engineer and hobbyist game developer. I enjoy making things that are surreal, larger than life, and somewhat abstract.
The motivation behind making Substantial Man was initially just to shake off some cobwebs after a short break from developing in Unity, as well as to explore Timelines, a sequencing tool that's part of the Unity game engine. However, I'll admit the story and character have taken a bit of a hold on me, so I decided to expand it further, and I'm hoping I can continue to chip away at it in the future, if I have time.
The story is quite simple. You are a small man navigating a world full of beings much larger than you. Early in the journey, you have your first encounter with the main two species of this world: Ogres and Behemoths. Ogres are only slightly bigger than you, and Behemoths are... well, a lot bigger than you, and evidently more aggressive. The true nature of these two species is unknown, but one Ogre seems at least indifferent towards your presence, which is the most positive reaction you have received so far in this treacherous place.
I chose this direction for the narrative because I love stories about creatures of unfathomable scale, and I thought that might pair up well with aesthetics inspired by old-school flash games, plus I had only made pixel art 2D games prior to this.
As you may be able to tell so far, this project is very story-driven. I have yet to mention a core mechanic or game loop, just characters and a story. But I like to follow my motivation wherever it takes me and try to learn something along the way. That's where Unity Timelines come in.
Timeline is a built-in feature of the Unity Editor. It's a visual, non-linear editor for creating and organizing sequences of events over time. It's like video editing software, but for games. With Timelines, your previously interactive scenes transform into a series of objects to puppeteer around the screen, but with close enough attention to detail, you can make these transitions as seamless or cinematic as you want.
A timeline is comprised of multiple animation tracks, with 'keyframes' denoting events that occur at different timestamps within the overall sequence. The following track types are the ones I found myself using the most during the making of Substantial Man:
Just from that brief list given there, it's clear that this feature of Unity is very powerful. Using these track types I was able to create around 10 timelines using between 5-15 components in just a week and a half. But, if you're familiar with animation in Unity, you may be asking "Isn't it annoying create an Animator asset for each object you want to bring into the timeline?"
That is the splendid part, timelines handle creating Animator components and attaching them to your GameObjects at runtime, so that it doesn't interfere with any other scripts you may have attached, instead temporarily overriding them for the sake of playing out your sequence.
There is absolutely a caveat to this, however: Whatever state your GameObjects are in at the end of the timeline is where they will remain once gameplay resumes. If you're planning on not using a character again after a certain timeline, you have to 'clean up' that character, or make sure that they don't interfere with gameplay or other timelines playing out.
Keeping the above in mind, however, it's not difficult to build complicated, dynamic timelines that can even allow the player to influence the way it plays out. While I haven't quite reached this point yet, the timeline supplies a very intuitive interface for quickly mocking up whatever event you can imagine.
At the end of each devlog, I will hopefully maintain a comprehensive list of features I've accomplished and features I plan to implement. The first one is bound to be a doozy since it's, well, everything.
In what we shall call version 0.2.0, we have:
In my next installment I hope to achieve:
If you made it this far, thanks for reading! I doubt the next update will be so lengthy, if I'm even motivated enough to continue working on this. If not, at least this will serve as a README for this project that I'm ultimately very proud of!
Until next time,
Brendan