Alexandre Mutel, a .NET and graphics developer, writes about Unity's CoreCLR port, the Burst compiler, and compilers and tooling.
Commenters link his posts on porting Unity to CoreCLR and Burst, and mention his Crinkler compression article as a compression reference.
The article mentions compression briefly. They are using basic run-length encoding.
There are probably better algorithms. GP suggested Huffman but I don't think it will work. Something like the algorithm used by crinkler [1] (context modeling + arithmetic coding) may work better. It can be made even better if combined with the encoding (the base doesn't have to be a power of two).
Anyways, no need to overdo it, the author's technique works. At least for the newer base2048 version, optimized for long tweets
[1] https://xoofx.com/blog/2010/12/28/crinkler-secrets-4k-intro-executable/
Most of the newer games I play are Unity games. Although checking Wikipedia it sounds like the core engine is still in C++, so maybe there is more emultation than I thought even then. I guess this is why not that many games can be run directly with mono...
I found someone did a HackWeek project at Unity this year of porting the Unity engine to .net core that has more details:
http://xoofx.com/blog/2018/04/06/porting-unity-to-coreclr/
Man it would be sweet to see Unity adopt CoreRT in .NET 5 and just drop all the C++ conversion nonsense.
Edit: interesting, someone wrote about this a couple years ago: https://xoofx.com/blog/2018/04/06/porting-unity-to-coreclr
I wonder if there’s movement on this internally at Unity.
If you're talking about project.json, it's already dead :/ http://xoofx.com/blog/2016/05/11/goodbye-project-json/
https://xoofx.com/blog/2019/03/28/behind-the-burst-compiler/