Examples of Assets:
Noah: "This would go for assets that actually interact, like an AI pathfinding asset dropped onto a randomly generated zone, correct?"
If the pathfinding asset and the generated zones were both Gestalt Asset System certified, then the assumption would be that they would work together with no new code from the game developer who had purchased and imported both assets.
But I do not want to start with "systems" like a path finding asset, instead I would start with a 3d race car model that has an abstract controller, animations, and locomotion all built in to the car asset.
- The controller can be the player OR an local ai / agent / state machine OR a network connection.
- the animations will all be driven by the controller and locomotion agents
- the locomotion agent would include the pathfinding
So the indie developer who sees a GAS Race Car in the asset store, and a GAS City Map in the asset store would be able to purchase those two assets and know that they can create a simple single player racing game immediately by purchasing those two assets and importing them into a project, running their respective wizards and answering the "how do you want this asset to work" questions, and then hitting Play in unity.
This is the basic flow from asset store search to a finished shippable game (when using GAS Assets):
- Developer search asset store for gold ribbon GAS race prefabs
- Developer purchases and imports all 4 assets into their Unity editor
- Developer uses in editor wizards and custom inspectors to set all of the options for each of the prefabs upon import
- Base Game Loop is now done and the developer can hit plan and begin testing their game.
- The developer can continue to purchase more assets to add content to the game.
- The developer can re-run import wizards and change settings for the prefabs.
- The developer can directly tweak all of the settings for each prefab in the prefab’s inspector, saving prefab variants to run and test in their game.
- The developer can safely EXTEND the C# code via SOLID principals (open/closed, inheritance, and Interfaces), knowing that they can import updates to all of their GAS assets and not lose their work when they do.
"It Just Works"
See the diagram below to see those steps in more detail: