Игровой движок

Материал из Lukomore — свободная энциклопедия правды

Перейти к: навигация, поиск

Игрово́й движо́к (Game Engine) — известный абсолютно всем школьникам и геймерам от мало до велика центральный программный компонент видеоигр или других интерактивных приложений с графикой, обрабатываемой в реальном времени; древний и не угасающий мем, который всегда у всех геймеров на слуху, особенно перед выходом какой-нибудь новой супер популярной игры.

Обеспечивает игровой движок основные технологии, упрощает разработку и часто даёт игре возможность запускаться на нескольких платформах, таких как игровые консоли и настольные операционные системы, например, GNU/Linux, Mac OS X и Microsoft Windows, хотя портирование приложений на разные платформы это геморрой, который остаётся и по сей день.

Игровой движок, включает в себя движок рендеринга («визуализатор»), физический движок, звуковой движок, систему скриптов, анимацию, искусственный интеллект, сетевой код, управление памятью и многопоточность. Часто на процессе разработки можно сэкономить за счёт повторного использования одного игрового движка для создания множества различных игр, хотя по ощущениям и взаимодействию с игровым миром всё равно чувствуется один и тот же движок с новыми декорациями.

Сложнее всего не написать сам игровой движок а написать под него удобный инструментарий (SDK) и сделать движок гибким следуя старой главной парадигме процедурного программирования о повтором использовании кода. Именно на это у мелких конторок обычно и не хватает времени, поэтому сначала пишут игру поддаваясь творческим амбициям и кое-какие простенькие инструменты для комфортной работы с движком а после этого, если игра успешно продалась и конторка не закрылась, уже отделяют общие части движка от самой игры дабы приступить к написанию новой. Именно по этому первой игрой на каком-либо популярном движке была именно игра от самих разработчиков движка, примеры Crysis (CryEngine), Unreal Tournament (Unreal Engine) и именно по этому название движка так похоже на название первой игры на нём, хотя есть и исключения такие как Unity. Вообще такой подход почти везде в разработке программных продуктов в мелких фирмах.

[править] Абсолютно новый движок

Лучшим коммерческим ходом маркетологов компаний по разработке игр является заявление о том, что в новой версии их игры они использовали абсолютно «новый революционный движок™». Просто так повелось ещё со старых времён, это фраза действует на геймеров как фраза «я люблю тебя» на девушек. Если хочешь трахнуть трезвую шкуру поскорей, то обязательно признайся ей в любви, если хочешь выгодно продать новую часть игры (сотую по очереди, где нет ничего нового), то обязательно заяви о новом движке и не показывай технические данные приложения игрокам, про консоль отладки забыли как о пережитки прошлого. На самом деле переписывать движок достаточно затратно поэтому никто этого не делает, их обычно только дорабатывают ибо не надо менять то, что и так давно и хорошо работает. Одни и те же игровые движки используют десятилетиями ибо всё давно уже придумано и со временем добавляются лишь мелкие плюшки. Поэтому среди разработчиков так популярны системы контроля версия, что бы всегда можно было откатиться туда где всё ещё работало.

Если работает - не трогай!

— Старая программерская мудрость

Если при исполнении возникли ошибки, то перекомпилируй.

— Программерская тупость, но иногда работает, особенно когда проект огромный и ты сам не знаешь откуда, что взялось

В реале дело не в движке а в его оптимизации под новые системы, что бы движок максимально использовал все возможности новых вичислительных машин. И вообще графика зависит не от движка а от вычислительной мощности видеокарты. Добавить полигончиков можно только если увеличить минимальные системные требования а это урезает число потенциальных покупателей, поэтому это скорее маркетинг а не разработка.

Новый движок можно сравнить с новой версией любого браузера, который, по обнадёживающим заявлениям разрабов, более быстрый и надёжный. На деле вся скорость (получение данных по сети) прямиком упирается в ширину интернет канала, а производительность (разбор кода, постройка DOM, разбор скриптов и рендер) в вычислительную мощность процессора и иллюзий здесь быть не может.

Бытует расхожее мнение, что написать свой собственный трёхмерный движок ну очень сложно. Якобы для этого надо, за много лет изучить весь курс матана, в совершенстве знать математику, продать душу Дьяволу и принести в жертву девственницу. На самом деле всё зависит от того с чего начинаем писать. Вся симуляция физических законов уже заложена в физические движки, а векторная алгебра уже имеется в библиотеках визуализации (и в утилитах для них, так в OpenGL можно самому не писать отсутствующие там алгоритмы просчёта и создания перпендикуляров к поверхностям для правильной трассировки света и его отражения), тебе остаётся только подключить всё это и быдлокодить своё дерьмо. Если начинать с ассемблера (писать свою графическую библиотеку под конкретное железо), то и всей жизни может не хватить на написание своего движка. Если же не изобретать велосипеды и использовать готовые компоненты (библиотеки в которых уже всё есть), то набыдлокодить в одиночку свой простенький 3D двиг можно спокойно за пару часов или за день. Большинство всяких неизвестных движков (под конкретные говно игры) были написаны за пару недель/месяцев командами из пары человек, это конечно не касается гигантов индустрии, которые пишутся командами по 20-50 человек.

Если писать под Windows, то одних компонентов Microsoft DirectX хватит на всё, там и графический визуализатор, работа в вводом, сетью, звуком и всё, что только надо. Под Linux посложнее ибо придётся собирать набор библиотек для работы со всеми составляющими (OpenGL, OpenAL, Simple DirectMedia Layer, ODL, etc).

[править] Создание игры на своём движке

Если ты написал свой двиг, то не спеши радоваться и думать о том как ты сделаешь супер игру, которая будет крайне популярна в Steam, всё самое сложное и запаренное только впереди. Свой движок это не более 20 % от всего времени создания полноценной игры. Создание самой игры на движке это самая творческая и заёбная часть создания полноценного продукта. И если создавать свои 3D модели персонажей в пакетах трёхмерной графики ещё интересно, то чем дальше, тем хуже. Больше всего всех бесит скриптовать процессы и сцены. Самое нудное это вручную анимировать кат-сцены т.к. это прошлый век и все мало-мальски серьёзные конторы уже давно используют motion capture ещё со времён GTA San Andreas если не раньше. Если разработка некоммерческая, то с большой вероятностью игра в свет так и не выйдет так как писать надо много и через пару дней/недель/месяцев всё это сильно надоедает, так же как и секс с женой через пару лет брака.

Это незаконченная статья. Вы можете помочь, исправив и дополнив её.
В общем, накидывайте дальше у кого фантазия и данные есть.

Смотри также

Комментарии Игровой движок

[Показать/Спрятать]
  • VK, FB
  • HC
  • Disqus
comments powered by HyperComments
comments powered by Disqus