Разное

Движки для создания 3d игр: Самые популярные бесплатные движки для разработки игр / Хабр

Твоя первая игра на Godot Engine / Хабр

1. Предисловие

Здравствуй, в данной статье я хочу в максимально сжатой форме познакомить тебя с основами создания простых 2d платформеров на движке Godot. Иногда мы будем останавливаться на некоторых важных моментах, а иногда пропускать ненужную тебе на начальном уровне информацию.

2.Стартуем!

Думаю установить сам движок не составит труда. После установки открываем его и нажимаем на кнопку «новый проект».

Создание проекта.

В выплывшем окошке введи название проекта и выбери его расположение в файловой системе. В пункте «отрисовщик» выбираем «OpenGL ES 3.0», у нас нет нужды использовать более старую версию opengl, т.к ее обычно применяют при создании браузерных игр.

3.Знакомство с интерфейсом

2D сцена в Godot Engine.

Итак, мы создали твой первый проект! Отличное начало, на сегодня хватит. Ладно, а если серьезно, то изучать интерфейс программы, особенно на первых парах, очень важно. Перед тобой открылась интересная картина с пустой 3d сценой, но она нам сегодня не понадобится, поэтому переходим во вкладку 2d. Кнопка находится сверху посередине. Стало немного проще, не правда ли? Ну, а теперь перейдем к самому интерфейсу программы (его кстати можно настроить под себя, перетащив какие-то элементы левой кнопкой мыши, но пока лучше оставить все как есть).

4.Работа с файлами через Godot

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

Проводник в Godot Engine.

Пока что там пусто, но это потому, что мы еще ничего не добавили. Так давай сделаем это! Ссылку на архив я прикрепил в конце поста, скачивай его и наслаждайся халявными спрайтами для игры (сразу говорю, они не мои). Если конечно у тебя заготовлена своя графика, то милости прошу.Итак, выделяем все нужные нам файлы и переносим их в окошечко. Вжух и они скопировались в движок! Но на этом магия не заканчивается! Здесь можно делать все то, что ты делаешь в обычном проводнике! Одним словом, полная свобода действий.

Но давай пока оставим эту часть экрана в покое и перейдем к более серьезным вещам.

5.Работа со сценами

Создание новых сцен.

Посмотри в верхний левый угол редактора. Здесь есть вкладка, которая называется «Сцена». Давай добавим твою первую сцену! Делается это просто, тебе нужно либо нажать на плюсик, либо ввести сочетание клавиш «ctrl + A». Перед тобой выплыло меню, в поиске которого нужно ввести заветное слово «Node». Мы давай это будет наша основная сцена, назовем ее «World», но название в принципе неважно. Чтобы переименовать сцену нужно лишь дважды щелкнуть на нее левой кнопкой мыши. Теперь давай добавим на сцену игрока!

Многие просто добавляют объект «Sprite», но это большая ошибка! Так делать нельзя! Запомни это раз и навсегда! Мы с тобой, как продвинутые пользователи добавим не «Sprite», а «KinematicBody2D».

Теперь древо твоего проекта выглядит так:

Добавляем игрока.

Как ты наверное успел заметить, напротив нашего «KinematicBode2D» висит какой-то желты значок. Что он тут забыл? Дело в том, что наш объект пока что не имеет форму, вот Godot и ругается. Но прежде чем добавить форму нашему игроку, давай добавим его спрайт( И не забудь заменить название «KinrmaticBode2D» на «Player» ). Для этого нажми один раз правой кнопкой мыши на нашего «Player» и сочетанием клавиш «ctrl + A» добавь объект «Sprite». Потом опять нажми на Игрока и добавь объект «CollisionShape2D». У тебя должна быть примерно такая картина:

Добавляем в спрайт и границы игрока.

Если все так, едем дальше. Теперь зададим картинку спрайта нашего персонажа. Выбираем объект «Sprite», а потом перетаскиваем из моего архива картинку «Player.png»( или твою картинку) в раздел «Texture». Если картинка импортировалась с сжатым качеством, просто нажми на нее, и в Godot в верхнем левом углу перейди в вкладку «Импорт», там в разделе «Flags» убери галочку с пункта «Filter» и нажми «Переимпортировать». Если не помогло, то просто перезапусти Godot.

Итак, мы добавили спрайт игрока, но выглядит это немного странно.

Добавляем текстуру спрайта игрока.

Что же делать? Без паники, все поправимо в пару кликов. В левой части панели «Инспектор» выбираем параметр «Hframes», и подгоняем его по размерам ( у меня это 25). Ну что, поменялась картинка?

Устанавливаем границы спрайта.

Супер, едем дальше! Ты еще не забыл про CollisionShape2D? Выделяй его и в пункте «Shape» выбирай «Новый RectangleShape2D». Теперь изменяй его под размер персонажа. У меня получилось так:

CollisionShape2d.

6.Отдельные сцены в Godot

Это все конечно классно,но хорошим тоном в Godot является создание отдельных сцен для объектов. Поэтому нам нужно сделать так, чтобы объект «Player» был отдельной сценой. Но не создавать же нам все заново? Нет, для этого в движке предусмотрена отдельная функция.Нажмите на «Player» правой кнопкой мыши и выберете «Сохранить ветку,как ветку».

Создание сцены из ветки.

Теперь «Player» это отдельная сцена, отлично!Чтобы перейти на сцену игрока достаточно нажать на иконку:

Перейдем на сцену игрока и приступим к очень интересному занятию — программированию.

7. Скрипт игрока, GDscript

Для того чтобы добавить скрипт какому-либо объекту нужно просто выбрать этот объект и нажать на иконку свитка:

Создать скрипт.

После этого выплывет такая табличка:

Скрипт для игрока.

Нажимаем «Создать» и у нас открывается встроенный редактор кода в Godot.Теперь начинается более сложная часть туториала, поэтому слушай внимательнее.Пока что наш персонаж просто стоит на сцене и ничего не делает, это слишком скучно. Ну так давай сделаем управление персонажем!Что нам для этого понадобится? Нам нужен скрипт, который будет обрабатывать нажатия клавиш с клавиатуры, двигать персонажа, проигрывать анимацию. Но давай пойдем по порядку и начнем с самого простого — управления.

Простое управление.

Пишем вот такой код, не волнуйся сейчас все объясню. Первая строчка объявляет Godot, что мы используем объект «KinematicBody2D». Ее создал сам движок. На 3 и 4 строчке мы задаем две константы, отвечающие за ускорение и максимальную скорость. Они нужны для плавного перемещения персонажа по сцене. На 6 строчке объявляем переменную для вектора перемещения. После этого на 8 строчке создаем функцию «physicsprocess», это системная функция движка. Она нужна, чтобы привязать к персонажу физику. В нашем случае — это физика перемещения и сила гравитации. 9 строчка отвечает за управление по оси X. Метод Input помогает нам считывать те самые кнопки для управления (стрелка влево и стрелка вправо). После на 11 строчке мы проверяем была ли нажата какая-то кнопка. Потом мы перемещаемся влево или вправо.

Как ты заметил, мы прибавляем к координате игрока произведение направления по координате на ускорение и на какую-то delta. Вопрос, что такое delta? Delta показывает сколько времени (в секундах, тип float) прошло с момента отрисовки прошлого кадра.Зачем это сделано? Если мы не будем привязывать передвижение игрока ко времени, то оно автоматически привязывается к частоте процессора. На крутых компьютерах или телефонах разница незаметна, но запустив приложение на старом пк или телефоне, ты все поймешь. Поэтому всегда привязывай передвижение к delta!

Потом в строке 13 мы используем какой-то clamp. Опять неразбериха! Все просто, clamp, как можно догадаться из названия, «сжимает» значение переменной. Сделано это для оптимизации и плавности движения.Ну и в последней строке мы просто запускаем передвижение нашего игрока. Не так уж все и сложно!

8. Первый запуск.

Вот сделали мы все это с тобой, а где результат? Ну так давай поскорее запустим с тобой первую демку! Все очень просто, нажми клавишу F5, после этого выплывет окно, которое скажет тебе, что основания сцена не выбрана. В нашем случае основная сцена — World.tscn. Выбираем ее и снова жмем F5. Должно появиться что-то такое:

Окно демки.

В верхнем левом углу можно заметить маленькую часть нашего персонажа. Давай приведем все в порядок. Для этого сначала закрое окошко демки и перейдем в настройки проекта. Чтобы это сделать, в левой верхней части нажми на «Проект», а в выплывшем окне нажми «Настройки проекта». Здесь переходим в вкладку «Window» и ставим разрешение на 320×180. Почему такое маленькое? Все просто, мы с тобой задали разрешение экрана в самой сцене, для платформера такие размеры идеальны. А для экрана самой демки нужно задать нормальное разрешение. Это можно сделать в пунктах «Test Width» и «Test Height». Я задам его в формате 1280×720. Спустимся пониже и в пункте «Mode» ставим «2d», а в «Aspect» ставим «keep». Для красоты предлагаю обратно перейти на сцену и передвинуть персонажа в середину экрана. Делается это легко, просто зажми персонажа левой кнопкой мыши и начни перетаскивать. Теперь все приготовления закончены,можно запускать демку.

Красота, правда? Попробуй передвигать персонажа стрелками на клавиатуре. Получилось? Да, но персонаж будто скользит по экрану и не может остановиться. Не волнуйся, скоро мы это исправим. Однако сейчас наш персонаж как бы висит в воздухе, это не есть хорошо. Давай сделаем землю для нашего игрока!

9.Tilemaps

Что такое «Tilemap»? Тайлы — это плитки, вместе образующие сетку тайлов. Чаще всего они принимают форму квадратов. Как же их добавить в наш платформер? Очень просто, для начала выбери объект «World»(нашу основную сцену), нажми клавиши «ctrl + A» и выбери «TileMap».

Теперь в этом окошке выбири «Tile Set» и нажми «Новый TileSet».Снова нажми на «TileSet», должно получиться ка-то так:

Добавляем анимацию.

Давай добавим спрайт для нашего tilemap, для этого нажми на плюс снизу и выбери «tile.png».

Следующий шаг будет довольно сложным, поэтому слушай внимательно. Итак, во вкладке «Регион» полостью выделяем нашу картинку, в вкладке «snap options» ставим step по x и y на 16. Такие же действия повторяем во вкладках столкновение, перекрытие, навигация, битовая маска. А последней мы остановимся поподробней.

В ней мы нажимаем на квадратик и выделяем весь тайл. Тоже самое проделываем и в других вкладках. Вот как в итоге должно получиться.

Задаем границы тайла.

Отлично, сохраняем все и переходим обратно на сцену. Еще раз кликаем на Tilemap и в раздеел «Cell» меняем size на 16×16.Теперь можно делать уровень!

Создаем простой уровень.

Вот как у меня получилось. Супер, но на нашего игрока до сих пор не действует гравитация, давай это исправим. Для этого перейдем в скрипт player и введем там такой код.

Константы для прыжка и гравитации.

Здесь к существующим переменным мы добавляем friction, gravity, jumpforce, airresistance. Названия говорят сами за себя, поэтому объяснять за что они отвечают я не буду.

Реализация прыжка и гравитации.

Следом идет сама сила гравитации. Мы прибавляем к motion.y силу тяжести, умноженную на delta. Это действие заставляет нашего игрока падать вниз, если под ним ничего нет. После этого скрипт обрабатывает нажатия на кнопки, характерные для прыжка (стрелочка вверх). И заставляет игрока падать вниз, когда он уже прыгнул.

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

Как выглядит при запуске.

10.Анимации

Простые анимации в Godot сделать очень легко. Для этого перейдем на сцену player и добавим туда «AnimationPlayer». Жмем на кнопку «анимация», далее жмем «новый» и вводим название анимации. Сделаю анимацию для бега и назову ее «Run».Чтобы добавить новый кадр для анимации нужно перейти в «sprite».

Добавляем кадры в анимацию.

Напротив пункта «frame» есть ключик,если нажать на него, то кадр из спрайта добавиться в анимацию. Постепенно увеличиваем frame от 0 до 8 и ключиком добавляем кадр в анимацию. Вот как в итоге это должно выглядеть:

Создаем анимацию из кадров.

Тоже самое повторяем для других анимаций, просто меняя номер кадра. В итоге у тебя будет несколько анимаций — для прыжка, ходьбы, и анимация idle. Теперь все это нужно добавить в код.Переходим в код player и вносим некоторые изменения:

Добавляем переменные для анимации.

Добавляем две переменные sprite и player. Но ты заметил, они какие-то странные. Почему в начале стоит слово onready, что за странное значение этой переменной? Сейчас все объясню. Переменные типа onready нужны для взаимодействий с другими объектами на сцене. В данном случае мы подключаем их для воспроизведения анимации и получения спрайта игрока.

Анимация при ходьбе.

На 16-ой строчке мы проигрываем анимацию ходьбы. Однако здесь еще появилась какая-то странная 22 строчка, что она делает? Она зеркально отражает анимацию игрока в зависимости от того, куда он идет. А на 24 строке мы говорим, что если игрок стоит, то проигрывать нужно анимацию idle.

Анимация прыжка.

На 35 строчке мы проигрываем анимацию прыжка, если игрок не на земле. Вот собственно и все изменения в коде.

Заключение

Если ты все правильно делал, то у тебя должен получиться простой платформер. Что делать дальше? Да все что угодно! Улучшай свои навыки в использовании движка, создавай свои собственные игры изучай новые фишки. На этом я вынужден с тобой проститься, надеюсь ты хорошо провел время и научился чему-то новому.

Вот все материалы для этого туториала:

Unity — самый популярный игровой движок? Обзор движков, на которых делают игры для Steam / Хабр

Какие движки наиболее популярны в 2021 году — да и вообще в последнее десятилетие? Очевидно, по всем параметрам лидирует Unity. Unreal, в свою очередь, — пожалуй, наиболее очевидный выбор для AAA. О таких выводах догадаться несложно, даже не имея на руках никаких численных данных. Но что, если все-таки попытаться их собрать?

Сайт gamedatacrunch.com максимально приблизился к реализации этой задачи, и его основатель Ларс Дусе на днях выкатил анализ движков paid-игр в Steam, выпущенных с 2010 года. В этой статье по нему мы тоже пройдемся, но и вспомним о том, какие еще движки сейчас в обиходе (и не только в Steam).


Итак, самый популярный движок не только в мобильной игровой разработке (где он занимает более 50% рынка), но и на Steam для ПК — Unity. Здесь никакой интриги нет, это видно и из диаграммы ниже, на которой показана популярность игровых движков в Steam по годам, начиная с 2010. Как мы видим, Unity действительно является доминирующим движком, начиная с 2016 года. Статистика эта все еще не безукоризненно точная (Unknown — игры, движки которых не удалось идентифицировать), но в определенной степени на нее можно полагаться.

Почти то же самое, но в виде круговой диаграммы:

Какие движки мы вообще здесь видим?

Unity (Unity Technologies). Впервые выпущенный в 2005 году как движок только для Mac OS X, теперь Unity поддерживается и Windows, и Linux, а также известен своей кроссплатформенностью на все мобильные, консольные, ПК-платформы и даже AR/VR. Отличается мощным комьюнити и обилием обучающих материалов, а также наличием огромной библиотеки ассетов и плагинов, с помощью которых можно значительно ускорить процесс игровой разработки. Это самый популярный движок среди разработчиков игр, причем как среди инди, так и более крупных студий. Движок сосредоточен на идее «доступности»: у него довольно низкий порог входа, его легко освоить, он бесплатен для независимых разработчиков (подписка же Unity Pro стоит $1,800/год). 

Из минусов? Да, движок довольно прост в освоении, но если вы хотите создавать что-то сложнее примитивных платформеров, то вам понадобится хорошее знание C# для написания скриптов и объектов и последующего внедрения их в игру. Также нужно понимать, что Unity — уже довольно старый движок, поэтому в нем есть свои особенности и артефакты, а вместе с тем — порядочная медлительность и необходимость допиливать некоторые инструменты своими силами. Например, игры, использующие uNet для работы в сети, вскоре должны будут поддерживать инфраструктуру самостоятельно, поскольку поддержка этого инструмента постепенно прекращается.

Примеры тайтлов:

Unreal Engine (Epic Games). Названный в честь игры 1998 года, в которой он и был впервые использован, Unreal Engine с годами все больше снижал лицензионные сборы и требования к revenue, так что теперь доступен практически для каждого, кто хочет создавать на нем игры. Тем не менее, чаще он используется все-таки для AAA-проектов. 

В нем заложен практически тот же инструментарий, что и в Unity: работа с физикой, 3D-графикой и не только, — но существуют и некоторые другие решения, способные склонить разработчиков в его пользу. Впрочем, для всего этого уже требуется определенный уровень скиллов. Это мощный движок для создания высокореалистичных игр «из коробки», поддерживающий быстрое прототипирование и визуализированный кодинг, а также имеющий обширную кастомизацию. Его широко используют не только в ПК, консольной и мобильной игровой разработке, но и вне геймдева: например, в кино (один из наиболее ярких и свежих тому примеров — сериал «Мандалорец»), архитектуре и автомобильной промышленности.

Примеры тайтлов:

  • PlayerUnknown’s Battlegrounds

  • Sea of Thieves

  • Fortnite

  • Final Fantasy VII Remake

  • Dead by Daylight

  • BioShock: Infinite

  • Star Wars Jedi: Fallen Order

GameMaker Studio (YoYo Games). Выпущенный в 1999 году, GameMaker ориентирован на начинающих разработчиков и обладает интуитивно понятным Drag & Drop: для его использования нет необходимости написания каких-либо скриптов и тонн кода, как и вообще знания языков программирования. Готовую игру можно сразу экспортировать в Steam.  

В нем нет таких возможностей для работы с 3D, как в Unity и Unreal: вместо этого он фокусируется на 2D-играх. Другой недостаток — высокая цена при работе с несколькими платформами. Но если вы готовы заплатить за покупку нескольких лицензий, то GameMaker Studio 2 может оказаться неплохим решением для кроссплатформенной игровой разработки.

Примеры тайтлов:

  • Hotline Miami

  • Katana Zero

  • Risk of Rain

  • Undertale

  • Spelunky

  • Hyper Light Drifter

Ren’Py (Tom «PyTom» Rothamel). Запущенный в 2004 году под лицензией Массачусетского технологического института (MIT), Ren’Py (от англ. Ren’ai (恋愛) — «романтическая любовь» по-японски, и Python, на котором он построен) — это кроссплатформенный бесплатный движок с открытым исходным кодом для создания визуальных новелл с более чем 450 играми в Steam и более 4800 в целом. Как конструктор типичного представителя жанра, движок интуитивно понятен для любого пользователя, но для создания более сложных игр требует уже знания Python.  

Примеры тайтлов:

RPGMaker. Самый старый из этого списка, разработанный аж в 1992 году, RPG Maker представляет собой скорее серию связанных движков, ориентированных на создание JRPG (японских ролевых игр). У него было несколько издателей на протяжении многих лет в разных странах, включая неавторизованные локализации. Прост в освоении даже новичками, не требует знания языков программирования и в целом представляет собой скорее конструктор для создания игр определенного жанра, благодаря чему и пользуется особой популярностью.

Примеры тайтлов:

  • To The Moon

  • Corpse Party

  • Ao Oni

  • Rakuen

Adobe AIR (раньше Adobe, с 2020 года — Harman International). Adobe Integrated Runtime (AIR) вышел в 2008 году и позволил разработчикам Flash/ActionScript перенести на ПК написанные на различных языках программирования web-приложения, не требуя их запуска через браузер, так что многие из самых популярных игр Steam являются адаптациями браузерных игр на Flash. Это кроссплатформенная среда, позволяющая небольшими усилиями создавать билды для Windows, OS X, Linux, QNX и Android. 

Примеры тайтлов:

OGRE. Объектно-ориентированный графический движок с открытым исходным кодом, на котором базировался Roblox вплоть до 2014 года. Имеет неплохие возможности, такие как поддержка OpenGL и Direct3D, совместимость с платформами Windows, Linux, Mac OS X и iOS, программирование GPU и шейдеров на ассемблере и языках высокого уровня, и многое другое. Это не игровой движок как таковой — это графический движок для рендеринга трехмерной графики. В нем нет встроенной поддержки сети, звука и многих других функций, но есть портированные под движок библиотеки, расширяющие его функционал:  PhysX SDK, OpenGUI и другие.

Примеры тайтлов:

  • Rebel Galaxy

  • Rebel Galaxy Outlaw

  • Kenshi

  • Torchlight

XNA (Microsoft). XNA’s Not Acronymed был выпущен в 2006 году как набор инструментов, позволяющий упростить игровую разработку под Windows и Xbox и освобождающий от написания повторяющихся шаблонных кодов. Эдакий DirectX на .NET. Впрочем, уже в 2013 году стало известно, что новые версии XNA более разрабатываться не будут.

Примеры тайтлов:

  • Celeste

  • Rogue Legacy

  • Stardew Valley

MonoGame. Не столько игровой движок, сколько реализация все того же фреймворка Microsoft XNA c открытым кодом, который широко используется инди-разработчиками для кросс-платформенной разработки. Включает в себя редактор среды, графический пользовательский интерфейс, систему частиц, физику и многое другое. Отличается большой гибкостью, так что часто выступает в качестве основы для других игровых движков.

Примеры тайтлов:

  • Axiom Verge

  • Bastion

  • Infinite Flight

KiriKiri (w.dee). Еще один «классический» японский движок-конструктор для создания визуальных новелл, JS-ориентированный и с встроенным Drag & Drop. С 2013 года реинкарнировал в KiriKiri Z.

Примеры тайтлов:

  • Fate Stay Night

  • Nekopara

И другие

CryEngine (Crytek). На самом деле, согласно другим данным по Steam, CryEngine тоже занимает на этой платформе далеко не последнее место. Как и Unreal Engine, CryEngine тоже нацелен на AAA-сегмент, но, в отличие от него, имеет меньше обучающих материалов, в целом сложнее для изучения, да и комьюнити не такое дружественное, как у соперников. Это кроссплатформенный движок, заточенный больше всего на создание фотореалистичных шутеров от первого лица: в комплекте с базовой версией движка даже идет GameSDK — полноценный шутер, который можно адаптировать под ваши нужды. Впрочем, мобильные платформы и портативные консоли в его кроссплатформенность не входят. 

Впоследствии лег в основу Amazon Lumberyard. С выпуском в 2016 году CryEngine V перешел на модель распространения «плати сколько хочешь».

Известные тайтлы:

Amazon Lumberyard (Amazon). Бесплатный кросс-платформенный движок класса AAA, разрабатываемый Amazon с 2016 года. В его основу легла архитектура CryEngine. Хороший выбор не только для AAA-сегмента, но и для старт-апов и инди-студий. Как минимум, о многом говорит то, что Star Citizen перешла именно на него. 

Тем не менее, страдает движок от тех же недостатков, что и CryEngine: небольшое комьюнити, мало материалов, меньший уровень надежности, чем у более популярных конкурентов.

Известные тайтлы: 

  • New World

  • Star Citizen

Godot (MIT). Довольно новое решение в экосистеме игровых движков, но имеющее ряд интересных особенностей. И пусть пока Godot не может похвастаться какими-то особыми игровыми хитами, он обладает всеми возможностями передовых движков — при этом он полностью бесплатный, с открытым исходным кодом и довольно легок в освоении. Тем более, вокруг него уже собралось крепкое комьюнити и существует довольно много полезных инструментов. 

Godot поддерживает несколько языков программирования: C#, C++, GDScript, основанный на Python, и язык визуального программирования. Все игровые ресурсы хранятся в папке проекта в виде обычных файлов, что во многом упрощает работу с системой управления версиями для разработчиков. Из минусов: пожалуй, можно отметить, что он даже слишком заточен на новичков.

Примеры тайтлов:


Здесь мы сосредоточились на игровых движках, наиболее популярных в Steam, но список существующих движков непрерывно растет. Многие крупные игроки на рынке геймдева пользуются собственными движками: Electronic Arts — Frostbite, CD Projekt RED — REDengine, Remedy Entertainment — Northlight. Одни движки уходят, на смену им набирают популярность другие, разрабатываемые как компаниями, так и независимыми разработчиками на коленке, на основе старых и с нуля.

Популярные движки для игр — Indie DB

Добавить двигатель Популярные двигатели  (0–30 из 563)

Перезагрузить

СтатусВыпущенныйРанний доступСкоро будетНеизданныйЛицензияBSDКоммерческаяCreative CommonsGPLL-GPLZlibMITProprietaryPublic DomainДата добавленияПоследние 24 часаПрошедшая неделяПрошлый месяцПрошлый годГод или старше

Обновлено Выпущенный | Добавлен | Популярно сегодня | Популярный за все время | Рейтинг | Имя

1

Двигатель Xash4D

1 Лицензия GPL

Xash4D — мощный независимый 3D-движок с открытым исходным кодом, предназначенный для обеспечения высокой совместимости с форматами движка GoldSource (карты, модели, текстуры, звуки…

2

Unreal Development Kit

4 Коммерческая лицензия

UDK — это Unreal Engine 3 — полная платформа для профессионального развития. Все инструменты, необходимые для создания отличных игр, расширенных визуализаций и…

3

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

63 Лицензия MIT

Run3 — это мощный игровой движок в реальном времени, созданный для шутеров от первого лица. Он имеет библиотеку игр Ogre 3D в качестве базового 3D-движка. Игровой движок Run3 — это…

4

Xash4D FWGS Engine

20 Лицензия GPL

Вилка движка Xash4D, портированная на множество различных платформ, таких как Linux, *BSD, OS X, Haiku, Emscripten, Android и iOS. Позволяет играть в Half-Life из коробки…

5

Происхождение затмения

12 Коммерческая лицензия

Eclipse Origins — это пакет для создания 2D MMORPG игр на базе Windows. За считанные минуты вы можете загрузить Eclipse и приступить к разработке собственной онлайн-ролевой игры…

6

id Tech 4

75 Коммерческая лицензия

Ранее называвшаяся «Doom 3 Engine», Tech 4 является текущей платформой лицензирования id Software. Включите такие игры, как Doom 3, Quake 4 и Enemy Territory…

7

Двигатель

4 Коммерческая лицензия

OEngine — это многоплатформенный движок C++ с редактором WYSIWIG. Он сделан очень гибким, использовался во многих внутренних прототипах и в настоящее время…

8

Chrome Engine 6

4 Собственная лицензия

Chrome Engine — собственный движок для 3D-игр, разработанный Techland. Текущая версия Chrome Engine 6 поддерживает Microsoft Windows, Xbox 360 и PlayStation…

9

Unreal Engine 2

1 Коммерческая лицензия

Unreal Engine 2 — это полная платформа для разработки игр, предназначенная для современных популярных ПК, игровой консоли Microsoft Xbox и Sony PlayStation 2.

10

Raycasting Game Maker

3 Лицензия Public Domain

Raycasting Game Maker — это простой в использовании бесплатный игровой редактор, который создает простые игры с рейкастированием в стиле Wolf3D. Готовой игре нужно всего лишь…

11

Редактор WOLF RPG

3 Лицензия GPL

WOLF RPG Editor — это инструмент для создания игр, с помощью которого можно создавать сложные ролевые игры. Его часто считают предназначенным для продвинутых пользователей, поэтому продолжайте…

12

Gemix

203 Коммерческая лицензия

* Что такое Gemix Studio? Gemix Studio — это профессиональный инструмент для разработки видеоигр, который включает в себя IDE с максимально возможным набором инструментов и набором…

13

Обезьяна

183 Коммерческая лицензия

Monkey — это язык программирования игр нового поколения, который позволяет с легкостью создавать приложения для различных платформ.

Обезьяна работает…

14

Unity

9 Коммерческая лицензия

Unity — это мультиплатформенный инструмент для разработки игр, изначально разработанный для облегчения создания. Полностью интегрированное профессиональное приложение Unity просто происходит…

15

Unreal Engine 4

14 Коммерческая лицензия

Самый лучший на сегодняшний день игровой движок мирового класса. Unreal Engine 4 дает вам возможность делать больше, чем когда-либо прежде. Воплотите свои творческие замыслы в жизнь…

16

Ролевая игра в коробке

6 Коммерческая лицензия

RPG in a Box — это инструмент для простого создания трехмерных ролевых игр в воксельном стиле и приключенческих игр — все, что вам нужно для создания и обмена вашими. ..

17

Конструкция

133 Лицензия GPL

Construct — это бесплатное мощное и простое в использовании программное обеспечение для разработки игр и приложений на основе DirectX 9 в среде WYSIWYG. Он включает…

18

GameMaker Studio

0 Коммерческая лицензия

GameMaker Studio в равной степени обслуживает новичков и опытных профессионалов в области разработки игр, позволяя им создавать кроссплатформенные игры в рекордные сроки…

19

ID Тех. 3

46 Лицензия GPL

Ранее называвшийся «QUAKE 3 Engine» и один из самых успешных лицензированных движков в истории, id Tech 3 был движком, который использовался для создания таких игр, как. ..

20

Intersect

229 Лицензия GPL

Intersect — это набор инструментов для создания ролевых онлайн-игр на языке C#. Этот движок сочетает в себе любимые ролевые онлайн-аспекты классической 2D-игры, основанной на тайлах…

21

XNA

50 Лицензия общественного достояния

Microsoft XNA — это набор инструментов с управляемой средой выполнения, предоставленный Microsoft, который упрощает разработку видеоигр и управление ими. Попытки XNA…

22

Наковальня

61 Собственная лицензия

Anvil (также известный под названием Scimitar) — игровой движок, созданный разработчиком видеоигр Ubisoft для использования на Microsoft Windows, PlayStation…

23

ioquake3

129 Лицензия GPL

ioquake3.org является стандартом де-факто в технологии Quake 3 после выпуска открытого исходного кода. Другие основываются на тяжелой работе сотен людей, которые…

24

Unreal Engine 3

17 Коммерческая лицензия

Unreal Engine 3 — это полноценная платформа для разработки игр для консолей следующего поколения и DirectX9.ПК с широким спектром базовых технологий…

25

Leadwerks Game Engine

17 Коммерческая лицензия

Игровой движок Leadwerks — это самый простой способ создания 3D-игр. Благодаря быстрому конвейеру разработки, поддержке программирования на Lua и C++ и обширному обучению…

26

Doom Engine

14 Лицензия GPL

Движок Doom — это игровой движок, лежащий в основе игр id Software Doom и Doom II, а также игр Heretic и Hexen от Raven Software, а затем, наконец…

28

Пользовательский

32 Коммерческая лицензия

Движок, использованный для создания этой игры, был одноразовым созданием, специально разработанным для запуска этой конкретной игры. Это не _настоящий_ игровой движок, это…

29

FPS Creator X10

68 Коммерческая лицензия

FPS Creator X10 — новейший движок Game Creators, обеспечивающий потрясающие визуальные эффекты только для Windows Vista и DirectX 10. Расширенные возможности поведения персонажей ИИ…

30

CryENGINE 2

105 Коммерческая лицензия

Редактирование в реальном времени, наложение рельефа, динамическое освещение, сетевая система, интегрированная физическая система, шейдеры, тени и динамическая музыкальная система — это лишь некоторые из них…

31

CryENGINE 3

11

Выпущено в 2011 г. Коммерческая лицензия

CryENGINE®3 — это первое комплексное решение для разработки игр для ПК, Playstation®3 и Xbox 360™, готовое к разработке игр нового поколения с масштабируемыми вычислениями и…

Создание 3D-игрового движка (часть 4) » киберреальность

Итак, теперь у нас должно быть хорошее представление о том, почему вы хотите создать 3D-движок и из каких компонентов он состоит. Далее мы рассмотрим некоторые инструменты и API, необходимые для создания программного обеспечения. Имейте в виду, что выбор, который я делаю, не обязательно является оптимальным выбором для всех ситуаций. На самом деле, следовать этому совету может быть плохой идеей в зависимости от того, что вы планируете делать. Лично для меня это в основном учебное упражнение, поэтому я хочу в основном развивать свои навыки. Это означает, что я могу выбрать «живописный маршрут», чтобы (надеюсь) завершить этот движок 3D-игры. Если вы хотите следовать за мной в поездке, возможно, вы тоже чему-то научитесь.

Язык программирования и IDE

Здесь все просто. Я буду использовать C++ в качестве предпочтительного языка. По большому счету, C++ является стандартом де-факто для разработки игр. Хотя могут быть и другие языки, которые становятся все более популярными на определенных платформах (например, на мобильных устройствах), в пространстве ПК это почти исключительно C++. Поскольку одной из причин, по которой я создал игровой движок, в первую очередь является повышение моего набора навыков, использование этого языка имеет абсолютный смысл. Это также упростит интеграцию с различными библиотеками и API, особенно с уникальными аппаратными устройствами, которые почти всегда создаются для C++. И производительность будет лучше, чем у некоторых других вариантов. Здесь нет вопросов.

В частности, я хотел бы использовать C++11, так как это последний стандарт. Я немного узнал о новых функциях C++ Primer и хотел бы идти в ногу со временем и создавать движок на будущее. Это также означает, что мне, вероятно, следует использовать Microsoft Visual Studio 2012. Я думаю, что версия Express должна подойти для моих нужд, и это здорово, потому что она бесплатна. Visual Studio также, вероятно, является самой популярной IDE для профессиональной разработки программного обеспечения, и я не вижу веских причин использовать какую-либо альтернативу.

Графический API

Для графического API, действительно являющегося ядром 3D-движка, есть только два варианта: OpenGL и DirectX. Я не собираюсь спорить, лучше ли один из них, чем другой, поскольку я уверен, что вы можете реализовать свое видение с помощью любого из них. Однако мне придется использовать DirectX, опять же в основном потому, что это стандарт де-факто. Почти каждая игра AAA для ПК создается с помощью DirectX, и, поскольку я пытаюсь продвинуться в этой области, у меня нет другого выбора, кроме как использовать DirectX. У меня уже есть некоторый опыт работы с DirectX, по крайней мере версии 9, так что это имеет больше смысла, чем изучение OpenGL с нуля. Хотя есть аргументы в пользу кроссплатформенной поддержки, на данный момент это не является для меня приоритетом. На Windows приходится почти 90% рынка настольных компьютеров, и нет веских причин не делать ее основной целевой платформой. Я разрабатываю на Windows, большинство компьютерных геймеров используют Windows, это просто имеет смысл. Я могу признать, что OS X и Linux становятся все более актуальными, но лично я ими не пользуюсь, поэтому я не собираюсь изо всех сил поддерживать код.

Я планирую использовать версию DirectX 11. У меня нет желания поддерживать Windows XP, поскольку к тому времени, когда я закончу этот проект, она будет в значительной степени неактуальна. Я хотел бы поддерживать новейшие и лучшие функции, а этого просто нет в DirectX9. Также есть много хороших материалов по DirectX11, книг, туториалов и т.д. так что думаю будет легче подобрать. Некоторые из функций, которые меня интересуют, — это геометрические шейдеры, вычислительные шейдеры и тесселяция. Итак, DirectX11.

Аудиотека

Что касается звука, я все еще изучаю варианты, но, вероятно, я выберу DirectSound. Я уже погружаюсь в экосистему Microsoft, в этом есть смысл. Основная причина, по которой я выбрал это, заключалась в том, что я не большой поклонник лицензий для других популярных опций. Некоторые из API, на которые я смотрел, были OpenAL и FMOD. FMOD стоит больших денег, так что это не входит в мой список. OpenAL выглядит интересно (и я все еще рассматриваю его), но меня беспокоит лицензирование. По сути, я хочу, чтобы мой движок 3D-игры на 100% принадлежал мне и был моим исходным кодом, без каких-либо условий. Например, если я решу когда-нибудь продать его как коммерческий двигатель, я бы хотел иметь такой вариант. Я не хочу никому платить, или отдавать часть своей прибыли, или выпускать исходный код, или что-то в этом роде. Я не пытаюсь делать что-то необычное со звуком, поэтому думаю, что DirectSound будет достаточно.

Библиотека ввода

Честно говоря, я не слишком задумывался об этом, но я, вероятно, мог бы обойтись стандартным обменом сообщениями Windows для мыши и клавиатуры и использовать XInput для игровых контроллеров. Я также планирую поддерживать еще несколько уникальных контроллеров, таких как Razer Hydra, но мне все равно придется напрямую интегрировать их SDK. Я немного использовал OIS, так как он поставляется с OGRE, но я не уверен, что это действительно нужно. Посмотрим, как далеко я смогу продвинуться только с основными сообщениями Windows на данный момент.

Библиотека физики

Вот еще одна область, которую я все еще обсуждаю. Раньше я был настроен на использование Nvidia PhysX, так как думал, что это обеспечит наилучшую производительность. Приложения, которые я собираюсь написать с помощью этого движка, очень интенсивны в физике. Вероятно, более интенсивно, чем когда-либо предпринимались попытки в режиме реального времени. Поэтому мне нужен высокопроизводительный физический движок. Я даже был бы готов выделить топовую карту Nvidia (например, GTX 680) только для одного PhysX. Большинство людей назвали бы это излишеством, но я спрашиваю: достаточно ли этого? Однако, внимательно изучив лицензию PhysX, я начал задаваться вопросом, будет ли это лучшим вариантом. Мне не нравится, что Nvidia должна одобрять ваше приложение, мне не нравится, когда повсюду логотипы и заставки, мне не нравится стоимость платформ, отличных от Windows. Хотя ни одна из этих вещей не является окончательным нарушением условий сделки, они дают мне паузу для размышлений. Плюс тот факт, что он не будет работать на полной скорости на оборудовании AMD, является серьезным препятствием.

Другим вариантом является Bullet, который кажется довольно зрелым и бесплатным/с открытым исходным кодом. Они утверждают, что их решатель с GPU-ускорением «скоро появится», но что это вообще значит? Это также не внушает доверия, когда главная страница их веб-сайта обновлялась только дважды за последний год. Я имею в виду, что я всего лишь один парень, и я могу публиковать новую запись в блоге по крайней мере раз в неделю. Вы ожидаете, что вся команда сможет добиться большего успеха. Конечно, само программное обеспечение выглядит довольно надежным, и мне нравится, как оно выглядит. Все выглядит солидно и хорошо анимируется, а не «плавает», как вы иногда видите. Я предполагаю, что это может быть связано с конкретными параметрами, но демо-версии Bullet меня впечатлили.

Больше всего меня интересуют гидродинамика и моделирование ткани. Я видел демонстрации обоих, но я не уверен, что что-то готовое делает то, что мне нужно. Я развлекаюсь идеей запустить свой собственный физический движок, что, я думаю, было бы очень весело. Раньше я писал физические движки, но только в 2D. Я знаю, что шаг к 3D добавляет сложности, но я думаю, что задача в пределах разумного. По крайней мере, если бы я написал это сам, я мог бы сосредоточиться на аспектах, которые мне нужны больше всего, которых, похоже, не хватает в большинстве современных видеоигр. Поскольку я ищу лучшую производительность, я хотел бы закодировать это на графическом процессоре. Я также хочу что-то, что одинаково работает на оборудовании Nvidia или AMD, поэтому я смотрю прямо на DirectCompute. Я знаю, что сейчас выгляжу как самый большой фанат Microsoft, но я не думаю, что это плохо. Microsoft оказала большую услугу, создав все эти замечательные API и бесплатно предоставив их разработчикам. Я понимаю, что открываю банку червей с помощью собственного физического движка, но мне очень нравится идея не использовать какие-либо сторонние библиотеки (помимо тех, что предоставляет Microsoft).

Все остальное

Движок 3D-игры включает в себя гораздо больше вещей, чем вы получаете, просто собирая вместе несколько библиотек, поэтому я не хочу слишком замалчивать это. Конечно, мне все еще нужно разработать структуру движка, но это само собой разумеющееся. Понятно, что могут быть другие небольшие библиотеки, которые я хотел бы интегрировать, например, для распаковки zip-файла или чего-то еще.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *