alloploha / HHSwarm

Haven & Hearth online game .NET client.
GNU General Public License v2.0
8 stars 1 forks source link
bot csharp dotnet game hafen haven-and-hearth

HHSwarm

.NET клиент для онлайн игры Haven & Hearth.

English, 한국어, 日本語, 简体中文, 正體中文

Цель проекта

Игра год за годом никак не может удержать стабильное количество игроков. Всё самое интересное происходиь не дольше 6 месяцев, после чего мир пустеет. Основная причина этого - ограниченность клиента и отсутствие клиентов для сматфонов и планшетов. Основная цель проекта - исправить это слабое место и сделать игру более популярной и интересной посредством создания нового игрового клиента с расширенным функционалом, без слабых мест оригинального клиента, с возможностью переноса на различные платформы. Так же, полное описание протоколов и внутреннего функционирования игры.

Автор игры почему-то решил, что и сервер и клиент должны быть написаны исключительна на Java, при этом исходники клиента он выкладывает в открытый доступ. Видимо, причина в том, что большая часть функционала находится в клиенте, например вся анимация объектов мира. Т.е. "классы" находятся в клиенте, а конкретные экземпляры и текстуры подгружаются с сервера. Более того, клиент может закружать исполняемый скомпилированный Java-код и исполнять его, что делает его ещё более зависимым от выбранной когда-то платформы сервера.

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

Структура в Visual Studio

Как скомпилировать и запустить

  1. Для сборки необходимы:
    1. Visual Studio 2017. Возможно, получится использовать Visual Studio 2019.
    2. .NET Framework 4.6
  2. Сделайте проект TestClient запускаемым по-умолчанию.
  3. Найдите и замените $LoginName$ на игровое имя пользователя. Найдите и замение $Password$ на пароль.
  4. Собственно, запустите отладку. Тестовый клиент автоматически сохраняет ключ, который возвращает сервер аутентификации, и затем использует его для захода на игровой сервер.