Global Game Jam 2018, "Code Sword" team
FFramework - is a minimalistic framework that helps to control execution flow, ensure right order of script initalization and provide simple alternative to Dependency Injection.
FUnit is a basic logic unit. It has a list of callbacks that serve as alternative to native Unity3D callbacks.
All MonoBehaviour scripts in the game must inherit from FUnit.
FContext is a partial class that is injected to all FUnit scripts.
It can store any references.
Instead of using Singletons - it's better to have a field in FContext that will hold reference to that potential Singleton class.
It can contain shortcut methods for searching other objects, or provide reference for services that do that.
From any part of appliaction feel free to add stuff to create additional partial classes FContext with fields and methods, that should accessible from any part of appliaction.
FKernel is a central script of application. It initializes and executes all FUnit scripts and injects FConext.
Implement different ITickable interfaces as an alternative to Update, LateUpdate, FixedUpdate.
It is a unique id of FFramework. Every FUnit has it's own unique id.
It can be used to identify scripts and entities in game.
Each FUnit gets uniqe id automatically and it can not be changed.