Ось і залишилася позаду епопея ігрового конкурсу зі швидкої розробки ігор. Після тривалого затишшя на блозі це буде доволі довга стаття. В ній я розповім про сам конкурс (за умовами якого потрібно було створити повноцінну гру на флеш за 7 днів), поділюся його результатами, а також спробую показати процес створення конкурсної флеш-гри зсередини.
Що таке “Кубок ігрового спалаху”?
Кубок ігрового спалаху (вочевидь, назва пішла від дослівного перекладу англійського Flash Game Contest) – це конкурс так званої “швидкої розробки”, який організовується російською спільнотою флеш-розробників на базі тематичного форyму FlashGameDev.ru.
За правилами конкурсу учасники повинні за 7 днів розробити флеш-гру від ідеї до готового продукту. При цьому учасників ніхто не обмежує ні за сетингом, ні за механікою гри. Єдиним обмеженням по суті є тематика, яка вибирається організаторами і стає відомою в перший день конкурсу.
Судять конкурс 11 членів журі, імена яких в сфері флеш-розробників відомі кожному. Скажімо, до цьогорічного складу журі входили Максим Гринів (львів’янин, автор Contre Jour, iPad Game of the Year 2011), Євген Кузьмін (автор популярної гри для iPhone та iPad Cover Orange, загальний прибуток від продажу якoї вже перевищив $1 000 000), Валерія Малаєва (ідейний натхненник та організатор найбільшої на теренах Східної Європи конференції для розробників флеш ігор FlashGAMM). Всіх судей перелічувати я не буду, але сподіваюся, ви можете уявити рівень цих людей у сфері розробки ігор. Був серед них і Антон Карлов – успішний розробник та автор мого улюбленого блога про флеш, який я раджу читати кожному, хто мріє створювати ігри.
Перший “Кубок ігрового спалаху” проводився у серпні минулого року, але тоді через відсутність часу у мене не було можливості взяти в ньому участь. Для того, щоб ситуація не повторилася, я заздалегідь взяв відпустку на основній роботі на час проведення другого конкурсу. Початок був запланований на третє січня.
Тему – “Подорожі в часі” – учасники дізналися в ніч з 2-го на 3-тє січня, і конкурс був офіційно розпочатий. А це означало, що опівночі з 9 на 10-те січня розробники повинні були завантажити готову гру на ігровий аукціон FlashGameLicense.
До участі в конкурсі в категорію “Одинаки” (коли над грою працює одна людина) зареєструвалося більше 40 учасників (я брав участь саме в цій категорії). В категорію “Пари” (коли над грою працює міні-команда: програміст та художник) зареєструвалося близько 15 команд. Втім, до фінішу дійшли не всі. Але про це – згодом.
Підготовка та старт
Ще задовго до конкурсу я мріяв про можливість розробити гру у жанрі платформер. Втім, оскільки з серпня минулого року практично всі мої сили та вільний час були віддані грі Symbiosis, займатися чимось іншим просто не було змоги. По-суті, “Кубок ігрового спалаху” став чудовою нагодою спробувати свої сили в новій механіці та жанрі.
Тож напередодні конкурсу, відійшовши від святкування Нового Року, я почав посилено шукати навчальні матеріали та статті про створення платформерів. Майже весь день 2-го січня я працював над прототипом. Це було досить ризиковано, оскільки теми конкурсу я ще не знав. Але було сподівання, що такий універсальний жанр, як платформер, буде можливо пристосувати практично до будь-якої теми.
Для мене було важливо розібратися хоча б в принципах функціонування платформерів та зробити більш-менш “безглючне” керування героєм. В перший день я зробив “одноекранний” платформер без будь-якої графіки та анімації. Але мені вдалося досягнути того, що головний герой перестав “провалюватися” через платформи і більш-менш реалістично реагував на клавіатуру.
Виглядало це досить “страшно”:
Деякі “глюки”, щоправда, залишилися. Наприклад, головний герой (щось схоже на синьо-фіолетового їжака) тільки й шукав нагоди, щоб “зісковзнути” з платформи, на якій за правилами фізики повинен був впевнено стояти.
О 12-тій ночі я був втомлений але задоволений, оскільки певного прогресу таки вдалося досягнути. Приблизно в цей час стала відома тема, і конкурс почався. Але звісна річ – після цілого дня за комп’ютером я не міг думати ні про що інше, окрім сну.
День 1 (вівторок): Концепт, головний герой, карта
Прокинувшись зранку, я практично зразу приступив до розробки. Першою справою потрібно було вигадати концепцію гри. На щастя, ідея не змусила себе чекати. Найкращою реалізацією теми “Подорожі в часі” мені здалася можливість головного героя (ГГ) повертатися в минуле, при цьому стаючи молодшим. Крім того, ця концепція відкривала можливість збільшувати швидкість та спритність ГГ, коли він стає молодшим і таким чином відкривати для нього недоступні раніше локації.
Для образу ГГ я не придумав нічого кращого, ніж старий дід з палицею, який мріє повернути час назад і знову стати молодим. Спершу він рухається повільно і практично не може стрибати, але згодом, знаходячи магічні артефакти, починає бігати швидше і стрибати вище. Карта побудована таким чином, що в деяких місцях спритності ГГ не вистачає, щоб пройти далі. Це значить, що потрібно “помолодшати”.
Найбільше часу першого дня я потратив на створення карти, повністю намалювавши її на папері. Виглядала вона так (сканера немає, тому вибачайте за якість):
Не менше працював над програмною реалізацією карти, а особливо – прокрутки. Від ідеї робити плавну прокрутку відмовився зразу, але навіть миттєве переключення екранів, коли ГГ підходить до краю видимої області, викликало в мене достатньо труднощів. Тільки через кілька годин роботи з кодом все запрацювало так, як потрібно.
Останнє, що я зробив першого дня – це намалював ГГ і повністю анімував його (три стани – біг, стрибок та стан спокою).
Окрім того у вівторок моя дружина поїхала в гості до мами, тож наступні кілька днів я був відданий сам собі – кращих умов для повного занурення у розробку не вигадаєш.
День 2 (середа): Продовження роботи над картою, візуальне представлення героїв
Намалювати карту на папері виявилося набагато простішим, ніж реалізувати це програмно. В моєму випадку карта складається із великої кількості прямокутних блоків, яким можна задавати довільні розміри, і зіткнення з якими постійно “перевіряє” ГГ. Але оскільки редактор карти спеціально для цієї гри я не робив, то розміщувати блоки доводилося вручну. Для кожного такого блока потрібно було визначити правильні розміри, розрахувати координати і прописати в коді.
На роботу з картою пішло 5 чи 6 годин, але все одно зробив лише третину від запланованого. Для того, щоб трішки “відійти” від математичних обчислень, вирішив взятися за малювання альтернативних “амплуа” головного героя: молодий чоловік та маленький хлопчик.
Разом з анімацією на це пішло близько 5 годин. Вочевидь, потрібно розвивати навичку малювання. Поки що це виходить занадто повільно.
Вирішив, що не піду до ліжка, поки не реалізую перший артефакт – один з двох бонусів, який робить ГГ молодшим і дозволяє йому стрибати вище.
День 3 (четвер): Нарешті закінчив карту. Робота над точками для збереження та перешкодами
Зранку в четвер повернувся до карти, поставивши перед собою ціль закінчити її до вечора. Якщо раніше у мене ще виникали думки про те, щоб зробити кілька рівнів, то в цей день я остаточно від них відмовився – було очевидно, що не встигну. Тож взявши волю і калькулятор в кулак, я продовжив вираховувати положення для блоків, будуючи карту екран за екраном.
Цього ж дня я зробив другий артефакт, який на 30% збільшував швидкість ГГ, дозволяючи йому перестрибувати більші “провалля”. І зібравши залишки сили волі вирішив сьогодні ж запрограмувати точки для збереження (респавни) та перешкоди (шипи). Щоправда графіку для шипів вдалося намалювати тільки наступного дня, тому на наведеному нижче зображені вони представлені рожевим кольором.
День 4 (п’ятниця): Графіка. Перші “вороги”
Логіка роботи респавнів та перешкод була закінчена ще вчора, залишилося тільки розмістити їх на карті. Після цього приступаю до графічного відображення шипів.
Наступний крок – графіка для карти. Часу дуже мало, тому вирішив обмежитися травою. Окрім цього потрібно знайти рішення, яке дозволить більш-менш ефективно “натягувати” графіку на карту. Зупинився на окремому контейнері для графіки, який відображається поверх “фізичного” світу і змінює картинку відповідно до екрану, на якому в даний момент знаходиться герой. Очевидно, рішення не найбільш вдале – але максимально просте і втілюється досить швидко.
Дивовижно, як сильно видозмінюється гра, коли додаєш кілька елементів графіки. Банальна трава на платформах робить ігровий світ набагато “живішим”. Ех, шкода, що немає часу на задні фони – з ними все було б ще красивіше.
Приступаю до ворогів. Оскільки ідея гри крутиться навколо часу, а ГГ прагне повернутися в минуле – то й ворогами будуть різноманітні годинники. На ділі їх вийшло тільки два: агресивний будильник, який рухається вперед і назад на обмеженій території та грізний настінний годинник, який стріляє по ГГ своїми стрілками.
День 5 (субота): Вороги, виправлення багів, озвучка, закінчення гри
Зранку повернулася з поїздки дружина, а о 6-тій годині наступного ранку нас чекає потяг – їдемо до бабусі на Різдво. Часу практично не залишилося.
Субота, мабуть, була найпродуктивнішим днем. Якщо протягом попередніх чотирьох днів я працював по 12-14 годин, то в суботу – 18.
Якщо у п’ятницю я зробив логіку та графічне відображення ворогів, то в суботу розмістив їх на карті. Також додав фінальний артефакт на місці фінішу. Гра майже повністю закінчена. Нарешті її можна “пройти” і навіть отримати від цього задоволення.
Приступаю до роботи над звуками. В попередніх іграх на це витрачалося не менше 3-4 днів. Тепер же, на жаль, я не можу дозволити собі такої розкоші. Потрібно повністю закінчити систему звуків до того, як ми поїдемо в село, інакше не встигну – повертаємося в понеділок і в той же день до 12 ночі за московським часом гра повинна бути викладена на FGL.
2-га година ночі, а звуки готові тільки на 70%. О 6-тій потяг. Що ж, схоже сьогодні сну не буде. Дружина вирішує підтримати мене у моєму нелегкому починанні і також не лягає спати.
4-та година ночі – звуки закінчив. Залишилася година на виправлення деяких найбільш очевидних “глюків” і пора поспішати на вокзал.
День 7 (понеділок): Екрани старту та закінчення гри. “Вказівники руху”. Фінал!
Неділя пройшла в приємному спілкуванні з ріднею за святковим столом. Повернулися до Києва під обід в понеділок. До закінчення конкурсу менше 12 годин.
Втім, зробити залишилося не так вже й багато: екрани старту та закінчення. Крім того – розставити “вказівники руху” – таблички на “кордоні” екранів, коли не зовсім зрозуміло, куди стрибати. Гра готова.
Нарешті роблю “іконку-логотип” для гри і завантажую на FGL за 1 годину до закінчення конкурсу. Тепер можна зітхнути спокійно. Далі справа за журі!
В очікуванні результатів конкурсу
Як я вже й говорив, далеко не всі учасники зуміли дійти до фіналу. Серед одинаків фінальну версію своєї гри на FGL виклали всього 15 конкурсантів, серед пар – 7.
До обов’язків журі, окрім, власне оцінки ігор, входили створення скрінкастів – 5-хвилинних відео-роликів, на яких вони грають в конкурсні ігри і коментують їх. Власне, про скрінкасти хочеться сказати окремо, оскільки це була одна з основних причин, чому я вирішив взяти участь в конкурсі. Адже одна справа, коли розробник самостійно оцінює свою гру (що у 99% випадків виходить вкрай необ’єктивно), і зовсім інша – коли вашу гру оцінюють визнані експерти у цій сфері.
11 відео-роликів, в яких вашу гру критикують справжні професіонали – що може бути більш цінним для розробника? Скрінкасти дозволяють поглянути на власну гру “збоку” і одразу побачити всі її сильні та слабкі сторони. Іноді хочеться “підказати” людині, яка грає – але це неможливо. І це правильно – тому що так само ви не зможете підказувати реальним гравцям.
Що цікаво, більшість огріхів здаються цілком очевидними. Стає дивно, як можна було не звернути на них увагу під час розробки.
Оскільки учасники журі знімали своє відео неодночасно – кожного дня з’являлося по 2-3 нових ролики. Процес перегляду був надзвичайно цікавим, а очікування – сповнене нетерпіння.
Щоб зрозуміти, як скрінкасти виглядають на практиці, пропоную два конкурсні огляди моєї гри:
Результати
Тепер найцікавіше – цифри. Моя конкурсна гра When I Was Young набрала 7,03 бали з 10 можливих, що дозволило їй посісти 3-тє призове місце. Для мене це був надзвичайно приємний і несподіваний сюрприз. Перше місце з результатом 8,45 зайняла гра YZX розробника Disco Fish. На другому з результатом 7,48 опинилася гра A Friend For The Ages розробника dennatolich.
Ознайомитися з повними результатами конкурсу можна на блозі Flash Game Blogs.
Висновки
Як я вже згадував вище – огляди експертів дозволили побачити багато моментів, які можна допрацювати. Наприклад, більшість учасників журі стикалися з труднощами, намагаючись перестрибнути ями з шипами. І хоча в момент розробки я свідомо зробив ями широкими, оскільки на цьому була зав’язана значна частина геймплею (герой не повинен перестрибувати деякі перешкоди до тих пір, поки не візьме відповідний апгрейд) – та все ж після конкурсу під враженням від скрінкастів я все-таки значно спростив перестрибування ям з шипами.
Також після оглядів я в деяких місцях змінив ландшафт карти, щоб зробити його більш “дружнім” і “логічним”.
Ну і насамкінець, дехто з представників журі нарікав на відсутність графіки “заднього фону”. Над цим я також попрацював, додавши рослинність (дерева та кущі), хмари, а також текстуру грунту.
Після конкурсу
Щоб довести гру до фінального вигляду і зробити її цікавішою я додав ігровий таймер. Тепер можна проходити гру на швидкість, від чого залежить фінальна нагорода: дерев’яний, бронзовий, срібний чи золотий кубок.
Для збільшення часу, який гравці проводять у грі я додав фінальний бонус у вигляді збільшення швидкості ГГ після проходження гри. Іншими словами, тепер, якщо гравець дійшов до фінішу і починає проходити гру вдруге – він отримує невеликий бонус до швидкості, що дозволяє побити власний рекорд. Таке нововведення не вимагає особливих зусиль від розробника, але може суттєво підняти привабливість гри.
Ну і насамкінець – я інтегрував в гру систему досягнень, яка повинна додатково збільшити адиктивність та бажання гравця повернутися.
Крім цього було зроблено багато дрібних вдосконалень. Адаптовано деякі звуки. Покращено систему керування героєм та виправлено всі (сподіваюся) “глюки”.
Наразі гра перебуває в процесі торгів на аукціоні FGL і очікує свого спонсора. Зіграти в неї можуть всі, хто має аккаунт розробника на FGL. Посилання на гру: When I Was Young
Трейлер гри, знятий спеціально для потенційних спонсорів:
Якщо у вас немає розробницького аккаунта, але ви хочете зіграти – реєструйтеся на FGL як гравець (при реєстрації там є відповідний пункт), додавайте мене у друзі (заходьте у мій профіль і тисніть Follow This User), дайте знати, що ви зареєструвалися, через приватне повідомлення (Send Private Message у моєму профілі на FGL) і я відкрию для Вас доступ до гри. Буду вдячний за відгуки.
Лютий 5, 2012 о 07:30
Вітаю з успіхом! Гра за 7 днів – це дійсно круто))