site banner

Tinker Tuesday for September 23, 2025

This thread is for anyone working on personal projects to share their progress, and hold themselves somewhat accountable to a group of peers.

Post your project, your progress from last week, and what you hope to accomplish this week.

If you want to be pinged with a reminder asking about your project, let me know, and I'll harass you each week until you cancel the service

2
Jump in the discussion.

No email address required.

The refactoring worked! I'm taking a goddamn battleaxe to the import code, it's amazing! It's so good I'm wondering if I'm retarded for not having set everything up this way from the get-go or if it's "just make it exist first, you can make it good later" working as intended. If it's the latter, I'm still a bit salty with myself about not planning it out right, as I already have ~50K Tweets stored, so I have to write a script to migrate them to the new data structure, but I suppose better this than the paralysis-by-analysis that I'm prone to.

How have you been doing @Southkraut?

Thanks for asking, as always.

I had an opportunity to sit down for about two hours, uninterrupted and not dog tired, and lo and behold that actually let me take a good enough look at my codebase to figure out what I was doing wrong. It wasn't Unreal's fault after all. Of course not, in the end it's the world's most successfully used game engine, of course it works and it's the user's fault. I had simply botched a refactor and dropped a few lines that ended up missing entirely.

So I went on, thinking hey, now I can finally do something moderately creative! But hey, what's that, my projectiles don't collide with terrain or other geometry. Let's check...colliders look okay, meshes look okay, movement components look okay, what's going on here...

...as it turns out, it's Unreal's fault. Apparently ProjectileMovementComponent doesn't detect collisions if the collider isn't the actor's RootComponent. And I had written a custom RootComponent that I put in charge of situationally instantiating subcomponents, including said collider and the MovementComponent. Sad. So my options now are:

  • Always make the collider the root. But that leaves a blank spot for actors that shouldn't have a collider, and they'd have to be treated differently. But I guess I have to do that anyways.
  • Let my custom RootComponent inherit from collider. Wait, no, that won't work because there are separate collider classes for each primitive shape. And also doesn't account for acotrs that shouldn't collide.
  • Write my own MovementComponent that doesn't require this specific setup.
  • Attempt to fix Unreal's MovementComponent and hope they accept my changes, most likely only to learn that it has to be the way it is and I am abjectly ignorant of the many good reasons.

So I'll probably have to write a bunch of extra code to differentiate between actors with and such without a collider. Annoying.