You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Here's a discussion on how (currently) Gameplay Ingredients releases, and keeps being sustainable.
Version Numbers
Gameplay Ingredients uses a semver-alike nomenclature but makes more meaning in its numbering, by providing a minimal version hint. Version numbers start with major version (2018, 2019, ....) and a minor version
Compatibility with Unity is assured by using this version (major.minor) as minimum. The last number of the semver is the actual revision of Gameplay Ingredients for this version compatibility.
Once in a while, we upgrade (major.minor) version numbers in order to adapt to Unity changes. And then reset the revision number to zero.
Compatibility and breaking changes
When making new features, we must verify that this will not impact any other existing project, unless fixing a bug or preventing a performance issue or bad practice. This way, breaking changes are not forbidden but need to be handled with care, documentation and if possible respect the already existing projects:
Provide an option in order to choose between previous/new behavior
Changes in Default values
Use of FormerlySerializedAs attribute for serialization changes
Note: there are not automated tests at the moment.
Philosophy Guidelines
Gameplay Ingredients is intended for less-technical users, still users who are a bit familiar with C#. As such, the tools provided need to handle 80% common tasks easily, Moreover, the tools and scripts, wherever applicable, should expose a simple API in order to extend the capabilities.
This API should be exposed to users as simplest as possible with the intent of letting the user handle only what they needs to do.
For instance, the callable system is made of Callable classes that need to implement an Execute() method. The execute method needs to pass an optional GameObject instigator, but no more. So the signature stays simple.
If you want to contribute, it is often a good idea to explore the whole ecosystem of Gameplay Ingredients in order to evaluate what's the best way to implement your contribution. For instance, if something can be integrated into one system (for example, Callables, or Managers) it should be as a priorty. Event if it requires adding some functionality to the system.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Here's a discussion on how (currently) Gameplay Ingredients releases, and keeps being sustainable.
Version Numbers
Gameplay Ingredients uses a semver-alike nomenclature but makes more meaning in its numbering, by providing a minimal version hint. Version numbers start with major version (2018, 2019, ....) and a minor version
Compatibility with Unity is assured by using this version (major.minor) as minimum. The last number of the semver is the actual revision of Gameplay Ingredients for this version compatibility.
Once in a while, we upgrade (major.minor) version numbers in order to adapt to Unity changes. And then reset the revision number to zero.
Compatibility and breaking changes
When making new features, we must verify that this will not impact any other existing project, unless fixing a bug or preventing a performance issue or bad practice. This way, breaking changes are not forbidden but need to be handled with care, documentation and if possible respect the already existing projects:
FormerlySerializedAs
attribute for serialization changesPhilosophy Guidelines
Gameplay Ingredients is intended for less-technical users, still users who are a bit familiar with C#. As such, the tools provided need to handle 80% common tasks easily, Moreover, the tools and scripts, wherever applicable, should expose a simple API in order to extend the capabilities.
This API should be exposed to users as simplest as possible with the intent of letting the user handle only what they needs to do.
Any complex system should be handled by Gameplay Ingredients, and let the user know what it's doing in the documentation (https://peeweek.readthedocs.io/en/latest/gameplay-ingredients/)
Contributing
If you want to contribute, it is often a good idea to explore the whole ecosystem of Gameplay Ingredients in order to evaluate what's the best way to implement your contribution. For instance, if something can be integrated into one system (for example, Callables, or Managers) it should be as a priorty. Event if it requires adding some functionality to the system.
Beta Was this translation helpful? Give feedback.
All reactions