Что должен делать игровой движок? [закрыто]


20

Я хотел бы улучшить свои навыки / попробовать что-то новое, и я хотел бы начать с 3D. Я прочитал « Начало программирования в 3D с C ++», но у меня есть вопрос о движках:

  • Что должен делать двигатель? Я знаю, что это уровень абстракции над 3D API (то есть OpenGL или DirectX), но что именно он должен делать?

Для рекомендаций книги, этот вопрос должен помочь вам: gamedev.stackexchange.com/questions/455/...
— Тетраду

Ответы:


27

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

Игровые движки призваны упростить разработку игр. У каждого из них есть свои уникальные особенности, но, как правило, они предоставляют простые уровни абстракции для графики, аудио, ввода, управления сценой, обнаружения столкновений, математики и общих полезных утилит. Некоторые предоставляют обертки и плагины для физических API-интерфейсов, а некоторые даже имеют некоторую поддержку AI (в основном ограничены FSM, поиском путей и - деревьями текущего тренда - поведения). Многие из них поддерживают и гордятся кроссплатформенной функциональностью.

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

Есть много движков, но остерегайтесь разницы между графическим движком и игровым движком (например, Unity будет игровым движком, тогда как Ogre будет графическим движком).

У меня есть две книги на эту тему, но они дают хороший обзор по этой теме:

  • Архитектура 3D игрового движка от David H Eberly

  • Кодирование игры завершено Майком МакШаффри

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

Если вы начинаете разработку, не создавайте движок. Я отсылаю вас на следующую страницу: http://geometrian.com/programming/tutorials/write-games-not-engines/

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

Надеюсь, это поможет.

луч


1
+1 за статью в блоге. Это говорит именно то, что я бы сказал по этому вопросу.
— Тетрад

5
Да, никто не должен создавать игровой движок, прежде чем они сделают игру. Как вы можете знать, что ваш код можно использовать повторно, если вы еще не знаете, что его можно использовать?
— Kylotan

@Kylotan Я понимаю, что уже очень поздно, но я просто хотел бы поблагодарить вас за этот комментарий, поскольку я постоянно цитировал его другим :)
— Рэй Дей,

@RayDey ссылка "писать игры, а не движки" мертва, к вашему сведению. Я с нетерпением ждал, чтобы прочитать это :(
— DrewJordan

5

Добавление к ответу Рэя: движки (игра, графика, аудио и т. Д.) Не только облегчают взаимодействие с базовыми API, но и реализуют функциональные возможности, характерные для игры, например: модель затенения, трехмерный звук.

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


+1 за структуру, масштабируемость и гибкость, и я забыл добавить управление памятью
— Рэй Дей,

1

Я написал подробное руководство о том, что такое игровой движок, особенно в контексте платформ iPhone и Android. Я включил подробные описания с примерами различных частей игрового движка: пользовательский интерфейс, графика, звук, физика, эффекты частиц. Учебное пособие доступно здесь: Что такое игровой движок? , Надеюсь, это полезно.


0

Каждый игровой движок имеет немного другое представление о том, что должен делать игровой движок.

Но поскольку игровых движков уже слишком много, я настоятельно рекомендую вам сделать ИГРУ, а не ДВИГАТЕЛЬ.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.