Reminiscent64
@reminiscent64.bsky.social
210 followers 270 following 430 posts
Taking what I've learned from the games I've grown up with and making the video games that I want to play! 😎 Currently working on the Dark Fantasy kinetic novel A King's Genocide!
Posts Media Videos Starter Packs
Pinned
A little about me: I’m a software engineer who USED to work on some of the worst code in the train industry.

I’ve been laid off.

I’m still working on A King’s Genocide, but finding a job is my main concern now.

I can’t make a game if I don’t have money!

#gamedev #indiegamedev #vndev
From there, I had a blinking animation occurring at random and mouth movement on speaking lines!
For code, all we need for the mouth animation is a function to set the Talking state machine variable to True or False as needed.

From there, I just hooked the function up to the Speaking events Naninovel has.

OnStartedSpeaking sets Talking to True.
OnFinishedSpeaking sets Talking to False.
Code showing the SetTalkStateVariable function. It simply sets the Talking state machine variable to whatever boolean value we've handed the function. The OnStartedSpeaking and OnFinishedSpeaking events. We've attached the SetTalkStateVariable function to these events with OnStartedSpeaking setting the Talking state machine variable to true and the OnFinishedSpeaking event setting the Talking state machine variable to false.
The animations for the Silent and Talking states are about as simple as it was for the eyes.

Maybe even simpler since the Talking state ends on the silent mouth sprite. As a result, the Silent state actually has no associated animation.
The Talking animation. It shows Mouth game object's SpriteRenderer switching the mouth sprite to the closed sprite, than to the opened sprite, then back to the closed sprite.
The mouth had a bit more coding involved, but its state machine essentially looks the same.

For the transition from Silent to Talking, we set a condition for the Talking state machine variable to be True.

From Talking to Silent, we set a condition for the Talking state variable to be False.
The state machine for the mouth. There's a Silent state and a Talking state with two transitions; one going from Silent to Talking and vice-versa. The transition from Silent to Talking. Under conditions, it says that Talking must be true. A transition from Talking to Silent. Under conditions, it says that Talking must be false.
After that, I put a script at the top of my prefab of Aracelia with a custom Behavior class to manipulate the state machine and its variables as needed.

For the eyes, every call of the update function, we generate a random value and set it to the BlinkValue state machine variable.
A picture of code. The GenerateBlinkValue function is called in the Update function. The GenerateBlinkValue function increments the _Time variable by Time.deltaTime. When the _Time variable has reached the value of the blinkInterval variable, we set the BlinkInterval state machine variable to a random integer between 0 and 100. Then we reset the _Time variable to 0. The transition from the Looking state to the Blinking state. Under conditions, it says that BlinkValue must be greater than 50. The transition from Blinking to Looking. Under conditions, it says that BlinkValue must be less than 50.
For the transition from Looking to Blinking, I set a condition where the transition happens if my BlinkValue state machine variable is greater than 50.

For the transition from Blinking to Looking, I set a condition where the transition happens if my BlinkValue state variable is less than 50.
The eye animation was actually the easiest to set up.

You create a default Looking state that always sets Aracelia's eyes to open. From there, create a Blinking state that plays the blinking animation.

Then you create a transition to and from the Blinking and Looking states.
A state machine in Unity showing a Looking and Blinking states. There is a transition from the Looking state to the Blinking state and vice-versa. The Looking Animation that adjusts the Sprite Hash on the Eyes game object set the Sprite Render to the looking sprite. The blinking animation that first sets the eye game object's sprite renderer to the "eyes closed" sprite before settting it back to the "eyes open" sprite.
So, how did I get Aracelia to blink and move her mouth during her dialogue?

State machines, animations, and a little bit of C# in Unity!
Read on to learn more!

#gamedev #vndev
For those who need the refresher, this is Aracelia. She's the main character of A King's Genocide!

This is how she'll look in-game. Her eyes and even other character's eyes will blink at random intervals and her mouth moves when she speaks.

I'll explain how I did it later!

#gamedev #indiedev
For those who need the refresher, this is Aracelia. She's the main character of A King's Genocide!

This is how she'll look in-game. Her eyes and even other character's eyes will blink at random intervals and her mouth moves when she speaks.

I'll explain how I did it later!

#gamedev #indiedev
After it’s become pretty clear I’m not finding another job anytime soon, I’ve been working on adding Aracelia’s sprite to my game.

I need to get the blinking and talking animation working in Unity, but I might have something to show soon.

Progress!

#gamedev #indiedev
Don’t listen to the negative voices.

I know you rock and your game will rock everyone’s socks off!

#gamedev #vndev
If you’re telling yourself your game is no good, remember to ask yourself:

“How can I get this game to be good?”

Don’t give up. Take what you have and use it to create something truly good.

#gamedev #vndev
There’s nothing like the sound of putting the N64 cartridge into the console and hearing a game (Mario 64 is first in mind for me) start up.

Remember to make a good start up sequence for your video game! Someday, a person will fondly remember starting yours!

#gamedev #vndev
If someone has an issue with some part of your video game, that’s perfectly fine!

Decide if it’s valid. If it is, tweak the section. If it isn’t, don’t change it.

In the end, it’s your vision you’re bringing to life, no one else’s.

#gamedev #indiedev
Reposted by Reminiscent64
Dear fellow indie game devs,

If your game is single player and someone discovers some broken strat that is against the way you intended the game to be played, you don't need to patch it.

You can just leave it. It's okay if people want to use the broken strat to make it easy.
To the game developers out there who’ve lost your job and are job searching:

Let your friends and family know you love them in these troubling times!

If I didn’t have my parents right now, I’d be homeless. This job market’s just so incredibly bad.

It’s crickets.

#gamedev #indiedev
Video games will forever be awesome to me. Some people burn out, but that has yet to happen for me.

But, you know, if you didn’t think they were awesome, you’d have no reason to make one!

#gamedev #indiedev
Whatever genre you decided your game to be, you should always play and study other games in that genre.

There is always something to learn from the giants of our past.

#gamedev #indiedev
In the wise words of a certain video game:

Never give up. Trust your instincts.

#gamedev #vndev
If you feel like you have imposter syndrome and you’re worried about it, there’s a good chance you’re not the imposter here.

#gamedev #vndev
I think any aspiring game developer should watch at least one video from the YouTuber Game Maker’s Toolkit.

There’s so many nuggets of wisdom in their videos!

#gamedev #vndev
Whatever timeline we’re in, no game could’ve predicted any of this.

If you’re making a game taking inspiration from current events, I guarantee you you’re gonna get hit with a curveball that has you asking why you didn’t think of that for the game.

#gamedev #vndev