added some autogenerated cpp files with gigantic dictionaries of game data. now instead of 20 seconds it takes 4 minutes to compile.

unsurprisingly Windows scheduler became even worst and trying to sleep a thread for 33ms is impossible in my Ryzen. 46+ms always, if asked for 16ms its 75% of the time 30ms, 25% 16ms.
I read I have to set the affinity of each thread for this to work but whats the point of the scheduler then?

so my visibility and subscription system works fine, can see other players when in range and start receiving movement updates.
another important milestone achieved

Show thread

I came up with a subscriber system to keep track of which players require network updates when some entity changes its state. not the best thing in the world but for now it seems to work ok without wasting extra memory.

trying to integrate nanoflann into the game server to manage players visibility through kd trees. if it works one less problem, and a big one.

after 5 months of work my game server emulator finally let me go in-game and see the map and my character. very cool milestone

in-process orchestration is as complex as multi-machine orchestration, but at least you know all 'nodes' are gonna be there.

never start writing code without a plan boys and girls, your future self will appreciate it

Show thread

next step, the Context! (the map instances, the actual gameplay).
before writing a single line of code I use my trusty whiteboard to design a decent architecture to fit every piece.

just tried @godotengine in my @postmarketOS pinephone with a small game I made and it ran perfectly fine.
Just had to specify the phone resolution and maximize it.

But first im gonna rewrite the test bot to do some stress testing of both authentication and queue servers.
I don't think the CCU will be huge, but that isn't the point of this project anyway.

Show thread

managed to finish the lobby today (character creation, deletion, selection). Next step is the actual "game" server that manages maps, npcs, gameplay, etc. Gonna try and do some fancy ECS for it.

aren't values in MariaDB hard typed? why C libmariadb only lets me retrieve data in string format?

my Pinephone Convergence Pack just arrived!
the DHL guy enjoys coming early while i'm still sleeping

Whats this? a DHL notification?
Pinephone is coming \o/

Accustomed to closing the client and servers the hard way during development I totally forgot to handle graceful disconnections and went crazy trying to understand what was going on. And I call myself a network programmer, ha.

the same field using uint64 and uint32 in different places. what a horrifying view.

reached an important milestone tonight in my game server project, time to sleep.

programming sleepy, fighting both the code and my eyes.

Distributed systems and massive orchestration is fun (and frustrating).

Show thread
Show more

Fosstodon is an English speaking Mastodon instance that is open to anyone who is interested in technology; particularly free & open source software.