Unibrics is an open source framework for game development in Unity focused on two main tasks:
- Provide an architectural basis for designing modular, extendable, and configurable applications.
- Provide a set of optional modules for solving common tasks in game development, such as:
- modular saves;
- configuration and AB-tests;
- analytics and more.
Unity is a mainstream game engine with the biggest market share since the early 2010s, absolute majority of mobile games are made with it. But developers community still struggles with architectural problems and lack of libraries to speed up the development of common parts for every game.
For example, in back-end development, engineers usually work with well established and mature instruments such as ASP.NET or Spring. These frameworks provide developers a lot of benefits, including:
- An architectural framework is provided for writing code, organizing it in projects, and performing common tasks.
- A straightforward method for dealing with dependencies in code via DI;
- Many common tasks (authorization, logging, configuration, etc.) have already been implemented (with thousands of hours invested) and are included in the framework itself and accessible via a clear API.
- Developers can focus on business logic;
- Good documentation and large developers community to get knowledge from.
As a result, an engineer who is starting his career in this field is very limited in ways to do something completely wrong or to come with poor solution for some common task like authentication. Framework as an environment provides good practices to follow and bad practices to avoid.
In Unity, on the other hand:
- Almost every game is written from scratch; you may use Asset Store assets from various developers, which are frequently difficult to combine;
- Poor engineering practices such as extensive use of singletons, writing everything in one huge DLL, high coupling are often seen in even big projects;
- Every team repeatedly implements standard parts for every game, such as configuration, saving systems, analytics, and tutorials.
Unibrics is an attempt to create an example of a framework for Unity development that can fix some of these problems by implementing best practices from other fields of software engineering and bringing them to game development.