[Dev Story] Raildale — игра о постройке железной дороги

Нам пишет разработчик игры Raildale

Идея Raildale проста: нужно соединять разноцветные города дорогой и отправлять появляющиеся поезда в города соответствующего цвета. Для управления движением поездов – стрелки и светофоры. Прибытие поезда в «свой» город приносит доход. Задержки поездов, аварии и ремонт приводят к расходам. Задача – продержаться положенное время при положительном балансе. Просто? На первый взгляд – да, но прохождение всех уровней потребует многих увлекательных часов.

 Raildale

Игра состоит из 16 уровней. Чем выше уровень, тем больше всяких сюрпризов типа скоростных поездов или поломок железной дороги встречается на пути к победе. И тем чаще будет возможность наслаждаться видом устроенной аварии. При столкновении поездов вагоны могут разлетаться в разные стороны. Вылетевший с дороги вагон может снести поезд на другом пути. Такие достижения заносятся в Game Center.

Raildale

Ландшафт долины меняется в зависимости от уровня, равно как и погода, и звуки. Где-то снег идет с завываниями ветра, где-то тропический ливень, где-то штиль и птицы поют.

Интерфейс максимально прост: под iOS железная дорога просто рисуется пальцем, под Mac OS X – движением двух пальцев по touch pad или мышкой.

История

Мне 29. И уже 10 лет я занимаюсь программированием. До того как попробовать свои силы в iOS, я занимался разработкой систем учета и управления предприятием. Были разные системы, разные платформы, разные языки программирования, но мне хотелось попробовать себя в чем-то совершенно ином. 2 года назад я решил попробовать свои силы в iOS.

Я выбирал между разработкой игры и разработкой приложения под iOS. Опыт разработки игры показался мне более интересным, поэтому я остановился на игре. При выборе идеи я руководствовался тем, что игра должна нравиться мне самому, и при этом сам проект должен был быть небольшим. Поскольку у меня не было опыта в этой области, я считал неразумным браться за проект, требующий больших временных и финансовых вложений.

Raildale

Идея Raildale не нова. В детстве я играл в игру такого типа, она очень увлекла меня тогда. Сейчас можно найти даже в App Store несколько подобных игр. Но я попробовал их все, и ни одна мне не понравилась. Мне захотелось создать такую игру, которая была бы удобна и красива.

Первоначально я начал немного разрабатывать в свободное от работы время, но времени было явно недостаточно. Хотел уволиться, но предложили интересный проект, поэтому затея была отложена еще на год, и фактически только в июне 2013 года, уволившись, я начал работу над Raildale. Потом, правда, в июле работа была прервана еще на 3 недели, чтобы съездить в отпуск в Исландию.

Изначально я думал разработать игру в 2D в изометрической проекции или, как это иногда называют, 2.5D, потому что опыта в играх у меня не было, а 2D разработка намного проще 3D. Я разрабатывал на Objective-C и использовал самый распространенный движок для 2D — Cocos2D. Я сам рисовал спрайты в векторном редакторе, опыт использования таких редакторов у меня был до этого. Objective-C мне не понравился и я начал разрабатывать собственный язык, который назвал Objective-D.

Raildale

Я столкнулся с трудностями в 2D: не получилось сделать повороты плавными, чтобы они хорошо смотрелись. В 2D приходится рисовать отдельное изображение для каждого угла, а потом переключать картинки при повороте. Я нарисовал картинки для нескольких углов, но в итоге все равно получались рывки. Кроме этого, при таком подходе рисовать приходится очень много и долго.

Тогда я попробовал взять 3D модель, вращать ее в 3D-редакторе и сохранять в 2D. Результат получился лучше, а трудоемкость достижения такого результата и вовсе гораздо меньше. Но все же выглядело это в итоге не очень хорошо, и, кроме того, размеры изображений с разными углами поворотов поездов получились очень большими. Особенно для ретины.

Используя этот метод, я более-менее освоил 3D-редактор и решил все-таки попробовать 3D. Посмотрел разные движки для 3D. Мне не понравилось, что большинство из них – это конструктор, где требуется писать совсем немного кода на каком-то убогом языке. Но мне, как программисту, хотелось писать код. Поэтому я стал использовать просто библиотеку OpenGL.

Raildale

Изучение OpenGL – дело не очень простое, но интересное. Здесь очень важно сразу найти правильное руководство, так как в OpenGL очень много устаревшего, которое лучше не использовать, но во многих руководствах это осталось. Если кто-то захочет изучить, я бы посоветовал это руководство.

В итоге, несмотря на все трудности, с которыми я столкнулся, в 3D мне удалось получить гораздо лучший результат, чем я мог бы получить, используя изометрическую проекцию. Разработку я продолжал на своем языке, параллельно развивая его.

В игре я реализовал освещение и тени, прикрутил физический движок Bullet для моделирования столкновений. Столкновения хотелось сделать какими-то более интересными, потому что если их честно моделировать, то получается скучно: поезд только немного сходит с рельсов. Не очень эффектно. Поэтому я применил такой же прием, как применяют в фильмах. В момент столкновения подбросил поезд вверх и придал разные начальные ускорения его вагонам. По-моему, получилось отлично.

Для того чтобы сделать игру более живой, я добавил ветер, который шевелит деревья, сдувает дым от паровозов и шумит. Кроме этого, для некоторых уровней были добавлены дождь и снег, которые при наличии ветра им тоже сдуваются. Довершили звуковую картину птицы: я подключил реальные записи пения птиц, различные для различных ландшафтов.

Raildale

Я перевел игру на 9 языков. На английский я перевел сам и воспользовался услугами пруфридинга, то есть мой текст проверил англоговорящий человек. Так получилось дешевле и, думаю, качественнее. На остальные языки (бразильский португальский, французский, немецкий, итальянский, испанский, японский, корейский и китайский упрощенный) перевод я заказал, на что ушло около 15 000 рублей. Неожиданной проблемой под конец оказалось отображение иероглифов в игре, пришлось затратить целый день разработки на ее преодоление.

Разработка закончилась в январе. Я затратил гораздо больше времени, чем ожидал, но и знаний получил гораздо больше. Апрув занял 2 дня для Мак-версии и 5 дней для iOS. Игра доступна под iOS (iPhone, iPad, iPod touch) и под Mac OS X. На момент запуска цена — 66 рублей, потом планирую поднять до 129 рублей. Здесь можно скачать Raildale. А здесь можно получит 15 промокодов для iOS-версии. Я планирую улучшать игру, так что очень жду ваших комментариев и советов.

Название: Raildale
Издатель/разработчик: Anton Zherdev
Цена: 66 руб.
Встроенные покупки: Нет
Совместимость: Универсальное приложение
Ссылка: iPhone/iPad | Mac

Pages_
Если вам есть, чем поделиться с другими читателями нашего сайта, пишите на advert@appleinsider.ru и не забудьте указать свое имя или ник. Мы внимательно читаем входящие письма и публикуем ваши самые интересные истории.

Обзоры приложений для iOS и MacРазработка приложений для iOS