Substantial Man Devlog #1: Tumultuous Timelines
Hello, and welcome to the very first devlog for my game, Substantial Man.

The content I'd like to cover here is all over the place, so I'm going to tag this as a general update. Be prepared, though, because I'll definitely get technical, discuss my process and creative choices, etc.
Intro
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 Substantial Story
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.
Technical Aspect
Timelines
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:
- Cinemachine Track: For setting and transitioning between different Camera views.
- Signal Track: A powerful tool for invoking methods from scripts at a specific keyframe within your timeline.
- Animation Track: Control basically any parameter you can think of related to a GameObject ( e.g. Rigidbody, Transform, AudioSource, and much, MUCH more ).
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.
Important Consideration
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.
Keeping Tabs: What there is and what's TODO
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:
- 4 scenes: First & Second Main Scenes, End Scene, and Title Scene
- Around 8-10 timeline events
- An incomplete narrative that currently results in 1 of 4 endings
- A player capable of
- Horizontal Movement with animation
- Equipment of item
- Basic use of item
- Discarding of item
- Interacting with doors
- Reacting to attacks
- 3 NPC characters with working animations
- 2 Behemoth designs
- Basic but scalable inventory system utilizing a Sprite Library Asset
- System for scaling different NPC sprites with same animations
- Simple UI utility suite for displaying story texts and item
- Simple combat system for second scene fight
In my next installment I hope to achieve:
- Expanded combat system
- New item types and interactions
- Make the clouds move independent of the parallax!
- New scene with a fight against a Behemoth
- Scene selector in title screen
- Pause functionality
- More 'polished' UI in general
Conclusion
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
Substantial Man [beta]
Discover a world full of ogres and behemoths
| Status | Prototype |
| Author | brendan-dev |
| Genre | Visual Novel |
| Tags | 2D, Horror, Singleplayer |
Leave a comment
Log in with itch.io to leave a comment.