Чому такий двигун, як Unity3D, підкреслюється над рідною бібліотекою, як OpenGL, для початківців? [зачинено]


25

Я лише початківець у 3D-іграх, моя краща платформа - Android. Я розмістив запитання на якомусь іншому форумі на тему "Що використовувати: OpenGL або Unity3d?" Всі вони наголосили на Unity3D та використанні його вбудованих функцій та інструментів, які мені доведеться кодувати, якби я використовував OpenGL. Але тоді хтось каже, що для більшості складних ігор потрібні спеціальні двигуни. Чому я використовую двигун типу Unity3D над OpenGL?


15
Два слова: миттєве задоволення. Ви можете зробити щось "корисне", зроблене з єдністю, не знаючи багато чого, тоді як отримання програми OpenGL потребує декількох рядків коду та розуміння широкого спектру понять.
Jari Komppa

5
Можливо, ми можемо просто пояснити це в цій одній нитці, і всі питання "чим я повинен користуватися" відпадають назавжди. також я хочу єдиноріг
джак

8
"Більшість складних ігор потребують користувальницьких двигунів" - насправді, на диво велика кількість надзвичайно успішних ігор AAA побудовані на таких двигунах, як двигун Unreal .
Філіпп

2
На додаток до цього, новачок не зможе скласти ігровий комплекс достатньою мірою, щоб йому все одно був потрібний спеціальний двигун.
Крістіан

Це щойно з’явилося на Gamasutra, і хоча це питання не є прямою відповіддю на це питання, воно доречне: gamasutra.com/blogs/ChrisDeLeon/20140426/215519/… - зокрема, проекту, з якого ви будуєте, буде дуже важко першочерговим принципом, щоб OpenGL був «скромним» першим проектом.
Стівен Стадницький

Відповіді:


30

Я думаю, ви вже самі відповіли на це питання. Ви сказали: "Я просто новачок у 3D-іграх" . Далі ви сказали "... Unity3D і використовуючи його вбудовані в функції та інструменти, які я повинен був би кодувати себе, якби я використовував OpenGL" .

По суті це означає, що якщо ви використовуєте OpenGL поодинці, ви збираєтеся писати ігровий движок, а потім, можливо, років пізніше будете писати свою гру. Якщо ви хочете зосередитись на грі, використовуйте доступні вам ресурси, щоб максимально наблизитись до цієї мети. Використання ігрового двигуна - це найкращий спосіб зосередити свої зусилля на створенні гри, а не писати всі речі, необхідні для створення гри.

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


тож OpenGL призначений лише для графіки, а unit3d - це повна рамка, в якій є графіка, а також фізичні вимоги до моєї гри?
Аман Гровер

1
Єдність - це набагато більше, ніж це, але так, це велика різниця.
поштовх

3
@AmanGrover: також розумію, що в GL "просто для графіки" це справді "просто для подання команд в GPU". Усі фактичні важкі роботи з графікою все ж повинен виконувати програміст, в той час як Unity має всі важливі графічні функції та алгоритми, включені та готові до використання.
Шон Міддлічч

2
Не пишіть двигуни, пишіть ігри. Ось до чого мені сказали підходити. Що я маю на увазі, хтось створює ігровий движок, коли ви створюєте фактичну гру. Тож з цим я не згоден з Байтом.
LaVolpe

28

Тому що початківці, за визначенням, не знають, що роблять .

OpenGL має величезну криву навчання. Звичайно, ви можете написати декілька команд glBegin, захоплюватися тим, що викладете кілька трикутників на екран, а потім відійдіть з глибокого кінця з чимось складнішим, що ви ще ніде не готові прийняти. Це не чудовий спосіб вчитися. Аналогія (злегка перебільшена) могла б вивчити деякі основні фізики в середній школі, а потім поставити відповідальність за великий адронний колайдер. Це не тонути або плавати, це плавати чи залишати-великий-радіоактивний отвір у землі.

Передбачається, що більшість людей запитують "Я хочу зробити гру, що я повинен використовувати?" питання насправді хочуть зробити гру (інакше вони б задали інше запитання, безумовно?) Тому відповідь пристосована до питання, а використання наявного інструментарію, рамки чи двигуна - це один із способів допомогти їм досягти цієї амбіції не відволікаючись на агонізацію щодо того, чи є викликом UBO або glUniform кращим для оновлення однієї матриці.

Це все про те, щоб зробити крок за кроком, полегшити процес навчання та дати вам щось корисне наприкінці. Намагання навчитися робити гру та як правильно користуватися зрілим та потужним 3D API одночасно - це, мабуть, занадто багато для початківця. Це як ефект Даннінга – Крюгера за вирахуванням негативних конотацій. Ти не знаєш того, чого не знаєш, тож насправді не маєш жодної реалістичної картини саме того, що б ти робив.

З іншого боку, якщо ваша мета - навчитися OpenGL, то ви насправді не хочете робити гру! Ви хочете навчитися OpenGL, і робити це в контексті створення гри може бути цікавим способом навчання, але зробити гру - це засіб для досягнення мети, а не самоціль (і, звичайно, не єдиний спосіб навчання OpenGL ). Ви, ймовірно, ніколи не випустите її, і майже напевно ви озирніться на неї через кілька років і будете жахливо збентежені деякими дурними справами, які ви робили.


22

Це дійсно залежить від того, що ви хочете вийти з цього проекту. Якщо ваша основна мета - зосередитись на ігровому дизайні, то вам, мабуть, краще заздалегідь побудований движок, адже це допоможе вам значно швидше дістатись до ігрової частини. Якщо ваша мета - дізнатись про частину програмування ігор (особливо якщо ви намагаєтеся підготуватися до роботи в галузі), то, ймовірно, робота з OpenGL стане більш цінним досвідом. Майте на увазі, що жодне з попередніх тверджень не відповідає дійсності 100% часу.

Дійсно немає правила, коли вирішувати подібну річ. Більшість відповідей, які ви чуєте на подібне запитання, - це думки, і мало хто з них буде цілком відповідним вашому власному проекту та набору навичок.


Дякую, і так, я шукаю роботу в цій галузі, і тому я поїду з OpenGL.
Аман Гровер

9
Я рішуче не погоджуюся з тим, що робота з «голим» OpenGL буде більш цінною для того, хто потрапляє в ігрову індустрію. Unity - прекрасний приклад сучасного, відносно зрілого ігрового двигуна; розуміння функціональних можливостей, які він надає (з огляду на те, як ви могли самостійно надати подібну функціональність) - це відмінний спосіб зрозуміти сам процес розробки ігор, тоді як OpenGL далеко не специфічний для ігор у будь-якому змістовному сенсі.
Стівен Стадницький

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

5
@AmanGrover - тоді не роби гри! Вам буде легше вчитись одній справі. Зробіть симулятор сонячної системи. Дізнайтеся, як намалювати основні примітиви, навчіться їх перекладати та обертати, поміщайте планети в VBO, щоб їх швидше малювати, використовуйте шейдери, щоб зробити на них анімовані хмари, і ви добру відстань до розуміння основ.
Максим Мінімус

3
@KamikazeSoctsman Знову ж таки, тут не погодились. Я не кажу, що OGL марний - далеко не це! - але в останнє десятиліття я використовував свої знання OpenGL лише невелику жменю разів, якщо коротко підходить і починається. Навпаки, оскільки ігрові графічні двигуни, як правило, настільки чутливі до продуктивності, на мій досвід, вони є одним з найменш поширених місць для початку нового програміста. Ви повинні абсолютно знати 3d математику, і ви повинні розуміти принципи візуалізації - але це зовсім інша річ від вивчення OGL.
Стівен Стадницький

6

Різниця проста. Єдність - це карета з чотирма круглими колесами, яка може дістати вам місця. OpenGL - це тирса, яку можна створити в магазині і потенційно використовувати для формування вдосконалених і сучасніших колясок і коліс. Тобто, якщо ви вкладаєте багато годин свого часу на те, щоб дізнатися, що люди, перш ніж ви зробили першими.

Вашою метою як початківця має бути спочатку вивчення існуючих вагонів та їх конструкцій. Немає сенсу викидати все у вікно і починати з нуля. Спочатку вивчіть те, що вже існує, і глибоко дізнайтеся про нього. Якщо ви цього не зробите, то як вам відомо про обмеження, і якщо ви не знаєте обмежень, як ви могли їх пробити? Який сенс робити щось посереднє, що марно і невігла до всіх яскравих існуючих інструментів, які вже доступні?

Імхо кроки нового розробника гри:

  1. Освоїти сучасний фреймворк / Engine і глибше зрозуміти його (Це також допоможе вам дізнатися про різні аспекти ігрового дизайну, графіки та OpenGL - це не все).
  2. Створіть з нею невелику гру і дізнайтеся більше в цьому процесі.
  3. Органічно стикаються з перешкодами та обмеженнями в двигуні.
  4. Дізнайтеся більше про тему.
  5. Працюйте над покращенням напрямків, які, на вашу думку, потребують вдосконалення.

Самостійна робота над створенням того, що вже було зроблено, не зробить вас цінним розробником для когось, тому що ви не будете продуктивними в правді або хорошим учнем з цього питання, ви просто скопіюєте наявні біти коду і, можливо, навчитесь читати і розуміти їх. Як говорить стара покемонова приказка: "Це не дуже ефективно ...".

Найгірше - те, що такого підходу нелегко йти в ногу, оскільки в ньому немає задоволення, тому ти працюєш на силі сили волі, що, як було науково доведено, є обмеженим людським ресурсом. Вам потрібно зробити щось, що забезпечує щоденне задоволення, або, ймовірно, ви не зможете його тримати.

Отже, підводячи підсумки, підкреслюється Двигун, тому що ви можете зробити речі з Двигуном, і ви набагато більше шансів досягти успіху таким чином. Навіть великі творці гри покладалися на чужу попередню роботу і така природа прогресу. Вам потрібно зрозуміти велику картину і знати, як грати з фігурами Лего, наданими іншими, перед тим, як зробити власні власні п'єси Лего.


4

Якщо припустити , що мета полягає в створенні гри, хлопець , який говорив про користувальницьких двигунах часу потрібно не так. Якщо що-небудь, складні ігри потребують зрілого двигуна, який був розроблений, впроваджений, оптимізований, протестований та підтримується професіоналами, які вже давно працюють у цій галузі, або тим, хто може відповідати їх якості (принаймні для цілей даної гри) , якщо це можливо.

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

Звичайно, все ж існує помилкова думка, оскільки багато існуючих функцій не є нестандартними в існуючих двигунах, що їх взагалі неможливо реалізувати в цьому двигуні, але це зазвичай неточно.

Майте на увазі, що деякі найінноваційніші сучасні ігри, такі як Portal та Antichamber, були побудовані за допомогою існуючих двигунів. Деякі досить складні онлайн-ігри, такі як Aion та TERA, були побудовані за допомогою існуючих двигунів. Деякі з найбільш візуально красивих ігор, як Bioshock Infinite та Thief, були побудовані за допомогою існуючих двигунів. І, звичайно, деякі не були. Але справа в тому, що ніщо, що я бачив, дійсно не вимагало користувальницького двигуна.

З іншого боку, якщо ваша мета - вивчити концепції графічного програмування, звичайно, OpenGL - це шлях. Але навіть майте на увазі, що ознайомлення з декількома існуючими двигунами допоможе вам надзвичайно зрозуміти, що ви робите, і на що слід прагнути.


1
-1. Досить великі твердження про ігрову індустрію. Більшість з них неточні. Я б хотів, щоб я міг посипати ваш пост приблизно з десяток citation neededs
піжама Panda

1
@PandaPajama У моїй відповіді майже одне твердження про ігрову індустрію. Якщо це вас сильно турбує, ви можете виправити його або навіть зовсім видалити.
ТК

Мій (обмежений) досвід показав мені, що якщо є щось, про що не можна робити узагальнень, це ігрова індустрія. Кожна компанія має різний спосіб бачити речі, навіть різні команди всередині компанії можуть мати дивовижну політику щодо всього. У цьому конкретному випадку внутрішні двигуни призводять до витрат і приносять певні переваги та недоліки. Чи є чистий результат економією чи витратами, надзвичайно важко підрахувати, і він буде різним у різних проектах. Крім того, бюджет, хоча це важливо, не є єдиним елементом, який враховується при створенні ігор.
Піжама Panda

@PandaPajama Дозволено, дивіться мою редагування. Я просто сказав, що це може мати більше ділового сенсу для них загалом, що включає фактор бюджету і все, що ще допомагає формувати їх рішення, вказуючи, що це може бути зовсім не технічним обмеженням існуючих двигунів.
ТК
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.