We have adopted the same loading screen that we made in Academia: School Simulator to our new game City Hall Simulator. The cool thing about this loading screen is that it shows a progress bar which I think is a good UX feature so the player knows how much further along the game is going … Continue reading How we made our loading screen
Category: Academia
Academia school management game
The safest way to use DOTS in your MonoBehaviour project
Before I begin with the article, I would like to let you know I'm giving away a free game by subscribing to my mailing list. With that out of the way, let's get it on! The problem is that if you want to leverage the speed of Burst, you have to use a subset of … Continue reading The safest way to use DOTS in your MonoBehaviour project
How we did the tutorial system in Academia: School Simulator, Part 3: Putting them all together
In part 2, I discussed how we made the tutorial actions that will be available on the editor. Now we're on the last part (I promise). I'm going to discuss how we put them all together from the SSM framework discussed in part 1 and the actions in part 2. Editor Let me show you … Continue reading How we did the tutorial system in Academia: School Simulator, Part 3: Putting them all together
How we did the tutorial system in Academia: School Simulator, Part 2: Actions
In part 1 of this post, I discussed about the underlying framework used for our tutorial system for Academia. I'll continue it here on how we made the tutorial actions. Locking or unlocking an interaction UI In Unity, there's a base class for all components that makes a UI interactable. It's called Selectable. The components … Continue reading How we did the tutorial system in Academia: School Simulator, Part 2: Actions
How we did the tutorial system in Academia: School Simulator, Part 1: SSM
I've been a game developer for more than a decade now. I can say that one of the technically challenging features to do is the guided tutorial. Tutorials are generally hard because they tend to temporarily break the normal functioning of the game's systems. Later on, those systems should revert to functioning normally and seamlessly. … Continue reading How we did the tutorial system in Academia: School Simulator, Part 1: SSM
20 Lessons from 5 years of developing Academia: School Simulator
So here's an enumeration of lessons learned during development in the context of programming a builder/tycoon game that can have hundreds of agents.
Option<T> for High Performance C#
Ages ago, I wrote about how the concept of null is a million dollar mistake and tried to replicate the concept of Option from other languages into C#. We are heavily using this in Academia for newer code since then. We even refactored some of our old code that causes the most NullPointerExceptions. I'm making … Continue reading Option<T> for High Performance C#
A Multithreaded Sorting Attempt
In my previous post, NativeArray.SortJob<T>() ended up running slow because it's not being Burst compiled in the PC build. I've discovered that this is a known limitation. Generic jobs that are invoked inside generic methods can't be Burst compiled. A known trick is to "mention" the jobs with concrete types so that the jobs will … Continue reading A Multithreaded Sorting Attempt
Better Sprites Handling for Modding in Unity
I have written a little bit about how we handled modding in our game a long time ago. We encountered an issue that we just fixed in recent builds and that's what I'll talk about in this post. The Problem We originally had two ways that we handled our sprites. One uses individual images which … Continue reading Better Sprites Handling for Modding in Unity
Process All Scenes in a Folder
In our game Academia, we employ a multi-scene architecture. We now have hundreds of scenes that are all additively loaded at runtime to compose the whole game. Sometimes, there are fixes or new features that requires changes to all scenes. Imagine doing this manually. Load scene, apply change, save scene. Repeat to hundreds. This is … Continue reading Process All Scenes in a Folder