wokarol / gamesystemslocator Goto Github PK
View Code? Open in Web Editor NEWA package for managing game systems using a service locator with built-in bootstrapper
A package for managing game systems using a service locator with built-in bootstrapper
Allow the user to mark the system as "sealed" which disables checking for it in overrides. This would be done to optimize the performance of the overrides if that's needed.
Example code:
builder.Add<SomeSystem>(required: true, sealed: true);
Add an option to return a handle instead of a system. Such handle could be then (cheaply) evaluated at the point where the system is needed.
GameSystemHandle<IMusicPlayer> musicPlayerHandle;
// ... //
musicPlayerHandle = GameSystems.GetHandle<IMusicPlayer>();
// ... //
var musicPlayer = musicPlayerHandle.Evaluate();
Test could run a series of scenes to check if the behaviour is as expected
Config could look at the scene name to determine what test system root prefab to spawn
Add a compiler directive allowing the user to disable the boostrapper from running when the application starts.
When configuration fails to load, the code throws an exception which in turn aborts the execution of the bootstrapper.
This causes cleanup code to never run. Should be wrapped around in try..catch.
Move the Locator logic into a non-static class.
Static class should create and use its own instance of the locator.
This should make testing nicer
If the prefab is not found, an null ref is thrown. That should get a custom exception
Investigate and document execution order and potential issues related to it
Add support for locating objects like Player using a context.
The feature would add this method to the config file
builder.Context.Add<Player>();
and this method to the locator itself
GameSystems.Context.Get<Player>();
Despite being similar to Game System Locator itself, Context would be optimized for frequent unbind and binding. Therefore would not have support for overrides, null objects and so on
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.