Найти тему

Как устроены игры изнутри

Давайте постараемся разобраться как же устроены игры изнутри. Попробую объяснить максимально простым языком.

Так как же у нас на экране бегают все эти герои, стреляют, сталкиваются, реагируют на команды игрока (нажатия на клавиатуру) и т.д.? И каким образом разработчики все это делают?

Некоторые, очень отдаленные от индустрии люди, думают, что разработчик расставляет все это на экране, двигает их и т.д., т.е. что-то на манер видео редакторов. Однако это конечно далеко не так.

Так как же выглядит игра "под капотом" ?

В таком виде создатели наблюдают свою игру 80% времени
В таком виде создатели наблюдают свою игру 80% времени

Проще всего представить игру в виде книги. Это множество страниц с кучей текста, где каждая строчка в книге - это команда или инструкция для игры. И дочитав книгу до конца мы тут же начинаем ее читать с начала. И так непрерывно. Т.е. игра - это просто зацикленное чтение команд на очень быстрой скорости. Представьте, что компьютер перечитывает 2000 страниц 60 раз в секунду!

Так что же написанно в этой книге и зачем ее постоянно перечитывать?

Например, упрощенно это может выглядеть так:

Если нажата клавиша на клавиатуре "D", то подвинуть главного героя на 5 пикселей вправо
Если нажата клавиша на клавиатуре "A", то подвинуть главного героя на 5 пикселей влево
Если главный герой падает и под ним есть земля, то он останавливается
Если герой стоит, то проигрывать анимацию стойки
Если герой двигается, то проигрывать анимацию бега

И т.д.

Тут вроде все просто и понятно. Но зачем перечитывать ее снова и снова? Ну это тоже легко объяснимо. Компьютер должен постоянно проверять все условия и реагировать на них постоянно. Т.е. он постоянно должен проверять, не нажал ли игрок какую-либо клавишу, чтобы вовремя сдвинуть нашего героя. Или, например, не столкнулась ли пуля с нашим героем, чтобы следуя инструкциям вовремя отнять ему здоровье и т.д.

Как же не запутаться со всем этим?

Для этого проще разбить всю книгу постранично для каждого объекта в игре.

Например, на первой странице у нас будут все инструкции для главного героя, на второй странице - все инструкции для врага, на третьей странице - инструкции для ящика, стоящего в уровне, на четвертой - инструкции для пули, на пятой - инструкции для камня и т.д.

Вы скажете: "Что? Какие камни? И сколько может быть инструкций для простой пули?". Но я вам отвечу, что абсолютно все, что вы создаете и помещаете в игру, вы, как создатель этого мира, должны прописать командами. Т.е. если просто "поставить" камень в ваш игровой мир, то он тупо "зависнет" в воздухе. Он не будет падать, катиться с горы, сталкиваться с героем и другими объектами, не будет разбиваться на осколки, если стрельнуть в него и т.д. Т.е. разработчик должен предусмотреть абсолютно все и прописать это большим списком таких инструкций. Самостоятельно в игре ничего не будет "работать".

И правда ощущаешь себя создателем своего мира и своей вселенной, когда ты сам придумываешь как и кому себя вести в этом мире и по каким законам и инструкциям этот мир должен жить! Это безумно интересно! Но как вы сами понимаете и безумно долго!

Спасибо, что дочитали статью до конца! Надеюсь более или менее вам стало понятно, что же такое игра и как она выглядит и работает "под капотом". Подписывайтсь, ставьте лайки, задавайте вопросы и предлагайте тему, которую вы бы хотели обсудить и узнать о разработке игр максимально простым языком.

А я возвращаюсь к разработке своей новой небольшой игры с вращением мира:

Моя текущая игра в разработке
Моя текущая игра в разработке