1
J2ME против сборщика мусора: хардкорный геймдев нулевых
Ностальгия по старым Java-играм часто игнорирует адские условия их разработки. В распоряжении кода было от силы 1,5 МБ кучи, процессор на 130 МГц и зоопарк проприетарных API. Ранний стандарт CLDC 1.0 вообще не поддерживал тип Float.
Чтобы втиснуть 3D-шутер в такие жёсткие рамки, приходилось полностью отказываться от ООП. God-объекты в виде одного класса на 50 КБ исключали накладные расходы ClassLoader. Статические пулы примитивов позволяли обойти дорогой боксинг и паузы GC, а плавающая точка заменялась fixed-point арифметикой.
Разберём архитектуру ретро-движков.