Добавить мультиплеер в готовую игру и не умереть? Легко!

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

Жанр у игры как бы хоррор, но смеха она может подарить очень много

Для двух калек вроде нас эта игра была чересчур большой с самого начала. А полтора месяца назад, в начале ноября, мы решили добавить в нее еще и онлайн кооператив. Дальше только battle meat royal добавлять, выше некуда.

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

Глупые омереконцы просто не знают про силушку богатырскую хехехе

Кринжовый мем с богатырями, чтобы разбить стену текста 
Кринжовый мем с богатырями, чтобы разбить стену текста 

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

В игре довольно много агентов и интеракций между ними и игроком. Есть ресурсы — пушки, расходники, валюта. Есть простой Ai Director, который не дает игроку заскучать. Есть пассивки, влияющие на кучу всего: от статов пушек и паттернов Ai режиссера и мобов, до фич в духе слоумо при дэше и приколами над самим управлением игрока. Есть процедурная генерация уровней — каждый уровень выстраивается тайл за тайлом в реальном времени. Есть разрушаемость этих уровней — ты можешь прорубать дыры в стенах, создавая себе новый путь. И соответственно для коопа все эти прелести должны синкаться на хосте и клиенте.

Это я поехал кукухой от геймдева

Первый серьезный вопрос был — как синхронизировать рандомные уровни? Форумы советовали просто задавать всем игрокам одинаковый Random.seed, что якобы позволит генератору воспроизвести уровень со всеми деталями.

Не знаю, подходит ли это для других, но мой «генератор уровней» пустил корни по всей игре — практически в каждом скрипте есть какая-то рандомизация (макаронный код, йей!). Насколько я понял, для того чтобы метод рандомного сида сработал, его нужно прописывать перед каждым вызовом Random.Range — а это вылилось бы в долгие часы унылого манкиджоба.

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

Так процесс генерации выглядит внутри движка. В конце дверь укусила топор

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

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

И вот спустя эти вязкие полтора месяца внедрения коопа мы наконец-то релизнули его в открытый доступ!

Скачки на графике - участие в распродажах и траффик от ютуберов и стримеров
Скачки на графике - участие в распродажах и траффик от ютуберов и стримеров

На данный момент у нас около 8 тысяч проданных копий. Рефанды колеблются от 8.5% до 9.1%. Вишлистов 25к. Скачки на графике — наше участие в распродажах и трафик с ютуберов и стримеров.

Кстати, Golden Light прямо сейчас продается по скидке в 25%. Хватайте друга и вперед — угарать в безумных подземельях Кишки!

------

Хотел еще развернуто написать о том, насколько рискованный наш подход к разработке, но писать особо нечего. Мы воображаем себя инди геймдев рокнроллерами и очень редко придерживаемся назначенного плана. Разработка Golden Light чем-то похоже на концерт фри джаза: "Что-то происходит, ничего не понятно, а музыканты явно обдолбаны. Но звучит прикольно, хз как они это делают"

На этом все. Всех люблю, до скорого!

8383
32 комментария

нихерасе, вот уж не думал что разработчики этой игры обитают на дтф. Видел как Томато играет в нее :3

6
Ответить

Пиаримся где можем!

8
Ответить

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

1
Ответить

Описание 14 летки с саморекламой, из серии хочу игру типо ГТА на мобиле

Ответить

Из серии хочу игру - делаю игру

16
Ответить

Слышь, мясо. Я из-за ваших коопов чуть из кишки не вывалился.

3
Ответить

Еще не вечер!

1
Ответить