El's Things

5h2n01
<< Up

March-ing Forward

Hi there and welcome back to the Els-Things blog,

last time I mainly spoke about server management and dashboards. Well lucky for you there is a bit for MultiMall this time.

I'll be going over:

  • MultiMall
  • Demo plans

A short list even by my standards but lets' get on with it shall we.

MultiMall

So I've been working on the game for over 3 years (nearly 4, but 1422 days exactly as of writing this post) and by far the most infuriating thing I've dealt with this entire time is (drum roll please)... GUI.

Well done GUI for being the reason I have nearly given up on this project, not once but twice.

Ignore that I have once again tried to tackle this beast. The last GUI system (v2) should really have been considered version 1.2 as I'd kinda just crammed in some extra features without really working on a proper solution. This has lead me to write some truly awful code, which I was spending more time debugging than on actually writing the games systems and making it ready or the demo (see below for more details) .

The final nail in the coffin for this attempt was the windowing system (the whole reason I'd re-written the GUI system the first time), it was just an inefficient way of doing the rendering in the end.

By the time you'd open 8 windows FPS would have dropped from 230 (on my dev laptop with no windows open) to 24 FPS (still playable but more than 8 and you'd get to slide show territory)

The solution, each window is now "pre-rendered". We essentially cache the windows contents and just draw a textured quad instead of messing with the stencil buffer and having to draw all the windows in step, the new solution is now just a N problem vs a 3N problem, not much of a difference but you can now open 100+ windows and still get 100+ FPS.

The bonus is that I now get stencilling and depth for "free" because the windows never actually interact with each other and all the depth is computed as we generate the pre-render. This solved a Z-fighting issue I was having with the previous system.

There is a hard cap of 256 windows at once but if you're using that many windows, I think that's a you problem and I guarantee their the same person who keeps open 12 Chrome Tabs at all times.

Ooof, that's a lot about just window and GUI rendering but it's what I've been trying to tackle the last couple of weeks, between my new job ( 9 hour days ) and some family bit it's been hard to find time to sit and think about these kinds of harder problems, hopefully, once I've got the dynamic resizing working (final step of the new system) it'll be good to go and I can finally get back to "creating the game" and not working on a GUI library.

Demo Plans

I mentioned last time that I was looking at releasing a demo of the game some time around April / May, well it looks like April is here and my metaphorical bolder isn't across the line yet.

This means I'll realistically be looking at an Mid / Late May demo release. A couple of weeks later than I had planned but if the game isn't ready then I can#t start showing it off.

What do I mean by ready?

Well the goal has always been a vertical slice.

  • 3 Shops
  • Multiplayer

The shop's I've cut to 1 and multiplayer while implemented isn't supported, all the code is in place there is just no way for the player to start up a server and join with a client. This was paused until I'd completed the shops and Peon customer logic.

The shop I'm launching with is the Grocery Shop, it'll teach you the basics of hiring and firing as well as ordering stock and how to start making a profit.

GUI is quite literally the only thing holding this project back, once I've got a system nailed down and integrated with all the other game systems it'll be full steam ahead.

Post Demo

Once the demo is out, I'm looking to support it for 6 months at most, taking me to the end of the year if I don't encounter any more delays. During that time, I'll re-enable the multiplayer, add more shops, create scenario maps (think campaign) and release the shops mod system.

If you want more details check out this post on my goals for the game post launch.

Fin

That's about it for this months update, not too much to talk about but between work and life I struggled to find time to work on the game this month. Hopefully now the sun is out a bit more and work has calmed down, I'll be able to focus my energy more into the game.

Until next time, stay safe and have fun, h2n0.