10
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?
I'm reworking my pathfinding algorithm. Figured out a new way to implement it. It's a real space pathfinding algorithm or also called any-angle path planning.
I made a video to explain the general idea a while ago: https://www.youtube.com/watch?v=UbMAoXffbY4. With my new findings I'll have to record a new one.
Recently I've been remaking my game's map editor, making it a lot more responsive. Decided to revisit the pathfinding and I found a more efficient way of using the data from my space optimization pass. I'm also doing some optimizations like picking better data structures.
Would be nice to eventually write a research paper to explain what I'm doing in details and compare it to other similar algorithms.
Been streaming my development on Twitch.
That's really neat! I've been toying with the idea of making a small game engine for fun -- not sure if I want to actually make a game but making an engine seems like a fun hobby project. I stumbled my way into this series on implementing an ECS and now I have some ideas if I were to write my own.
Also, did you make your own art/music? Your game looks really good, I love the aesthetic.
Thanks! A bunch of my friends made their own ECS too. For example: https://github.com/pandepic/ElementEngine/tree/main/ECS. Making engines > Making games. 😅 In the MonoGame discord, there are many people sharing their work and helping others, some don't even use MonoGame, but the dev community there is really hardcore, making nearly everything themselves.
The art is done by Domen Kozelj, music is done by Mike Skalandunas.
Originally I was doing everything myself, but at some point my scope grew and I realized it would take me too long to do the art and music and it would still look less good than what pros can do.
Here is some art I did myself before:
All of those took me a lot of time and they still look like programmer art. Then I get Domen Kozelj, we speak for a few weeks and then when he does draw something, he does this one within the first day. It's a completely different league.
The idea for my game is that you're on an alien planet where there's a massive volcano. The volcano is so big that all life has evolved to use the volcanic energy in some ways. For example the trees have free flowing lava inside of them. In different areas, the lava can burst out creating explosions. In my game, you control a little creature running on top of the trees trying not to get exploded.
It's a top down rhythm puzzle game where obstacles are repeating loops. You learn the patterns, figure out the safe spots and then you can keep moving forward.
I've been working on a command line epub library/reader for the past two weeks.
This is a redo of a project I worked on at the start of 2020 to read stories from fimfarchive (an archive of stories from the My Little Pony fanfiction website Fimfiction that updates quarterly).
Description of the old project and what went wrong.
The main features of the project were:
I had initially made it command line only, and it worked great, but then I made the mistake of deciding "I'll just quickly add X" multiple times and ended up with a massive mess in the end.
Things I added:
So along the way I had to do multiple refactors and the application was frequently in an unusable state.
To try to cut down on the build time for people that didn't want all the bells and whistles, I split the project into multiple parts and set which ones get imported/used at build time.
Because of the way I had set up the initial command line client, I struggled with issues of where things were declared/which modules were optional and ended up splitting things up even more instead of reconsidering the idea to split it up how I did.
In the end, it became ten different modules, and any changes/new features usually required modifying at least half of the modules to make the changes and keep the others from breaking.
After a while, I got tired of the amount of work I was putting into it for something that was tightly coupled to one specific project, which was in turn tied to one specific site.
I had been planning on writing a self-hosted writing/reading site tailored to fanfiction, so I decided to work on that instead and then make a module to import stories from fimfarchive into that.
Then 2020 happened, and that project got put on hold too.
About two weeks ago, someone on the discord for fimfarchive was asking about getting a copy of the old project because they wanted a way to read stories from the archive.
That motivated me to take another crack at it, but this time I'm trying to avoid the things that worked against me last time.
Instead of tying it to fimfarchive specifically, I'm making it a general epub library/reader with modules to search archives and import books from them into the library.
Instead of trying to split things up to a ridiculous degree to work around the weird architecture of the initial app, I'm doing an imitation of The Elm Architecture and if I end up wanting to split anything out, the module and its use in the main module will be all that needs to be wrapped in a build time option.
What I have implemented right now is:
Right now working on adding the searching/import of fimfarchive stories and after that I'll do the same for Project Gutenberg.
This is hardly technical, but I wanted an iOS shortcut that would play some music then, after a short delay, play some music if I pop my phone on a charger after 11pm.
Under Automation
iOS shortcuts are neat but unnecessarily complicated when it comes to the timing.