CommonCore (page, repo) has now reached its fourth major version! It’s not the most exciting release, but it brings some important improvements that reflect the relative maturity of the project versus where it was a year or two ago. For those of you not in the know, this is the framework that powers most of my recent games, sitting atop the Unity game engine.
CommonCore 4 for the most part continued what was started with CommonCore 3, which was a dramatic shift from CommonCore 2. Like the previous iteration, this one was relatively small in scale, with an approximately one year release cycle and a focus on rationalization, cleanup, and quality of life improvements. New features were largely chosen with an eye toward specific projects, though once again low hanging fruit with broad benefit were taken as well.
One shift that started with the previous version and continued in this one was away from something to support Ascension III and broadly similar games toward something that can be used for a much broader variety of games. That’s always been part of the vision, to an extent, but the actual features being implemented didn’t reflect it. In general, I’m moving away from making the same type of game every time to creating a wider variety of experiences, and that will and has informed the design of CommonCore going forward.
All the changes are enumerated in a changelog provided with the source code, but in short it’s a lot of small changes and a few bigger ones. One area of focus was removing hardcoded data, especially in the RPG systems, which makes upgrading projects smoother and modifying mechanics less onerous. Some improvements have been made to interdependency between modules, especially the RPG module, but this is still a work in progress. A lot of legacy cruft has been removed, with some shuffled off to compatibility components that can be added if and only if they are needed. Finally, it’s once again working on IL2CPP and even has some extra pieces for better WebGL support, albeit with caveats (standalone desktop remaining the main target platform).
There’s also been some housekeeping outside the code itself. There’s now a page on this site for CommonCore The modules repository has been cleaned up and a new repository has been created for miscellaneous tidbits. The reference documentation is still nowhere near complete, but it has a few more sections filled out that were just blank before. There’s also been some cleanup in the README files and a slight rebranding from an explicitly RPG framework to just a framework.
CommonCore 5 Edgewater will continue along the same path: more cleanup, more rationalization, more flexibility, more small and medium features to support upcoming games. It will probably target Unity 2021 LTS, although it would be nice to maintain N-1 instead of N-1.5. There might be a minor or patch version (4.1.0 or 4.0.1) before development shifts fully to the next version, but we’ll see.