З чого почати розробку гри? [зачинено]


65

Я запитав це раніше в цій темі на сайті stackoverflow.com. Один із ранніх коментарів перенаправив мене сюди до gamedev.stackexchange.com, тому я репостую тут.

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

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

Моя інформація: Я працював у декількох мовах програмування від PHP до C ++ від Java до ASM. Я не боюся жодних викликів, які виникають із вивченням нового синтаксису або обмежень, притаманних новій мові. Однак весь мій досвід програмування був суто неграфічним і, як правило, з невеликою або надзвичайно простою взаємодією під час виконання. Я створив обширні та блискучі алгоритми для вирішення логічних та математичних задач, а також задач графіки. Однак у кожному випадку введення або визначається у файлі, передається у вигляді HTML-форми, або вводиться в консоль. Взаємодія в режимі реального часу з користувачем - це те, з чим у мене немає досвіду.

Моє запитання: з чого мені почати намагатися робити ігри? А ще краще - з чого мені почати намагатися створити 3D-середовище, керується клавіатурою? У пошуку в Інтернеті я знайшов кілька ресурсів, що стосуються ігрових двигунів, графічних двигунів та фізичних двигунів. Ось короткий підсумок мого досвіду роботи з кількома двигунами, які я спробував:

Unreal SDK: Відео з підручника передбачає, що ви вже маєте глибокі знання 3D-моделювання, графічних двигунів, анімації тощо. Сторінка "Початок роботи" не пропонує формального пояснення розвитку ігор, але переходить до того, як Unreal може впорядкувати процеси, які передбачає вас Ви вже знайомі. Завантаживши SDK і запустивши його, щоб побачити, чи інструменти такі інтуїтивні, як вони заявляли, мене зустріли близько 60 кнопок і порожня порожнеча для мого 3D-моделювання. Натиснувши на "Додати гучність" (для спроби додати базовий куб), мені було знайдено меню з 30 варіантів. Панікуючи, я закрив редактора.

Crystal Space: Веб-сайт видався досить інформативним, пояснюючи, що Crystal Space призначений лише для графіки, а супутнє програмне забезпечення, CEL, забезпечувало логіку для створення ігор. Була надана демо-гра, яка була побудована за допомогою "CELStart", їхнього простого інструменту для людей, які не знають ігрового програмування. Я запустив гру, щоб побачити, що я можу з нетерпінням створити. Він кілька разів застигав, меню було баггі, було тисячі графічних глюків, вороги не відповідали на пошкодження, і коли я закрив гру, він закрився. Дав на цей двигун.

IrrLicht: Підручник передбачає, що у мене є Visual Studio 6.0 (у мене є Visual Studio 2010). Виконуючи їх вказівки, я не зміг належним чином імпортувати бібліотеку до Visual Studio і не зміг викликати жодну з функцій, якими вони користувалися. Копіювання файлів заголовків, файлів класів та DLL вручну в папку мого проекту - проект не вдалося правильно скомпілювати.

Ясна річ, що я не починаю вдало, і йду по колах. Чи може хтось вказати мені в правильному напрямку? Слід почати із завантаження програми на зразок Blender та вивчення 3D-моделювання, або я повинен навчитися користуватися графічним двигуном? Чи варто шукати ігровий движок все включено, або краще спробувати зашифрувати власну логіку гри? Якщо хтось насправді влаштував свої власні ігри, я вважаю за краще почути, як вони розпочали свою роботу.

Також заняття в моїй школі - це не варіант. Нічого не пропонується.


3
+1 Хороший фон програмування для пошуку конкретних потреб.
Буде Маркуйлер

6
+1, це добре продумане і досліджене питання щодо того, як почати розробку гри. Також я відчуваю ваш біль щодо Unreal SDK.
Джеймс

Рекомендую ознайомитись з навчальними посібниками Raven67854 для UDK. Вони перераховані під відео, людям, здається, вони подобаються.
Джессі Дорсі

Моя порада - просто почати щось робити. Зазвичай люди, які задавали подібні запитання, хочуть прокласти шлях лінійно (тому що я колись задаю такий самий питання). Однак, з мого минулого досвіду, крива навчання розвитку ігор - це нелінійна крива. Я зазвичай переходжу від проблеми до проблеми --- якщо я застряг, то я прошу / шукаю відповідь. Тому просто спробуйте речі, вчіться на спробах та помилках. Зазвичай я починаю з навчальних посібників. Однак у цих навчальних посібниках ніколи не наводиться достатньо деталей, тому я повинен запитати / шукати / експериментувати для відповідей.
користувач1542

Відповіді:


38

Я задав таке запитання, коли приєднався до ГД. Ось декілька посилань, які можуть вас зацікавити, які, сподіваюся, направлять вас до вашої мети.

Коротше кажучи, я б хотіла XNA Game Studioзрозуміти розвиток ігор. Потім рухайтесь вперед до того, що ви хочете досягти як знання / технології. XNAнавчив мене працювати з спрайтами, і дозволив мені застосувати частину своїх знань з самого початку моєї кривої навчання, щоб мені вдалося зрозуміти досить швидко, щоб зрозуміти, як я повинен створити свою гру для використання класів під час роботи з ін'єкційна залежність тощо. Тож я змушую вас більше не чекати.

  1. З чого почати писати ігри, будь-які підручники тощо?
  2. Які основи розвитку гри? (Цікаве запитання, ІМХО)
  3. Відокремлення фізики та логіки гри від коду інтерфейсу
  4. Переміщення мого спрайту в XNA за допомогою класів

Чому ви запитаєте XNA? Просто через ваш Java-фон. XNA використовує C #, який схожий на Java в декількох кількох способах, а також є простим фреймворком, який дозволяє абстрагувати цикл гри та інше, щоб ви могли сконцентруватися на тому, що важливо.

Я дуже сподіваюся, що це змусить вас почати. =)


1
Вибачте за затримку відповіді =) Я читав кожне з дописів, до яких ви перенаправили мене (Також одне з дописів, пов’язаних зі сторінкою MSDN про створення 3D-ігор з XNA, що мене зацікавило, оскільки сторінка двигуна ігор XNA спочатку виглядала так був строго для 2D ігор). Я, безумовно, думаю, що це хороша відправна точка. Дякую. Я сьогодні скачу XNA і лягаю спати, то, сподіваюсь, завтра я можу спробувати зробити Понг чи щось.
stevendesu

@Steven: Немає проблем! Я опублікував цю відповідь заради допомоги ентузіасту-розробнику так само, як я, який просив настанови! Я дуже сподіваюся, що вам сподобається це робити! Моє перше і досі завдання - розробити просту гру, схожу на арканоїди, де мені доведеться попрацювати для виявлення зіткнень, одночасно написавши свої уроки для кожного космічного корабля, енергетичного кулі та цегли. Тоді мій Game1клас використовується як ігровий контролер, який, на мою думку, - це клас, який повинен контролювати та розповідати іншим класам, що робити і т. Д. Я трохи пояснюю цей аспект посиланням №4 та №5.
Буде Маркуйлер

Я можу задати інше запитання дуже скоро (завтра) xx Завантажили XNA Game Studio 4.0, встановили її .... І явних інструкцій, що робити далі, не було. На всьому офіційному веб-сайті XNA просто вказується "зробити ігри для Windows Phone 7" - нічого про створення ігор для Windows. Я розберуся вранці або запитаю тут, якщо я не можу. Час ліжка =)
stevendesu

1
Створіть новий проект за допомогою Visual Studio, а потім виберіть XNA десь ви можете вибрати тип проекту. Тоді починайте робити ігри для Windows! Ваш шаблон ігрового проекту XNA (новий проект) збиратиметься та працюватиме в Windows. XNA - бібліотека Microsoft для розробки ігор, тому ви можете розробляти ігри для Windows та XBox.
Буде Маркуйлер

1
Заради майбутнього варто зазначити, що XNA по суті застаріла, але Моногаме живе далі. Здебільшого той же код буде працювати.
Маг

8

Ви можете спробувати Unity 3D , тому що

  • його можна запрограмувати в JavaScript, C # або Boo
  • він має хороший підручник з тут
  • його крива навчання не така крута
  • є відповіді єдності , де ви знайдете ще більше ресурсів.

(Відмова: Я жодним чином не пов’язаний із творцями Єдності, я просто використовую його і знайшов це чудовим інструментом для вивчення основ).

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

Редагувати: Існував коментар про те, що Unity вважається не "належним" ігровим двигуном, що може бути неправильно зрозумілим, як я це кажу, тому нерегулярно додайте коментарі нижче. Мені не було наміру припускати, що Unity не можна використовувати для належного дизайну ігор, навпаки. Я сам користуюся ним, і мені це подобається. ;)


3
Що в цьому неправильно?
lathomas64

Я також цікавий.
Джессі Дорсі

Може бути, факт (наприклад, Flash або Java) вимагає запуску контейнерної програми, тому він вважає це "неправильним" тим, що її неможливо просто скласти і поширити серед масової аудиторії без зайвих клопотів? У будь-якому випадку я зараз заглядаю в XNA. Я можу перевірити Unity3D, якщо XNA виявиться занадто важким.
stevendesu

Ну, я чув, що люди говорять, що до «правильного» дизайну ігор Unity не слід сприймати серйозно. Як було сказано раніше - я сам це використовую, і я дуже задоволений цим. У деяких випадках Єдність просто робить речі підозріло легкими, я думаю ...;) Я просто хеджував, бо не знав, як люди реагуватимуть на згадку про Єдність. Можливо, це спричинило сутінку?
ксеофін

@steven_desu: Насправді, вам потрібна лише програма-контейнер для веб-гравця. Ігри, складені для роботи на Windows або Mac, є повністю самостійними.
ксеофін

2

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

У мене також були деякі труднощі з irrlicht, навчальні посібники не дуже сучасні, але ви повинні спробувати зразки!

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

І спробуйте запам’ятати якусь матричну математику, вона матиме деяке використання у 3D!


2

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

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

Однозначно варто прочитати - я добре уявив, що роблю, лише через кілька годин.


Підручники варто прочитати, навіть якщо ви не використовуєте двигун. Також є цікаві підручники з деяких математик 3D.
DMan

2

Ви дійсно повинні спробувати Flixel http://flixel.org/ Я зробив свою першу "демо" гру за допомогою flixel. Приємна спільнота, приємні підручники.

Це не 3D, але в ньому є багато приємних функцій, які полегшують ваші перші кроки в середовищі програмування ігор.

Такий, що: Відображення тисяч рухомих об’єктів
Основні зіткнення між об’єктами Групуйте
об’єкти разом для простоти
Легко
генеруйте та випромінюйте частинки Створюйте рівні гри за допомогою графічних таблиць
Дисплей тексту, збереження ігор, прокручування
введення миші та клавіатури
Математичні та кольорові утиліти

І це безкоштовно для комерційного використання, що є приголомшливим.


1

Якщо ви взагалі не працювали з графікою. Перед початком просто вивчення відкритого gl або direct x - це початок. Я програмував свою першу гру саме таким чином. Двигуни нашої компанії знаходяться вдома, і більшість систем підтримують відкритий gl в якійсь формі. Я дізнався, перебуваючи на роботі, переглядаючи код, написаний ще до того, як почав працювати. Можливо, ви захочете поглянути на деякі проекти з відкритим кодом, щоб побачити, як налаштована структура ігор, і почати їх змінювати, поки вам не зручно починати власну справу. Я також пропоную "Кодування ігор завершене" як чудову посилання на всі невеликі шматочки ігрового програмування, які ви не розумієте, чи існують, як-от правильна структура файлів та управління ресурсами.


1

Спробуйте Source Engine . Розробити ігри на ньому легко, і ви можете отримати платформу дистрибуції (Steam) і продати свою гру безкоштовно, якщо підпишите договір з Valve Corportaion.


1

Я б рекомендував почати з флеш-ігор, оскільки у вас дійсно є все необхідне в одному пакеті, щоб зробити прості ігри. Є багато блогів із покроковими інструкціями, наприклад, Емануеле Феронато . У нього навіть є книга з 10 повноцінними іграми або близько того.

Я використовував FlashDevelop, якого достатньо для розвитку.

«Створення флеш-гри астероїдів» Кріса Моллера - це чудовий конкретний випадок із повним покроковим підходом із використанням флеш-розробки.

Для ігор на основі плитки є чудовий підручник у програмі Ironcoding .

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

Зберігайте його маленьким, щоб ви могли його закінчити і відпустити.

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