13
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?
Hey, all! I'm still working on my game. I haven't had the time to participate in this thread in a while, but now that I have some time, I wanted to share some updates:
Curse Mixing Mechanic
So I have this mechanic where you can apply "curses" on enemies. They don't do anything by themselves (I should probably change that), but when you mix two different curses, you get an effect! I've been working on this for a while, but I've only finally come up with a way to manage them in a sensible way - which is by making each word a keyword (or a curseword, if you will). Here's a little diagram showing the different curses and their combinations:
https://imgur.com/OqIP2kj
Prior to coming up with this keyword naming scheme, I was really just making things up as I went and didn't have a good grasp of how to go about pairing curses together.
Here's some of the effects in action - the last two videos were before I thought to name them by keyword rather than by color:
Level Editor
I also have a level editor for a hexagonal grid that I recently updated. The process used to be super tedious, so I updated it in a way that lets me "paint" things into a level. Here's what it looks like:
There's actually a built-in hexagonal tilemap feature for Unity, but I found it super limiting and didn't jibe with the coordinate system I wanted to use.
Classical AI Updates
I'm not talking about LLMs, just good old-fashioned gameplay AI. I recently started creating levels with more enemies in them, and I discovered a few bugs with pathfinding and decision-making.
Here's one where if an enemy couldn't find a path to you, it would just attack you from afar: https://imgur.com/TyRNeWo
I came up with a fix about a month after I discovered that bug. Now the enemies would:
Here's what that looks like: https://imgur.com/Nq2WXtF
I also found issues with my ranged attackers - they would do nothing if there was no clear path to the player. They were also super simple and naive - they'll just stand where they are and not move unless the player is out of range. I updated them so that:
Here's how it looks like now: https://imgur.com/0vKoYZZ
Personal Task Management Woes
I hope I'm not alone in this but... when I make one of those checkbox items on Obsidian, I tend to lose track of them, especially when I jot them down on a daily note. I've been trying the Tasks plugin for Obsidian (from here: https://publish.obsidian.md/tasks/Introduction) which has been pretty fun to use. It will try to find all checkboxes in all of the notes of your vault and collect them into a list. It also has support for task schedules, prioritization, and scriptable filtering/sorting among other things. I like it!
⚠ A word of warning, you MUST specify a global filter if you don't want your Obsidian to crash on you, if you happen to be someone with a lot of checkboxes littering your vault. I made the mistake of ignoring the global filter (the instructions tell you it's a good idea to use it, I was foolish), and I had to edit a markdown file with another text editor to get rid of the issue haha.
If you made it this far, thank you for your time!
Continuing to work on https://gametje.com with a new game and fine tuning it. I spent the last week or so creating a blog using Hugo. It was difficult to pick out a theme I liked but I found a simple one which suits my needs.
Here's a link to my first proper blog post: https://blog.gametje.com/posts/2025-03-06/ which discusses the new game
Sync Think
and some of the design challenges. If you want to try the new game, you'll need to sign up and toggle thealpha tester
checkmark. Looking to get it out of alpha soon.Blog looks great!
I have been making some good progress on my diy MP3 player project. I have made a python class that can read in all the inputs from my clickwheel using the GPIO pins. Now I am modifying the codebase of the original app that I am forking from using an iPod clickwheel to my modern equivalent. The original code had the application written in Python and the clickwheel driver in C, with them communication via sockets. Since my clickwheel code is written in Python, I am trying to have it not communicate over sockets. I think my buttons are properly coded into the spotify application, but the clickwheel rotations are not coded yet. I tried testing by deploying the code with only the buttons working, but there seems to be an issue with either my modifications, I deployed it incorrectly, or the original code no longer works with Spotify.
My next step is to create a clean install of piOS and try deploying the original code to see if that is working. Part of that process will involve be configuring my screen and other features of my pi again. Therefore, I also want to create a snapshot of my SD card before installing the original codebase, so that I have an easy snapshot to revert to when I want to switch what software I am deploying in the testing process.
Edit: Another thing I have been working on is creating a portfolio website to hopefully start doing some freelance work. I have not realize in the past couple of months how much my web development skills have atrophied, in that I am finding I am googling basic syntax a lot more than I did a year ago, so probably a good thing I have started this back up again.
Edit 2: I have gotten the original code to work now. I originally deployed it wrong, so now that I have successfully deployed it, I should be able to easily deploy my own code, and then start the debugging mess on my code
I have the program working roughly with it taking all inputs from my clickwheel. I now need to clean up the code and start the debugging process. The first bug to tackle is to get it to properly auto launch, which will make further debugging a smoother process. Once I get some of these major bugs worked out, I will create and share a demo video.
Here is a picture showing the current state of the hardware with the application running. Currently the HDMI cable and USB cable are needed to help launch the program as auto launch is currently not working. Once that is working, neither of those cables will be needed. I also still need to configure my usb dac/amp, but that is a simple process I have done already earlier in the process. I also still need to get my battery connected, which I have a charging controller for a 14500 battery cell, I just need to buy the battery itself still (which I am hoping I can locally source).
Edit: I have it auto-launching now, which will help me in debugging as it will be quicker to deploy the code once I have a fix I want to test
Edit 2: I figured out the worst offending bug is due to a project dependency changing. All calls to the Spotify API are handled using the Spotipy package, but it appears that it hs been reworked since the version my project was using. The functions being called in the program are not in the documentation, so I will need to rework some of these deprecate methods with the newer versions. Overall, the project I am forking seems to be lacking documentation so it is giving me experience in taking a large codebase and having to figure out how it all works together.
sigh It's something to do backend when you don't have a whole lot of control over the front end. It requires you to hack in ways I really really don't want to. As a way to fend off frustration, I'm now going to begin writing lyrics based of '2 days into college'. Because man.