So far, I've made two attempts at this challenge with Unity. The main issues you run into are:
- Every MonoBehaviour you create costs an immediate 50 characters for boilerplate alone. This includes the class definition and referencing the through "using UnityEngine;"
- Storing components using GetComponent are very expensive character-wise. Direct references or using SerializedFields are much cheaper by comparison.
- Your most expensive code calls will be to the engine. Best practice would be to create a single character wrapper method for the engine call if it is used more than once (just once can be left as that's the minimum characters you can make - a wrapper would be more expensive in that case.
The two games I attempted were:
- An overly ambitious tank game (very impractical, didn't get far), and
- A nearly complete Simon Says game, complete with animations (boilerplate code brought the codebase to 530 characters, a massively strong attempt!)
So the last attempt I'll make is a mini-golf game, that 1) a single script that 2) uses a wrapper method for input, no calls to System.Collections.Generic (what killed my Simon Says game), and 3) heavily utilize physics and animations (native to engine, need few calls if any)