Комментарии 58
Unreal, Unity, Cryengine и Ogre 3D — это графические движки. Не понимаю, почему Огр в статье как-то отдельно рассматривается?
Разница между движками уровня Unreal и Ogre в том, что первые изначально напичканы всякими IDE редакторами моделей, сцен, материалов.
Нельзя просто так перейти с одной графической библиотеки на другую. Всегда придётся переписывать ту часть, которая отвечает за вызов функций из библиотек. И это минимум, а если другой рендер ещё требует другой формат описания объектов, то руки в ноги и вперёд конвертировать. То есть, разницы нет между использованием Unreal или обычной библиотеки рендера.
Unreal, Unity, Cryengine и Ogre 3D — это графические движки.
Unreal, Unity, Cryengine это как минимум не только графические движки, там ещё и звук и физика и управление насчет Ogre 3D без понятия.
Молодые разработчики используют движки потому, что они учат их, как делать вещи. Расширяют горизонты возможного. Все это можно написать руками, если ты уже знаешь, что именно нужно писать. Это как в магазине, когда ты приходишь совершенно без идей, что же тебе хочется есть, но нагуливаешь аппетит, ходя вдоль полок и раздумывая — а съел бы я вот это и это, а какие они на вкус,… и в конце концов заканчиваешь с целой корзиной еды! А то и двумя и тремя! Если же тебе сразу сказали бы — составь список покупок, фиг бы ты чего купил. То же самое и с движками, и вообще с любым софтом. Софт — это твой учитель в первую очередь, и во вторую уже всё остальное вроде качественно сделанной функциональности или готовых быстро применимых решений.
У того же Джоэла Сполски есть статья про дыры в абстракциях, и подобный подход позволяет их заранее изучить.
— загрузить картинку;
— нарисовать её на таких-то координатах;
— в игровом цикле проверить, если на него кликнули мышкой (aabb) или нажали
какую-то кнопку, то вызвать какую-то логику.
И на этом же простейшем aabb или чём-то аналогичном — сделать маленькую top-down-стрелялку вжжж-пиу-пиу, обновляем координаты пуль из массива пуль и коллидируем с противниками из массива противников (например). Очень просто, вся внутренняя кухня прямо перед глазами и есть позитивные подкрепления. Я так на баловстве с Love2d вылез в программисты :)
Подумайте дважды, прежде чем использовать игровые движки
И трижды, прежде чем не использовать.
Релизил проект на своем движке под Win/Mac/Linux/Android/iOS — SDL закрыл подавляющую часть проблем.
Дольше всего провозился с platforms specific features, типа обласных сохранений и ачивок, но даже они не были сложными в реализации, т.к. каждый game store делает максимально простое API, понимая что чем проще API будет, тем активнее оно будет использоваться.
Справедливости ради стоит заметить, что чаще всего портирование одной кнопкой, как заявлено аторами движков, не работает в том плане, что все равно нужно частично что-то переделывать, оптимизировать, да и platform specific features никуда не деваются. Что-то может сломаться, не сработать на одной из платформ, самописные шейдеры могут не отрисоваться, все это надо отлаживать, а на это нужно время.
2) Что на счёт консолей?
А сейчас могу, поэтому редко пишу что-то свое и в основном работаю с UE4. Ну и в целом речь была не про то, что надо делать своё. Речь была про то, что кроссплатформ далеко не самая сложная часть в разработке.
2) Тогда на консоли залезть просто так было нельзя. Поэтому ничего.
Если же говорить более конкретно — кроссплатформ с консолями «тогда» была почти невозможна: каждая консоль имела свою архитектуру и просто так портировать игру было нельзя. Сейчас же кросплатформа с консолями не представляет особой проблемы.
Попробуйте собрать кроссплатформенную игру хотя бы уровня тетриса даже из кроссплатформенных библиотек — и через пару недель вам уже и не захочется программировать, настолько упаритесь
На SDL делал.
Проблем не было.
Не понял о чем вы.
Этот пост на reddit не является идеальным примером разумных контраргументов против постоянного использования движков, но я считаю, что непреодолимое желание их применения немного отдаёт фанатизмом.
А я считаю, что непреодолимое желание людей использовать транспортные средства, вместо ходьбы пешком, немного отдаёт фанатизмом. Да в общем-то, и прямохождение, вместо ползания уже фанатизм. Только низкоуровщина, только хардкор!!! )))
А перемещение по квартире было про исользование тяжелых движков для совершенно технически тривиальных проектов, таких как 2D-платформеры и т. д.
Ну и конечно если по финансам маленькая инди-команда — это потолок, то вряд ли стоит делать что-то грандиозное, не спорю. Но тогда Вы и не получите ничего грандиозного (в техническом плане), выйдет просто очередная игра на анриале/юнити.
Даже в статье говорится — возьмите готовые библиотеки и соберите их вместе, а где нужно что-то исключительное — сделайте самиДа, Вы батенька, оптимист! ))) Говорю Вам, как человек имеющий, самое непосредственное отношение к вопросу.
Но тогда Вы и не получите ничего грандиозного...Грандиозное конечно хотят все, по большому счету, но вот позволить себе, могут немногие.
… выйдет просто очередная игра на анриале/юнити.Так это и есть конечная цель, среднестатестической конторы. Выпустить проект и заработать. И что-бы было быстро, дешево и сердито. ) Будет ли проект успешен, сегодня, в первую очередь, решает не разнеможные графоний и фичи, рынок уже перенасыщен всем этим. Сегодня решает маркетинг. Это немного грустно, но это реалии. Так что «велосипеды», это удел либо любителей-энтузиастов, либо представителей с Олимпа. Тем, что посерединке, между ними, некогда фигней страдать. ) У них задачи и цели другие.
выйдет просто очередная игра на анриале/юнити
ну это уж слишком, зачем так-то жестко разваливать? это же удар ниже пояса. даже не знаю теперь как отмыться от такого позора. "обычная игра на анриле/юнити" — боже как я до этого докатился! пойду качать nvidia sdk и гуглить аудио библиотеки. вот прям чувствую, сразу все изменится
( ;-p )
Ну а не инди вообще обсуждать смысле не имет, эта статья не про большой геймдев.
Есть еще разные уровни велосипедизма. Можно собирать движок из готовых библиотек, а можно начать с кода инициализации из туториалов по opengl. Или вообще запилить софтверный рендер. Я все три проходил, одну игру даже смог доделать (остальные забаговались), но сейчас слишком стар для этого
На gamedev.ru гуляет легенда о том что те, кто пишут с нуля 3д движки, сходят с ума. И там еще был список из форумчан которые реально легли в дурку и скриншоты их наработок достаточнр
о неплохие
Свой движок писать прикольно и весело. А потом в игре появляется UI, и веселье заканчивается.
На своем движке можно легко делать прикольные штуки.
Например, вот из статьи Игра за 14 дней [Для тех, кто годами собирает команду, но так и не сделал прототип]
Меню слайдер. Сделал легко и просто. Не все движки позволяют такое просто сделать.
Треугольник вывести просто, а как чуть углубляешься то всё.
Ну можно вывести не треугольник, а два треугольника, получится квадратный спрайт. Практически готовый графический движок для 2д игр. Иронизирую конечно, но для легких мобилок актуально.
Тот же Game Maker, Multimedia Fusion 2 (Five Nights at Freddy, I wanna be a Guy), OGRE, Torque и наверняка что-то ещё.
Но тема интересная, поэтому вот вам ресеч с указанием статистики по движкам:
www.reddit.com/r/gamedev/comments/8s20qp/i_researched_the_market_share_of_game_engines_on
Большая часть сейчас на движках. При этом огромное количество игр на кастомных.
В целом в статье всё до банального очевидно. Если планируется совсем лютый эксперимент или мобилка — лучше не пользоваться тяжёлым движком.
Но абзац про динамические библиотеки в Unity и Unreal поставил в тупик. Мало того что библиотеки там вообще не для игрового кода ну никак, а для расчетов каких-то жестких или для расширений конкретного движка. Так еще и рассматривается вероятность в серьезном проекте поменять движок в середине разработки. Это как бы ошибка планирования и так делать не надо. Либо это долгострой, в котором на определенном этапе лучше что-то написать заново.
В засчиту Unity скажу то, что в нём предусмотрена переработка графического конвейера. В традиционном рендере есть Command Buffer, которым реально полностью убрать систему освещения и написать свою. Плюс у меня есть статья, где я костыльно улучшал освещение, модифицируя встроенные шейдеры (на этом принципе, а возможно даже на и моих наработках, реализован ассет Next Gen Soft Shadows). В новых версиях разработчики пошли дальше и сделали программируемый рендер конвейер, который можно полностью переписать, и в нем из коробки реализованы красивые штуки уровня Unreal.
Это все про рендер, то есть про самую требовательную для ресурсов и для многих критичную часть. Резюмирую: все можно переделать под себя или даже заменить полностью.
Что касается остального, то если допустим вам не нужна 2д физика, выключаете компонент, и ресурсы попросту не тратятся. Конечно, библиотеки все равно будут занимать в памяти драгоценные мегабайты, но это та цена, которая осознанно платится за удобство кроссплатформенности.
Что касается скриптов, системы объектов и всего прочего, то в самописном движке вы придете к тому же самому. Не знаю как тесно вплетено все в код Unreal и как трудно от этого отойти, но в Юнити можно реализовать кучу разных подходов, систем сообщений, достаточно легко пишутся расширения редактора чтоб сделать удобные тулзы. И даже ярый велосипедист окажется рад перекатиться в эту среду разработки, если приложит минимальное усилие на начальном этапе.
Я всегда думал, что максимум, что можно сделать без движка, это какой-нибудь спрайтовый тетрис
Подумайте дважды, прежде чем использовать игровые движки