It's been a while since I posted an update here.
Things have been kinda busy but not busy for me.
I wrote this blog entry originally some time in September but hadn't hit publish as it was a draft.
Well yet another month has gone by since then, so I've broken this post up into two sections, the first is the blog post I wrote for July - September followed by Octobers entry.
Enjoy.
Well that was July and August, hello September.
Lets get down to it, what's happened since I last left an update.
So looking over the git log results.This more retro window design is closer to how I've envisioned the GUI system looking, but I got a quick system working ages ago and then worked on different portions of the game and then. So I've come back and made it look how I want it to look. I've push 45 commits since the last update.
Right clicking on shop tool entitys while a staff member is selected will now show a context menu with various jobs that can be done on the entity. e.g. Restock, Serve Customers.
Tile data is now Run Length Encoded this turned a blank save file from 10KB to 700B.
Path finding is now a background task, using the power of multi-threading the path finding system now happens in the background, allowing the main thread to process other things. There is the occasional drop in frame rate when a lot of results are returned, such as when loading a save with many hundreds of Peons in the world but it stabilises pretty quickly.
Camera position is now correct when reloading save data, I'd changed the depth system but wasn't correctly resetting the camera on de-serialisation causing Entitys to be clipped.
Customer Logic is now written in LUA, allowing for faster iterations of game logic.
Lua stack is now clean. LUA is a stack based language and we were filling that stack up behind the scenes, this would eventually lead to a stack overflow and the entire system crashing. While I've never encountered it, my testing of the game is heavily based on the first 10 minutes. Best to have nipped it in the bud, more shops with more equipment would have made the stack overflow happen which wouldn't be ideal for a game about having many different items and customers.
That's about it, most of my commits are usually small incremental changes but this is the summary of these commits or a 'ChangeLog', very professional.
TL;DR MultiMall can now be built to run on Windows after 2 years, Looking at other release candidates and building a virtualized build system to trial various Linux builds and potentialy the purchase of a Mac M series chip for Mac OSX support all networked together in my home lab.
I wouldn't normally talk about the environment in which the game is built but, it is a mildly interesting topic with it's own quirks.
I've moved house since my last post and have yet to have the property connected to my new ISP, that's happening on Monday.
For 90% of MulitMall's development so far, I've been developing it on my Debian 12 laptop.
I've been a Linux daily driver for about a decade now (You're computer should serve you, not a corperation, rant over). But most of the world doesn't run Linux (unless you count servers and actual computing grunt work).
The latest steam survey suggests that about only 2.64% of it's player base are using any form of Linux and Debian isn't mentioned on the list at all. While Windows 10 still holds 35%
Windows 10 is due to lose support in October of this year so that is a concern but we'll see how we go for now and come back to that issue later on, I don't really want to have to upgrade because that PC is now a decade old and definitely below spec for Windows 11.
That being said, I recently got access to my Windows 10 PC again. The last time I had access to a Windows 10 PC the game stopped compiling at some point. Well after 2 years in storage and 5 versions of the compiler later we finally have the game building on Windows 10. So boom, just like that 35% market capture. (Percentage is actually lower because that's assuming everyone is an English speaker)
I've also gained access again to various Raspberry Pi's however, with the lastest version of the D Lang compiler on their 'bookworm' branch it's the same version I encountered 2 years ago when builing for Windows 10, so I know that doesn't work and I'm not brave enough to build from source yet...
I think it would be fun to see how well the game could run on the extreme low end of the hardware spectrum. The size of game when bundled tops out at 40MB currently, RAM usage tops out at 1.2GB and VRAM usage is about 400MB so it could certainly fit but gotta get this game out and tested before I can explore that some more. Another upside is the game running on a different architecture. Looking at you RISC.
Expanding upon the last point, the game is aiming to be education via it's financial systems so releasing accessible, low cost hardware like a Raspberry Pi as an Education variant like Minecraft did ages ago feels very in-line with the core values of the game. Food for thought.
Hopefuly from the previous 2 sections you're given the impression that I am still working on the game, it just takes a long time for 1 person to create this type of game. Maybe there are better ways of doing this but I'm set in my way now, the technical debt is beginning to calcify.
Anyway, with all of that said, the game is technically at a Minimum Viable Product (MVP) stage, the game loop works, content can be loaded and created for the game with relative ease. It's building on various platforms (Debain 12 and Windows 10), saving and loading also work and the LUA system is finally bug free.
All that's left for me before some kind of demo is to add in the shops and then look at some initial player feedback
Welcome back,
It's been a rather slow month in terms of MultiMall progress. Slow but meaningful is how I want to word it.
I actually got some feedback from some friends about the game.
Now this 'demo' version of the game only has the one shop, not 2 liked I'd planned as I simply just ran out of time and at this point in development I'd rather get feedback about something than keep working away without any feedback.
But, like most feedback, it's for things I wasn't expecting.
Such as;
After playing my own game for 2 years. I know how to do things like the back of my hand but, these fresh players didn't find some systems intuitive enough.
There was also feedback like.
How do I do anything?
Shop placement was 'fun'
Lacks guidance
Peons are cool looking
All good feedback considering it's the first time I've shown this off publicly and not just some random screenshot on Mastodon.
Directly from the feedback it was obvious I need to have some kind of tutorial that explains, shop placement, how to assign workers to tasks and how to order stock.
I've never written a tutorial for a game before and I definitely don't have the systems in place to build one.
That being said, I've been working on the LUA system to allow for more control over the game like that, think of a director over the scene. The foundation for the tutorial system is in place, I just need to code up all of the interactions and lock offs so maybe by the end of the year.
Now for a while (read that as 12 - 18 months) the GUI system I wrote has begun to show it's limits and I wasn't happy with the overall look of the GUI.
So I gave in a little bit and changed from the old frame like system to a more "window-esque" design.
This was one of the more challenging refactors I've had with the game so far, I've not re-written the entire GUI system I just made a new subclass and added some render flags to the base GUIElement class but it did require a new shader and for me to finally learn how to use the stencil buffer.
The original GUI system wasn't built to work this way but after using it for 2 years I've learn how to hack in solutions quickly. One of the few perks of working on your own game engine.
Overall I'm happy with the new windows and the system used to drive them, this system now allows shop to have Custom GUIs should they want to, for example a resturant menu selector, vending machine stock selector.
That's about everything I've got to share so far, the public demo is probably looking at coming out some time in the new year but don't hold me to that, art takes time.
I'll catch you in the next one.
So busy, on top of that I've been looking for work as savings only go so far.
I'm sure you've heard the saying: "When you not working looking for work is you job", hopefully once I've got some employment again I can put some more work into MultiMall.
Creating this game is what gives me purpose at the moment, to get up out of bed and feel productive and not working on it leaves me feeling like I've let myself down. I'm taking my time and eventually i'll find that balance again.
Stay safe out there folks.