Как сделать свой игровой движок

Обновлено: 07.07.2024

Я в программировании не давно поэтому толком не знаю с чего начинать при создании движка. Создавал свою не большую игру на основе CryEngine 3 получилось довольно не плохо но с физикой игры реальные напряги. зато графика была великолепная. Так вот хочу начать рисовать алгоритм игры в виде иерархического дерева, потом от каждой ветки дерева будут отходить новые ветки низшего уровня, постепенно уточняя структуру программы, и так буду продолжать до такой степени, пока каждую ветку самого низшего уровня не можно будет реализовать в проге двумя-тремя строчками кода. А потом нужно будет просто заполнить все ячейки. Такой способ довольно не плохой, но может можете посоветовать начать как-нибудь по проще, все-таки я пока в этом маловато понимаю :( создавать хочу на основе созданного движка шутер на подобе варфес только круче если получится ;) Если кто-то хочет присоединиться вот скайп keks641996 Ребят жду вашей помощи)))

О боже, как это смешно звучит)

Скажу вот что. Игровые движки зародил Кармак. Поэтому советую смотреть, как устроены квейкоподобные движки. Благо их исходники уже давно есть.

Советую изучить исходники движка Darkplaces

Еще советую посмотреть в сторону Source и GoldSrc. На подобоии этих движков написан игровой движок Xasd3D. Советую посмотреть и его исходники.

Если вы в программировани недавно, то придётся потратить лет 5 на изучение языка и технологий, а потом еще столько писать движок.
Советую применять конечные автоматы для реализации алгоритма игры. Вариант с деревом невозможен, т. к. алгоритмы не имеют древовидную структуру.

Такой бред ещё не читал, дня начала попробуй создать на с++ пустой проект и подключить графические библиотеки такие как OpenGL или DirectX 8 - 9
По опять же, я не представляю как без хорошего навыка программирования ты сможешь реализовать ядро работы с шейдерами, мапинга, света, ну и анимации )
что бы написать свой движок у тебя уйдёт года 2 как минимум, и в этоге у тебя выйдет что-то подобие Unity3D
так что зачем заморачиваться и изобретать опять велосипед, ведь можно просто взять тот же Unity3D
это то что ты хочешь сделать только там уже люди за тебя сделали, подключили много нужных библиотек для графики, физики и так далее
Крутые компании которые пишут игры
они не пишут свои движки
они берут готовые, типа как :
Unreal Engine для Lineage 2, Aion
CryEngine для Crysis, WarFace
FrostBite для Battlefield 3 и 4

всё уже сделано давным давно !
Просто тебе нужно что-то по проще, и знание языка при создание логики в игре, ну и знания создание объектов в 3dMax хотя он старый уже, большинство перешло на Cinema4D
ну и самое тяжёлое это написание Сервера! ну и Анимации для твоих персиков
ну если логически перечислить что нужно так это :
1) Графическая подсистема
2) Подсистема ввода
3) Звуковая подсистема
4) Системное ядро
и ещё много другое если это онлайн игра будет !

Ну а личный совет, завязывай с своим вдохновением в 13 лет от WarFace
лучше в школу ходи по чаще, там с тебя больше будет толку

конечно много времени прошло после вопрошания)
в мире программирования я года полтора, но я сам пишу себе движок.
по мне так если самому писать то знаешь что как работает, набираешься опыта, экспериментируешь; радуешься за то, что такое умеешь делать)

но да, все движки чем-то похожи и, как было сказано, велосипед изобретать не стоит, если не желаешь мучиться со всеми этими классами, функциями, событиями и т. д. Просто скачать мощный движ (CryEngine, например) и на нем писать.
P.S. если все-таки писать то - подключая уже готовые библиотеки (предлагаю OpenGL), вот уж их переписывать не стоит-это уж точно велик))

В программировании 7 лет. Твой вопрос очень глуп и неосторожен. Ты создал игру на готовом движке, где НЕ требуются знания программирования - т. е. с этим справится даже маленький ребёнок. Для создания движка необходимы знания как в физике, так в математике и теории программирования.
Структуры древовидной не бывает такой, бывает структура параллельная и прямая - одна для выполнения чёткой задачи, где есть только один объект (калькулятор), другая (параллельная) для выполнения функции многозадачности - например для того, чтобы в игре одновременно шло время, шли персонажи и происходили косвенные события.

Я бы тебе посоветовал попробовать написать на паскале, но . лучше попробуй на Делфи, посмотри видео-уроки на эту тему (или на тему как создать программу на нем) или как хочешь.

Все говорят возьми движок CryEngine и путь пишет крутую игру, ребята не нужно ему советовать CryEngine он зря потратит своё время он написал хорошую игру а скомпилировать её не сможет нужно лицензия + разрешение от разработчиков. И платить ещё.

В ПРОГРАММИРОВАНИИ недавно но создавал игру на основе крайзис 3?
серьезно?
это как если я недавно учусь на доктора решил прооперировать собаку.
для того чтобы изучить все аспекты нужно дофига книг по коду изучить.
чтобы не было проблем и по дизайну.
а Крайзис 3
это просто для мододелов инстументарий..
лучше изучайте юнити.

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

Как создать игровой движок

  • Как создать игровой движок
  • Как создать движок
  • Как создать компьютерную игру

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

Используйте язык программирования Delphi, особенно если вы еще делаете первые шаги в данной области. Delphi – это среда разработки Object Pascal, отличающегося простотой и достаточной гибкостью, для возможности создания на нем полноценной компьютерной игры современного уровня, причем любого жанра, с полноценной трехмерностью и современным уровнем графики. Собственно говоря, среда разработки – дело вкуса каждого конкретного программиста. Например, MSVC++ , в отличие от Delphi , генерирует более быстрый код, но скорость компиляции Delphi в десятки, а может даже в сотни раз быстрее. Плюс удобный интерфейс и точное указывание строки кода, содержащей ошибку.

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


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

Напомним, что в течение всей первой части курса мы будем создавать игровой движок (от англ "engine" - двигатель, движок), который "физически" будет выглядеть как Проект в MS Visual C++, состоящий из нескольких заголовочных файлов и файлов исходного кода, конечной целью которого станет создание статической библиотеки LIB. 1

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

В то же время у всех игровых движков сохраняется одна проблема, которая, впрочем, имеет аналогию и в реальном мире, как в примере с нашим автомобилем. Если ты решишь взять инфраструктуру автомобиля и создать на её основе, например, лодку (заменив кузов), то ничего хорошего из этого, скорее всего, не выйдет. По качеству и эффективности эта лодка будет уступать другим лодкам, чья инфраструктура изначально создавалась для лодок. Эта теория справедлива и для игрокодинга. Очень трудно создать игровой движок, который одинаково хорошо подходил бы для игр всех жанров (First Person Shooter, Real-time Strategy, экшн, адвентюра и др.)
По этой причине большинство игровых движков фокусируются на создание игр одного определённого жанра. Это не значит, что с помощью него не удасться создать игры других жанров. Но каждый движок наилучшим образом подходит для игр именно своего жанра, для которого он и был спроектирован.
Принимая это во внимание, мы сфокусируемся на создании движка для игр одного жанра - 3D First Person Shooter (3D FPS). При этом мы применим ряд свойств, присущих именно 3D FPS.

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

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

Почему не стоит писать свой игровой движок

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

Сизифов труд иногда доводит до такого

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

Помимо бесплатных систем разработки игр, многие коммерческие игровые движки, полностью готовые к немедленному началу использования в игровых проектах, предлагают сразу несколько очень привлекательных схем лицензирования: полностью бесплатную ( Unity 3D в бывшей Indie-редакции ), смешанную схему с выплатой Royalties ( Unreal Development Kit ) — 99 $ взнос за лицензию и выплаты 25 % прибыли после первых заработанных 5000 $, либо же доступную стоимость полновесной коммерческой лицензии ( Unity Pro за 1500 $ ).

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

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

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

Подводим итог: написанием собственного игрового движка могут заниматься те, кто чётко представляет, что именно и зачем ему это нужно, видит адекватные преимущества такого подхода и способен за вменяемые сроки претворить свой план в жизнь. Всем остальным следует поискать готовое решение, благо оных в последнее время появилось достаточно — взять хотя бы те же Unity 3D и UDK.

Lorem ipsum dolor

Те , кт о з наком с программированием, знают, что на языке С или С++ можно писать игры для компьютера, применяя игровой движок. Так же многие знают, что игровая индустрия находится в топ е по популярности . Согласно некоторым данным , по своей капитализации игровая индустрия уступает только виде ои ндустри и ( телевидению и вид ео хостингам типа YouTube). Если у вас есть знания в языке программирования С, то логично предположить, что иногда закрадываются мысли ворваться в игровой мир и покорить его своей игрой. Как миниму м э то может принести достаточное количество денег.

Зная язык программирования С, вы обладаете дв умя пут ями , чтобы создать игру : использовать игровой движок, основанный на этом языке , или написать свой собственны й игровой движок, что тоже является вполне реальной вещью.

Игровой движок на С: как создать игру

Когда начинаешь изучать вопрос о создании игр, то сталкиваешься с тем, что для этого действия существует обилие различного инструмента, среди которого бывает очень сложно найти что-то одно и остановить свой выбор. Если искать игровой движок на С, то это уже существенно сужает выбор, но все равно не до конца.

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

Идея, жанр, сложность, концепция игры — это тоже важные вещи, потому что именно от этого будет зависеть, какие дополнительные библиотеки вам необходимо будет подключать. Самую простую игру можно будет создать только силами самого игрового движка, но ка к т олько вы захотите создать что-то посложнее, то вам просто необходимо будет подключать к разработке дополнительные пакеты и библиотеки.

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

Игровой движок на С: как выбрать

Заключение

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

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Читайте также: