This time I worked on the UI, basic character creation, lookdev, and a rhythm mini game. Here’s a detailed breakdown.
User Interface
I started with adding NPC/Object icons. I’m probably only going to use it for NPCs (if I end up using it at all). I thought about making a procedural/automated system, but I think making them manually is better, because I’ll have more control the angles and lighting.
With that said, I finally took time to rework the UI. The first one was an ugly placeholder. The New UI still needs some work, but it’s much better already.


I made everything smaller, while still making sure it’s readable on smaller devices. It’s very readable on the Steam Deck’s screen (7.4″) and even on my phone (~5.9″). But I also included a high contrast, more readable font, and a bigger text for accessibility. Right now everything toggles at once, but when I make the settings menu I can toggle these individually.

I also added interaction prompt icons. The default is “Talk” for NPCs and “Inspect” for everything else, but it can be changed to any image and text I want.

Character Creator
I finally took time to make a customization system for characters (Player and NPCs). It’s very simple : I split the character model into 4 parts : Head, Torso, Legs, feet. I also added an optional slot for hats and another for accessories (glasses, bracelets, watches…). It’s not exposed to the player as of now, I’ve only made it as a “proof of concept” and to help me make characters faster. I’ll come back to this and use proper structs with predefined parameters and all and also allow the player to change their character’s looks.
Bug Fixes
When I changed the Animation Blueprint and character models I caused 2 features to break : Look At and Mouth Viz. The first one was straightforward, but I decided to port the whole logic from Blueprints to C++ as practice. It was not at all necessary for performance reasons, as it barely consumed 10microseconds to begin with, but it went down to 2microseconds, which is nice. But I did learn more about types and C++ programming in general, and some concepts finally made sense, especially how it handles function returns. I always assumed it was normal function returns, but it turns out any variable you pass by reference can be a node output if you want to. Basically if a variable is passed by reference and it’s not either a constant or has the modifier “UPARAM(ref)” before it then it’ll be an output. Notice how in the C++ definition below the function is a void and has no return, but “Sound” is passed by reference and therefore it appears as an output in the blueprint node.


I also fixed the mouth sound visualization. It was previously a separate material, but to keep things simple, especially with the mesh and material variety I’ll have, I converted it into a decal that sits on top of the mesh.
Rhythm Mini Game
I talked last week about rhythm mini games. To recap, they’re small mini games you do as part of interactions with other NPCs. Things like playing hop scotch, cutting vegetables and fruit, maybe even fishing. I was going to make it in full 3D and use raycasts and all, but I had a better idea at the very last minute while I was preparing to sleep : just use an array of structs containing the following data : time, button type (up, down, left, right or action), pressed correctly, and a reference to a static mesh I used for the UI. With each tick I moved the UI static meshes according to time, and when a button is pressed I just make sure the next button I need to press is within a time range, similar to how platformers have coyote timing (eg. up to 0.1s before and 0.15s after is acceptable in medium/easy difficulty).
Another important part is the “translator”. I have the option to manually write the input sequence in the following format : “u d 3u l r s a” and it will translate to “up down up up up left right space action”. But I also made a random sequence generator.
Adjusting the length, speed, and “coyote time”, as well as the sequence complexity is enough to make variable difficulty.
Here’s the demo below
Later I’ll link it to other character/object animations to reflect how well you’re doing. If you fail too much your player character will play the bad animation of hop scotch for example, but if you do well they’ll play the good one. Maybe move the hands on a guitar (somewhat) accordingly too and so on.
Art
I did some lookdev and lighting/mood experiments for the game. Here are a few screenshots I liked (click to expand)








I took the chance to finally use lighting scenarios for lighting presets. I made a few variations : Sunrise, noon, foggy noon, sunset, night, foggy night.



I did a lot of blockout, there isn’t much worth showing individually. It’s a lot of small adjustments pretty much everywhere in the map.
And as a personal/portfolio piece I started working on a rotary hammer. It’s not much, but here’s a screenshot

And finally I played some Cocoon, which I really liked. I also tried Spirit of the North 2, mostly played around with the settings, but I only really played for about 20 minutes overall. I’ll get around to play it eventually, but it’s a game I’m really invested in (I heard about it from friends). I’m a bit disappointed by the performance though, it demands high-end hardware but it looks a bit too generic and like PS4 games. It’s an indie game and I know resources are limited, but I’m used to indie games being more friendly toward PCs with lower end specs so I was a bit surprised.
Anyway, I am also replaying GTA San Andreas, it’s a good game, and the nostalgia of course, but it’s definitely showing its age.
Anyway that’s all I have. Thanks for reading, and I hope to see you again soon!