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

13

 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 и не забудьте указать свое имя или ник. Мы внимательно читаем входящие письма и публикуем ваши самые интересные истории.

13 комментариев

  1. 0

    А Unity3D ,в качестве игрового движка чем не понравился? (отправлено из приложения AppleInsider.ru)

    • 0
      antonzherdev

      Applebit, Я не пробовал Unity3D, но он все таки конструктор и высокоуровневая вещь. А я хотел в основном писать код, и мне не хотелось разрабатывать, не понимая как это работает на более низком уровне. Было интересно разобраться в шейдерах и остальных фишках OpenGL.

      Кроме того, мне кажется, что повсеместное использование движков лишает игры индивидуальности. Например, всегда понятно, что такая-то игра сделана на Unreal Engine. Возможно, убогость ИИ в играх тоже с этим связана. В моей игре, правда, ИИ не нужен. Поезда — простые автоматы.

      • 0

        antonzherdev, ИИ в Unity3D можно всегда написать самому на C#,и в Unity от конструктора только Wyszx -редактор сцены.Но в принципе Вы все равно на голову выше меня,потому что довели до конца один проект,ктому же Вы получили опыт разработки,а это самое главное.Короче успехов Вам в продвижении игры,а также в разработке следующих проектов. (отправлено из приложения AppleInsider.ru)

        • 0
          antonzherdev

          Applebit, Я думаю, Unity3D — хороший продукт, слышал о нем только положительные отзывы. Да, и C# — неплохой язык. Думаю, это тоже очень хороший опыт, написать игру используя хороший движок.

          Спасибо большое и Вам также успехов в ваших проектах.

  2. 0
    VladDurymanov

    приятно читать и текст и комментарии — в последнее время это редкость для этого ресурса… (отправлено из приложения AppleInsider.ru)

  3. 0

    Круто! Помню играл в такую на 486 компе 🙂
    Удачных продаж! (отправлено из приложения AppleInsider.ru)

  4. 0

    Кажется, вы опоздали
    https://itunes.apple.com/ru/app/rails/id556517203?mt=8 (отправлено из приложения AppleInsider.ru)

    • 0
      antonzherdev

      andreasxp, Не думаю, что здесь можно опоздать. Вы можете найти и другие подобные игры в App Store. Но это только показывает, что тема востребована.

      Ту игру я скачивал, как и многие остальные. И, честно говоря, мне она не понравилась.

      В Raildale, мне кажется, играть гораздо интереснее.

      По графике Raildale сильно превосходит ту игру. И Raildale я еще планирую дорабатывать в этом направлении.

      Кроме того, та игра не работает под iPhone, да и вышла уже достаточно давно, а люди любят скачивать новое.

  5. 0
    farwaterrec

    Я так и не понял смысла самой игры. Там есть миссии экономика и задание или нужно просто строить жд и отфанарно гонять поезда? (отправлено из приложения AppleInsider.ru)

    • 0
      antonzherdev

      farwaterrec, Все довольно просто. Вы строите железную дорогу между городами. У городов есть цвета. Когда на поле появляется поезд, Вы должны его отправить в город такого же цвета. Периодически появляются новые города и нужно достраивать к ним железную дорогу.

      Есть деньги. Их дают за приход поезда в город. За постройки или починку рельсов с вас снимают. Также есть штрафы за аварию и задерживающиеся поезда.

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

  6. 0

    Objective-d?) чем objective-c не угодил-то? У него конечно есть свои особенности, но если к ним привыкнуть — очень неплохой и интересный язык. (отправлено из приложения AppleInsider.ru)

Авторизуйтесь Чтобы оставить комментарий