
Зробити гру за дев'ять днів можливо!?
Я звичайно не авантюрна людина, але буває. І ось 10 днів тому сталося. Рівно 10 днів тому товариш (Микита називає себе Division), запропонував взяти участь в igdc конкурсі.
Ось моє враження...
Для тих, хто не в курсі igdc - це спільнота людей, яким подобається робити ігри. Оголошується конкурс, ставляться умови конкурсу і вперед, кожен бажаючий може взяти участь. Тема конкурсу, на який я підписався, була дуже навіть цікава: Indirect Control. Сенс подібного роду ігор у відсутності прямого контролю над процесом гри. Гравець може впливати тільки побічно на те, що відбувається.
Я жодного разу не брав участі в таких конкурсах на відміну від Микити, який навіть займав призові місця. Було вирішено писати на ActionScript3, який я дуже віддалено знав. Чому на AS? Просто був у Division'a движок на AS, що використовує не безізвісний патерн Decorator, притому настільки використовує, що так і називається.
При слові Indirect згадується знаменита головоломка «Заробило», мені прийшла в голову ідея зробити щось подібне, але змінити цілі гри. У заробив мету привести механізм у робочий стан, у нас же змусити всі кульки скотитися в певну трубу, використовуючи всякі там ящики, досточки і, звичайно ж, фізику. На щастя рушій Decorator підтримував Box2D, хоча дивлячись на розміри першого і другого незрозуміло хто кого підтримує. З фізикою все зрозуміло.
Дизайн хм... ні я, ні тим більше Division малювати не вміли взагалі, було вирішено запропонував почесну посаду дизайнера моєму знайомому. Він намалював пару сцен, але в підсумку у нього щось сталося, і нам довелося малювати самим, притому під словом «самим» я маю на увазі себе.
Одну важливу умову конкурсу гру потрібно зробити за 9 днів. Тому робота почалася досить жваво, я придумував концепт, малював начерки що і як повинно виглядати, Division готував движок. Для обміну файлами було використано Dropbox, ще раз переконався, що ця прога незамінна.
Движок готували десь дні три, це завдання лягло на плечі Division'a. Але для спільної роботи над проектом була необхідна прога для контролю версій, вибір був з (Git, SVN) ми вибрали SVN, про що надалі і пошкодували.
Досить швидко спрацювалися, розробка йшла ночами, оскільки мій досвід в AS залишає бажати кращого, Division мені по скайпу роз'яснював, що я не так роблю, взагалі скайп, дуже допоміг нам у проекті, по-перше веселіше, у других ми могли досить швидко координувати свої завдання і дії.
Я з радістю згадую ці безсонні ночі, це було досить цікаво дізнаватися щось нове (AS) прямо в дії. Я раніше вважав, що перед тим як почати писати новою мовою, треба прочитати товсту книгу, як я помилявся... за ці 4 дні кодингу, я дізнався більше, ніж від місяця читання розумної книги, хоча звичайно не вистачало теоретичних знань, але це швидко усувалося шляхом набивання шишок гірким досвідом...
Близько 4-х днів все йшло гладко як по маслу, але ось в суботу настав переломний момент. Ми похерили SVN. Ось детальніше як це сталося... Я відправив новий коміт, Division повинен був апдейтнути репозиторій... але там стався конфлікт, який потрібно було вирішити вручну. За не досвідченістю Division натиснув не те чи тикнув не туди, але в підсумку похерив один файл. Всі його зміни в цьому файлі були втрачені... Знову таки, дурість не коли не приходить одна.... Більше по тупості, ніж по недосвідченості, я порадив йому відкотитися на ревізію вирішивши, що він робив коміт до цього... природно наведена ревізія стерла всю роботу за день... Ми обурювалися... Здавати роботу потрібно вже на наступний день, а ми ще не робили рівні притому як за законом підлості стерлася найважча і заплутана частина...
Робити нічого Division'y довелося все відновлювати настрій було зіпсовано, але винагорода того вартувала ми отримали відмінний редактор рівнів і досить симпатичну гру спасибі мені за дизайн...
Закон підлості акт другий... За правилами конкурсу можна запізнитися на добу, але з 30% штрафом, але потрібно попередити ведучого конкурсу... Природно ми не встигали, і звичайно розуміли це і до цього. У відповідній темі igdc форуму Микита висловлював побоювання і припущення що ми не встигнемо. Ми точно ще не знали, встигнемо ми чи ні про всяк випадок попередили більш конкретно, так як зрозуміли, що до цього наші пости небули сприйняті як повідомлення про те, що ми запізнимося, ведучий сказав: «що так пізно», але нічого більше. Ми малювали рівні десь до 3-ї ранку (через 4 години вставати на роботу). Хотіли здати раніше, але як завжди, ніколи не виходить як хочеться, зрозумівши, що нам світить весь 30% штраф ми пішли спати. Вдень у перервах між роботою, я ще поділяв рівні, усував недоліки і тд., готував гру до релізу. І тут як грім серед ясного неба, нас дискваліфікують... за запізнення... я був чесно кажучи в шоці... стільки сил і душі було вкладено, дуже прикро було. Але робити нічого збираємо архів, відправляємо...
Тягнучись додому, я накупив всякої гидоти типу чіпсів і печиво, щоб хоч якось себе втішити. Прийшов і завалився спати, не діставшись навіть до печиво, і чіпсів... где то часиков в 10 меня будит супруга с радостной новостью - админ отменил дисквалификацию... радості не було меж... Спасибі адміну окремо!.. Світ знову налагодився... Ми боремося... ми беремо участь... І чекаємо оцінок...
Які висновки я зробив для себе:
- Вчиться на практиці.
- Ігри робити весело.
- У дупу SVN, наступний проект на Git.
Гра
Вконтакте якщо перша ляже
28 липня ввечері підбили підсумки конкурсу, як ми і очікували у нас 5 місце, -30% штрафу зіграв свою роль, але все одно було цікаво. Ось результати конкурсу: