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

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

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