• he/him

Coder, pun perpetrator
Grumpiness elemental
Hyperbole abuser


Tools programmer
Writer-wannabe
Did translations once upon a time
I contain multitudes


(TurfsterNTE off Twitter)


Trans rights
Black lives matter


Be excellent to each other


UE4/5 Plugins on Itch
nte.itch.io/

posts from @Turfster tagged #coding

also: #software development, #programming

So Windows has a GetKeyboardLayout function that returns:

The return value is the input locale identifier for the thread. The low word contains a Language Identifier for the input language and the high word contains a device handle to the physical layout of the keyboard.

Cool. Great. Fantastic.
That'll give me exactly what I need to see if something is QWERTY, QWERTZ, AZERTY or Whatever.
Right?

Well... No.
I know, I was just as surprised.

The French being, well, French, have their own AZERTY layout, while the Dutch, wanting so desperately to be American, stuck with QWERTY.
Fine. Whatever. These resolve as expected.

Enter Belgium, the tiny country sandwiched between France and The Netherlands.
Being about 60% Dutch-speaking and 40% French-speaking1, of course the Belgian keyboard layout is AZERTY as well.2

And this is where the fuckup happened.
Because what does GetKeyboardLayout return for one of these?
Go on.
Guess.



wavebeem
@wavebeem
  1. 1️⃣  This is impossible and we should stop trying
  2. 2️⃣  OK it's just extremely hard and not worth it
  3. 3️⃣  Nevermind I just fixed it

Turfster
@Turfster
  1. This'll be easy!
  2. Oh. Hm. This is not easy. Whoops, another rabbit hole.
  3. Oh. This is impossible without rewriting everything because of a legacy decision someone made a decade ago. Cool. Time to walk into the sea.


hthrflwrs
@hthrflwrs

my deepest darkest gamedev secret is that i actually don't think ECS is very good. there's nothing Wrong with components, but in my experience pretty much every use case that requires them can also be implemented with inheritance/interfaces. the resulting architecture is more rigid, but rigidity can be leveraged in some really powerful ways. anything you can't change becomes something you don't have to think about changing


hthrflwrs
@hthrflwrs

ECS is an inherently mushy architecture, and the worst thing that an engine can be is mushy. this is my firmly held belief


Turfster
@Turfster

I agree with the premise (ECS can get very messy and inefficient really quickly), but I'm just going to flag that an important thing we shouldn't overlook is that its introduction and wide adoption made it much easier for everyone-that's-not-an-experienced-programmer to create games and more freely experiment by constructing new things from existing prebuilt pieces.
(and also freed up team programmer time for other things, I guess, as a positive side effect? Maybe only needing to do some rewrites when the Designer/Artist Frankenconstruct gets too expensive...)