Tentacle Wars под iOS

Tentacle Wars on iPad

Я хочу немного приоткрыть двери сделать анонс моей будущей игры, которую я сейчас активно портирую с флеша (Tentacle Wars) на iOS. Релиз намечается где-то на июль-август, но точные планы издателя мне еще не известны.

Для разработки под iOS выбрал Airplay SDK, который позволяет не покупать Мак и не изучать Object C. Все, даже подписка приложения, происходит под Windows (но можно работать и под Маком, если кто предпочитает). Под виндой Airplay SDK интегрируется с Visual Studio. Airplay SDK кстати бесплатен для разработки под iOS при условии, что доход вашей компании не превышает $100К в год. Учитывая что у Microsoft есть Visual Studio Express, которая тоже бесплатна, то вся среда разработки для инди будет официально бесплатна — очень хорошо. Что еще хорошо — Airplay SDK позволяет компилировать так же под Android и другие мобильные платформы без модификаций в коде или с минимальными изменениями — например Apple Game Center конечно есть только в iOS и его придется убрать в версии для Android.

При портировании под iOS получилось оставить приблизительно 70% кода, преобразованного из AS3 в C++ (забыл сказать в Airplay SDK пишем на С++). А вот всю графику в игре решил заменить полностью — картинка вверху — фотошоп — решил прикинуть как игра будет смотреться на айпаде. На самом деле графика уже другая и будет еще меняться, поэтому и не вижу смыста пока делать настоящий скриншет. В общем-то во флеш игре у меня и не было никаких арт наработок, так как тут все рисуется програмно.

Графику меняю по двум причинам:

1. iOS аудитория любит персонажей (мое ИМХО). Значит, подумал я, нужно им вместо безликих микробов дать персонажей с лицом. UPDATE: решено от этого отказаться — т.к. не лепится никаким боком.

2. Оказалось что iPad (первый) не тянет полно-экранный антиалиазинг (в отличии от iPhone 3Gs например). Это для меня кстати было сюрпризом. А оказывается первый iPad по соотношению «размер экрана — мощность процессора» чуть ли не самое слабое iOS устройство, если не включать в рассмотрение iPhone 2G. Вот такие дела. А векторная графика без антиалиазинга — это ж… жиж… *опа.

На данный момент геймплей уже полностью готов, все уровни из флеш игры уже играбельны на iPad-е. Сейчас работаю над стилистикой графики. Игра конечно лучше подходит для iPad. Лучше? Нет — подходит отлично! Кто сказал что iPad это просто большой iPod? Все правильно — так и есть, но это ведь важно! На небольшом экране iPhone гораздо сложнее разместить все элементы уровня. Разместить то не сложно, но играть толстыми пальцами становится уже не удобно. Скролинг — не вариант — ситуацию в игре нужно видеть всю сразу — скролинг убъет геймплей. Так что в версии для iPhone будут применены некоторые трюки. Пока размышляю — есть два варианта: добавить возможность масштабировать уровень или упростить уровни. Есть так же идеи как сделать масштабирование «прозрачным» для игрока.

В общем пока все. Так же хочу воспользоваться случаем и попиарить свой англоязычный блог, где я планирую выкладывать все самые последние новости про игру. Кстати, анлоязычные люди интересуются, заходят на блог, предлагают даже какие-то идеи для продолжения Tentacle Wars. Я бы даже сказал дохрена много каких-то идей предлагают — приятно :)

UPDATE: Просили рассказать побольше про Airplay SDK:

Ниже перечислены плюсы/минусы, на которые я обратил внимание.

Плюсы:

1. Разработка под Windows
2. iOS + Android + др. платформы
3. Бесплатный для коммерческого использования под iOS (если доход в год меньше $100К)
4. Для 2D игр есть простое API (Iw2d).
5. С/С++ стандартный язык, известный многим разработчикам — есть много готовых библиотек — например STL (структуры данных — деревья, списки — для быстрого поиска, сортировки), Box2D.

Минусы:

1. API довольно низкоуровневое — нужна своя удобная обертка для тех кто привык к флеш.
2. API использует числа с фиксированной точкой — дополнительная морока перевода из/в float (впрочем все это решается несложной оберткой).
3. Простое 2D API имеет ряд ограничений — поэтому если нужно что-то хитрое — придется дописывать.
4. Столкнулся со стандартной проблемой плавности движения. В моей игре нет скролинга и это не очень актуальная проблема пока.

На какие-то грабли пока не наступил. Были сложности, но не значительные — все связано с обычным процессом изучения. Из вещей на которые я раньше не обращал внимание, а теперь нужно — но это не особенность Airplay SDK — а обычная штука для графики с аппаратным ускорением (в Cocos2D все так же) — спрайты нужно группировать на больших битмапах — для iPhone не более 1024x1024. И стараться выводить на экран кусочки сначала все с одного битмапа — потом с другого. Каждое переключение с битмапа на битмап будет инициировать загрузку новой текстуры и новой команды рисования полигонов в графическую подсистему — а это довольно дорогая операция. Этот процесс оптимизации называется batching — можно почитать поподробнее.

Еще нравится, что вижу активное обновление SDK — когда качал его в начале года была версия 4.3.9 — сейчас уже 4.4.5. Менеджер из Chillingo мне писал (когда я спросил: если я буду писать на Airplay SDK — не будет ли проблем при издательстве), что EA Mobile используют этот SDK и что проблем никаких не будет — даже сказал можем попробовать толкнуть на других платформах (типа Nokia Ovi Store) через EA Mobile.

P.S.: Чтобы не было недоразумений — издатель у меня не Chillingo — с ними я только предварительно разговаривал, но они не дали согласия на издательство пока не увидят готовую игру.

Комментарии (88)

0
а кто издатель? ,)
+1
FDG — те что у Джонни-К.
0
Микробы будут с глазками?:) Это трэээээээш!)))
А вторая часть флеш-игры будет?:) С микробами живыми.
0
честно говоря у меня тоже есть такие мысли :) но я разрываюсь между двух мнений — моего личного насчет того что у микробов не должно быть глаз и моего же второго мнения что у iOS более казуальная аудитория которой подавай персонажиков
0
честно говоря у меня тоже есть такие мысли :) но я разрываюсь между двух мнений — моего личного насчет того что у микробов не должно быть глаз и моего же второго мнения что у iOS более казуальная аудитория которой подавай персонажиков

а вторая часть будет — то есть треться по счету — но вторая по чифре в названии :)
0
Можно сделать с двумя вариантами графики, между которыми можно будет переключаться:)
0
как вариат — но точно не для первой версии игры :)
0
Не припомню чтобы в топе аппстора фигурировала игра где нет персонажей.

Взять тот же Angry Birds. Если бы вместо птиц были камни, а вместо свиней — ящики, как думаете хорошо бы игра пошла?
+1
Жизнь может удивить.
Из недавнего- майнкрафт.
Аппстор слишком молод, чтобы так резко делать выводы.
+3
в принципе да — если игра и правда супер гуд — то она может быть и без персонажиков — но вот взять к примеру World of Goo — в принципе клазики у шариков там нафиг никому не нужно — и геймплей интересен вовсе не из-за глазиков — но создатели все же приделали глазики зачем-то — для того чтобы можно было между уровнями какие-то истории показывать про этих персонажиков — чтобы можно было что-то изобразить на иконке к игре — чтобы потом шапочки с шариками гуу продавать… и т.д. и т.п.
+1
а если бы были просто черные шарики — то про кого тогда вся эта история?
+1
Виу виу спасибо за статью. Заинтересовал момент выпуска игры в августе. Дедлайн же.
Еще расскажи немного о конвертации. Что лучше почитать, сколько времени ушло, что сложней всего далось?
+2
ну вообще я ничего не читал кроме документации по Airplay SDK API — а дальше уже если знаешь оба языка AS3 и С++ то должно быть понятно и так как конвертировать — С++ похож по синтаксису и концепциям на AS3 (к тому же в AS3 я никогда не использовал ничего специфического чего нет в C++) — так что перевод основной логики игры был практически механическим — сильно поменялись те места где производим вывод на экран — и это было сложнее всего — так как API Airplay SDK — довольно низкоуровневые — похожи по концепции на OpenGL API — то есть тут тебе матрицы преобразования координат и все такое — еще они используют числа с фиксированной точкой — отстойчик — но это вроде как вынужденная мера так как их SDK кросс-платформенный — и не во всех мобильных устройствах есть аппаратная поддержка плавающей точки — а они очень озабочены производительностью
0
Вот вывод на экран больше всего и смущает. Спасибо за наводку. Наверное попробую летом.
+3
да — так же модель событий мыши — в Airplay SDK вроде нет похожего — пришлось воссоздавать самому — кстати я сделал нечно похожее на класс Sprite — который является оберткой над Airplay SDK и упрощает перевод AS3 кода значительно в него же встроил событийную модель — упрощенный вариант — но самое необходимое — когда доведу все до конца возможно даже выложу это как библиотечку — потому что вск же родное Airplay API довольно сильно не похоже на флешовое API
0
хм. я вот пока затрудняюсь, брать мак и писать на obj c или все таки остаться под виндой.
0
оставаааайся:)
Либо сделай так, чтобы она тебе сильно надоела! И тогда уже ищи мак:)
0
тут ведь еще не только вопрос мак или не мак — а так же вопрос планируешь ли потом портировать игру под андроид — пока что андроид конечно хуже айоса монетизируется — но ведь все вокруг пророчат ему большое будущее
0
хорошо би узнать больше о процесе порта (грабли) исползуя Airplay SDK

Какие фреймворки били задействование, если такие били.
Конвертация кода…

Минуси и плюси. Если не сложно,

потому что щас для разработки игр под разние платформи есть менше чем 5 платформ хороших.
0
Забил добавить у меня в топе платформ пока
Unity3D — 3D/2D игри (приятней работать так как ето платформа хорошая для игр)
Airlay SDK — 2D игри (3D можно но юнити проще), плюс в том что подходит не только для игр
Torque 2D/3D
+1
В сторону Сocos2d-x не смотрел?

C++ port of cocos2d game engine. Multi-platform, light weight, developer-friendly, free and open source.
0
смотрел, но пока сироват. нужно подождать еще пару месяцев.
тогда будет для 2D самий раз, сразу порт на несколько платформ и если нужно можно исползовать Airplay SDK.
0
а Corona SDK смотрели, впечатления?
+3
дописал немного про плюсы-минусы Airplay SDK в конце поста — что вспомнил — если что-то вспомню — допишу — или если есть конкретные вопросы — отвечу.

Фреймворки никакие не задейсnвовал — только стандартные C/C++ библиотеки для математики, STL (для динамических cписков). Но как ниписал уже выше — так как это C++ — то родной Box2d, например можно подключить без проблем — на форуме Airplay SDK — читал человек делал это — он писал довольно все просто получилось.
0
мне все-таки не вполне понятен выбор Airplay SDK
работа в Visual Studio несомненный и огромный плюс, но это все равно C++

рассматривали ли вариант Unity3D и почему не выбрали его?
0
ой, VS такой тяжелый софт(пусть даже express). не знаю, меня не впечатлило.
0
а чего там впечатлять — текст редактирует — подсветка синтаксиса есть — быстрый переход на объявление работает — бесплатный — пошаговое выполнение — просмотр переменных — работает — что еще нужно?
+2
Да — рассматривал — почему не выбрал Unity3D:

1. $400 долларов — не много если игра пойдет — то вообще гроши — но придется отдать $400 чтобы попробовать — а если не пойдет? историй успеха на iOS гораздо меньше, чем историй неудач.

2. Открыл я Unity3D — и увидел нечто похожее на 3D Mах — но никак не на среду разработки ПО — меня такое начало очень пугает :) Где, что? Как написать «Hello World» и загрузить это на айфон, чтобы проверить что хоть что-то работает? С ходу не разобрался…

3. Беглое изучение документации тоже не прояснило вопрос — там все про какие-то высокие материи — создание сцены — 3д персонажей — уровней — а простейших вещей — вывести на экран спрайт — я с ходу не нашел.

В Airplay SDK — были именно такие простые примеры — как вывести спрайт — вывести текст — нарисовать линию, квадратик. Этим то набором простых примеров меня Airplay SDK и привлек.
0
Тут частично зря что вас отпугнул Unity3D,
но так как у вас 2д и ситема-спрайти то тут проще подход.

один с минусов Unity3D перед Airplay SDK что нужно всетаки иметь МакОс или виртуалку для зборки для Айфоня.

тут с Airplay SDK проще.
0
Полезный пост!
скачал айр сдк, все просто) и мой любимый Визуал Студио работает)
Кстати правильно я понимаю, что можно скомпилировать на Винде и скинуть на йОС, это любопытно!
Кстати, если не секрет сколько это игра во флеше геймплеев взяла?
И как с издателем общался?
+3
Да, можно скомпилить и подписать приложение — при наличии ключа прямо под виндой — там в документации есть секция Deploying to iOS. Можно так же откомпилить без подписки — в случае если у вас джеил-брейкнутый iPhone например — подписывать не обязательно

чтобы отключить процесс подписи в *.mkb файле пропишите следующее — тогда при компиляции ARM Release — сгенерится .ipa файл — который можно перетащить прямо в iTunes — потом sync с вашим джеил-брейкнутым айфоном — если не отключите подписку — то без ключа сборка будет проваливаться на этапе подписки и ipa не будет генерится:

deployments
{
iphone-nosign=1
}

первая версия игры во флеше — за 5 мес взяла более 10млн геймплеев — вторая версия игры за 2 месяца — набрала более 5 млн.
+2
а с издателем — по почте общался — написал на мыло которое у них на сайте указано
0
По графике в игре: используются заранее подготовленные спрайты или рисуются программно? Если рисуются программно, то как: с помощью OpenGL линий или вовсе программно, например, по точкам в текстуру; и тестировалась ли производительность на реальном устройстве?
+1
про это я в блоге немного написал — рисовать программно — линиями — пробовал — но проблема в том что линии нужно антиалиазить — а у iPad не хватает производительности чтобы при хорошем FPS антиалиазить весь экран — поэтому от этого отказался — сейчас все перевел в анимированные спрайты
+3
если посмотреть — во многих играх — то что рисуется линиями — без антиалиазинга сделано — например резинка рогатки в Angry Birds — зато то что спрайтами — все гладенько
0
Просто линии надо квадом рисовать, с особой текстуркой. Тогда будет как надо :)
0
А рисование линий и уже тем более их сглаживание — штука старая как г-но мамонта :))
+2
ты знаешь все правильно — «нужно» :) вообще когда делаешь игру в голове возникает столько этих «нужно» — тут нужно бы анимацию подправить — тут вот нужно бы шрифт другой подобрать — тут вот нужно баг этот с утечкой памяти наконец исправить — и обычно ты выбираешь из всех этих «нужно» самые важные, если ты конечно не собираешься делать игру вечно :) судя по всему антиалиазинг резинка в Angry Birds это один из таких вот «нужно», который не мешает быть игре прикольной
0
Читал кстати как-то про эту технологию сглаживания линий (квад с текстурой градиентной) на хабре кажется — там человек еще очень возмущался как же так 2D Boy в World of Goo воде не сделал антиалиазинг — недопустимо! Согласен в общем-то было бы не плохо — но… с другой стороны прошел всю WoG на iPad и честно говоря особо глаза мне это не резало. Очень плохо когда вся игра нужнается в антиалиазинге — а когда он проскакивает в определенном месте а все вокруг гладенькое — то уже не так уж все плохо выглядит — а главное — уверен что у 2D Boy было множество других проблем — и эту они скорее всего оставили на потом — а потом игра получилась и так отличной :)
0
классный пост. плюсую. пиши еще! :)
+1
Вопрос не совсем в тему, но интересно :). После успеха Tentacle Wars на последующее дополнение (Tentacle Wars. The Purple Menace) Gamezhero уже более расщедрились или нет? Интересно, как реагируют спонсоры на дополнения к хитовым играм, тем более тут речь не о забугорных, а о наших.
+2
с первыми Tentacle Wars я немного протупил и продал по апфронту — перформанс был — но очень плохой — как бонус небольшой — со второй игрой я договорился уже по чистому перформансу — так как уже ожидал определенное количество геймплеев — кстати гемзхеро мне предлагал тот же перформанс и за первую игру — но так как я не был уверен — я договорился на апфронт — а зря
+2
Игру обожаю. Желаю всяческих успехов от чистого сердца:)
0
только вчера сказал что подводных камней не встретил в Airplay SDK — как заметил что у меня непрерывно вызывается выделение/освобождение памяти — очень много раз в секунду — весь вечер вчера искал — нашел — оказывается функция вывода текста в урощенном 2D API виновата — то есть ее лучше не использовать — утечки памяти нет — в ней что-то выделяется и это что-то освобождается — все ок в принципе — но постоянное перераспределение памяти много раз в секунду я считаю плохим тоном — нужно будет пробывать другое API вывода текста…
0
попробОвать — у вас не бывает заразных ошибок? :) постоянно механически пишу пробЫвать — хотя тут же вижу что ошибся — но здесь (к сожалению) исправлять нельзя
0
я вообще могу писать несвязанные друг с другом слова, если пишу на эмоциях))
вопрос такой, используешь 2d API, на котором сделан пример block(игрушка, тетрис вроде)? я так поглядел, разнообразия достаточно)
0
да, использую Iw2D API — ты имеешь ввиду разнообразия возможностей достаточно?
0
множество API с непонятными названиями)
в целом поглядел, интересно. да, пожалуй главный плюс мультиплатформенность.
я так понимаю, анимация строится из кучу bmp + альфа каналов?
0
анимацию я лично делаю (и вроде так и нужно) как один PNG в котором все кадры размещены по порядку и потом просто вывожу на экран отдельные фрагменты этого PNG — альфа каналы отдельно не делаю — PNG-шый альфа канал работает
0
а вот то что PNG поддерживает, это радует)
0
есть вывод спрайтов, всевозможные преобразования — повороты — масштабирование делаются через матрицу преобразования координат (как в OpenGL) — текст можно выводить — ну а что еще нужно для 2D игры? :) Есть конечно кое что — например не хватает иерархии объектов — addChild — но это не хитрое дело — можно написать самому — еще масок нет — фильтров — во флеши всякие Glow например я частенько использовал как простой способ подсветить выбранный объект — а тут этого нет — нужно что-то придумывать
0
в целом да, но пока под сомнением, все равно как никак это время на изучение, которого сейчас нету. хотелось бы почитать сравнения.
0
вообще, по моему пока сам не попробуешь — не моймешь, что лично тебе подходит — допустим Unity 3D мне изначально больше нравился — и сайт как то посолиднее выглядит — все красиво — солидно — а попробовал и тык — пык — где? что? ничего не понял — в документации простых примеров не нашел — плюнул — хотя некоторые я так понял разобрались и им нравится
0
Потрясающая игра. Успехов с выбором персонажа под айось. А если не знаком с С++, то какая среда для разработки лучше на твой взгляд?
0
Я выбрал Airplay — потому что я его попробовал — заработало и было понятно как им пользоваться — так же пробовал Unity 3D, OpenPlug — ни один из этих не был дружественен ко мне :) так что думаю вам нужно попробовать разные варианты — и решить самому
0
А почему OpenPlug Studio не подошла? Там ведь на AS3 вроде, по идее немного подогнать существующий код только.
0
да — это был основной аргумент — потому что хороших примеров игр сделанных на OpenPlug я не видел — а у Airplay такие примеры были — у меня даже получилось запустить какое-то простейшее приложение OpenPlug на iPhone — я обрадовался — но потом сделал небольшие изменения — приложение продолжало работать правильно в эмуляторе — но выводило белый экран на айфоне — пытался понять что случилось — не понял и плюнул
0
вообще сложилось ощущение что среда еще сырая — а к тому же вопрос — зачем нужен OpenPlug — если Flash CS5 уже тоже под iPhone умеет экспортить?
0
Ну OpenPlug конвертирует AS3 код в нативный для каждой платформы, тогда как iphone packager для CS5 просто упаковывает флешку в ipa.
Но вообще да, OpenPlug производит впечатление продукта, собранного на коленке :)
0
да — точно забыл — я ж CS5 вообще не рассматривал из-за его проблем с производительностью
0
OpenPlug не умеет мувиклипы и спрайты, кроме того в нем ограниченный набор функций для работы с Bitmap'ами и BitmapData, поэтому на нем игр не поделаешь и тем более не портируешь существующие.
0
Смотря какая игра наверное. Если пользоваться только спрайтами (а спрайты в опен-плаг есть), то можно :)
0
Тоже немного глядел OpenPlug, вроде ничего не выйдет, он вообще для игр не подходит — не потянет производительность, только для очень простых…
0
очень может оказаться что дело вовсе не в языке — например я занимаюсь флешью чуть больше года только — то есть буквально год назад я не имел понятия что из себя AS3 представляет — но оказалось язык очень грамотный — много сходства с C++ и Java, которые я знал на тот момент — и AS3 даже оказался удобнее в чем-то — хотя использую я его совсем недавно.
0
поговорил с издателем — решили казуальные мордочки из игры выкинуть нафиг :) и правильно — казульность для игры хороша, если она к месту — а лепить ее там где она не лепится — можно отпугнуть и казуальную аудиторию и тех, кто любит игры именно такого (не совсем казуального плана)
0
поговорил с издателем — решили казуальные мордочки из игры выкинуть нафиг :)
ура!
0
А посмотреть хоть? Прикольно, как это вообще было (бы).
0
не хочу портить первое впечатление скриншетами с какой-то промежуточной графикой — к тому же от которой решено отказаться :)
0
А кто издатель?
0
ответ на этот вопрос найдет самый внимательный читатель :)
0
Ааа, точно-точно :))
+1
Китайцы уже успели выпустить мою игру в аппсторе быстрее меня — в аппсторе они назвали игру Bacteria Wars :) Скопировали все 1:1 из флеш игры. Написал издателю — сказали что напишут письмо в аппл. Но надо сказать скопировали они ее коряво — механика и баланс в игре передан немного не так и из-за этого уровень 7 не проходимый.

В общем — наткнетесь на эту игру — это не мое — а китайская подделка :)
+1
тут
0
Ну что сказать… имя — и то с[ляля]здил )
«Бедненький!» © ФЛ
0
написали в аппл — буквально через пару дней плагиат сняли с аппстора — оперативно!
0
интересно почему именно китайцы страдают этим? потому что их много? :) ну вот русские например часто страдают размахом планов — в результате могут очень долго делать и бросить проект так и не доделав — а от китайцев копи-пасты идут — не ото всех коненчно — но если уж кто-то делает 100% копи паст — то скорее всего это они
+2
market.android.com/details?id=net.carleolee.bacteriawars
0
спасибо! да — еще один клон — на андроиде первый — и опять от китайского разработчика.

интересно что скопировано все включая графику, фон, уровни — не пойму этого — если уж тратить свое время на разработку клона то почему бы не переделать что-то.
+1
Где игра? Когда уже?
0
где-то в марте
0
Уже апрель!!!
0
А представляешь как мне надоело ждать :)
Но в этот четверг (19 апреля) релиз!
lumarama.com/blog/
+3
Tentacle Wars для iOS, издатель сделал некоторое видео: youtu.be/Zu3PbK-rJQw
0
Очень долгий туториал, на флеше только 2 уровня вроде было. Зачем тактике обучать…
0
вообще согласен, вообще изначально было как во флеш версии — но издатель настоял на более детальном тюториале — утверждает что айфон аудитория нуждается в этом — мол не дай бог чего не поймет — обидится и поставит плохой рейтинг — не знаю насколько это правда
0
Очень долгий туториал, на флеше только 2 уровня вроде было. Зачем тактике обучать…
А по-моему наоборот очень правильное решение. Во флеше никак не объяснялось поведение щупалец и что получается если отрезать с одного края или другого. Я играл и не думал что есть какое-то различие — просто резал где попало. В итоге застрял где-то на шестом уровне примерно уже точно не помню, где уровень был расчитан на то, что нужно обрезать в конкретном месте. Только благодаря форуму разобрался.

А тут не только это объясняется, но и сам туториал сделан нескушно и толково — озвучка рулит.
+1
Видео очень понравилось. После просмотра решил немного поиграть. Раньше уровней только 7 осилил, а в этот раз разобрался с управлением и прошел полностью. Игра действительно получилась очень динамичной и интересной. На iOS наверное будет еще лучше.

Под впечатлением после прохождения написал рецензию на игру на своем англоязычном блоге: Tentacle Wars: Dynamic Strategy with Addicting Gameplay
0
Спасибо, крайне приятно читать обзоры своей игры :)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.