четверг, 22 сентября 2011 г.

Разработка и итоги игры "Sieged!"

Мы – творческая артель New Art Games - недавно выпустили новую flash-игру. Играть можноздесь.
image

Игра представляет собой физическую головоломку. Цель игры – оглушить всех врагов подручными материалами. На этот раз мы использовали физическую библиотеку nape, и теперь совсем-совсем не хотим использовать box2d. Почему так, история разработки и некоторые итоги – под катом.


Начало

Началось всё с экспериментов с физическими движками. Как показала практика, самописная физика для flash-игр – зло, а потому я стал активно тыкать box2d. По нему много информации, статей и уроков – на Хабре тоже недавно проскакивало несколько статей. Есть даже видеоуроки. Но минусы этого движка известны – небольшая производительность, мелкие радости типа перевода метров в пиксели и сложная структура (после знакомства с которой начинаешь понимать, зачем нужны аж видеоуроки…)

Потом был опробован nape. По нему существенно меньше информации, зато демо-уровни поражают производительностью. Дрожащими от страха того, что 2,5 обучающих статей по движку будет недостаточно, всё же был выбран он. И совершенно не напрасно – nape прост и логичен настолько, что официального руководства с лихвой хватает для нормальной работы. Но сразу оговорюсь, что есть и минусы – высокая производительность обеспечивается менее точными просчётами. Кроме того, мне не удалось сделать абсолютно жёстких соединений.

Получим следующую порцию денег - задоначу разработчику движка денег, к чему призываю всех, кто использует этот замечательный движок.

Едем дальше

Сама собой пришла идея сделать игру про оборону замка путём скидывания на врагов различных предметов. Частично идея была вдохновлена игрой Cover Orange, но мы мужественно удержались от клонирования и сделали несколько иную механику.

Нашему мега-художнику Андрею я долго и упорно объяснял, что пора отойти от «атмосферной» неказуальной графики и сделать нечто более «цветастое» и «кавайное». Так что в процессе работы ко мне периодически приходили вот такие человечки:

image

Всё же с визуальным стилем были и свои проблемы – надо было сделать так, чтобы игровые объекты не сливались с фоном. Поэтому изначальные цветные фоны были убраны и заменены на менее «кавайные», но гораздо более удобные для восприятия монотонные.

Я буду долго гнать велосипед…

Ну или изобретать… Одним из требований для игры мы себе поставили сделать встроенный редактор уровней. Никакой информации по этой теме я не нашёл, и вообще я программист-самоучка, а основной целью в геймдеве для меня всегда был гейм-дизайн. Так что редактор стал для меня личным испытанием, можно сказать. Не без проблем, но я его выдержал. Собственно, все 30 уровней собирались в игровом редакторе.

Формат хранения уровней получился весьма специфическим: каждый уровень – это массив из четырёх массивов массивов. Проще говоря, что-то типа того: [[объекты уровня], [соединения], [враги], [сбрасываемые предметы]], а в каждом из этих четырёх что-то типа того: [тип объекта, x, y, угол]. Вероятно, более хорошим решением было бы использовать объекты с набором параметров, но мне хотелось иметь возможность лёгкого доступа к уровням в любой момент, дабы править какие-то значения руками. А ещё необходимо было дать возможность игрокам хоть как-то обмениваться уровнями, а, следовательно, надо было как-то превращать уровни в текст. А текст, для нормального парсинга обратно в массивы, надо было пичкать разделителями. В итоге, игроки могут обмениваться вот такой абракадаброй: «90^3,104,382,64,74.7,-90^3,32,382,64,74.7,-90^&314,376^&&4^4^», которая, тем не менее, успешно превращается в уровни.

Хьюстон, у нас проблемы

Но самой большой проблемой была даже не разработка редактора, а выдумывание самих уровней. Первые 20 были сделаны влёт, а дальше начался творческий кризис и борьба с мелкими косяками физического движка. Но, в итоге, мне удалось обратить неточные просчёты nape на пользу игре и воспользоваться ими в целях создания необычных уровней. Например, прохождение вот этого уровня построено как раз на «обрывании» нежёстких соединений:
image

Немного пришлось повозиться со встраиванием ачивок – они как-то странно сохраняли значения. Для них, кстати, использовался класс Олега Антипова, который магическим образом появится в судьбе игры дальше.

Ну а самой беспроблемной частью разработки как всегда стали звук и музыка – наш композитор Сергей Соловьев отлично справился с задачей и в короткие сроки создал два трека для игры.

Всего на разработку игры ушло два месяца «грязного» времени – с учётом параллельной работы над другими проектами и поездкой в отпуск.

Продажа

Конец разработки пришёлся на июль – самое мёртвое время для продажи игр. Но личный финансовый кризис и желание разделаться уже с проектом заставили залить игру на flashgamelicense.com и надеяться на лучшее. К концу примерно третьей недели закончилась вообще хоть какая-то движуха, дальше тянуть не было особого смысла. Игра ушла… Олегу Антипову для его портала onlinegamer.cc за небольшой апфронт (размеры, если очень хочется, уточните у самого Олега, вдруг он против раскрытия этой информации) и возможность выпустить игру с рекламой.

Итоги

Примерно за месяц неэксклюзива в игру сыграло более миллиона человек, а реклама в сети CPMStar принесла около $1500. Сейчас просмотры идут на спад, но деньги продолжают капать. В общем, реклама – это хорошо.

Вероятно, скоро мы склепаем набор карт для этой игры и, возможно, слегка изменим графический стиль.

Комментариев нет:

Отправить комментарий