8
votes
What programming/technical projects have you been working on?
This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?
These are not very technically-complex, but are programming-related:
I am using both of these resources to help teach and mentor members of a free and open hacker/programmer collective I founded called the Electric Hive.
Some progress on making Gurlic's backend use the matrix protocol. Current challenges are mainly lack of time, and a long backlog of Gurlic feature requests and bugs to fix, which doesn't leave much time to work on the matrix move. Took me a while to wrap my head around the Matrix spec and figure out which bits work best for federated communities. The slight inconsistencies in the client/server implementations also tripped me up. Anyway, will report back when I have more.
I made a modest contribution to my video editor of choice, kdenlive. https://invent.kde.org/multimedia/kdenlive/-/merge_requests/163 It was accepted and merged, too.
I tend to go in circles on my side projects. I'm back to working on tilings. This time I'm working on Wang tiles. I haven't yet tried to generate an aperiodic tiling, just a tiling that is non-periodic within the window I'm looking at. It's been an interesting read about them. It turns out they're really useful in games for generating non-repeating terrain out of a few small bits of terrain.
I did it! I've been thinking about a problem for a pretty long time, I posted about it a while ago here: snip. After months and months of tinkering with the API, trying some way too complicated ways to solve this problem and failing, I finally released version 2.0 of my input library for MonoGame. Apos.Input
It's a polling-based input library. I managed to solve the problem of handling input conflicts. The solution was to add a tracker. For example:
Then you can poll the inputs wherever it seems most appropriate in a game loop. When run is triggered, walk will never trigger.
Before, the code to do the same thing looked like (but not as well since specific inputs weren't tracked):
Every function in my game that processed an input needed to pass that
isUsed
bool around. It made inputs really awkward because a single input consumed would block all other inputs for the rest of the frame even if there wasn't really any conflict.With the tracking system, I don't have to manage any of that. It's all seamless. It looks really simple, but that frees my code base from the input cancer.
I've also restarted streaming consistently on Twitch and YouTube. Tomorrow will my 200th gamedev stream!
I've been spending the last month or so slowly working on a Virtual Tabletop tool in Godot. I started playing D&D 5e in about October or so, and am in 3 campaigns now, of which I host two. Needless to say, I quickly decided I wanted to automate stuff, and what with none of the available VTTs being ideal for me (D&D Beyond's tools are alright at least) I made my own.
It's extremely barebones still, what with how I'd had no experience with multiplayer development at all until this point, but I did recently reach a first usable version recently that has decent chat and dice-rolling support. I'm not sure how far I'll take the project – it's more of a for-fun hobby project than anything right now – but I'm hoping to get somewhere decent with it sometime. Livestreaming Inkscape over Discord is only so effective, after all!