FM - Log 4
May 29th, 2025
Well, well, well...
I have excellent news. Since regaining momentum, I haven’t let up - solid hours, late nights, focused evenings. Core systems are finally clicking.
Fair warning: it’s still ugly as balls. But the systems? They're coming together better than I expected. I’m close to having a fully functional skeleton - just waiting for the visuals to catch up.
This dev log is a bit more compact than the last few. Hopefully I can keep it that way (unless Unity spontaneously combusts and I have to switch engines again - please don’t, Unity).
Last time was catch-up.
This time? Pure forward momentum.
Also: the project has a new name.
It’s called Entropy FM now.
You’ll see why by the end of this log - but let’s just say the rebrand wasn’t cosmetic. It was narratively and logistically necessary.
I won’t mention the obsolete Unreal logs anymore, but if you're new here, I’d recommend reading the previous dev log for context - especially if you want to understand how the current prototype took shape.
Ghosts of Pipelines Past
Two nights. Gone. Swallowed by a bug so stupid, so infuriating, I questioned my entire life trajectory.
Characters were leaning back during attacks - like someone whispered “Neo” and they all dropped into bullet time. I tried everything: masks, overrides, spine rotations, blend tree sanity checks. Nothing worked.
Until, finally, I found the demon.
The idle animation.
Not just any idle - the idle from my Unreal prototype. One I had retargeted months ago, thinking I was being clever. “Let’s reuse what I've already made,” I said. “Save time,” I said.
Instead, I buried a landmine in my own pipeline. A forgotten pose, subtly broken, quietly ruining everything.
Deleted it. Replaced it with a T-pose. Problem solved.
I didn’t even end up using any of those retargeted animations. All that effort? A sunk cost. Just tech debt with a personal grudge.
Lesson learned: Old work isn’t always treasure. Sometimes it’s cursed.
你能读懂中文。可惜这并不重要。
I built a localization pipeline that currently supports six languages:
English
Russian
Chinese (Simplified)
Japanese
Spanish
Brazilian Portuguese
More will come later - for now, I’m focusing on the highest-impact languages.
The translations are... fairly faithful. I think. I’m keeping the methodology under wraps for now - trade secrets and all that. Maybe I’ll explain it in a post-mortem, once the dust settles.
Eventually, I’ll need community help to make sure the translations aren’t just accurate, but emotionally resonant.
That’s a future problem. For now, it works. It works well.
Cutscenes, Cutscenes, Cutscenes
The dialogue system got another round of polish - and it’s finally robust enough to support full-on cutscenes. I’ve already used it to build Maria’s intro, which stress-tested everything under fire. She’s now fully introduced in-game.
I’m currently working on more cutscenes, but they’re taking time. Why? Because each one forces me to build out more core systems:
Maria’s blocking needed to exist first.
Kiwi’s projectiles (plus a special homing version used just to trigger her intro).
And soon, Ebo’s cutscene - which means implementing his dodge ability.
Update: Kiwi’s intro cutscene is now complete.
Next up: Ebo.
Main Menu
The old menu served its purpose. It worked.
But now? It’s smooth. It’s whooshy. It’s actually... kinda nice.
It works with a controller. Transitions are animated - menus flip into view when entering sub-menus. It just works™.
Save & Load System
This ties into the new main menu frontend. Lame, but necessary.
It’s smooth as butter. Kind of hacky, but hey - it works.
Pressing Start drops you into the intro level.
Continue resumes from the last checkpoint in the furthest level you’ve reached.
And if you finish a level with one character, it gets permanently saved - so you can switch to another character mid-story without losing progress
All unlocked levels are accessible anytime via the Level Select menu.
Clean, flexible, and future-proof-ish.
Intermission
I hit the brakes for a bit - felt the burnout goblin creeping in.
Here’s how the burnout goblin works:
You start putting in more effort, but getting fewer results.
Eventually, just opening the project feels like a chore.
So I took a break. Just two weeks - short, but necessary.
It coincided nicely with the Unity Asset Store sale, which helped. I grabbed two assets I’d been eyeing for a while (and which were actively blocking progress): Animancer Pro and Final IK.
That said, a bigger pause is coming. Real-life logistics mean July will probably be a survival month, not a dev month. I’m moving to another country, re-settling - the whole ordeal.
Just putting that out there for those closely following the project.
I’ll try to get another dev log out by the end of June, before the chaos hits.
Sale
Asset sale wooo! I love spending $300 on Unity assets.
Not gonna lie - a few were impulse buys. But a lot of them turned out to be golden pickups that have already made my workflow smoother in meaningful ways.
Also:
Gore was removed and refunded due to a "copyright infringement issue."
First time I’ve ever seen that happen. Fine, I guess. No gore then.
Final IK is now in the toolkit - opens the door for inverse kinematics. I’ve played around with it a bit, but haven’t found a solid use case yet.
Animancer Pro, though? Absolute game-changer. It completely unlocked my cutscene animation workflow. I like it so much I’m considering migrating the player character animators over to it - though I’m holding off for now.
Why? Because Unity is supposedly dropping a brand new animation system in the next major update. If it really fixes the “transition soup” issue that plagues Mecanim, I want to at least give it a shot before committing to Animancer across the board.
New Hitbox Detection System
EnemyHealth and capsule colliders are no longer doing the heavy lifting.
Well - they still exist, but their roles are now more isolated:
EnemyHealthno longer handles damage detection.The capsule collider is now just used for navmesh calculations.
Enter: HitReceiver - the new system for receiving player attacks.
These bad boys sit on enemies and detect incoming hurtboxes and projectiles from the player, then forward the damage directly to EnemyHealth. Clean separation of logic.
Works like a charm.
This shift was necessary when I started working on projectiles that embed themselves into enemies and walls - namely, Kiwi’s meat cleaver.
It uses a surface-aware detection system based on a new class: ColliderHitProperties. Every physical collider is expected to have one.
When the cleaver hits something, it checks the surface type:
Hits flesh or soil? → It embeds.
Hits metal or stone? → It bounces off.
Pair that with surface-dependent VFX, and you get impact visuals that actually make sense. The cleaver doesn’t just hit - it feels like it hits.
And yes - it looks sick.
Design Philosophy
Entropy FM is built around a single principle:
Fragility drives meaning.
That core idea shapes how the game plays, how it looks, and what it tries to say - even when it whispers. The systems are sharp, the visuals constrained, and the world intentionally vague. You’re not meant to feel empowered. You’re meant to feel watched.
Gameplay Design - The Fragility Simulator
This is not a power fantasy.
It’s a fragility simulator.
It is surprisingly easy to die. That should come through in every encounter.
Most enemies go down in one hit.
So do you - unless otherwise stated, depending on each character’s resource system.
Every fight is a coin flip, unless you’re fast, focused, or cruel enough to cheat the odds.
Bosses and special units bend the rules. But not by much. Nobody is safe.
This isn’t about fairness. It’s about tension - that tightrope feeling, like the world could collapse under your feet.
Because in this world, even your thoughts can betray you.
But failure isn’t punishment.
There’s no “You Died” screen. No crawl back to the fight.
You respawn instantly. You try again. And again. Until you learn.
The mechanics serve the tone.
You don’t earn power by grinding.
You earn it by surviving.
Aspect Ratio - The Frame Is Lying to You
Entropy FM is locked to a 4:3 aspect ratio - even on widescreen or ultrawide displays.
Yes, that means black bars.
Yes, it’s intentional.
Three reasons:
Analog horror needs analog framing.
This is a game about decayed signals and dying tech. CRTs, broadcasts, magnetic noise. 4:3 isn’t a limitation - it’s an artifact.Visual consistency and balance.
On ultrawide displays, players could see offscreen enemies and cutscene content too early. That breaks framing and cheapens tension.Claustrophobia as a mechanic.
4:3 compresses your view. You feel boxed in. Trapped.
And because it’s implemented via dynamic letterboxing, the frame can shift. Shrink. Close in.
The screen itself becomes a narrative device.
The aspect ratio isn’t just a visual decision.
It’s part of the world.
And one day, it might betray you.
Narrative Design - The Signal Is Corrupt
This is not a story about saving the world.
It’s about what’s left when saving it stops making sense.
There is a broadcast. It reaches everyone, eventually.
Sometimes it gives you strength. Sometimes it erases you.
You play four characters. None of them are stable.
None of them are safe.
People forget things. Places change when you're not looking.
Names mean different things depending on who speaks them.
There is no codex.
There is no lore dump.
There is only what you see.
And what you remember seeing.
So Why Is It Called Entropy FM now?
The original title - Forgotten Memories - was never going to last. Too vague. Too safe. Too nostalgic for a game that punishes nostalgia.
For a while, I considered The Fortunate Four. But with the story I’m telling, that name felt too ironic. Almost cruel.
So: Entropy FM.
Not a location. Not a faction.
It’s a frequency. A parasite. A broadcast you can’t stop hearing once you’ve tuned in.
Sometimes it grants clarity. Sometimes it replaces your memories with new ones.
It isn’t a metaphor. It’s a mechanic.
The name isn’t branding. It’s a broadcast.
And like all broadcasts in this world - it changes you.
You’ll understand when the signal reaches you.
Polish
I’ve been sneaking in polish tasks throughout development - little things that add up:
Characters now look at nearby enemies (eye contact = violence).
Hero’s bar flashes when he’s in danger mode.
Blood VFX direction is now separate from ragdoll impact - cleaner, grosser.
Added a killbox for falling off cliffs… even though I’ve currently removed all cliffs. (Future-proofing?)
Ebo’s auto-aim got smarter - he can now target specific body parts like the dead-eyed automaton he is.
Failures & Known Issues
“Prepare to attack” pose didn’t land.
I tried implementing a pre-attack animation state - an upper body override that gets more pronounced the closer you are to an enemy - but it doesn’t feel right yet. Will revisit once I have more time to tune animation timing and transitions.Final IK still searching for a purpose.
I’ve experimented with it, but haven’t found a compelling use case yet. Once limb-specific hit reactions are in, I might use IK to drive real-time flinches. The old system had baked flinch animations - IK might feel snappier and more reactive.Environment design is currently an afterthought.
Everything’s still blockouts. Ironically, it feels worse to navigate than the earlier scribble-filled greybox plane. Will need serious polish later - right now, it’s just functional enough for gameplay testing.
Demo Night
I brought the game to a demo night in Boston. Stood there with my tablet like some kind of lab-coated scientist, watching people get wrecked in real time.
Most people seemed to enjoy it. Only two bailed. A few really liked it - not sure what to make of that yet. Didn’t blow socks off. But clearly not dog shit.
Anyway, here’s what I learned:
Immediate Priorities
Hero’s Blue Bar is Confusing
Most players had no idea what it was. Currently working on a rework that clarifies its function without spelling it out like a tooltip in an MMO.Swing VFX ≠ Hurtbox
A lot of people assumed the swing visual was the damage zone. It’s not. Needs cleanup - VFX must better align with what’s actually hitting.
Considerations
Slow Start
Game gets good once Kiwi shows up. Might need to tighten pacing before her intro so players don’t bail early.Maria’s Mini-Boss
Boss behavior is clunky. Sometimes whiffs entirely over the player’s head. Needs refinement on attack logic and hurtbox shape.Attack Clarity (Maria)
Some players didn’t realize Maria could attack - assumed she was a block-only character. Reinforce that right stick = universal attack.
What Worked (Double Down)
Kiwi = MVP
Everyone loves her feral playstyle and chaotic intro. Especially liked how her cutscene subtly teaches you to block by wrecking you first.Animated Dialogue Portraits
Strong positive feedback here. Players consistently praised the writing and the dialogue system. This is core - will keep investing in it.Core Controls Are Intuitive
Even players unfamiliar with the setup picked up the basics quickly. One non-English-speaking kid figured out Maria’s block just from design cues. That’s a win.
Other Observations
Creative Problem-Solving
Players approached rock enemies in three ways:Dodge and punish when grounded
Hit mid-air
Block and let them disintegrate
This was unplanned - but elegant.
Singularity Bug
One rock phased through the player. Happened once. Never again.
Quantum tunneling?
Finale
Thanks for sticking around.
I know this update’s a bit less packed than the last few - not much flashy stuff to show. Most of the recent work has been structural: time-consuming, necessary, and not particularly thrilling to write about.
But we’re close. Mechanics are nearly locked in, and that means polish is finally on the horizon. With any luck, the next dev log will bring updated visuals, improved audio, and a build that feels like the real thing.
P.S.
I launched a Discord server for Entropy FM. It’s still a work in progress, but the doors are open.
One cool feature: there's a channel that auto-posts my commit messages, so you can lurk and judge my productivity in real time.
Hop in, hang out, give feedback, or just lurk menacingly.
Just don’t spam. Or post porn. That should go without saying.







