Mikko Mononen
mikkomononen.bsky.social
Mikko Mononen
@mikkomononen.bsky.social
Coder and woodworker. Author of Recast&Detour and NanoVG. Previously at Epic Games, Unity, Tinkercad, Crytek, demoscene.

https://github.com/memononen
Really cool! The Reference Viewer in UE also showed what referenced the selected asset, which was super useful when trying to understand who is using an asset I created asset. And a little bit coloring goes a long way to quickly differentiate categories of assets.
January 20, 2026 at 6:48 AM
Many articles attribute the shape of the SDF->alpha to gamma, but it's the filter shape. "Random-Access Rendering of General Vector Graphics" goes into some detail (spoiler: linear is box filter, smoothstep is tent filter).

But I think there's stills something extra for the coverage->alpha part.
January 19, 2026 at 9:27 PM
Out of frustration I even tried using oklab for AA blending, but it does not look good (some contrast ratios get pixelated outlines).

I hate all those articles/comments that claim that everyone is doing it wrong, but fail to show how it should be done.
January 19, 2026 at 9:27 PM
Looking forward to see your final article! I've been looking into the blend/AA recently for Skribidi, and it's such a messy topic.

My hypothesis is that AA is not alpha blend, there's something about the coverage vs opacity that is different.
January 19, 2026 at 9:27 PM
(in case you werent sarcastic) It's loupe. You can use it to preview photograph negatives on the lighttable. Yeah, floppydiscs.
January 15, 2026 at 7:42 PM
If you have pools of objects, and their deps do no cross, you can update them at the same time. And that also allows you to gradually build up more complex scheduling if needed.
January 15, 2026 at 8:21 AM
Another simple detail that can be lifted from ECS is that all update dependencies are define up front. That should include global managers/subsystems. On a bit more generic systems it allows you to skip of a validity checks.

It also paves the way for parallel updates.
January 15, 2026 at 8:21 AM
Reposted by Mikko Mononen
Hell yeah! Technically that one’s a Zoo, I gave a talk about them at GodotFest last year: youtu.be/uNyswn-Oct0?...
Robin-Yann Storm: Gyms, Zoos, and Museums: Your documentation should be in-game
YouTube video by GodotFest
youtu.be
January 13, 2026 at 9:06 AM
This is fun too :)

enum { Flag_Preview = 2 };
warning: enum constant in boolean context

enum { Flag_Preview = 1 };
<no warning>
January 13, 2026 at 6:40 PM
What if... you use the top one, but keep the string from the bottom one (maybe log it so that it does not get trimmed out).

I once had an issue where older bug was triggering (reading past a buffer) because I added a string, which caused the garbage to be read to be not a small number anymore.
December 18, 2025 at 9:21 PM
Does N64 have alpha test you could enable? IIRC it also had some dithering mode thing, does that affect the result?
December 12, 2025 at 9:01 AM
Also... links are not toggled off like bold, but there's often UI to clear the whole link span under the cursor.

On top, I made some assumptions earlier that made the data juggling harder than I liked. You just don't randomly add a string in C.
November 13, 2025 at 9:17 PM
Can you bevel edges non-destructively in halfedge? Like subdiv, but bevel marked edges.
November 11, 2025 at 6:33 AM
That was mostly driven by the teams doing profiling, so not the kind of detain you need for replication.

Making everything deterministic in UE is likely impossible (never say never :), but I think in the context of fighting games, the Mover stuff should get you pretty far.
November 7, 2025 at 9:46 PM
The Mover module is similar in spirit: dev.epicgames.com/documentatio...

It does rollback networking for the character stuff, but not for the whole system. There was quite a bit of push to make the system more deterministic during my time at Epic.
Mover in Unreal Engine | Unreal Engine 5.6 Documentation | Epic Developer Community
Create movement with rollback networking support in Unreal Engine.
dev.epicgames.com
November 7, 2025 at 9:46 PM
If you have Rubik's cube like tessellated shape, and bevel a middle edge ( +---+-M-+---+), then B might leave quite sharp transition. Though, I could image someone really wanting to do that to create a ramp :) Smells like option thing.
October 30, 2025 at 6:33 PM
I like that the sort allows "parallel" arrays, I've had that that need quite a few times recently.
October 29, 2025 at 1:59 PM
It's been a good exercise to try to get the editor modification API figured out too. Not quite there yet, but some progress.
October 29, 2025 at 11:35 AM
I think some systems also has time based drag, as in, long press will start drag.
October 22, 2025 at 3:28 PM
Windows has DragDetect() which uses the OS setting. I tend to use 5, because i'm lazy.
October 22, 2025 at 3:07 PM
Not sure if it's your cup of tea, but it also allows node descs to be adlibs, like "Add vertex (V) to mesh (m)".
October 22, 2025 at 5:59 AM
The manual binding can be a bit clickety-click, but with local scoping like yours, it can be a big win.
October 22, 2025 at 5:59 AM
I made data binding thing for state tree (machine) in ue. The data was defined in (nesting) scopes, and some common things were auto bound based on name similarity (eg actor the node affected). You could also manually do the binding.
October 22, 2025 at 5:59 AM