Як навчитися робити гри

Коли я розмовляю з людьми, охочими займатися розробкою ігор, перше, що я чую від них, часто зводиться до фраз Як навчитися робити гри? або Я хочу зробити гру, таку як Quake / Everquest / Starcraft і т.д. Відповідь на перше питання лежить за гранню реального, так він повинен охопити занадто багато різних аспектів, кожен з яких може бути нескінченно складний.

Друге твердження також нереально – в викладаються в ньому наміри. Starcraft, Everquest і Quake робилися командами професіоналів, які розпоряджаються бюджетами зазвичай перевищують мільйон доларів. І що більш важливо, всі ці ігри були зроблені людьми, що мають великий досвід у створенні ігор. Вони не просто взяли і вирішили робити ігри, після чого стали випускати хіти – вони починали з малого і досягли успіху своєю працею. Це те, що потрібно зрозуміти кожному, хто зацікавлений у тому, як навчитися створювати ігри, – зрозуміти і повторювати, повторювати до тих пір, поки це не стане частиною ваших думок, такий, що ви б не змогли уявити собі життя без цієї очевидної, універсальної істини.

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

Отже, як же мені почати?

Тетріс.

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

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

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

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

Є дещо, що мені слід згадати – коли ви зробите вашу гру, ви не зможете назвати її Тетріс. Тетріс це торгова марка Tetris Company, якою володіє Олексій Пажитнов, винахідник тетрису. Він володіє винятковим правом на використання імені Тетріс, і я вважаю, що вірно також і те, що ви не можете зробити гру з падаючими блоками, використовуючи в імені закінчення трис, так як це очевидно грає на популярності імені Тетріс.

Однак, все це неважливо для вас, якщо ви назвете вашу гру тиснете небо, або ще як-небудь без закінчення трис, так як компанія-винахідник не володіє ігровим процесом, інтерфейсом, або ідеєю падаючих блоків. Якщо хто-небудь скаже вам що-небудь інше, скажіть, що не можна володіти ідеями, і якщо вам потрібні докази, подивіться інформацію на USPTO (http://www.uspto.gov/).

Що ж далі?

Після того, як ви повністю, абсолютно, до кінця завершите вашу версію тетріса, ви готові для наступного випробування – Breakout.

Breakout це схожа гра, але вона вимагає більш складної обробки зіткнень, ніж тетріс. Вам також знадобиться реалізувати просту фізику відображення м’яча від різних частин біти і цеглин.

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

Після того, як ви закінчите ваш Breakout-шедевр, вам слід рухатися далі, шляхом створення гри Pac-Man. Pac-Man це великий крок вперед, тому що в цій грі використовуються елементи штучного інтелекту ворогів – artificial intelligence (AI). Ви могли і не знати, але в оригінальному Pac-Man у всіх чотирьох різних привидів є свої різні цілі, які вони намагаються досягти щоб перемогти вас як команда. Агресор буде намагатися слідувати за вами найкоротшим шляхом, змушуючи вас безпосередньо тікати від нього. Перехоплювач спробує дістатися до найближчої розвилки, куди ви повинні будете потрапити, тікаючи від агресора. Другий перехоплювач постарається залишатися ближче до середини і відрізати вас від тунелів з боків екрана. І останній привид буде безцільно тинятися, завдяки чому він часто знаходиться в секції, яка вам необхідна для завершення карти.

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

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

Наостанок, гра, яку, як я вважаю, вам слід створити, це аркада з боковим переміщенням, така як Super Mario Brothers, де ви можете стрибати по платформах, стріляти, присідати, і взаємодіяти з ворогами. Так як в таких іграх використовується графіка з боку, то я вважаю, вам слід пошукати її в колекції безкоштовно доступних зображень SpriteLib за адресою: http://www.arifeldman.com/free/spritelib.html

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

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

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

І нарешті, у ігор з боковим переміщенням є справжня можливість виграшу! Коли ви доходите до кінця таких ігор, ви насправді ПРИХОДИТЕ кудись, тому ви можете також додати в гру розвивається сюжет (і не забудьте небудь феєрверк в кінці рівня, для того щоб у гравця було відчуття завершеності і СЬОГОДЕННЯ шоу з феєрверками в нагороду за перемогу в грі … дуже недружелюбно просто поміщати на екран слова Ви перемогли!, після того як гравець провів незліченні години над грою).

Завершальні штрихи …

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

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

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

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

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

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

Але ці ігри дурні!

Взагалі-то, ці ігри ясно показують основи створення БУДЬ-ЯКИХ ігор. Відкиньте убік химерний тривимірний інтерфейс гри зі стріляниною – вона так і залишиться стрілялкою. Ви могли б зробити таку ж гру з двовимірним видом, при цьому сам ігровий процес програмувався б точно також.

Хіба не безглуздо робити гру, яка буде мати АБСОЛЮТНО однакові елементи з грою Quake? Якщо ви приберете 3D інтерфейс і подивіться на те, що дійсно відбувається в грі, здається чи це все ще таким же недосяжним?

Навіть якщо і здається – це проект не для початківців. Елементів, які слід розробити і довести до кінця навіть першому проекті настільки багато, що я настійно рекомендую вамследовать зазначеної мною послідовності ігор, для того щоб поступово нарощувати своє розуміння процесу їх розробки. (Коли ви вчитеся плавати, хіба ви ВІДРАЗУ Ж починаєте з стрибка з великої висоти в глибоку воду? НІ! Ви починаєте на мілині, ви вчитеся плавати по-собачому, і вже потім поступово вивчаєте все інше.)

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

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

Пишаєтеся вашими іграми!

Ви чули, щоб студенти соромилися того, що вони студенти, просто тому що вони ще не працюють? Ви вчитеся, і навіть просту гру складно створити, особливо якщо ви хочете зробити це ДОБРЕ. Це чудово видно по людям, які НЕ зробили навіть простої гри, але постійно про це говорять. Коли ви закінчите гру, можете вважати, що ви на більш вищому рівні, ніж той, хто не зробив свою гру, навіть якщо його ідея звучить феноменально і відповідає ігор останньої моди. Це не гра, якщо ви не можете в неї грати.

Я створив свою гру, де ж мій Ferrari?

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

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

Просто усвідомте, чого саме ви хочете від створення ігор і сконцентруйтеся на досягненні цього.

Автор статті: Geoff Howland

Переклад: Євген Казека

Коментування вимкнено .

  1. cwarez :

    ігри навчиться робити дуже легкоскачіваешь Visual basic заходиш вyoutube дивишся там відеоурокіделаешь но там і все готово

  2. Ярослав :

    а що треба робити і какіепрограмми використовувати і де їхможна скачати, якщо хочешсделать гру в жанрі “стратегії”.