Miners Truck. Розробка гри на замовлення

Після розміщення гри про ДедаМароза на FGL, до мене звернувся один спонсор з проханням розробити гру для нього по його «проекту». Вся сила проекту полягала в зображенні з зображенням гігантського вантажівки і посиланням на сторінку з грою про вантажівки і про перевезення вантажів.

Це моя перша Flash гра на замовлення і з реалістичною фізикою. Мета гри - не розгубити вантаж, завантажений у вантажівку, поки веземо його з шахти на завод.

Фото гігантського вантажівки. Подібні вантажівки зазвичай працюють на відкритих вугільних кар'єрах. Цю картинку мені прислав спонсор як ТЗ :)

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

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

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

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

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

Півночі я дивився різноманітні ігри в цьому жанрі з метою з'ясувати, яким чином будуються ігрові рівні в них. Навіть одну гру спробував розколупати і до свого подиву не виявив всередині рівнів взагалі :) У будь-якому випадку час дарма не пройшло. Висновок з побаченого був тільки один, кожен ігровий рівень - це окреме велике зображення з любов'ю відрендерене в 3D, намальоване в Flash або в будь-якому іншому графічному редакторі. Тобто, ігрові рівні повинні створюватися безпосередньо під Flash IDE без всяких редакторів рівнів. І це був найцікавіший момент в розробці, тому що Flash має обмеження робочої області для малювання і природно нікакущій продуктивність для такого об'єму не оптимізованої графіки. Загалом історія про те, як я боровся зі створенням рівнів і їх оптимізацією тягне на окремий захоплюючий пост;)

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

Вантажівка в ізометрії

Отже, за тиждень активної роботи мені таки вдалося зібрати іграбельних версію з одним рівнем. За цей же час я підготував практично всю ігрову графіку і посадив її на фізичний движок. Взагалі в грі заплановано 6-8 рівнів, протягом яких гравцеві доведеться возити на вантажівці якесь хитре викопне фіолетового кольору. Оскільки в копалин блоках є невеликі округлі вкраплення, як в грі «Santa Is Coming», я припускаю, що возити нам прийдеться секретно-добувається сировина для найсмачніших цукерок: D Але насправді це не важливо, кожен гравець зможе сам собі придумати для чого потрібні ці фіолетові цеглини, що видобуваються в печері. Середній час проходження гри передбачається в районі 15-20 хвилин.

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

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


індикатори: Новини
Постійне посилання

Так що несподівані проблеми і цікавий досвід мене чекали саме там, де я і не підозрював :) А це: як створювати для таких ігор рівні?