Mikko Mononen

Coder and woodworker. Author of Recast&Detour and NanoVG. Previously at Epic Games, Unity, Tinkercad, Crytek, demoscene.

github.com/memononen

@bubbline for entity data, i would recommend Scott Bilas old presentation, you can find it here: en.m.wikipedia.org/wiki/Entity

It's from the time before ECS meant data oriented design, and i think it has a point on composition and data inheritance that is a bit lost on the new ECS stuff.

Luxe engine blog has a bunch of articles on their entity system. Unity has some low level presentations on their system, and i think Rune blogged something about it too runevision.com/

@ocornut @dougbinks @zeux i think there's a niche in the imgui world where skribidi could be useful, eg a localization or a quest editor. i think in that case choosing to use more expensive and complex widget can be justified.

I was sketching out requirements for skribidi backends the other day, and imgui backend was on my list of things to look into.

I would like to find a respectful way for the projects to work together. Things can easily turn into support hell for everyone.

@lritter Yes it did, thank you!

@lritter i'd like to understand what the quote means. Is it scopes specific, or some generic term? Tried googling, but nothing useful came up.

@logicalerror it kinda wants linger on your tong, doesnt it ;)

@PythagoRascal @JamesWidman @aras probably a lot of backwards compatibility stuff, and it has also API to get font metrics, glyph outlines. Metrics needed for font selection and layout, glyph stuff for rendering.

@JamesWidman @aras It is smaller (if that matters), and also code for figuring out the bidi runs and word/line breaks.

@aras Really cool, thanks for sharing!

@floooh That looks simple indeed! I like how that does not require the tag or flag.

In my case the union version is like 24B and everything spelled out is 128B. One one hand I could make things a bit more restricted, and just allow one spelled out version, or I could make things flexible and have the tagged union, and some more memory being used.

Sometimes I like these riddles, sometimes I dont :)

@floooh Do you have recommendations for tagged unions in C API?

I have a case in skribidi (styling github.com/memononen/Skribidi/) which is a good fit for tagged union.

I did see that you reverted some union use in Sokol in a "bindgen preparations" CL way back in 2020. Smells like a minefield for language interop?

In my case I would be fine having a function for initializing the whole struct, or having a getter function to poke the specific struct out. Sort of opaque value struct :)

@floooh at epic we used to have a setup locally which allowed us to compile with Windows clang. That caught like 99% of the issues. That was mostly complex c++, but still having quick second opinion was good for workflow.

My skribidi issues so far have mostly been ifdeffed sections of code and headers.

@floooh after faffing around with act, and it failing, i'm very inclined to try to get docker or wsl going and just run cmake there. And write that python script that does compiles and run tests. There was no free lunch.

@floooh this setup looks promising for my lazy ass :) I'll give it a go.

@floooh That would be awesome. My lame excuse is that I just have particularly short fuse when it comes to figuring out build systems :)

I thought I had used the github checks "locally" (as in via the desktop app) in the past, and it seems like they kinda work for PRs: docs.github.com/en/desktop/wor

Is there a way to run github CI from the desktop app before push?

@osor_io @aras Really interesting write up, thank you! A lot of really interesting details.

I looked into atlasing just recently, and your approach seems really nice. I have to try it out one day.

In skribidi, I have normal antialized and SDF rendering, as they are useful in many situations, but I also set things up so that rendering the glyphs on GPU to atlas, or to screen is possible.

@rygorous @nothings Nope, not caring :)

One recurring thing in my quest to understand this whole text thing is that so much of the information is lost. And it was like 20yrs ago when this things was getting figured out.

Like this article: web.archive.org/web/2004121201
So many small little things. Gone.

I'm glad, though, that the old APIs are getting forgotten :D

@nothings I just started looking into it today: bsky.app/profile/mikkomononen.

I'm trying to steer away from the platform abstraction stuff, but I will support the mini composition editor for the editor.

So far poked at the (old) win IME API, and holy smokes it's sketchy.

I have only tested the windows own japanese editor, and based on some browser sources there's interesting ones out there.

@nothings The dependecies in this space tend to be big. Harfbuzz, FreeType, and ICU. That is sort of the baseline for my "fairly lean" claim :) HB is hard to avoid.

Unicode and OpenType stuff is a lot of different things and rules and tables and what not, so there's a lot of inherent complexity.

I looked at some alternatives, and one of the most interesting one was Hamza: github.com/saidwho12/hamza

In some cases it does too much, and some cases too little. Seems inactive.

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst