Які технології використовуються для розробки ігор сьогодні? [зачинено]


14

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

Однак, дивлячись на такі ігри, як God of War 3, мені важко повірити, що ці ігри можна було б розробити за допомогою таких методів низького рівня.

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

Окрім того, ігрове обладнання зараз справді чудовисько. Тому, безперечно, розробники працюватимуть на більш високому рівні абстракції.

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

Якщо питання здається занадто загальним, ви могли б пояснити архітектуру Бога війни 3? Або як би ви пішли про створення клону? На мою думку, слід об'єктивно відповідати.


2
Хтось би потурбував пояснити сутичку?
Моніка Майкл

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

2
@ 9000 І як це питання кваліфікується як не конструктивне?

1
@delnan: напевно, любителі не були задоволені фразами на кшталт "Яка остання методологія розробки в ігровій індустрії?" . По-моєму, "як би ти пішов про створення клону" набагато краще.
9000

4
Не було б це більше сенсу на сайті gamedev.stackexchange.com ?
Dan is Fiddling Firelight

Відповіді:


12

Відмова: Я не розробник відеоігор. Але в мене є "хобістський" інтерес до цього.


Більшість ігор AAA, які ви бачите, зроблені за допомогою двигунів. Вони не написані з нуля. Подумайте про двигун як про рамку. У вас є .NET Framework, Java SDK, інструментарій для какао.

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

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

Наприклад, Unreal Engine 4 має набір для розробки вбивць та студію:

http://www.youtube.com/watch?v=MOvfn1p92_8

введіть тут опис зображення

Там багато різних двигунів. Деякі платять, деякі безкоштовно, деякі більше до металу, інші пропонують більш високу абстракцію.

Наприклад:

  • ОГРЕ
  • Нереальний двигун
  • Єдність
  • Джерело
  • і багато іншого...

5

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

Мій досвід полягав у тому, що ігрове програмування, особливо для ігор в режимі реального часу, значно відрізняється від ... майже будь-якої іншої розробки програмного забезпечення, яку я робив, можливо, крім роботи з графічним інтерфейсом. Це щось, що потрібно спробувати!


4

Відповідь - "двигуни". Багато ігор побудовано на різних графічних і ігрових двигунах, які в основному є великими бібліотеками або рамками.

У світі OSS, подивіться на приклад Ogre , наприклад, для комерційних ігор у вас є такі речі, як Source.

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


Звичайно, ці двигуни є просто регулярними (хоча і оптимізованими) абстракціями побудови коду C / C ++ над API нижнього рівня (наприклад, DX або OpenGL для графіки).

Але добре мати досвід створення дуже простої гри за допомогою C або C ++, щоб просто зрозуміти автору, як виглядає розробка ігор.
KyelJmD

4

Unity3D - це справді приємно. Ось деякі мої мені подобаються:

  • це дозволяє створювати ігри на агностічній платформі, а потім автоматично створює розгортання для Windows, Mac OS X, Android, IOS. Це справедливо для поточної версії (3.x). Очевидно, версія 4 також дозволить вам розгорнути в Linux:

http://en.wikipedia.org/wiki/Unity_(game_engine)#Major_features

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

http://unity3d.com/unity/licenses

  • Працює з більшістю програмного забезпечення для 3d моделювання (я віддаю перевагу 3d Studio Max, але він також підтримує інших):

http://unity3d.com/unity/editor/importing (прокрутіть трохи вниз)

  • Кодування (скриптування) може бути виконано на C #, що є приємною мовою, з хорошим API та складанням перевірок часу. Поставляється з хорошим середовищем розробників (IDE та все). Якщо ви хочете чогось іншого, він також підтримує Javascript.

  • Має дуже хорошу фізичну підтримку (зіткнення, сила тяжіння, сили тощо):

http://docs.unity3d.com/Documentation/Manual/Physics.html

  • Має магазин активів, який дозволяє купувати різні моделі, сценарії, анімацію тощо, і залежно від вашої майстерності (та гаманця) ви можете їх отримати / змінити, щоб швидко отримати гідні ресурси для вашої гри.

  • І останнє, але не менш важливе, це пристойно швидко. Ознайомтеся з мобільними демонстраціями, в IMHO вони досить добре рухаються і мають дуже пристойну графіку:

http://unity3d.com/gallery/made-with-unity/game-list

Ось один приємний проект Unity, якого я зараз чекаю:

Брайан Фарго "Пустка" 2

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


3

ID Software - один з постачальників, який зазвичай публікує сучасні ігри. Через кілька років вони часто випускають їх як відкритий код. На http://fabiensanglard.net/quake3/index.php ви можете знайти вихідний код Quake3. Це досить багатослівний опис, і хоча Quake3 є досить старим, тим часом поняття все ще мають бути актуальними для сучасних ігор.

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


З точки зору цього аналізу, Quake 3 передує досить багато життєво важливих "низьких рівнів" прийомів сьогоднішньої гри. Для початку, шейдери (надаються OpenGL).

землетрус 3 був випущений у 1999 році. так, це давно. Але це показує, як працюють люди, які намагаються перейти до межі того, що було можливо тоді. Більшість інших доступних двигунів більше схиляються до повторного використання, "чистого" коду тощо, а не до максимальної продуктивності. (Це не означає, що інші двигуни погані і повільні, але я думаю, що це все-таки варто подивитися на це, якщо ви хочете дізнатися про архітектуру та реалізацію 3D-ігрових двигунів)
johannes

Ще одна пов’язана стаття про бінарну математику низького рівня в 3D-іграх, яка використовує Quake як приклад: blog.quenta.org/2012/09/0x5f3759df.html
johannes

1

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.