Just-In-Janurary
Welcome back, it's been a while. First off, I hope you all had a good festive season and that January hasn't been too chaotic for you.
I've been keeping busy as usual and I saw it was nearly the end of the month so I'm cutting it close with this post.
Oh well, better later than never.
In this post I'm going to go over:
- Changes and upgrades to my homelab
- A small economy sim that I wrote over the Festive break
- Burn out and breaking the cycle
- MultiMall
- Finally, I'll be going over some up coming things for 2026. So... What are we waiting for? Let's dive in.
HomeLab
As I mentioned in my last post, I mentioned that I had build myself a small home server out of a Raspberry PI 5.
Well that server has been ticking over quite nicely just running a NAS and CoreDNS. But why shouldn't it do more things? It's sat idle 99% percent of the time anyway.
Truth be told, I wasn't aware that it was sat idle not doing anything, or to put it another way, it was completing all of the simple tasks I was throwing at it.
I wanted a way to be sure if my assumption, reading the results of htop can only get me so far so it's now running a Beszel Dashboard which shows me loads of useful stats.
It also allows me to get metrics from other computer systems I've got running. Nothing too crazy at the moment just the PI itself and a Digital Ocean droplet that this site is hosted on.
But having all my stats in one place is definitely a valuable resource, I'm also enjoying just checking the dashboard from time to time and seeing the state of my digital kingdom.
Along side Beszel it's now also a Jellyfin server, I'm sure you've all seen various videos or news stories about 'Digital Sovereignty' or similar 'New Rise of Piracy' stories.
I'm from a time where media was released physically. So over my lifetime I've gather up a rather large (to me anyway, talking GBs of Data not PB) collection of DVDs, CDs, Blue Ray, 4K Blue Rays and Vinyl records.
As time has gone on however I've found myself checking in with the Top 40 hits less and less and just listening to my saved music, Watching movies I enjoy has morphed into whatever new series Netflix is pushing and playing Xbox Games via a subscription service.
What's changed is, one, my taste, I don't need to see every TV show and film that gets released, I don't need to have access to every song ever released and I don't need access to 100's of games I'm never going to play (I've got a steam library to fulfil that void). Secondly I don't actually own those things any more and if the company decides that they don't want to carry it then I don't get to watch/play/listen anymore.
To combat this I've been digitising my collection and putting it up on Jellyfin, one mkv at a time.
The PI is capable of doing a 4K stream of a Blu-ray rip but it's not going to be able to do much else if I do that, 720p and 1080p media is fine, heck even streaming some flac files was fine.
Finally in the homelab section, VMs
Note. The VMs aren't running on the PI I just thought here was a better place for the VM section as it's more dev ops based.
VMs are a thing that I've been aware of fore a while but never had the time or the curiosity to learn more about. Well that's all changed.
I was testing out some changes to MultiMall (see below for more details) and I realised I'd not tested a build on a Windows machine for a while.
Note. I daily drive Debian and have down for over 10 years at this point. The only Windows PC I have access too is my entry level gaming PC from 2016.
Talking 8GBs of DDR3, GTX 1030 and a AMD A7 CPU truly a rig of it's era. Many a late night have been spent in TF2 lobbys on that bad boy.
Needless to say the machine is showing its age and it's not the fastest so doing a build on this machine takes a little while.
Building the game and running the game are 2 different actions, building uses all the threads available but for a large project with some additional art asset generation and packaging it takes about 3 minutes. Not bad but on my dev machine, it's only 10 seconds.
Running the game on this dinosaur though pulls 500+ FPS (without vsync), where as the dev machine pulls ~180 FPS. The bonus of having a dedicated GPU I guess.
So one night I decided to spin up a Windows 10 VM, read as spent 3 days reconsidering every life decision up and till that point.
Battling again missing libraries, outdated drivers, dodgy VM work arounds and various other Windows specific issues.
The results, a VM where I can build the game, takes 1 minute and 10 seconds on average, and "test" it out. And I say test in quotes because VMs aren't running at native speed and other communication bottle necks means from launch to first draw (showing something one screen) takes 30 seconds, giving us a blistering 12 FPS and no stencil buffer.
I'd say this exercise was worth it just to be able to quickly test out a distribution and some file path issues.
I also felt rather confident after wrangling the Windows VM, so much so that I decided to spin up 6 more.
So we are running:
- Arch Linux
- Fedora Linux
- Fedora workstation
- Linux Mint Cinnamon
- Linux Mint KDM
- Windows 11 (better behaved than it's brother)
Sadly these can't be run all at the same time, but with a bit of bash scripting. The MultiMall build system can now, create a snapshot of the game, transfer the snapshot via SFTP, SSH into the VM and build the snapshot on the VM, run the application, take a screenshot, record some metrics (time to first draw, errors, etc), take a screenshot, ideal for 30 seconds to average out the metrics we collect. Then upload the snapshot build to a staging environment with the metrics and the screenshot for review.
This is a task that would have taken me an hour to complete manually but because it's all scripted, this is all achieved in parallel (apart from the upload afterwards) in under a minute.
Hopefully you've enjoyed the HomeLab section, I'm sure it'll keep coming back up as it gets more and more integrated into my dev process.
Econ Sim
So over the festive period I tend to not work on my main project and just play around, like a private 2 weeks game jam / R&D period.
I find that this allows me to work on something else and change up my routine without feeling bad about not working on MultiMall. It also stops that nagging feeling of "why don't we start working on a new project?" Because I know it's only 2 weeks and it's not even a solid 2 weeks, because it's over the festive period it's probably only really 5 days where I can squeeze in time. You better believe that I'm thinking about it for the full 2 weeks though.
This time around I wanted to make a simple economy sim, after all my main project is a game that's set in the hospitality and retail industry, of course the question of economics comes up.
Now, I'm not actually too versed in economic theory and while thinking of ways to have dynamic pricing of goods in my game I quickly realised that I need to work all this technical stuff out.
So I chose the Haxe language, I did originally choose Typescript and WASM but after loosing a day to weird compiler errors I thought I'd stick to something more familiar.
Now it's not much but as a learning exercise it's been very beneficial to my understanding of economic systems and it was a fun brain teaser too. The dopamine hit when the systems all actually work was trey manefique.
The simulation is just a series of simple rules that change slightly for buyers and sellers.
Every 'day' in the simulation all the buyers list their respective orders, this is the quantity of items they are selling and a price they want for the item.
Next all the buyers come and try to buy what they need with the money they have.
They have 3 attempts to buy orders from the market failing that then buyers go for a haggle.
In a haggle, the buyer can suggest a price and the seller can choose to accept or decline based on some factors.
Once all buyers have made their orders or had the chance to haggle, we summarise the day.
Sellers will try and bump the price up if they managed to sell their item, the also make new items if they have the money. If they didn't make a sale they lower their price slightly and after 3 days of no sales they change what they're selling to remain competitive.
Buyers at the end of the day tend to just remember what price that paid for a specific item and adjust their future price in step with the most recent purchase price.
There are other systems at play like tax on the sale of good that is held by a 'bank'.
The bank can also give out cash if buyers don't have a lot, this keeps the system running smoothly.
Using what I've learnt in this demo, I think it'll make for some strategic market play by financially savvy players.
Burnout
Man I love the racing series burnout, burnout 2 reloaded for the PS2 is fantastic car crashing action.
Oh sorry, wrong burnout.
Burnout in gamedev is a weird thing, it's only at the end of January did I realise that I was burnt out. Realising it is the first step to fixing it but by this point I hadn't really touched MultiMall for 2 months.
When I say not touched I mean, I've not doing anything to progress the game forward, I've done small house keeping tasks such as:
- improving the installation / first set up for users, just simply getting error messages boxes to show up saying that you don't have SDL2 installed.
- Updating the Codedeck to-do lists
- Making some new GUI art assets
Burnout for me is a strange combination of feelings:
-
Guilt, I know I should be working on this game but I also know my body and that I need time away from it if I want to keep working on it. I'm one of those people who enjoys working and the feeling of being productive and not getting that feeling bums me out.
-
Lack of Initiative, not a feeling but it's something I "feel", I think about the game while I'm burnt out and get this urge to work on it but something mentally just stops me from opening the IDE and working on it. I've also heard this phrased as "Work Inertia", normally in the context of larger projects.
I'm sure I've got a few more feelings to list but these are the major ones.
It's one of the reasons why having a block of time off to work on something else with no serious commitments is much needed. It allows me to ease myself into coding again.
A blank project is a much easier mental load than a nearly 4 year old proprietary engine is.
I'm happy to report that I'm back working on the game, slowly ramping up the hours I put into it, so without further ado let's talk about MultiMall.
MultiMall
So in the last update, I was talking about the GUI system and how much of a change that was.
After I'd finished the GUI refactor is when I started getting burnt out. So 2 months of not knowing I was and a month of activity having some down time later I'm back on it.
As mentioned above, I've done some house work bits but haven't changed too much of the actual game.
I've been slowly adding functionality back to the GUI systems, as they had become disconnected during the refactor.
Entity selection works but all the other systems like a main menu, stock ordering and peon management all remaining unconnected.
Hopefully over February I can get those working again.
Some small quality of life changes to the way shops are loaded. At the time of writing the last update a shop was loaded from a .lua file in the ./res/scripts/ directory.
This worked fine for my testing needs but when adding more dummy shops to test out the GUI I realised that the directory holding all of these files would quickly become a mess to manage, for me and for players
So now all the shops are placed into .zip files, which are extracted at runtime and processed via the engine.
The other benefit of this system is that now I can say don't load this particular shop until shop-X.zip has been loaded. Useful for 'shoppacks' like mod packs but shops.
This is one of those things I want the game to do well, I want players to be able to create their own custom shops and to be able to share them.
As I've mentioned before, modding games is the way that I can into programming and I want to be able to give that experience to someone else. I hear it's also good for increasing the length of your games tail (bizdev tid bit for ya), not that's the main reason but it's definitely a factor.
This coming weekend I've got a meetup with some friends and I'll be asking them very nicely to create some test shops for me. They don't need assets but I would like to see how intuitive the API is to use. So far it's just been my preferences that have driven the APIs design and I now need someone else to come and break it for me so we can see how to fix things.
In summary, I took some time off but still did the house keeping part of game dev and then decided to change shop loading mechanics.
2026 Goals
Now that we are officially into the new year, I thought I'd get some goals going, in an effort to keep myself accountable to the games development and eventual release.
A couple of years ago I did a Management Training course and they used the anagram SMART for their goal creation.
- S - specific
- M - measurable
- A - achievable
- R - relevant
- T - time bound
I found this system worked when we were talking business KPIs so why not use it now. After all I've got to treat this like a business.
My goals are laid out like a launch ramp, I need to complete one to be able to achieve all subsequent goals. So my goals for the year are:
-
Itch Demo This time last year I said to myself that I would have a demo ready around April / May time, I didn't meet that goal due to personal reasons and because I realised you couldn't actually build shops or do much with the world.
Releasing a demo will provide me with user feedback, that I can then use to tweak and improve the game, hopefully allowing me to cater to a larger audience.
My aim is still for April / May, this time around, I just need to hook up the GUI elements to their underlying systems and it's demo time baby.
-
Get 500 downloads The 2nd goal I think is fairly achievable, if I launch in April/May that gives 7 months plus or minus a few days to complete the game.
The numbers also break down rather nicely, roughly ~71 downloads a month or ~18 downloads a week. ~2.5 copies a day.
I'll be logging all of the metrics once a week to see how I'm doing on this and I'll probably share it on here and Mastodon every couple of weeks
My gut feeling was 250 downloads but why not aim higher, I've worked for so long on this and I think it resonates well with a lot of players so why push myself a little.
Aiming for this many downloads also pushes me to try out different ways of marketing the game, something I haven't done yet other than the odd Mastodon post. Even doing those posts is a lot for me as I'm not someone who uses social media all that much.
-
Steam Page The final goal of the year. Now I'm not saying the game will be released on steam and ready to go but at least having paid the £100 "deposit" for the store page, I can at least put the demo up on steam and begin to get familiar with the steam works SDK as well as all the other small tasks Steam requires for a game release.
So if I don't get 500 downloads on itch then that says to me there isn't enough of a demand for my game and I'll leave it at that. Maybe I keep working on it in the background, adding new shops and outfits but it would only be for my own enjoyment at that point.
That's all I've got to update y'all with for now. Hopefuly by the next one I'll get some visual improvements to show to you, maybe a gif if I'm fancy.
Anyway, catch you in the next one.