Как программировать игру в игре?
Ведь напишу я его в игре, а в программе он прописан не будет.
Долго ломаю голову над такой простой фичей, помогите понять концепт программирования игры в самой игре 
А как пишут плагины для софта? Предоставляется документированный API, доступный из скриптового (проще для юзера, но инструменты предоставить придется самому)/компилируемого (хуже для юзера, лучше для программиста, инструменты разработки, как правило уже поставляются другими компаниями) языка. И вперед.
Либо же предоставить "кирпичики" - простейшие объекты с некоторым базовым функционалом, которые игрок сможет комбинировать в более сложные объекты. Как в Factorio, например.
Обычно для этого используют скриптовый движок. Наиболее известный — Lua.
Также используют триггеры, эталонный пример — StarCraft.
Но, работая с триггерами, надо разделять «условие» и «повод». Повод — это событие-импульс, которое МОЖЕТ спровоцировать срабатывание триггера. Условия — это уже дополнительные вещи, которые проверяются потом.
Третья возможность — движок, основанный на данных. Например, задаём тип атаки, количество HP, тип движения и прочее, и вся эта библиотека уже записана в коде. Эталонный пример — Doom (самый ещё первый, 1993 года). Кстати, в его последователе Hexen появились скрипты.