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?

7 comments

  1. xnaas
    (edited )
    Link
    A little of this and a little of that. I updated Bandcamp Volume Control and published it to the Chrome Web Store (previously only on AMO) and updated the documentation so people can build it...

    A little of this and a little of that.


    I updated Bandcamp Volume Control and published it to the Chrome Web Store (previously only on AMO) and updated the documentation so people can build it themselves. — Thanks to a user on IRC (many moons ago!) I was able to discover that you need node 10.x to build this because it uses some specific crap that broke in later versions. (I forked this project and updated it, I did not write it.)


    I think it's probably a stretch to call CSS programming, but it did feel good to finally take some of my random shit I've done in Stylus and push somewhere other than my browser. I made themes for TeslaMate, Caddy's "browse" (similar to nginx's fancyindex), APOD, and touched up someone else's work on TVmaze.

    I still have some more I need to touch up and publish, but it's a start.


    I've done a lot of work on my custom plugins for the Sopel IRC bot. The vast, overwhelming majority of it is on custom.py which is really hyper-specific to my community's IRC server, but I did also add some stuff to nsfy.py recently so it can also do some specific Reddit scrapes. Up next I'll have it so users can put in their own search terms and what not so there's some more variety. Also probably imgur/google images scraping or some such.

    Someone also pointed me towards autopep8 so I can make everything (other than custom.py) actually readable to people other than myself. :P

    Edit: My crowing achievement today was probably getting (almost) all of Smite VGS in the bot: smite_vgs.py

    3 votes
  2. ahq
    Link
    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...

    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.

    3 votes
  3. opheron
    Link
    These are not very technically-complex, but are programming-related: I released an updated version of the Waggle Dance, a guide to learning programming I wrote to help others. I released the first...

    These are not very technically-complex, but are programming-related:

    1. I released an updated version of the Waggle Dance, a guide to learning programming I wrote to help others.
    2. I released the first version of the Rust Starter Pack, which is a collection of resources to help people learn Rust.

    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.

    3 votes
  4. joplin
    Link
    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...

    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.

    1 vote
  5. Apos
    Link
    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...

    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:

    ICondition run =
        new AllCondition(
            new KeyboardCondition(Keys.Shift),
            new Track.KeyboardCondition(Keys.Right)
        );
    ICondition walk = new Track.KeyboardCondition(Keys.Right);
    

    Then you can poll the inputs wherever it seems most appropriate in a game loop. When run is triggered, walk will never trigger.

    if (run.Held()) {
    
        // Run while the buttons are held.
    
    }
    if (walk.Held()) {
    
        // Walk while the buttons are held.
    
    }
    

    Before, the code to do the same thing looked like (but not as well since specific inputs weren't tracked):

    bool isUsed = false;
    if (!isUsed && run.Held()) {
    
        // Run while the buttons are held.
        isUsed = true;
    }
    if (!isUsed && walk.Held()) {
    
        // Walk while the buttons are held.
        isUsed = true;
    }
    

    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!

    1 vote
  6. LukeZaz
    Link
    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....

    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!

    1 vote