Unity: Core Project

 

Core is the main foundation for expressing all of my project ideas through the Unity Engine. Core has two main parts to it. First, It has a versatile editor workflow to work on many expanding projects. The second is building flexible runtime projects that are all compatible and can run together. The design for this project came from multiple years of idea planning and architecture research. With the initial version now complete, all future projects and apps that I work on will be made from this Unity Core project.

Main Focus

The Process

Earlier in my game dev journey, I created a Unity project which I called "Cybernautics Studio" where I attempted to create a collection of assets and apps within a single project. I quickly discovered that this was not a sustainable approach to development, as the project became increasingly slow and cumbersome, and apps being developed started interfering with each other. This experience inspired the Core project. It allows the same benefits of having one single project in which I can load in all of my tools and assets while using Git version control to switch between various projects within this environment. By using Git, I am able to keep each project lightweight and independent, but still utilize any work I created for another project that may be useful for the next one.

Projects that share the same foundations can become branches from a shared core setup of assets and scripts. As an indie developer, this level of reusability is incredibly important. Core allows me to utilize existing setups rather than having to start from scratch each time I start a new project.

My goal for Core is to create the ultimate game engine for my use, combining the power of Unity and premade assets with the flexibility of being able to jump between any project I wish to work on.

A key feature of Core is Unity’s Addressable System. Explained simply, Unity Addressables allows me to build compatible assets that I can distribute separately from the project build itself. This allows me to create multiple distinct apps that all run on the same base Runtime Environment just by choosing which addressables to load. In addition to this, addressables can be stored anywhere on the internet and retrieved at any time, making this the perfect app for use in the Metaverse. Through the clever architecture of loading and unloading assets combined with runtime code compiling, apps built within this system can be seamlessly moved between and can even be composed together to create entirely new functionality by the user at runtime.

Conclusion

To achieve my ideals, I intend to make this project fully open source and attract a community around it to help develop it into the future. Since the technology is based on Unity standards, anyone can contribute to the ecosystem with their own completely custom unity builds as long as they use Unity Addressables.

 
Christopher DiCarlo