Представим, что у вас уже есть продуманная идея для игры и прорисованы модельки для игры. Действительно, гораздо рациональнее использовать готовые игровые движки. Но что из себя вообще представляет игровой движок, и почему я рекомендую его использовать?
Игровой движок — это огромный кусок кода в игре, который чаще всего можно использовать в других играх. Если вы играли в разные игры на движке Source, вы заметили, что визуально они довольно похожи, да? За долгие годы опытные программисты за вас разобрались с принципами рендеринга (отрисовки) кадра, переносом физики в игру, распределением ресурсов компьютера во время игры, отрисовали готовые ассеты (любые визуальные объекты), создали правила поведения для ИИ и решили много других трудных задач. Вам же осталось лишь приспособить это к своей будущей игре.
Есть 3 популярных игровых движка, из которых я советую выбирать:
У этих движков огромное комьюнити и большая база знаний для изучения, есть удачные игры с открытым кодом, на которых можно поучиться. К тому же они не очень сложные в освоении, особенно Unity.
Не стоит забывать, что чаще всего изначально движок создается под конкретную игру. Если игра становится популярной, создатели просто дорабатывают движок и продают лицензии на использование. Поэтому в движке есть различные решения, подходящие для конкретного жанра. Лучше не использовать движок от шутеров от третьего лица в игре-платформере. Веселый пример: Dragon Age: Inquisition, которая была написана на движке Frostbite от DICE (Battlefield), как итог — затянутые сроки разработки, раздутый бюджет и отсутсвие реализации фич, которые задумывались на стадии планирования.
Итак, я написал простыню про движки, но как же писать с этим всем игры? Довольно просто (на словах) — надо продумать логику игры (механики и взаимодействия объектов), перевести это в код и пофиксить ошибки :)
Чтобы "писать" игры нужно долго учиться, и все равно в одиночку создать что-то сложное практически невозможно, т.к. это займет годы времени. Проще всего воспользоваться движками типа Unity с готовыми пресетами и собирать игры из них :)
Превет