Хабы: TypeScript, Ненормальное программирование, Разработка игр, WebGL, Дизайн игр
Этой статьей я хочу представить сообществу разработку https://www.ruinsworld.ru/, которой, по сути, посвятил пять последних лет жизни. Все начиналось с браузерного сингл-шутера, потом была не очень удачная и быстро наскучившая попытка в стратегию, после чего я поставил себе, казалось бы, невозможную задачу. Реально ли, используя все эти наработки, построить многопользовательский шутер в браузере, да еще не просто «стрелялку внутри небольшой коробки», а с большим открытым миром и огромным количеством неписей в нем? Чтобы можно было «идти куда хочешь во все стороны и делать что заблагорассудится», как в самых лучших постапокалиптических РПГ?
За эти годы было много ночного сидения, бесконечные ручные тесты до посинения и судорог, встречался я и с моментами отчаяния, когда казалось, что некоторые сильнощмы решить невозможно. Но, в результате, терпеливо пришел к нынешней минимальной реализации, которая предоставляет гармоничный ограниченный геймплей для любого количества клиентов в достаточно большом и постоянно изменяющемся мире. Сейчас сервер запущен на всего девять локаций (потому что мне доступен только обычный VPS, а выделенный это очень-очень дорого. Хотя, судя по тестам, это вполне могло быть и двадцать-пять локаций с тридцатью неписями на каждой примерно — неписи могут переходить по локациям так же как и игроки — наш мир действительно открытый! На мощном сервере можно было бы запустить очень большой мир — о основном «ограничении с этим» — в конце статьи). В игре пока только один вид оружия у двух игровых рас (гранаты), три обычных предмета, один редкий, несколько видов неписей.
Код игры полностью открыт и доступен в двух репозиториях: клиент и сервер.
Читать далее