Forensic Friday 65: A Savable Game, Shuttle Bus, Intakes
Hey Readers! #
Welcome to another Forensic Friday, a day late as usual, keeping the tradition! We here at Plasmarc Studios take pride in preserving the past and paving a predictable future. In this case, predictably late! Well, the development news we bring is both good and bad. The good news is that we have made progress with the Hiring NPCs feature and started making progress on the Category C Onboarding feature. The bad news… we haven’t made ENOUGH progress. Which isn’t all bad, but just slightly annoying. Our 2nd 2-week sprint of the year comes to an end, with a handful of tickets remaining, but not to fret. We unofficially work on weekends to sweep up all development woes. Anyway, this week, I’ve been working on another feature too: Saving & Loading. So what would be a better first topic to talk about? Onto the stuff!
Saving and Loading #
I spent the first half (well almost the entirety of the week) working on getting the game to save and load again. This was a feature we implemented almost 2 years ago now, but with all the architectural overhauls, it was something that we have left by the wayside. It’s not completely perfect yet, not all things are fully saved, but the underlying architecture is all polished and solid. As a result, some architectural changes in the way we handle managers arose as well! But I’ll leave that to the next (more technical) section!
Auto-saving #
Anyways, the game now autosaves neat! You’ll get a little icon of some non-descript symbol. Who knows what it is?
New Manager Architecture #
For you more technical folks, I refactored the Manager architecture. Our managers now have a strictly defined lifecycle (currently just initialisation steps), which ensures there aren’t any race conditions (in the case that managers are multithreaded in the future) or weird dependency cycles. We initially were just relying on Unity’s Start and Update, but now we have custom events:
OnSelfInitialiseManager()
- First Stage Init. Called when the manager should be initialised and isolatedOnCoupledInitManager()
- Second Stage Init. Called when all managers have done isolated initialisation, and can now reference each other if neededOnAllManagersInitialised()
- Last Stage Init. Called when all managers have all done isolated and coupled initialisation.
Splitting the initialisation into 3 steps like this greatly reduces the chance of there being clashes or missing dependencies. But again it doesn’t enforce good practice, just helps avoid such issues accidentally arising.
Anyway, enough boring stuff is out of the way. Who cares! Let’s get onto more features…
Shuttle Bus Advances #
The shuttle bus has been making incredible headway this week. It has proven to be quite a hump in development, slowing down our progress a bit, but the end of the feature is on the horizon! The most exciting thing is that we have a new sprite for the shuttle bus:
Feedback is always welcome of course! Though the sprite is likely to go through a bit of iteration til we land on a final version! Currently, most of the work needed for the shuttle bus to function is there. The last thing we need to get sorted is NPCs taking the bus!
Category C Onboarding #
Category C onboarding is the second feature for BATCH 3 of development. This week I worked on adding the Intake menu, which allows you to intake volunteers (Category C) onto your site. The way it works is that every day your intake size increases. You can then choose to intake from 1 up to this size, and then they’ll be shipped to your site as soon as possible. Pretty neat! And hopefully quite simple. In the future, we might make it more complex, but we are happy as it stands. You can take a look at the UI below!
New Road #
Not the most exciting piece of news, but we have changed the look of the road a bit. Now the road marking is a solid straight line, which looks a bit better in our opinion!
Case Closed #
That’s all folks! Not the longest, or most filling Forensic Friday, but that is the nature of a weekly blog. We’ll see you next week, hopefully with BATCH 3 finished! If not by next week, definitely by the end of January! If we can defeat each batch roughly every month, then we are ahead of schedule. So the race is on! If you aren’t a part of the discord server, make sure you join with the link above! There you can see our roadmap! Anyway, time to file this case away, see you in the next one! Ciao.
Case Closed.
The Team
Plasmarc Studios