Давайте рассмотрим такую ситуацию на примере 3д-шутера, где у нас есть редактор карт.
Например у нас есть класс врага(У него есть переменные урона, здоровье и т.д) и игрок хочет его заспавнить, также допустим что всё спавнятся на ЛКМ. После нажатия ЛКМ игроком, мы спавним противника где урон и здоровье выбираются игроком заранее(Т.е мы спавним противника так-же как в обычной игре, но при нажатие ЛКМ с другими параметрами здоровья и урона, или такими же). Ещё игрок хочет заспавнить стену(Допустим место спавна выбирает игрок с помощью x,y,z в редакторе). Мы просто стапвним ту же стену, но её x,y,z выбирает игрок. Для указания переменных x,y,z, урона, здоровье и т.д допустим справа в игре есть отделка под переменные(Также как в Unity, UE4 и т.д) в них игрок вписывает переменные для предмета(класса, объекта) который он выбрал при помощи мышки, потом вводит туда переменную и при нажатии Enter подтверждает что переменная EnemyDamage = 23, ту же переменную мы используем для обозначения урона когда спавним врагов. Есть много деталей по типу захождение объектов в текстуры, максимальный допустимый урон что-бы переменная int не была переполнена, вместо указания x,y,z летающия камера с выбранным предметом и т.д. Но надеюсь основу я вам хоть чуть-чуть объяснил.