Forensic Friday 5: Alerts!
Continuing the trend of Forensic Friday not being on an actual Friday, here’s another update post! We haven’t made a great deal of front-end progress, but a significant amount of back-end work has been done, which will be detailed below!
Saving the game #
Dillan has been spending a lot of their working hours on working on the saving and loading aspects of the game. Which proved to be quite challenging than first expected. For the most part saving tiles and trivial things like the camera position and time of day etc. were not too much work; the main difficulty being the amount of random small things we need to remember saving. The hardest challenge we had to overcome was saving NPC tasks, which due to the way we implemented them, are very easy to create and use on the fly, but stupidly hard to save. I’m not going to get into the nitty gritty, but in the end we had two options. Spend a whole week, or maybe 2, creating a custom system to save these tasks (one which may not even work); or go with the hacky solution. We went with the hacky solution. Hacky is a bit of a under-seller, since it technically works completely fine (as much as we have tested), though just employs methods which are considered slightly unrecommended usually (it uses reflective programming for anyone familiar with the term). Aside from that, everything else is quite easy to save. Going forward, we will just keep adding saving logic to anything we create instead of doing it all in one go before we release the game.
A brief look at Alerts #
Alerts are little pop-ups that show up in the game and alert the user of events and happenings in your world and facility that may not be 100% transparent or obvious, such as a: power failure, electrical failure, facility raid, rare events, anomalous events, world-wide events, NPC injury and death and numerous over NPC related affairs. We haven’t implemented every alert possible since we haven’t created all the events that could create an alert. So as we work on the game we will just continue to add alerts. Alerts are thankfully very cheap and easy to call due to my lovely implementation, so this won’t be any amount of significant work to do; just a matter of adding a line of code here and there. Alerts also have a neat little bouncy animation when they popup, and a cool info box that also shows up when you click on them. The pop-up UI could probably look a lot better and subject to change like a lot of things! Videos and Images below!
NPC being struck by the wrath of God
Fire system rewrite #
Ahh, another rewrite. Soon we are gonna rewrite the game from scratch, in scratch! Anyways, this rewrite was actually warranted since the fire system was using an in-preview and honestly rather buggy and incomplete unity package called the “Job system”. It is basically a safer way the write separate single/multi-threaded code without having to deal with all the nonsense that comes with writing threaded code. But unfortunately or fortunately, depending on how you look at it, we came to the conclusion that we should ditch the in-preview package and just rewrite the fire system with good ol’ fashioned C# threading. Now the code is a thousand times easier to read and change, and actually a lot less buggy since C# threading does almost no hand holding, which actually gives the code a bit more space to breath per se. The rewrite also allowed me to fix up bits of awkward or downright bad code. Artefacts from a past (bad code writing) age. Just because fire looks nice, here’s a gif! Also shows off the new lighting not that you would be able to tell the difference
( ‾ ʖ̫ ‾)
Being behind schedule and future features to come! #
We are in fact behind schedule!! 🥳 🥳 🥳 In all seriousness, I decided to make a schedule for all the features we wanna get done before September. In doing so, we have come to the realisation that the game being playable by the end of summer is actually quite the task. We could either rush things to be certain its playable by then, or we could take things at a comfortable pace and avoid writing a lot of the really bad code we wrote at the beginning of development. You can probably guess which option we chose. So unfortunately, the chances of us making the playable by the end of summer is looking quite bleak, though if anything the game will definitely be a lot MORE playable than it is now by then, and that’s always a success in of itself.
Right now I am just working on finalising all building and construction mechanics so we can move onto more logistical territories such as Ventilation, Refrigeration and an actual Power system just to name a few. My next job is to start work on cooking, lunch/dinner breaks and chefs. Basically getting NPCs fed, which should be quite fun to work on. Builders are pretty much as complete and bug-less as possible, barring the occasional hiccup. In the end, I can’t help but thing we are getting very close to the summit of the development mountain and are soon going to be crashing down in the most elegant way possible, to the complete game.
Case Closed #
If anything needs to be said, we will get to the other side, even if we don’t make it all in one piece. That’s all that I have to update you guys about, thanks for supporting the game and its small and slowly growing community!