“Я все життя мріяв створювати комп’ютерні ігри, але не маю ані відповідної освіти, ані уявлення, як це роблять інші. З чого мені почати?” – це запитання мені доводиться чути зі вражаючою регулярністю. Тож, щоб багатократно не повторюватися, я вирішив написати статтю про перші кроки молодого розробника ігор. Тим більше, що я давно обіцяв це зробити. Тепер у відповідь на запитання можна буде просто дати лінк!
Попереджаю, що шляхів до “мрії” може бути багато. Хтось спробує здобути формальну освіту ігрового розробника чи хоча б загальну освіту програміста, інші – підуть працювати в ігрову компанію, треті – займуться самоосвітою. Я ж поділюся власним баченням розвитку людини, яка хоче створювати ігри.
Цей підхід виявився ефективним у моєму випадку, і мені здається, що при належному рівні бажання та готовності інвестувати свій час та зусилля, він буде так само ефективний для будь-кого іншого. Основна його цінність, як на мене, полягає в тому, що він підійде абсолютним новачкам – тобто людям, які ніколи раніше не мали нічого спільного з розробкою ігор.
Застереження
Більшість початківців чомусь вважають, що розробка ігор зводиться до програмування та створення графіки. Це не так!
Розвиваючись, як розробник, ви дедалі більше переконуватиметесь, що зовсім не ваші програмістські та художницькі навички визначають, наскільки успішною буде наступна гра. На перший план виходитимуть куди більш “тонкі” матерії, такі як розуміння психології гравця, здатність вигадати та втілити адиктивний геймплей, хороший ігровий дизайн тощо.
Але звісна річ, в рамках однієї статті неможливо охопити всі аспекти ігрової розробки, тому сьогодні я ігноруватиму “тонкі матерії” і розповідатиму про функціональні інструменти. Простіше кажучи – про те, що дозволить вам в результаті сісти за комп’ютер і зробити найелементарнішу гру. А ще простіше – про програмування!
Одразу до практики: Створюємо першу гру
Ви можете прочитати скільки завгодно підручників про ActionScript 3 і проштудіювати сотню статей про патерни програмування, але так ні на йоту й не наблизитися до вміння створювати ігри, тому що програмування – це в першу чергу практична, а не теоретична навичка. А отже вам слід якомога швидше переходити до практики.
Моя рекомендація полягає в тому, щоб братися за розробку гри з першого ж дня навчання. Це повинна бути найпростіша гра з відомою механікою. Хрестики-нулики, арканоїд, авойдер, елементарний шутер чи mach-3 – всі ці механіки цілком підійдуть для першої гри. Але постарайтеся не ускладнювати і сприймайте першу гру як інструмент для тренування.
Моєю першою грою була Match Insanity, яка потім переродилася в Don’t Eat Last Berry. У ній я реалізував елементарну механіку “гри з дитинства”. Але найважливіше те, що на розробку першої гри пішло не більше тижня – тож отримавши найцінніший досвід я зміг швидко зробити висновки і продовжити розвиток.
Повторюся, не варто затягувати з розробкою першої гри. Але так само важливо, щоб це був не просто прототип чи альфа-версія, а повноцінний закінчений продукт (нехай навіть нецікавий нікому, крім вас). Тільки так ви зможете пройти через усі етапи розробки і привчите себе до того, що проекти потрібно закінчувати.
Спочатку вчимося – потім структуруємо
Навчання варто починати із коротких і дуже простих уроків, які пояснюють принципи роботи тих чи інших методів ActionScript 3. Багато початківців роблять помилку, намагаючись одразу осягнути філософію об’єктно-орієнтованого програмування чи з перших секунд хапаючись за “біблію” ActionScript 3 – книгу Коліна Мука (Colin Moock) “Essential ActionScript 3.0“. Ця книга справді повинна стати настільною для кожного AS3-програміста, але починати з неї я б не рекомендував – тільки заплутаєтесь.
Простих уроків в інтернеті можна знайти скільки-завгодно. В цьому блозі я теж вже почав створення серії навчальних матеріалів, які підійдуть абсолютним початківцям. Їх ви знайдете у розділі “Уроки Flash“.
Особливу увагу раджу звернути на наступні публікації (з них цілком можна починати вивчення мови програмування):
- Робота з символами MovieClip методами ActionScript 3.
- Розуміння слухачів подій (EventListeners) у ActionScript 3.
- Організація візуальних об’єктів методами ActionScript 3.
- Умовні вирази (if … else, switch … case) в ActionScript 3.
- Використання циклів та масивів у ActionScript 3.
Читаючи ці та інші публікації вам потрібно чітко дотримуватися одного правила – повторювати матеріал до того часу, поки ви не почнете його розуміти. Немає жодного сенсу в бездумному копіюванні коду, якщо ви не розумієте, як він працює.
Виконуючи завдання, намагайтеся модифікувати їх таким чином, щоб спробувати різні налаштування. Це допоможе краще осягнути і запам’ятати принципи роботи того чи іншого коду.
Книги
Я не буду публікувати тут велетенську бібліотеку книг, які потрібно “проштудіювати” від першої і до останньої сторінки. Натомість, поділюся коротким списком найкращих підручників, які стали в нагоді мені.
Знання англійської мови – дуже бажане, тому що я сумніваюся, що всі книги мають український або хоча б російський переклад.
- Foundation Game Design with ActionScript 3.0 (Rex van der Spuy) – на мою думку, це просто геніальна книга, яка дозволяє поринути у дивовижний світ розробки ігор на AS3 людям, які раніше ніколи не були програмістами. Саме її потрібно читати першою і дуже уважно розбирати кожен приклад коду, які зустрічаються в книзі.
- AdvancED Game Design with Flash (Rex van der Spuy) – продовження попередньої книги, для розробників, які вже відчули смак створення ігор. Книга обіцяє познайомити нас з безліччю цінних концепцій програмування, але новачкам не підійде. Чесно кажучи, я сам поки-що тільки почав знайомитися з нею. Виглядає “смачно”.
- The Essential Guide to Flash Games: Building Interactive Entertainment with ActionScript (Jeff Fulton, Steve Fulton) – цю книгу я б радив читати другою, після Foundation Game Design with ActionScript 3.0. Вона розповідає про такий важливий аспект розробки флеш-ігор, як створення власного “ігрового двигунця”. Книга не лише дуже цікава і розкриває очі на важливі концепції ігрового програмування, але й дозволяє глибше зрозуміти структуру сучасних ігор та пояснює, як реалізувати все це методами ActionScript 3. Словом, це, мабуть, найкраща книга із представлених у моєму короткому переліку.
- Essential ActionScript 3.0 (Colin Moock) – як вже згадувалося – це “біблія” кожного AS3-програміста. Починати читати її можна після того, як ви виконаєте кілька практичних завдань і вам знадобиться структурувати отримані знання. З завданням структурування ця книга справляється на 100%. Вона розповідає про ActionScript “в загальному” і не має ігрової специфіки. І тим не менше, я не знаю жодного AS3-розробника, в кого б на полиці не стояла ця книга. До речі, книга Коліна Мука перекладена російською мовою, так що при бажанні ви зможете знайти російськомовну версію.
Блоги
Паралельно з читанням книг, я раджу стежити за оновленнями блогів розробників ігор. Окрім, власне, “Блога про флеш та ActionScript” я раджу звернути увагу на:
- Блог Антона Карлова – справжня знахідка для кожного початківця. Можна перечитувати від першої і до останньої статті. Успішний інді-розробник відкрито ділиться своїм досвідом. Це мій улюблений блог про розробку.
- Xitri – ще один чудовий блог розробника, де можна знайти безліч “хитрощів” для створення ігор. На жаль, останнім часом він оновлюється не так часто, як хотілося б, а в даний момент, схоже, взагалі не працює. Сподіваюся, це тимчасове явище.
- Emanuele Feronato – англомовний блог італійського розробника. Один з найвідоміших у світі блогів про розробку ігор. Дуже цікавий, багатий на інформацію і активний.
- Flash-Animated – єдиний в переліку блог, присвячений не стільки програмуванню, скільки анімації. Хоча уроки програмування там також є, а сам блог надзвичайно цікавий!
Спільнота
Для початківця дуже важливо спілкуватися з однодумцями, які не лише цікавляться тим самим, що й він, але й можуть дати корисну пораду і відповісти на нестандартні запитання. Вплив спільноти на розвиток ігрового розробника важко переоцінити, тому я рекомендую якнайшвидше включатися в комунікацію і ставати частиною такої спільноти.
На жаль, україномовної спільноти флеш-розробників не існує (або я її не знайшов).
Найактивніша російськомовна спільнота зосереджується навколо форуму FlashGameDev та сервісу колективних тематичних блогів FlashGameBlogs. До речі, більшість статей, опублікованих на “Блозі про флеш” я публікую і на FlashGameBlogs, попередньо переклавши. А взагалі, дописувати до FlashGameBlogs може кожен, попередньо отримавши інвайт.
Що стосується англомовної спільноти, то найактивніша, на мою думку, компанія ігрових розробників “тусується” на аукціоні FlashGameLicense.
Ресурс має всі необхідні інструменти для комунікації, включаючи обширний внутрішній форум. Втім, якщо ви мрієте в майбутньому продавати ігри, то швидш за все рано чи пізно прийдете до FGL.
Офіційна документація Adobe
Останньою в переліку але не за важливістю є офіційна документація Adobe. Вона стане в нагоді при “читанні” чужого коду. Якщо ви наткнетеся на незнайомі оператори чи методи, документація Adobe про мову ActionScript 3 точно стане вам у нагоді.
Практика і ще раз практика!
Сподіваюся, цей перелік ресурсів допоможе вам швидше освоїтися у світі ActionScript 3 та ігрової розробки. Головне – не забувайте, що тільки практика дасть вам необхідний досвід для створення по-справжньому хорошої гри. Вирішення конкретних завдань змушує мозок працювати в абсолютно іншому (набагато більш ефективному) режим, ніж коли ви просто читаєте теорію. Тому не затягуйте зі створенням першої гри!
Січень 21, 2013 о 20:20
Дякую за статтю. Прочитав із задоволенням.