Часто задаваемые вопросы

Почему бы не использовать JavaScript вместо PHP?

Игровой движок написан полностью на JavaScript. PHP используется для подготовки данных — стандартная библиотека с расширениями вроде gd, zlib, zip и других подходит для этого как нельзя лучше. Сейчас кода на PHP примерно в два раза меньше кода на JavaScript, и это соотношение будет меняться в пользу JS по мере развития движка.

В далеком будущем, весь код на PHP может быть переписан на JavaScript, но это не приоритетная задача, ибо она никак не улучшит работу игры с точки зрения пользователя. Она устранит дублирование кода, но его количество непропорционально тем усилиям, которые нужно будет затратить на рефакторинг.


Пока это всё. Остались вопросы? Задавайте!

Единая кодовая база - всегда хорошо и для поддержки и для расширения. А так если кода не много на PHP - всегда можно задаться целью и переписать его.

Я правильно понимаю, что вся серверная часть написана на PHP? То есть онлайн-лобби, и прочая логика совместной игры?

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

Нет, PHP выступает только как координатор лобби (api.php). Эта часть маленькая и ее действительно можно переписать, но опять же, это не улучшит игровой опыт, а потому сейчас не в приоритете. Рабочих рук и так не хватает.

Собственно серверная часть — это на 96% тот же клиентский код, только запущенный внутри Node.js (остальные 4% обслуживают подключение клиентов, а не игровую логику). Из README:

The main thing - JavaScript game engine with client side of the multi-player (server side that amounts to about 4% of Core is proprietary).

Вся логика синхронизации находится в https://github.com/HeroWO-js/Core/blob/master/client/RPC.js.

1 Like

Думаю надо добавить в описание темы с Propblems\Проблемы, чтобы указывали карту, на которой произошла проблема, прям ссылкой. Если эта проблема связана так или иначе с картой.

1 Like

Господа, создайте где-нибудь сбор средств на разработку. Очень хочу помочь проекту материально

Благодарю. У меня нет своих платформ, но вы можете закинуть в boosty Ящика Артефактов.