Сегодня про то, что из себя представляют разные игровые переменные
На самом деле, все процессы, которые затягивают игрока в процессе игры – это сплошные манипуляции с переменными. И переменных этих огромное количество. Некоторые их них явно заметны игроку (хп, мана, уровни навыков и т.д.), другие же – совершенно неочевидны.
Например, внешность персонажа – это структура (набор переменных, если максимально упростить), в которой будет примерно 30 переменных. Пол, возраст, раса, тип глаз, тип носа, форма губ, цвет волос, форма волос и т.д.
Разные игровые штуки типа крафта – это тоже переменные. Например, надо нам слепить меч. По рецепту крафта нам нужен 1 слиток металла, 1 палка и 1 полоска кожи. И, скажем, нужно быть у кузницы.
Для компа это выглядит как код формата:
Создать_предмет(предмет меч)
{
Если (инвентарь.сталь>=1 и инвентарь.дерево>=1 и инвентарь.кожа>=1 и окружение.кузница==истина)
{
инвентарь.сталь–;
инвентарь.дерево–;
инвентарь.кожа–;
инвентарь.меч++
};
Иначе вывести(“невозможно создать предмет”);
};
Таки да, изначально у персонажа во многих играх есть все возможные предметы в игре со всеми возможными видами улучшений и апдейтов. Просто если их число = 0, то этот тип предметов скрывают, дабы не загромождать игроку инвентарь и не путать его.
То же самое касается и разных параметров. Скажем, персонаж получил некое “благословение божеств”. Игрок просто увидит, что на него наложен эффект и краткое описание эффекта типа “вы ощущаете прилив сил”. Но для игры это не так увлекательно. Для нее получаемые игроком бафы и дебафы, хилье и урон – манипуляции над чисельными переменными типа health, maxHealth, regenHealth, mana, maxMana и т д. Если же персонаж получил, скажем, частичное сопротивление чему-либо – то игра просто допишет некоторый множитель типа:
int resistFireMult=0.03;
И на этот множитель, который игрок увидит в эффектах как “+3% к сопротивлению магии огня”, будут умножаться все повреждения (уменьшение переменной хп)
Как видите, никакой магии и ничего сложного. Но, как я уже говорил, этих переменных – просто дохерища. И у каждого объекта в игре они свои.