6 февраля 2014 г.

Зима и весна

Убрал трансляцию блога на форум Кораблей, и в текущем виде его продолжать пока не намерен. Для "новостей разработки" будем думать над каким-нибудь другим вариантом, вполне возможно что пока это будет просто лента в твиттере "с картинками". Назрела "перезагрузка".

Причина - не хочется превращать блог "о разработке" в блог "о личном в разработке".

Тизер

17 января 2014 г.

Делать просто

Нужно уметь вещи делать просто. Особенно если речь идет о программистах. Преждевременная оптимизация - это вселенское зло в мире IT, и только вчера я понял что "оптимизация" может быть очень широким понятием.

Не вдаваясь в технические подробности - у нас на серверах живет множество всяких процессов, обслуживающих игровую логику. Те же "комнаты" для думинатора, или же просто игровая серверная логика Кораблей/Думинатора в облаке. Некоторые задачи должны быть запущены с кучей параметров в куче экземпляров (опять же - комнаты), другие - циклично дергать сервер на предмет "поработай, милый". Для всего этого изначально было запланировано множество хороших вещей, мы долго думали, проектировали, экспериментировали и пробовали, и.. с каждой новой тулзой я все больше ленился их писать (понимая что это время, я один, а задач - много).

В общем, случилось страшное. Вчера я пал так низко, что вспомнил курс предмета с далекого первого курса по азам компьютеров (даже название забыл), и перевел все на систему, состоящую из двух батников (вот они, вузовские знания! :) ), одного mongoose сервера и BTSync'а. На все про все ушло два часа вместе с установкой и настройкой curl'а на удаленный сервак. Сервер стал работать быстрее, метчмейкинг работает в шесть раз чаще, геммороя стало на порядок меньше, в общем сплошные плюсы без использования оных.

Мораль - нечего плодить всякие "нужные сущности", которые может и умеют больше и вообще "как надо", если вы не близзард/эпики/прочие-труЪ-компании-со-штатом.

Делать добро

В первую очередь скажу спасибо всем тем, кто поддерживал и продолжает поддерживать нас в разработке Кораблей. Даже критика и бурные обсуждения чаще всего были разумными, а не бездумным тыканьем клавиш и минусиков. Это многого стоит.

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

Приняли решение пойти от большего к меньшему, сейчас в игру интегрируется такой вариант:



Вместе с игроками потестируем, посмотрим куда и как двигаться дальше, т.к. задач для реализации хватает.

К чему это я все? Да к тому, что мало кто у нас умеет делать добро в наших "интернетах". В западных, кстати, тоже.

Простой пример. Вот зарелизили мы думинатор, да пропустили баг один. Единоразовый вылет при первом запуске. Ничего критичного, но неприятно. Сразу сделали хотфикс, да еще и карту добавили (больше суток без сна, марафон "все для игроков"). Эпплы быстро все проверили (2 дня для них - это очень быстро), утвердили.

Далее следует такой перечень действий. Даю "добро" на появление нового бинарника в сторе. Жду пока все доиграют бои, выставляю стейт "мы работаем, пожалуйста подождите и попробуйте чуть позже" (выводится красиво на UI на клиенте), выключаю сервера. Быстро обновляю (2 минуты, все заранее подготовлено), запускаю. Жду еще минут максимум десять пока обновление появится в сторе (кто ж знал что там до 24 часов может пройти формально...). Чуть заранее даю добро игрокам на апдейт (им внутри клиента появляется окошко, мол, новая версия доступна, обновитесь, при нажатии открывает ссылку на приложение).

Казалось бы все окей, даунтайм минимальный. Ага, конечно. За это время почти десяток радивых пользователей радостно накатали отрицательные отзывы (которые с недавнего времени на апп сторе имеют значение!), мол, сервер шатдаун. Мда )

Грустно то другое - адекватные отзывы приходится вытягивать клещами. Даже без рейтинга, нам просто интересно услышать что вы, живые игроки, думаете о нашем проекте. Поэтому мы вдвойне благодарны тем, кто все-таки нашел время и желание написать пару строк о Думинаторе. И втройне - тем, кто поддерживает нас с Сикрафтом.

Кстати, по личному впечатлению пользователи Android'а гораздо более отзывчивы, чем эппловцы. Haters gonna hate?

15 января 2014 г.

Не прошло и трех лун

Вчера состоялось событие, которое отмерило еще один мейлстоун флажочком "пройдено".


Как вы могли догадаться, эпплы заапрувили Думинатора.

Яркой радость была не долгой. Скачиваю, запускаю.. краш. Ну окей, бывает. Перезапуск - все отлично бегает. Беру второй девайс - сюжет повторяется. Третий.. ну, вы уже поняли.

<...> - подумал я и отправился ловить жука и пилить хотфикс. Баг пролез достаточно простой, за пару часов починил, хотфикс готов. Пользуясь случаем пофиксили еще кучу мелочей и добавили третью локацию, только что вот залили, ждем. Надеюсь большинство игроков краш при первом запуске не смутит (если смутит, то они врядли будут играть в нашу суровую мужицкую темную игру).

Кстати, впервые в рабочем билде у нас появились внутри-игровые покупки с проверкой их валидности "на сервере". И первые же пришедшие от пользователей запросы показали два факта:
  1. Грустный факт: баги пробрались на сервер (пол дня чинил, благо бэкэнд позволяет быть пофикшеным без обновления клиента), потому что мы недооценили пользователей
  2. Замечательный факт: мы молодцы, что добавили проверку. Потому что "левых" покупок просто таки айма, и если для сингловой игрушки чаще всего это не играет никакой роли (те, кто "хакают" - не особо платежная аудитория), то для мультиплеера, где во главе угла стоит баланс, это хаос.
Ничего, проверку улучшили, все тщательно логгируем, you have not pass в действии.

Вообще, какое-то очень нервное начало года. То одно, то другое.

Эпики заставили нервничать тем, что давным-давно не обновляли UDK (разве что "для избранных" - кто работает с Oculus'ом), при этом с первого февраля в апп стор можно будет выкладывать только приложения, собранные под iOS 7 и XCode 5. Как вы могли догадаться, текущая UDK собрана без учета этих требований, а у нас на подходе релиз таки UDK'шного проекта.

К счастью, сегодня (или вчера?) они клятвенно заверили don't worry be happy. Ну, значит окей. Еще бы поддержку Андроида добавили, было бы просто замечательно. Жаль что это маловероятно.

Все это рок-н-ролл.

11 января 2014 г.

Полк из Норфолка затерян в горах

Для полноты картины не могу не сказать хотя бы пару слов о Кораблях.

Один из последних кораблей "первой волны" - USS Norfolk (DL-1) - проходит финальную проверку геометрии и соответствию проекту.


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

Что касательно энвайронмента, то в поисках идеального сбалансированного моря (десктоп для не-игровых машинок и мобилки) мелькал такой вот вариант:


По крайней мере форма морской поверхности мне однозначно нравится.

И напоследок буквально пару часов назад выпытанное у художников:


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

Ржем и пашем

Иго-го-го!

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


Для истории, от скетча до моделей в максе:


Общий вид карты может конечно смутить плоскостью и однородностью лавы, но свет настроен все-таки под ограниченную камеру топдауна. На следующей неделе сделаю игровые скриншоты, увидите.

Год Змеи

Последние две недели все собирался написать "отчетный" пост о прошедшем годе. И о том, что "хагодемонскому" блогу ровно год исполнился. И что реинкарнации думсталкера потребовался именно этот год, чтобы дойти до релиза. И.. и как-то не пишется. Так что буду краток.

Ожидание аппрува думинатора - крайне томительная штука. Сервера уже вторую неделю (еще с прошлого года!) ждут своих игроков, а эпплы так и не дали "добро". Наиболее курьезным для меня стал тот факт, что впервые, спустя пол года после публикации альфы, которая была гораздо более кровавой и "с убийствами", эпплы узнали что у нас есть пушки, насилие и пр., а значит рейтинг 9+ ставить нельзя.







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

Небольшой личный плюс в карму - игрушка Traffic Hunting. Есть там своих неприятных вещей вагон и маленькая тележка, пусть это будет совесть и карма авторов, мне все это уже не нужно. Для меня этот проект - некий шаг, новый для меня опыт работы "на дядю", со своими выводами. Какой никакой, но достигнутый результат, релиз, мой код.




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

Девиз у нас простой и боевой. Вперед и с песней! \o

14 декабря 2013 г.

Дьявол кроется в деталях

После аппрува пред-релизного билда думинатора я с удивлением обнаружил, что сбор внутриигровой статистики идет совершенно не тем образом, которым он должен был идти.

Да здравствует оптимизация и рефакторинг! Славься! Стоит пропустить всего-лишь одно маленькое слово в запросе..

Детали важны. Любые изменения должны тщательно тестироваться перед релизом. И ведь знаешь, и тестируешь, но и про старуху бывает. Хотя запоганить сбор аналитики это конечно не так грустно, как покупку приобретения ин-аппов (был случай в личной практике :) ).

На всех порах готовим Корабли. Идет активная работа по стилистико-логотипно-интерфейсным делам, пара WIP'ов ниже.


Думали какую иконку/промо-картинку сделать, нарисовали такое:


С пропорциями намудрили, но направление понравилось (хоть корабль и мутант, но мутант внушительный). Дальнейшие изыски:


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

Корабли на стапелях, снимать пора. На днях плакали, но отрезали детали от Ashville. Нещадно загубили симпатичные топора на бортах:


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

4 декабря 2013 г.

Песочница в Петербурге (интенсив по UDK)

14 и 15 декабря в Питере в рамках школы хмурого кубика sandbox я буду читать курс-интенсив (модное нынче слово, однако) по разработке мобильных игр на UDK.


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

Анриловский движок - очень мощная и объемная система, которая при знакомстве с ней может как испугать новичка, так и создать ложную иллюзию что "можно все". Истина где-то посередине - очень и очень многое можно реализовать на UDK, однако действовать стоит в соответствии с внутренней идеологией/структурой, заложенной эпиками.

По сути именно объяснение таких подходов и легло в основу курса. Когда я начинал работать с движком, мне понадобилось немало времени чтобы практикой и ошибками прийти к тому, о чем я буду рассказывать. Эти подходы и методы, успешно проверенные в бою уже на четырех достаточно крупных проектах, являются базисными - используя их можно построить ту систему, ту игру, которую хотели бы видеть именно вы, вне зависимости будет ли это гоночный симулятор, аркадный дабл стик шутер, раннер с "генерируемым" миром или даже стратегия с элементами ролевых игр.

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

Один из приятных плюсов UDK также состоит в том, что для разработки игры под iOS не нужен Mac. Старая любимая Windows - этого достаточно. Во всем пайплайне мак требуется только для загрузки игры в апп стор. Само устройство - телефон/планшет - в рамках курса также не потребуется.

Главное - не забыть принести свой интерес разрабатывать игры и свежую голову :)

3 декабря 2013 г.

Масато Ойл

Хотя будущая карта DM-Platform уже не является "нефтяной платформой", будучи переквалифицированной в "платформу по добыче дарков", название Масато Ойл устойчиво закрепилось.


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

Структура карты завершена, перешли к текстурированию.


В релизном варианте карта будет готова через две недели - это некий подарок игрокам Думинатора к Рождеству. Кстати, концепт-облик карты таков:


Мы учли опыт двух предыдущих карт, и поэтому постарались минизировать количество помещений "со стенами", предоставив игрокам больше свободного пространства и плоскостей перемещения.