Коли я розмовляю з людьми, охочими займатися розробкою ігор, перше, що я чую від них, часто зводиться до фраз 'Як навчитися робити гри?' або 'Я хочу зробити гру, таку як Quake / Everquest / Starcraft і т.д.' Відповідь на перше питання лежить за межею реального, так він повинен охопити занадто багато різних аспектів, кожен з яких може бути нескінченно складний.
Друге твердження також нереально - в викладаються в ньому наміри. Starcraft, Everquest і Quake робилися командами професіоналів, які розпоряджаються бюджетами зазвичай перевищують мільйон доларів. І що більш важливо, всі ці ігри були зроблені людьми, які мають великий досвід в створенні ігор. Вони не просто взяли і вирішили робити гри, після чого стали випускати хіти - вони починали з малого і досягли успіху своєю працею. Це те, що потрібно зрозуміти кожному, хто зацікавлений в тому, як навчитися створювати ігри, - зрозуміти і повторювати, повторювати до тих пір, поки це не стане частиною ваших думок, такий, що ви б не змогли уявити собі життя без цієї очевидної, універсальної істини.
До тих пір, поки ви не зрозумієте, що всі навички для розробки ігор вивчаються накопиченням досвіду (що означає починати з дуже малого і працювати, щоб просуватися вперед), ви будете приречені на те, що ви ніколи не закінчите ваші проекти. Навіть ті нечисленні команди, яким вдалося закінчити нетривіальний проект без того, щоб зробити до цього кілька невеликих, повинні були навчатися поступово, просто вони витратили набагато більше часу, ніж могли б заощадити, якщо б почали з менших проектів.
Отже, як же мені почати?
Тетріс є єдиною ідеальною грою, з якої слід почати шлях до становлення досвідченого розробника ігор. Тому що у тетриса є всі елементи, які можна побачити у всіх іграх, і його можна зробити з найменшими витратами праці. Крім того, вам не потрібно бути художником, щоб зробити тетріс, який добре виглядає. Кожен, хто може намалювати квадрат за допомогою програми малювання, може зробити тетріс комерційного якості.
Це ще одна перевага на користь того, щоб почати з тетрису. Ви зможете не тільки зробити повністю працюючу гру, забавну і притягальну, вона ще й буде виглядати не гірше будь-якої комерційної версії. Квадрати є квадрати, неважливо хто їх малює, і тетраміно (фігури в тетрісі) є всього лише набором з чотирьох квадратів.
У тетриса є все компонетни, загальні для всіх ігор. У нього є ігровий цикл (процес, який повторюється знову і знову, до тих пір, поки гра не закінчиться). Ігровий цикл читає вхідні дані, обробляє їх, оновлює елементи гри (падаючі фігури), і перевіряє умови виграшу / програшу.
Кожна гра, яку ви будете коли-небудь створювати, робить всі ці речі, тому дуже важливо вивчити цей процес і практично реалізувати його. Після того, як ви завершите цю, вашу першу гру, ви зможете усвідомити, як важко це може бути, і як довго це може зайняти при створенні наступних ігор. Без того, щоб зробити це хоча б раз до кінця, ви ніколи не будете повністю мати належного уявлення про кожного з цих елементів. Коли у вас будуть великі проекти, буде більше невідомих речей, судити про складність яких і кількості затраченого часу ви не зможете. А якщо ви не зрозумієте повністю весь процес, тому що ви не змогли реалізувати його, ви будете безпорадні при складанні розкладів і оцінці часових витрат, і в кінці кінців зазнаєте невдачі.
Є дещо, що мені слід згадати - коли ви зробите вашу гру, ви не зможете назвати її 'Тетріс'. Тетріс це торгова марка Tetris Company, якою володіє Олексій Пажитнов, винахідник тетриса. Він володіє винятковим правом на використання імені 'Тетріс', і я вважаю, що вірно також і те, що ви не можете зробити гру з падаючими блоками, використовуючи в імені закінчення 'трис', так як це очевидно грає на популярності імені Тетріс.
Після того, як ви повністю, абсолютно, до кінця завершите вашу версію тетриса, ви готові для наступного випробування - Breakout.
Breakout це схожа гра, але вона вимагає більш складної обробки зіткнень, ніж тетріс. Вам також знадобиться реалізувати просту фізику відображення м'яча від різних частин біти і цегли.
Розробка і реалізація рівнів - ще одна ваша задача при написанні Breakout, і для того, щоб ваша гра мала більше одного рівня, вам буде потрібно визначитися зі способом збереження карт рівнів. Це буде робота з ще одним компонентом всіх великих ігор - завантаження, збереження ресурсів та перемикання рівнів.
Після того, як ви закінчите ваш Breakout-шедевр, вам слід рухатися далі, шляхом створення гри Pac-Man. Pac-Man це великий крок вперед, тому що в цій грі використовуються елементи штучного інтелекту ворогів - artificial intelligence (AI). Ви могли і не знати, але в оригінальному Pac-Man у всіх чотирьох різних привидів є свої різні цілі, які вони намагаються досягти щоб перемогти вас як команда. Агресор намагатиметься йти за вами найкоротшим шляхом, змушуючи вас безпосередньо тікати від нього. Перехоплювач спробує дістатися до найближчої розвилки, куди ви повинні будете потрапити, тікаючи від агресора. Другий перехоплювач постарається залишатися ближче до середини і відрізати вас від тунелів з боків екрану. І останній привид буде безцільно тинятися, завдяки чому він часто знаходиться в секції, яка вам необхідна для завершення карти.
Такий детальний AI був досить складний для ігор того часу, і для вашої першої гри з ворожим AI це буде хорошим випробуванням.
Pac-Man також збільшує складність карт і додає більше гнучкості для використання звуків, так як звук безумовно був одним з важливих елементів успіху Pac-Man. (Зрештою, що б з себе представляв Pac-Man без дзижчить звуку пересування гравця?).
В іграх з бічним переміщенням з'являється можливість додати складності ворожому AI, через використання босів, що мають свої стилі поведінки, які, граючи, вам потрібно навчитися визначати, щоб перемогти. Також додається складність відображення на екрані. Тепер ви повинні створити екран з можливістю прокрутки по крайней мере в двох напрямках, а то й в чотирьох, і будете мати справу з 'обрізанням' ігровий області по межі екрану, що досить складно. Вам також буде потрібно попрацювати над фізикою стрибків і рухів персонажів і траєкторіями пострілів.
І нарешті, у ігор з бічним переміщенням є реальна можливість виграшу! Коли ви доходите до кінця таких ігор, ви насправді ПРИХОДЬТЕ кудись, тому ви можете також додати в гру розвивається сюжет (і не забудьте який-небудь феєрверк в кінці рівня, для того щоб у гравця було відчуття завершеності і СЬОГОДЕННЯ шоу з феєрверками в нагороду за перемогу в грі. дуже недружелюбно просто поміщати на екран слова 'Ви перемогли!', після того як гравець провів незліченні години над грою).
Закінчити гру це не означає просто змусити її працювати. У закінченою гри повинен бути відкриває екран, що закриває екран, опції меню (якщо вони необхідні, принаймні повинні бути інструкції як почати гру і як грати), вступний екран перед початком гри, фінальні заставки і таблиця рекордів (там, де вона потрібна) .
Якщо ви не можете помістити вашу гру в ігровий автомат 80х років, якщо вона не буде в ньому виглядати належним чином, то ваша гра не завершена.
Є велика різниця між грою, що представляє з собою 'кісткову основу', і грою, над якою ви попрацювали, зробивши всі необхідні завершальні штрихи. За часом це займе від пари днів до двох тижнів (залежить від розміру гри). Цей час буде значно збільшуватися (іноді експоненціально) у міру вашого просування від тетрису до Breakout і так далі.
Проте, результат буде дуже важливий, щодо як вашого розуміння процесу розробки ігор, так і вашої особистої гордості своєю роботою, а також задоволення та завершеності (яка творить чудеса в плані впевненості в своїх силах!).
Нелегко показувати людям вашу гру і постійно просити їх не звертати уваги на той чи інший недолік - у них не буде точно такого ж враження, яке могло б бути, якби гра працювала без проблем і все було б добре піднесено і повністю завершено. Хіба що тільки інші розробники ігор більш терпимі в цьому відношенні, так як вони знають всі складнощі процесу розробки.
Що важливіше, ви досконально вивчіть, як по-справжньому потрібно завершувати гри. Якщо ви зупинитеся на тому, щоб гра просто працювала, ви упустите безліч деталей, необхідних для створення закінченої гри, що призведе до дір в ваших знаннях, коли в майбутньому ви станете планувати великі проекти.
Але ці ігри дурні!
Взагалі-то, ці ігри ясно показують основи створення будь-яких ігор. Відкиньте убік химерний тривимірний інтерфейс гри зі стріляниною - вона так і залишиться стрелялкой. Ви могли б зробити таку ж гру з двовимірним видом, при цьому сам ігровий процес програмувався б так само.
Хіба не безглуздо робити гру, яка буде мати АБСОЛЮТНО однакові елементи з грою Quake? Якщо ви приберете 3D інтерфейс і подивіться на те, що дійсно відбувається в грі, здається це все ще таким же недосяжним?
Навіть якщо і здається - це проект не для початківців. Елементів, які слід розробити і довести до кінця навіть першому проекті настільки багато, що я настійно рекомендую вамследовать зазначеної мною послідовності ігор, для того щоб поступово нарощувати своє розуміння процесу їх розробки. (Коли ви вчитеся плавати, хіба ви ВІДРАЗУ починаєте з стрибка з великої висоти в глибоку воду? НІ! Ви починаєте на мілині, ви вчитеся плавати по-собачому, і вже потім поступово вивчаєте все інше.)
Перш ніж ви що-небудь почнете, вам слід з'ясувати для себе, що саме ви хочете. Ви хочете робити гри, або просто навчитися копіювати технологію Quake? Якщо все, що вас цікавить, це технологія, тоді почніть вивчати графічні технології і не витрачайте час на ігри.
Якщо ви дійсно зацікавлені в створенні ігор, то вам слід контролювати своє бажання зробити гру з використанням новітніх технологій і фокусуватися на досягненні можливості зробити це. Кращий спосіб зробити це - практикуватися в створенні і (що більш важливо) завершення ігор, дотримуючись зазначених мною або подібним шляхом, що дасть вам необхідний досвід.
Пишаєтеся вашими іграми!
Ви чули, щоб студенти соромилися того, що вони студенти, просто тому що вони ще не працюють? Ви вчитеся, і навіть просту гру складно створити, особливо якщо ви хочете зробити це ДОБРЕ. Це прекрасно видно по людям, які НЕ зробили навіть простої гри, але постійно про це говорять. Коли ви закінчите гру, можете вважати, що ви на більш вищому рівні, ніж той, хто не зробив свою гру, навіть якщо його ідея звучить феноменально і відповідає ігор останньої моди. Це не гра, якщо ви не можете в неї грати.
Я створив свою гру, де ж мій Ferrari?
Тим не менш, є щось більше в житті творця ігор, ніж багатомільйонні бюджети, і я настійно рекомендую звернути на це увагу. Хоча, звичайно, немає нічого поганого або ганебного в створенні комерційних ігор з малим бюджетом, вони можуть бути навіть краще високобюджетних, і при цьому набагато легше буде знайти видавця. Зрештою, вам не доведеться витрачати роки на один і той же проект, і якщо він не розкрутиться, втрата буде невелика.
Просто усвідомте, чого саме ви хочете від створення ігор і сконцентруйтеся на досягненні цього.