Unity 6 edition ebook and sample project on Scriptable Objects

Hello everyone,

I’m excited to share that we have updated our popular free e-book Create modular game architecture in Unity with ScriptableObjects to Unity 6, along with its companion sample project, Paddle Ball.

For those of you not familiar with the 1st edition, it demonstrates how to leverage ScriptableObjects in a number of different ways, not just for data, but also for building robust and scalable game systems.

Here are some of the topics we cover in the e-book and demo project:

  • Understanding ScriptableObjects: For those of you that are new to using ScriptableObjects or want a refresher, you’ll get introduced to the fundamentals, including how ScriptableObjects differ from MonoBehaviours, and the architectural benefits they provide, like reduced memory usage and improved collaboration between developers and non-programmers.

  • Data Containers: Learn how to use ScriptableObjects as efficient data containers for shared static information like enemy stats, inventory items, and configuration settings.

  • Pluggable Behaviors: Get real-world examples on how to implement the Delegate and Command patterns to create modular, reusable logic that can be easily swapped at runtime, perfect for different enemy AI behaviors or in-game actions.

  • Event-Driven Systems: Understand how to implement the Observer pattern with ScriptableObjects acting as “event channels”. This type of game architecture can provide a scalable and designer-friendly alternative to singletons for communication between game systems like UI, audio, and scene management.

  • Runtime Data Management: See examples of how the Runtime Set pattern can be used to efficiently track and manage a collection of objects or components in a scene.

  • Extensible Enums: You’ll learn about how even an empty ScriptableObject can be used as an extensible enum-like category, providing a flexible way to classify gameplay items or types that can be easily expanded later.

The accompanying sample project, inspired by classic arcade games, provides a practical and clear demonstration of all these concepts in a single, cohesive project. Although such a game could be built with far fewer lines of code and without use of ScriptableObjects, the goal is to show how ScriptableObjects can help you create applications that are more testable, scalable, and designer-friendly. In the sample you will find several small example scenes that demonstrate different concepts from the ebook besides the playable paddle game.

You can download the updated e-book here and the demo project from the Asset Store.

I hope it can be a helpful resource and inspiration for streamlining some workflow and creating more robust, modular games. As always, feedback is very welcomed!

8 Likes

Thanks for the PDF and the project. It’s very useful and informative.

However, there’s a bug in the PaddleBall project.

PaddleBallScreens => PlaySelectScreen => ViewButtonSceneLoaders “ScenePath” are incorrect.

The correct paths should be:
Assets/Scenes/PaddleBallClassic_Scene.unity
Assets/Scenes/PaddleBallHockey_Scene.unity
Assets/Scenes/PaddleBallFoosball_Scene.unity

Unity:6000.3.13f1
PaddleBall version : 1.1