Wake of Gods Forum | Форум Во Имя Богов
HeroWO.js: открытая реализация «Героев 3» для браузера - Printable Version

+- Wake of Gods Forum | Форум Во Имя Богов (http://wforum.heroes35.net)
+-- Forum: Герои Меча и Магии 3.5 WoG/ERA (/forumdisplay.php?fid=99)
+--- Forum: Моды (/forumdisplay.php?fid=104)
+--- Thread: HeroWO.js: открытая реализация «Героев 3» для браузера (/showthread.php?tid=6811)


HeroWO.js: открытая реализация «Героев 3» для браузера - HeroWO - 02.04.2023 20:37

Хочу представить проект, над которым я работал три года.

Реализация «Героев меча и магии III: Дыхание смерти» для браузера

Сайт: herowo.game (запустить Tutorial)

Код: https://github.com/HeroWO-js

Форум: https://forum.herowo.net

Discord: https://discord.gg/UcGCNhJEUx

Написан на JavaScript и PHP. Общее число строк - порядка 100 тысяч.

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

Image: adaptive-layout-yt.jpg

Image: custom-combat-yt.jpg

Карта с тремя уровнямиМультиплеер с наблюдателем
  • Готовы карта, битва, туман войны, звуки.
  • Заклинания, существа, артефакты, навыки, городские здания и города.
  • Мультиплеер без глобальных блокировок (ходы и битвы игроков не мешают другим).
  • Собственный парсер и компилятор .h3m на PHP: h3m2json
В коде заложена максимальная гибкость, хотя не все выведено наружу. Например, в битве может участвовать неограниченное число сторон, на карте может быть сколько угодно уровней, есть запись реплеев, режим наблюдателя и многое другое.

Особенное внимание уделено созданию модификаций, причем как с программированием (JavaScript), так и без (система эффектов и банков данных). Здесь более подробно.

Image: plaague.png

Image: city-lights-1-500.png



RE: HeroWO.js: открытая реализация «Героев 3» для браузера - Berserker - 02.04.2023 21:55

Потестировал немного. Это, безусловно, очень и очень круто. Идея эффектов тоже интересная.


RE: HeroWO.js: открытая реализация «Героев 3» для браузера - igrik - 02.04.2023 23:58

А это не твой проект, представленный на докладе?


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


RE: HeroWO.js: открытая реализация «Героев 3» для браузера - HeroWO - 03.04.2023 18:42

(02.04.2023 21:55)Berserker Wrote:  Потестировал немного. Это, безусловно, очень и очень круто. Идея эффектов тоже интересная.
Очень почетно слышать это от тебя!

(02.04.2023 23:58)igrik Wrote:  А это не твой проект, представленный на докладе?
Это проект другого автора. На Хабре есть расшифровка доклада, она меня частично сподвигла на свой труд, но у нас разный подход и технологии (например, у него TypeScript и закрытые исходники).

Кстати, на следующей неделе выложу на Хабр свою статью по мотивам. Надеюсь, найдем еще людей.

(02.04.2023 23:58)igrik Wrote:  Вообще, в этом русле я заинтересован, и могу помочь в разработке.
Это здорово. Ты хорошо знаешь JavaScript?

Здесь я набросал основные направления, по которым есть смысл сейчас двигаться. Хотя наиболее важные задачи вроде карты на Canvas требуют прилично работы и навыков, для начала можно хотя бы просто отлавливать и документировать баги - многие исправляются очень быстро, а играть мешают больше, чем медленная работа.

Здесь описано, как поднять локальную версию движка.

Если соберешься помогать - пиши на форум.


RE: HeroWO.js: открытая реализация «Героев 3» для браузера - igrik - 08.04.2023 08:25

Очень хорошо знаю JS. Как и C++, C# и Dlang. А вот php не знаю, хотя сомневаюсь, что он вызовет трудности. Но чуть разгребусь с личными тяготами - подключусь к разработке
Я правда на убунте сижу, но я думаю разберусь, как развернуть локалку... Если нет - спрошу


RE: HeroWO.js: открытая реализация «Героев 3» для браузера - HeroWO - 08.04.2023 08:55

(08.04.2023 08:25)igrik Wrote:  Очень хорошо знаю JS. Как и C++, C# и Dlang.
Шикарно. Буду очень рад тебя видеть в команде!

(08.04.2023 08:25)igrik Wrote:  А вот php не знаю, хотя сомневаюсь, что он вызовет трудности.
PHP используется только для конвертации данных (графика и текстовики из lod → банк данных, парсер h3m) и координации игроквых серверов. Это около 30% кодовой базы и по мере развития движка (JS) процент будет снижаться. Важных задач по этой части сейчас нет, а с теми, что есть, я могу разобраться и сам.

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

(08.04.2023 08:25)igrik Wrote:  Я правда на убунте сижу, но я думаю разберусь, как развернуть локалку... Если нет - спрошу
ОС роли не играет, в README описан универсальный алгоритм развертывания. Под *nix я не тестировал его так же детально, как под Windows, но серьезных проблем не ожидаю - напиши, если что.


RE: HeroWO.js: открытая реализация «Героев 3» для браузера - HeroWO - 17.04.2023 15:07

Приглашаю всех, кому интересна разработка игр, оценить мою статью на Хабрахабре о суровых буднях работы над движком HeroWO:

О, «Герои»? Дайте две! Как я писал очередной браузерный клон легендарной стратегии, в который уже почти* можно играть

Image: 2rfv5rdpralxok9zyltejp_0ufa.png


(03.04.2023 18:42)HeroWO Wrote:  Кстати, на следующей неделе выложу на Хабр свою статью по мотивам. Надеюсь, найдем еще людей.



RE: HeroWO.js: открытая реализация «Героев 3» для браузера - planetavril - 22.04.2023 04:56

i know js minimally, but maybe something i can do,I know html and css3 though


RE: HeroWO.js: открытая реализация «Героев 3» для браузера - HeroWO - 16.05.2023 13:15

(22.04.2023 04:56)planetavril Wrote:  i know js minimally, but maybe something i can do,I know html and css3 though
Missed your message, sorry! Sure, get in touch via the forum or Discord and we'll figure out how you can help!

(08.04.2023 08:25)igrik Wrote:  Очень хорошо знаю JS. Как и C++, C# и Dlang. А вот php не знаю, хотя сомневаюсь, что он вызовет трудности. Но чуть разгребусь с личными тяготами - подключусь к разработке
Как ты? Личные дела затянули, да?

* * *

На Хабрахабре вышла вторая статья по истории разработки и внутренностях движка HeroWO:

Карта, золото, «Герои»: продолжаем разбираться в технико-исторической части HeroWO.js — браузерного клона культовой игры

Image: j18m2egdzreapjzxzzueh10nkjy.png


RE: HeroWO.js: открытая реализация «Героев 3» для браузера - igrik - 20.06.2023 17:42

(16.05.2023 13:15)HeroWO Wrote:  Как ты? Личные дела затянули, да?
Да, слишком сильно затянули. Раньше осени точно не смогу помочь, вот прям никак.
Хотя я и довольно заинтересован в вашем проекте, но личная жизнь важнее.


RE: HeroWO.js: открытая реализация «Героев 3» для браузера - igrik - 22.07.2023 16:59

А можно узнать, на каком фреймворке пишется фронт?
И бэк на чём (хотя вроде php, насколько я понял). И где лежит база данных?

Я всё же заинтересован в проекте, и осенью начну помогать, хотя бы по мелочи.
Но нужно ознакомиться с кодом. Прицениться, я бы назвал...


RE: HeroWO.js: открытая реализация «Героев 3» для браузера - HeroWO - 23.07.2023 12:31

(20.06.2023 17:42)igrik Wrote:  
(16.05.2023 13:15)HeroWO Wrote:  Как ты? Личные дела затянули, да?
Да, слишком сильно затянули. Раньше осени точно не смогу помочь, вот прям никак.
Хотя я и довольно заинтересован в вашем проекте, но личная жизнь важнее.
Да, естественно. У меня по тем же причинам уже месяц лежит почти доделанный рендер карты на Canvas.

(22.07.2023 16:59)igrik Wrote:  А можно узнать, на каком фреймворке пишется фронт?
И бэк на чём (хотя вроде php, насколько я понял). И где лежит база данных?
PHP используется для подготовки данных (конвертации карт и пр.) и для координации клиентов (список карт, чат и пр.). Первое хранится в виде файлов (в основном JSON), второе - в MySQL или SQLite. Но эта часть тебя волновать не должна, обращаться к ней приходится редко.

Собственно движок построен на моем событийно-ориентированном фреймворке Sqimitive. На Хабре есть старая вводная статья. Код, демо и документация. Я целенаправленно избегаю внешних зависимостей и пишу код в старом стиле (<ES6, уровень IE11).