Oak Voice Experience

Oak Voice Experience

By Ofori Ankah KofiTechnology
Download on the App Store

Oak Voice Experience episodes

  • Game Architecture with Scriptable Objects | Deep Dive

    The Core Essence of Scriptable Objects.ScriptableObjects are a powerful feature in Unity that promotes better organization, efficiency, and flexibility in your game development workflow by separating data from code and providing a robust system for managing and sharing game data as assets.

    • Centralized Data Management and Reduced Memory Usage: ScriptableObjects act as data containers that store large amounts of data independently of class instances. By storing unchanging data in ScriptableObject assets instead of in MonoBehaviour scripts attached to multiple prefabs, you avoid duplicating data in memory, leading to a more memory-efficient project. This is particularly beneficial when you have multiple instances of the same prefab that share the same data.

    • Enhanced Editor Workflow and Data Persistence: ScriptableObjects are assets that reside in your Project window, just like materials or textures. This allows for data persistence within the Unity Editor and between editing sessions. You can modify the data in ScriptableObjects in the Inspector, and these changes are saved automatically.

    • Improved Code Decoupling and Modularity: ScriptableObjects facilitate a more modular and less coupled game architecture. Instead of creating direct references between different scripts or relying on patterns like Singletons, you can use ScriptableObjects to share data and communicate between systems indirectly. This makes your codebase more flexible, maintainable, and easier to test. For example, different systems can reference the same ScriptableObject for shared game data without directly knowing each other. They can also be used as a basis for event systems (like channels and runtime sets), enabling decoupled communication between different parts of your game.

    • Increased Flexibility and Extensibility: By keeping data separate from code, ScriptableObjects allow for greater flexibility in modifying and extending your game. You can change game parameters, add new items, define recipes, or configure game events by simply creating or modifying ScriptableObject assets without needing to alter the underlying code. This data-driven approach empowers designers and other team members to make changes and experiment with game mechanics more easily. Furthermore, ScriptableObjects offer a more flexible alternative to Enums, as they can hold additional data and are easier to extend or reorder without breaking existing references.

    • Suitability for Various Use Cases: ScriptableObjects are versatile and can be used for a wide range of purposes, including storing game configuration, item definitions, crafting recipes, enemy stats, dialog lines, sound presets, UI data, and even defining entire game systems. They are also valuable for creating editor tools and extending the functionality of the Unity Editor. The "Unity" channel's "Game architecture with ScriptableObjects" video highlights their use in creating flexible game architectures, event systems, and managing various game features.

    • Addressing Singleton Issues: ScriptableObjects, particularly when used in patterns like Runtime Sets, offer a way to avoid some of the common problems associated with the Singleton pattern, such as rigid dependencies, difficulties in testing, and potential race conditions. By using ScriptableObject assets for shared data and inter-system communication, you can achieve a more decoupled and flexible architecture.


    Episode Sources

    https://youtu.be/raQ3iHhE_Kk?list=TLGGLy2l7KTBQtczMDAzMjAyNQ

    https://youtu.be/Wo2qQPqfYJs?list=TLGG2c6IuOkBsNYzMDAzMjAyNQ

    https://youtu.be/5a-ztc5gcFw?list=TLGGgr7h2u3XBeUzMDAzMjAyNQ

    https://youtu.be/WLDgtRNK2VE?list=TLGGwDpFgCMtYRczMDAzMjAyNQ

    https://youtu.be/E91NYvDqsy8?list=TLGGxE86pNS51RwzMDAzMjAyNQ

    https://docs.unity3d.com/ScriptReference/ScriptableObject.html

    19 min
  • The Continuous Learning Culture

    Learning, as they say, is a never-ending process and is very crucial for growth. And as a working professional, indulging yourself in continuous learning paves the way toward success. The thing with learning is that it has evolved with time. The interesting fact is that learning never stops.

    13 min
  • Regret is a useless Emotion
    We can only act on what we know to be true at the moment. We should also understand that making mistakes is part of the learning process. Don't waste energy on ”What could or should have”. In this episode Of the #OakVoiceX, I shared my thoughts on why the Emotions that come with regrets is Useless for growth.
    6 min
  • Too Expensive
    As with all business spending, you want to weigh the cost of design against the quality and value you will gain. I this episode i talk about why Cheap Design solutions may not solve any of your Problems.
    6 min

About Oak Voice Experience

From the publisher's feed

Let's Learn and Grow Together.