Почти постмортем

(мой путь в полушутливой форме)

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

Почти постмортем

Итог на текущий момент можно посмотреть здесь:

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

Возможно, это было несколько наивно с моей стороны, но работа в течение нескольких лет без роста зарплаты (при существенном росте сложности задач, вплоть до назначения ведущим разработчиком) подвигла меня на такие шаги. Я конечно понимал, что в наше время неприлично ожидать, что за работу, от которой ты получаешь удовольствие, должны платить. Но меня грыз червь сомнения и, что ещё хуже, при этом шептал что-то вроде: «Любая работа, если результат кому-то понадобился, должна быть оплачена тем, кому этот результат потребовался». Ну бред же! (Хотя, если так рассуждать, то можно прийти к выводу, что хорошую зарплату должны получать люди, ненавидящие свою работу). Но я уже поддался его уговорам и решил, что если мои усилия не получают ожидаемой положительной обратной реакции от руководства, то пора действовать и работать вдвойне ради своего будущего проекта.

Почти постмортем

Любовь к играм и желание иметь что-то свое привели меня к мысли о создании собственной игры. Это желание подкреплялось пониманием того, что потребность в создании своего мира – идеальной игры – есть, и она достаточно велика. В итоге, в свободное от работы время, я создавал небольшие заготовки для 3D игры: система инвентаря, взаимодействие с объектами и пр., но столкнулся с проблемой нехватки контента – в описываемый период на AssetStore не было большого разнообразия.

В результате размышлений, одним прекрасным, как мне казалось на тот момент утром, я окончательно пришел к осознанию того, что мобильному рынку совершенно не достает хорошей изометрической игры в стиле Fallout или JA2. Причин, по которым разработчики не часто берутся за данный жанр было, на мой взгляд, несколько: разработка глубоких механик взаимодействия с объектами и сама изометрия, и конечно же, необходимость создания большого количества инструментов для реализации задуманного. Так я стал инди-разработчиком. Хотя в реалиях сегодняшнего дня – инди -разработчики — это такие команды с офисом и оборотом в несколько сотен тысяч $ в год, и порой они являются дочками совсем уж не инди-компаний.

Так, тогда кто же такие, как я?

Почти постмортем

Ну тогда, чтобы избежать путаницы, наверно, уместен новый термин – инди-бомж (офиса нет, да и дохода тоже) – разработчик, который в одиночку создаёт игру. (Мое скромное мнение: инди заканчивается тогда, когда начинаются выплаты/получение зарплаты за работу над проектом)

Итак, я решил: если уж делать хорошую игру, то обязательно с научно-фантастическим философским сюжетом и назвать её обязательно тоже необычно! Иначе народ не поймёт всю крутость игры. Что-то вроде… слов «Другая реальность», обыгранных в переводе на английский – «Anority» (зато в Google play выдаётся единственной ссылкой, наверно Google тоже оказался под впечатлением)

Почти постмортем

Целевыми платформами выбрал Андроид, IOS, Windows и далее где получится пролезть)). В качестве базового движка – Unity, основной причиной такого выбора послужила его мультиплатформенность, а остальные его возможности меня интересовали мало, т.к. все базовые контейнеры, редакторы, рендер я планировал написать самостоятельно. По сути получалось, что я буду писать свой движок, а от Unity требовался только вывод графики и компиляция проекта. Тем более, что реализация 2D и, тем более, изометрии для слабых смартфонов требовала серьёзной оптимизации. Несмотря на опыт, я не ожидал, что хоть и ненамного (процентов на 25), но ошибусь в масштабах оцениваемой работы, и с учетом этого закладывал непредвиденные расходы времени на неожиданно возникшие задачи.

Почти постмортем

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

На разработку базовых контейнеров, рендера, GUI, базы игрового движка у меня ушло около 9 месяцев (однако, символично) практически беспрерывной работы. К началу разработки проекта я уже уволился с прежней работы, в некотором смысле, по собственной инициативе. Но с другой стороны, не произойди этого – реализация задуманного была бы отложена на неопределённый срок. Самым главным я считал желание создать именно свой проект, который бы понравился не только мне, но и потенциальным игрокам. И, конечно же, не стоило сбрасывать со счетов и желание получить определённую финансовую независимость. (Я наивно полагал, что для того, чтобы проект понравился игрокам, он должен вобрать в себя всё, что делает игру – игрой мечты разработчика, не взирая на сложность реализации, но обязательно с привлечением мнения комьюнити).

Почти постмортем

Пришлось реализовать в коде большое количество не самых лёгких алгоритмов и систем на их основе:

-GUI на основе “окон”

-объёмное зрение (рейтрейсинг)

-горизонт зрения (рейтрейсинг)

-велосипедный простой скриптовый язык. Как раз строго под отводимую ему роль плюс виртуальная машина (регистро-стековая)

-алгоритм определения очередности отрисовки объектов, проекции которых занимают несколько ячеек

-отрисовка только видимого

-сохранение полного состояния объектов с учётом вложенности (объекты могут состоять из других объектов, которые состоят из других объектов… и т.д. и при этом иметь взаимные ссылки)

-ячеистый инвентарь (предмет может занимать различное количество ячеек)

-система нелинейных квестов

-система нелинейных диалогов

-база ИИ существ

-алгоритм поиска пути

И куча ещё чуть мельче по значимости систем.

Ну и плюс инструментарий:

-редактор классов

-редактор анимации

-редактор локализации

-нодовый редактор логики

-редактор карт

-упаковщик атласов

Все редакторы на базе своего GUI.

И т.д.

Почти постмортем

В итоге, судя по закачкам проект все же кого-то устроил, но обратной связи почти нет. А ведь мягкий запуск проекта (скорее сверхмягкий – на этапе прототипа) был выбран ради имплементации пожеланий игроков. Интересно, что зарубежные игроки в четыре раза чаще отзываются (и это при Google - английском!), чем наши (ну на моей мизерной выборке). В результате продолжаю пилить так, как мне кажется должно быть интересно. Вот только в таком случае не получилось бы, что играть в неё будет интересно только мне))

Почти постмортем

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

Почти постмортем

P.S. Ради чего я это написал? Наверно, ещё надеюсь найти людей, которым бы понравилась концепция и они критическими замечаниями, советами и моральной поддержкой помогли сделать игру интересную не только мне, но и многим другим игрокам.

P.P.S. Если решили комментировать - прочтите внимательно статью. Прежде всего - о стадии проекта и для чего выложена статья.

3030
67 комментариев

Комментарий недоступен

29
Ответить

И, я ни к чему не обязываю, просто в качестве предложения - может, больше про игру, а не про себя любимого?

14
Ответить

Комментарий недоступен

10
Ответить

Ты так много всего сделал, а в итоге выдал публике игру, где на протяжении полутора минут игроку нужно стрелять зомби в ногу? И смотреть при этом на одну и ту же анимацию, даже без брызг крови?

Серьёзно? Тебе лично действительно нравится стрелять зомби в ногу 10 раз подряд?

6
Ответить

Для получения представления об игре не достаточно посмотреть конкретную вырезку из ролика длиной 1-1,5 мин. Ролик для оценки механики ведения боя. И да, можно стрелять не только в ногу.
Для Googleplay был выбран один демо-ролик из нескольких имеющихся, большая длительность неприемлема, а ролик ставить можно только один. Другие ролики на канале https://www.youtube.com/channel/UCYhIK46-rz8mrMtZ3PCXAsQ.

2
Ответить

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

1
Ответить

Комментарий недоступен

8
Ответить