14
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?
Little mobile apps that I can modify the source code for right on my mobile device.
A little simulation along the way towards boids.
Just to be transparent, I am copy/pasting a post I made for a reddit /r/roguelikedev post. It was meant to be a "2023 retrospective" type thing. If this is against the spirit/rules of this post then I would be more than happy to take it down or rewrite it when I have the time.
I am still looking for a community (preferably of other developers working on similar projects) that is not hosted on Reddit to further discuss gamedev, but most seem filled with Unity, Unreal, and Godot specific conversations that I cannot personally contribute to. I would be more than ecstatic to hear anyone's suggestions for such a community.
Codename: Empty
The still not yet playable text-adventure roguelike no one asked for.
Project Overview
Codename: Empty is weird mishmash of text-adventure, roguelite, and classic RPG that aims to create an easy to approach experience. Create your character by choosing your race, class (not implemented), and skills (also not yet implemented) and explore a world that teeming with both hand crafted and procedurally generated content.
Explore the woods and stumble upon a dangerous cave of wolves, follow the dirt path you wake up on and talk to the local town's people, or just spend your time signing up for fights at the arena while boasting about your accomplishments. You can explore, fight, and talk your way through much of the game, with things like your race, current health, or past achievements coming into play.
From the very start of the project, I have had three core points to keep in mind at all times. These three things, while not necessarily fully implemented, have dictated not just what features I implement, but also how I implement them. These "tenets" are as follows:
Lots of content - While this has not yet been achieved, mostly due to my focus on the underlying game systems, my goal is to have enough content in the game (both procedural and handcrafted) to fill a typical RPG. I want players to enjoy their experience if they play it only once, but also enjoy it if they replay it 50 times. The way I aim to do this is by including a "main quest" that is the focus, but also include lots of dynamic systems and side content that might be missed on a single playthrough.
Easy Moddability - From the get-go I wanted this game to be as easily moddable as possible. I see the success of Bethesda RPGs and attribute a fair portion of that to the modding tools that they give to their players. While I know that odds are I will attract 0 others with this specific "tenet", I feel that making the engine as moddable as possible leads to an easier time adjusting it for other uses. In my mind, if I end up losing interest in my fantasy setting or serious tone, I can easily mod my own game to be a jokey sci-fi romp.
It is free - Both the source code and the compiled versions of Codename: Empty will be free to download, play, mod, configure, redistribute, etc. I have already put a GPL-3.0 license on my repository, and hope that I can eventually contribute something worth using (or at least having fun with). I don't do this for money, I do it because I am passionate about it.
2023 Retrospective
I was really productive first half of the year, and then not productive at all second half. The woes of moving and changing jobs.
I also deleted a lot of my Reddit history during the whole API fiasco, so I have sadly lost a lot of my previous devlogs. After many months of ignoring Reddit, I have found that certain communities, such as /r/roguelikedev, just do not exist elsewhere.
Regarding Codename: Empty, I was able to implement a swath of needed, and personally wanted, features into the game. Just hitting the highlights, I was able to implement: NPCs like merchants and healers, dialogue for those NPCs, official mod support that scans for new "data packs", a vastly improved UI with clickable actions and text formatting, as well as a whole "infinitely" playable Arena area to the game, as well as squash numerous bugs (while introducing some new ones).
I finally (literally today) did a Pull Request to my main branch. This is the first one since August of 2022, and has literally over a years worth of work poured into it. I was attempting to not do a PR until after I hit the "playable demo" stage, but have realized I may never be happy enough to call it that. So, I decided to finally do the PR and will, in the future, do PRs much more regularly.
If you want the full rundown of all of the changes since my last PR, this link will take you to the very ugly commit notes.
I also, just in December, realized that I technically had a full "game loop" implemented in my game. It is not as fully fleshed out as I would like, but it is technically a loop. It is simply, explore, fight, react to events, shop and heal with NPCs, get rewards, repeat. It is still missing things such as levelling up, dying, and questing, but I am super excited that I am beginning to see an actual game emerge from the mess that is my spaghetti code.
Plans for 2024
Without sounding like a broken record, (because I said this last time,) I want to get a playable demo out by the end of the year. I still need to implement some required features, but those should be pretty straight forward. The only other thing I need to do is rewrite my quest system to use some QoL features that my Event and Dialogue systems use such as grabbing player queries instead of doing long "if/else" loops.
I also want to work on my documentation, but outside and inside the source code itself. I created an initial markdown file going over how to write NPC dialogue files, but the goal is to have those for every type of data used in the game's "data packs". I also want better in-line code comments, as many sections of my code are not up to open-source standards.
GitHub
You can look at all of the source code for my project on my GitHub Repository.
I've also been using GitHub's issue tracker to keep track of all the features and changes I still need to make to the game, so feel free to look through the projects tab to see what updates are planned for the future. Anything in the "In Review" column is in the Nightlies branch, just waiting for final review to be pulled in to the mainDev one.
I strongly recommend that you don't try playing the game yet. Player death, for example, has not yet been implemented into the game. I just really don't want you to play a version of my game that will leave a bad taste in your mouth.
Still perpetually working on my static website generator that converts markdown to HTML/CSS. I'm dangerously close up having RSS feed generation implemented.
RSS is great to have! A lot of people (me included) consume majority of the content via RSS readers.
Which reminds me, that I should probably work on implementing this in my own SSG lol.
That sounds like the type of thing I’d love to use for my own personal site! Is your tool generating a single html file per markdown file fed into it, or is it more of a front end thing where it dynamically loads the markdown file and makes it readable on browsers?
My apologies for the very late reply to your comment. It essentially generates a single Html file from each Markdown file. It only produces Html and Css, no Javascript.
It's currently in working form if you're curious to look at it, and I use it to generate my own personal website.
Here is the Github repo: https://github.com/benpocalypse/Markerator
And here is my website: https://bengineeri.ng/
I've currently got an automation up and running so any time I push a change to my Markdown files, Github will pull the latest version of Markerator, build it, and then push out the results. Took way longer than I had hoped to get that working.
While trying to keep my sanity in a house with three kids (two of which are not my own), I made this: https://github.com/hxii/TaskRunner
I mentioned about it in a previous similar thread, but now decided to make this little tool public.
It's stable enough for me to use it, but could most likely be written much better. ¯\_(ツ)_/¯