То есть разбить большие массивы нулей, или единиц их чередованием - самомодуляцией.
Исправление ошибок - это дело второе. И исходит из условия избыточности. Хотя тоже важно.

Серьёзней темы игрушек,на сегодняшний день,пока трудно найти.
Эта тема затрагивает практически все направления программирования.
Лингвистика (процедурная генерация диалогов, сюжетных линей, квестов, распознавание речи - когда рот в такт слогам двигается, морфология, синтаксис...).
(Сейчас, как раз, занимаюсь генератором сюжетных линий(уже готов) и раскрытием сюжета - генерацией связанных предложений. Естественно с падежами и склонениями.)
ИИ, сам по себе содержит огромное подмножество направлений - от нейронных сетей и прологоподобных машин, ... до конечных автоматов и Марковских таблиц вероятных состояний.
Физика твёрдых и мягких тел, преломление в средах, тяготение и пересечение векторов, трение, видимость...
Сетевые решения - далеко нетривиальные.
Открытые и закрытые миры и их процедурная генерация. Отсечения, глубина обработки, бесконечные карты...
3D и 2D графика, тут каждая имеет сотни направлений.
Даже звук в игрушках нетривиальный проигрыватель, порою OpenAL не годится.
Ну и плюс задачи размещения всякого рода контента и динамической смены его в памяти.
И вся эта бадяга должна крутиться не менее FPS=60.
В общем, сразу всё не перечислишь. И всё это - сплошная математика.