Я только начинающий в 3D играх, моя любимая платформа - Android. Я отправил вопрос на другом форуме о том, что использовать: OpenGL или Unity3d? Все они подчеркивали Unity3D и использовали его встроенные функции и инструменты, которые я должен был бы написать сам, если бы использовал OpenGL. Но потом кто-то говорит, что большинство сложных игр требуют пользовательских движков. Зачем мне использовать движок, такой как Unity3D, а не OpenGL?
25
Ответы:
Я думаю, что вы уже ответили на этот вопрос сами. Вы сказали: «Я всего лишь новичок в 3D играх» . Далее вы сказали: «... Unity3D и использование его встроенных функций и инструментов, которые я должен был бы написать сам, если бы использовал OpenGL» .
По сути, это означает, что если вы используете только OpenGL, вы будете писать игровой движок, а затем, возможно, годы спустя, писать свою игру. Если вы хотите сосредоточиться на игре, используйте имеющиеся у вас ресурсы, чтобы максимально приблизить вас к этой цели. Использование игрового движка - лучший способ сосредоточить свои усилия на создании игры, а не писать все, что требуется для создания игры.
Посмотрите на этот связанный вопрос: в чем разница между библиотекой и движком и этим? Что такое игровой каркас по сравнению с игровым движком?
источник
Потому что новички по определению не знают, что делают .
OpenGL имеет огромную кривую обучения. Конечно, вы можете выполнить несколько команд glBegin, быть в восторге от размещения некоторых треугольников на экране, а затем уйти в глубокий конец с чем-то более сложным, что вы еще далеко не готовы взять на себя. Это не отличный способ учиться. Аналогия (слегка преувеличенная) может заключаться в изучении некоторой базовой физики в средней школе, а затем в ведении Большого адронного коллайдера. Это не погружение или плавание, это плавание или оставление большой радиоактивной дыры в земле.
Предполагается, что большинство людей спрашивают: «Я хочу сделать игру, что мне использовать?» Вопрос на самом деле действительно хотят создать игру (иначе они бы задали другой вопрос, конечно?). Таким образом, ответ адаптирован к этому вопросу, и использование уже существующего инструментария, фреймворка или движка - один из способов помочь им достичь этой цели. не отвлекаясь на агонию из-за того, что вызовы UBO или glUniform предпочтительнее для обновления одной матрицы.
Все дело в том, чтобы делать шаг за шагом, облегчать процесс обучения и давать вам что-то полезное в конце. Попытка научиться создавать игру и правильно использовать зрелый и мощный 3D API в то же время , вероятно, слишком много для новичка. Это похоже на эффект Даннинга-Крюгера за вычетом негативных коннотаций. Вы не знаете, чего не знаете, поэтому у вас нет реалистичной картины того, что вы собираетесь делать.
С другой стороны, если ваша цель - изучить OpenGL, то на самом деле вы не хотите создавать игру! Вы хотите изучать OpenGL, и делать это в контексте создания игры может быть увлекательным способом обучения, но создание игры - это средство для достижения цели, а не самоцель (и, конечно, не единственный способ изучения OpenGL). ). Вы, вероятно, никогда не выпустите его, и вы почти наверняка оглянетесь на него через несколько лет и будете ужасно смущены некоторыми глупостями, которые вы сделали.
источник
Это действительно зависит от того, что вы хотите получить от этого проекта. Если ваша главная цель - сфокусироваться на игровом дизайне, то вам, вероятно, лучше с предварительно встроенным движком, потому что это поможет вам быстрее приступить к созданию игры. Если ваша цель состоит в том, чтобы узнать о программной части создания игр (особенно если вы пытаетесь подготовиться к работе в отрасли), то вы, вероятно, найдете работу с OpenGL более ценным опытом. Имейте в виду, что ни одно из предыдущих утверждений не соответствует действительности в 100% случаев.
Там действительно нет правила при принятии решения такого рода вещи. Большинство ответов, которые вы слышите в этом вопросе, являются мнениями, и очень немногие из них будут иметь полное отношение к вашему собственному проекту и навыкам.
источник
Разница проста. Unity - это коляска с четырьмя круглыми колесами, которая поможет вам добраться. OpenGL - это опилки, которые вы можете создать в магазине и использовать для изготовления улучшенной и более современной каретки и колес. То есть, если вы потратите много часов своего времени на то, чтобы узнать, что люди делали раньше, чем вы.
Ваша цель как новичка должна состоять в том, чтобы сначала изучить существующие вагоны и их конструкции. Нет смысла выбрасывать все в окно и начинать с нуля. Сначала изучите то, что уже существует, и получите полное знание об этом. Если вы этого не сделаете, как вы узнаете об его ограничениях и если вы не знаете ограничений, как вы могли бы их преодолеть? Какой смысл делать что-то посредственное, бесполезное и игнорировать все живые инструменты, которые уже доступны?
imho, шаги начинающего разработчика игр:
Самостоятельная работа над созданием чего-то, что уже сделано, не сделает вас ценным разработчиком для кого-либо, потому что вы не будете продуктивным в истине или хорошим учеником в этом отношении, вы просто скопируете существующие фрагменты кода и, возможно, научитесь читать и понимать их. Как говорится в старой поговорке о покемонах: «Это не очень эффективно ...».
Хуже всего то, что с таким подходом нелегко идти в ногу с тем, что в нем нет удовлетворения, поэтому вы работаете с необузданной силой воли, которая, как было научно доказано, является ограниченным ресурсом для людей. Вам нужно делать что-то, что обеспечивает ежедневное удовлетворение, иначе вы, вероятно, не сможете его поддерживать.
Итак, подведем итоги. Подчеркнем Engine, потому что вы можете сделать что-то с помощью Engine, и у вас гораздо больше шансов на успех. Даже великие создатели игр полагались на чужую предыдущую работу, и такова природа прогресса. Вам нужно понять общую картину и уметь играть с кусочками Lego, предоставленными другими, прежде чем создавать свои собственные кусочки Lego.
источник
Если предположить , что цель заключается в создании игры, парень , который говорил о пользовательских двигателях времени требуется не так. Во всяком случае, сложные игры требуют зрелого движка, который был разработан, реализован, оптимизирован, протестирован и поддерживается профессионалами, которые давно работают в отрасли, или такими, которые могут соответствовать их качеству (по крайней мере, для целей данной игры). , если это возможно.
Разработчики крупных игр создают собственные движки, но все еще активно используют их для будущих игр. Но имейте в виду, что их бюджеты, размеры команды и множество других факторов сильно отличаются от независимых разработчиков - для них может иметь гораздо больше смысла в создании собственного движка, даже если существующие технологически не дотягивают.
Конечно, все еще существует заблуждение, потому что многие функции не существуют в существующих механизмах вне коробки, что они вообще не могут быть реализованы в этом движке, но это обычно неточно.
Имейте в виду, что некоторые из самых инновационных современных игр, таких как Portal и Antichamber, были созданы с использованием существующих движков. Некоторые довольно сложные онлайн-игры, такие как Aion и TERA, были созданы с использованием существующих движков. Некоторые из самых визуально красивых игр, такие как Bioshock Infinite и Thief, были созданы с использованием существующих движков. И, конечно, некоторые не были. Но дело в том, что ничего, что я когда-либо видел, на самом деле не требовало специального движка
С другой стороны, если ваша цель - изучить концепции графического программирования, конечно, OpenGL - это путь. Но даже в этом случае имейте в виду, что знание нескольких существующих движков поможет вам понять, что вы делаете и к чему должны стремиться.
источник
citation needed
с