С Новым годом! Форум программистов, компьютерный форум, киберфорум
Игровые движки
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/75: Рейтинг темы: голосов - 75, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 10.07.2020
Сообщений: 1

Создание игрового движка на C++ с нуля

10.07.2020, 02:26. Показов 15858. Ответов 14
Метки c++ (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
В последнее время очень заинтересовала тема геймдева и захотелось изучить данный вопрос начав с создания собственного движка на C++. Однако, сколько не искал информации на этот счет, ничего исчерпывающего не находил. Все как один говорят про составляющие движка, а как их делать умалчивают. В общем меня интересует создание движка на C++ для игр на ios, но с возможностью портирования оных на другие платформы. Можете посоветовать максимально понятные источники информации по данному вопросу или руководства по созданию составляющих движка? Или быть может целые курсы по созданию?
Заранее благодарю.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.07.2020, 02:26
Ответы с готовыми решениями:

Создание Open source игрового движка для аудио и видео игр!
Приветствую. Ранее, я публиковал здесь тему о движке аудио игр для слепых. Сегодня, я прошу вашей помощи! Я прошу помощи тех, кто...

Создание игрового движка на C#
Стоит ли создавать свой игровой движок, будучи инди разработчиком?

Создание игрового движка
Не могу найти даже немного информации об архитектуре самого простейшего игрового движка (графика на уровне простейших 2d фигур, без...

14
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
10.07.2020, 02:38
Цитата Сообщение от Dun9eon_M4ster Посмотреть сообщение
Или быть может целые курсы по созданию?
Универ. Единственное место где хотя теоретически способны научить проектированию систем подобного уровня сложности и вложить это обучение в 5 лет. При этом практически все будет зависеть от вашего желания учится.
0
88 / 108 / 6
Регистрация: 16.04.2019
Сообщений: 451
Записей в блоге: 4
10.07.2020, 09:03
ВНИМАНИЕ! Ниже я предполагаю, что у вас уже есть опыт в программировании и вы знаете С++ хотя бы на базовом уровне.

Dun9eon_M4ster, сначала определитесь что вы в данный момент хотите сделать: сделать игру, которая будет работать на разных платформах или сделать именно движок? Если первое, то лучше берите готовое решение:
Unity, Unreal Engine, CryEngine и т.п.

Если второе, то что ж, гугл в помощь, гуглите всё что можете, можете посмотреть на то, как устроены существующие опен сурс движки:
Готовые игры:
По сути сможете узнать всё о том как работает движок в какой-то конкретной игре.
XRay (Движок сталкера)
Doom3
Ещё знаю о существовании движков для: (Вроде как созданы фанатами) Red Alert, Age of Empires 2.
Движки:
Godot (что-то похожее на юнити по функционалу)
CryEngine
Курсов никаких не знаю, но знаю что есть такое:
HandmadeHero уже не первый год пишет игру с нуля. Объясняет самые разные темы в геймдеве. Длиные стримы, да, но что поделать.
Делает игровой движок.

Классика книг:
Game Engine Architecture
Ну и конечно же начинаем учить линейную алгебру
Вот ещё вспомнил:
В какой последовательности что изучать (не воспринимайте данную схему всерьёз, просто смотрите как на сборник книг, которые можно почитать по определённой теме)..

Из последнего вспомнил

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

Не по теме:

И не воспринимайте всерьёз васянов, которые рассказывают о том, что этому можно научиться ТОЛЬКО в универе, но сами после универа даже не способны проанализировать исходный код linux(а)

2
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
10.07.2020, 09:11
Цитата Сообщение от IamLost Посмотреть сообщение
что у вас уже есть опыт в программировании и вы знаете С++ хотя бы на базовом уровне
Еще понадобятся как минимум знания - интегральное дифференциальное и тензорное счисления, линейная алгебра, аналитическая и вычислительная геометрии, аналитическая механика, теория знаковых систем, теория графов, теория автоматического управления, теория принятия решений, а так же знание численных методов на достаточном уровне чтобы все это обсчитывать без потери числовой стабильности. Ну и естественно глубокое понимание ООП и умение проектировать архитектуры. Без этого о движках можно даже не мечтать.
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
10.07.2020, 09:43
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Без этого о движках можно даже не мечтать
а мне кажется как раз с мечты все и начинается.
1
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
10.07.2020, 10:49
Цитата Сообщение от Dun9eon_M4ster Посмотреть сообщение
В общем меня интересует создание движка на C++ для игр на ios, но с возможностью портирования оных на другие платформы.
Вопрос из серии "как создать устройство для езды по асфальтовой дороге". Вам тут сейчас насоветуют чертежей гоночного болида, а окажется потом что нужен был самокат. Характер игры для начала уточните.
1
 Аватар для COKPOWEHEU
4082 / 2680 / 432
Регистрация: 09.09.2017
Сообщений: 11,900
10.07.2020, 12:16
Начните с создания игры без движка.
Таким образом вы от души попрыгаете на граблях и поймете какие вещи стоит вынести в движок.
Либо можете начать с использования готового и постепенно переписывать его запчасти по своему разумению.
1
88 / 108 / 6
Регистрация: 16.04.2019
Сообщений: 451
Записей в блоге: 4
10.07.2020, 13:13
Цитата Сообщение от Renji Посмотреть сообщение
Вам тут сейчас насоветуют чертежей гоночного болида
Умея строить болид, строить самокат куда проще чем наоборот.
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
10.07.2020, 13:17
Цитата Сообщение от IamLost Посмотреть сообщение
Умея строить болид, строить самокат куда проще чем наоборот.
начинать с болида как и с самоката тоже не вариант, нужно искать что то средние, не слишком сложное и не слишком простое, хотя и болид и самокат в отдельных случаях могут быть приемлемы.
0
Just Do It!
 Аватар для XLAT
4201 / 2656 / 654
Регистрация: 23.09.2014
Сообщений: 8,950
Записей в блоге: 3
10.07.2020, 13:38
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Начните с создания игры без движка.
это самый годный совет.

на первой игре будет мало что очевидно,
ситуация начнёт бодро прояснятся, когда настанет очередь второй игры:
сразу возникнет вопрос:
а что можно из уже написанного в первой игре перенести во вторую игру?

Окажется, что эту переносимую часть можно и даже нужно оформить в некую отдельную, как бы независимую часть(она же библа), которую уже можно смело назвать игровым движком.
0
Модератор
Эксперт Java
 Аватар для alecss131
2848 / 1356 / 404
Регистрация: 11.08.2017
Сообщений: 4,326
Записей в блоге: 2
10.07.2020, 19:53
На ios имхо лучше использовать objective c или swift, так как это нативные языки платформы, хотя и плюсы не плохой вариант если яблоки его не урезали (а то наример в андроиде на плюсах можно только либы писать а основной код только java/kotlin). Игровой движок состоит из графического движка, физического движка, звукового движка, думаю ии можно выделить тоже отдельно. По всему из перечисленного в сети есть достаточно книг/уроков и прочего. Только вот каждая часть стоит отдельного изучения, в смысле само по себе очень большое и надо много и долго изучать. А если все сразу изучать и использовать то вряд ли что нормальное и приличное.
Спрашивается зачем изобретать велосипед? Есть куча готовых движков на любой вкус. Попробуйте создать для начала игру на готовом движке. Создарие игр не только программирование, сфера 3д в геймдеве занимает не меньшую часть (туда входит и анимация и текстурирование и тд).
Допустим создалите движок то куда его потом девать будете? Конкуренция не хилая.
Графическая часть движка тоже отдельная тема, тем более у яблок. Они активно продвигают свое апи Metal, которое работает только у них. Логичнее изучать именно его, так как они могут внезапно прекратить поддержку opengl es/vulkan.
0
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
10.07.2020, 20:06
Цитата Сообщение от _stanislav Посмотреть сообщение
а мне кажется как раз с мечты все и начинается.
Без знаний всего этого мечты так и останутся мечтами.
0
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
11.07.2020, 06:54
Цитата Сообщение от alecss131 Посмотреть сообщение
а то наример в андроиде на плюсах можно только либы писать а основной код только java/kotlin
Давно прикрутили Native Development Kit и можно писать на плюсах а не на всяких непригодных по определению анахронизмах.
Цитата Сообщение от alecss131 Посмотреть сообщение
хотя и плюсы не плохой вариант если яблоки его не урезали
Не урезали и не урежут. А вот манаджед порезали под чистую. Они еще в 2015-ом ввели запрет на размещение в аппсторе приложений использующих GC.

Добавлено через 24 минуты
Цитата Сообщение от alecss131 Посмотреть сообщение
На ios имхо лучше использовать objective c или swift,
Ну и зачем? Зависимого от апи оси кода в игровом движке раз-два и обчелся. От оси нужно: пустое окно, опрос клавы-мыши, файловый ввод-вывод и сокеты. При этом нативный интерфес ко всему этому по определению есть и все прекрасно будет импортится в плюсы - вся апи общения с девайсами и т.д. у них таки на с и с++ писаны.
0
Модератор
Эксперт Java
 Аватар для alecss131
2848 / 1356 / 404
Регистрация: 11.08.2017
Сообщений: 4,326
Записей в блоге: 2
11.07.2020, 08:38
Fulcrum_013, ага, ага, особенно если поизучать вопрос то легко выясняется что без использования objective-c или swift для ios/macos ничего не написать и сама поддержка плюсов у яблок под вопросом, они могут просто взять и забросить этот язык, для них это будет типично. большинство апи у них для плюсов нету и это факт, так что для яблок анархаизм это как раз плюсы. как писать движок без взаимодействия с графическим апи и железом? а это как раз чисто яблочные языки, да и яблочные языки самые используемые. правда есть возможность мешать все языки в одном коде. используя чисто плюсы ничего толком не написать, а objective-c это расширение чистого си так же как и ваши боготворимые плюсы.
0
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
11.07.2020, 11:33
Цитата Сообщение от alecss131 Посмотреть сообщение
а objective-c это
Уродование С и не более того.

Добавлено через 4 минуты
Цитата Сообщение от alecss131 Посмотреть сообщение
ничего не написать и сама поддержка плюсов у яблок под вопросом
Угу. Особенно с учетом что апи то на плюсах.

Добавлено через 34 секунды
Цитата Сообщение от alecss131 Посмотреть сообщение
особенно если поизучать вопрос то легко выясняется
Что на плюсах и вулкан доступен которого на остальном нет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.07.2020, 11:33
Помогаю со студенческими работами здесь

Разработка игрового движка
Здравствуйте. Планирую используя C# разработать игру. Есть вопрос: Стоит ли разрабатывать движок, либо просто программировать с...

Архитектура игрового движка
1. Правильно ли я понимаю, что для эффективной работы движка следует сделать 2 потока: 1 обрабатывает события такие как нажатие кнопки...

Выбор игрового движка
Доброе время суток, товарищи! Помогите, пожалуйста, выбрать игровой движок Задача проекта состоит в следующем: По имеющимся...

Написание игрового движка
Здравствуйте, хочу ради обучения создать собственный псевдотрёхмерный (по другому 2,5D) игровой движок (графика, звук). Я довольно...

Работа игрового движка
собственно интересует вопрос "что есть игровой движок" что из себя представляет, как строится и прочее... причем наверное имеется сильное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru