1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/fengssy-ts-gameframework

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.en.md

Позиционирование TSGF (Ts-GameFramework)

  • Гуань мгобе

TSGF — это фреймворк для разработки онлайн-игр с открытым исходным кодом, который представляет собой комплексное решение «всё в одном» и написан на языке TypeScript.

«Чёрный ящик» позволяет реализовывать онлайн-игры: клиентский SDK стыкуется с сервером, при этом не нужно заботиться о коммуникации и синхронной логике.

Пользователь может расширять синхронную логику и различные интерактивные сценарии.

Подробности

Процесс входа

Временная диаграмма (см. рисунок).

Структура сервера

Gate — сервер входа и управления кластером, выполняет роль сервера планирования. Существует необходимость разделения.

Backend — сервер игровой логики, один сервер соответствует одной глобальной игре, все подключённые игроки считаются присоединившимися к этой игре. Можно также использовать концепцию комнаты.

Frontend — клиент игры (включая 2 демоверсии), импортируется в проекты Creator 3.4.2 для запуска демонстрационной версии Creator.

Информация о подключении настраивается в конфигурационных файлах Gate и backend.

В качестве коммуникационного фреймворка используется TSRPC, поэтому сгенерированный код / синхронный модуль поставляется вместе с этим фреймворком, что приводит к появлению каталога с именем каждого элемента и относительного пути (незнакомого с хаосом, приводящего к ошибке).

PS: Корень каждого проекта требует выполнения команды npm i, frontend необходимо открыть один раз с помощью Creator.

Запуск и развёртывание сервера (GATE, BACKEND)

Работа в среде разработки

Зависимости: redis, mysql.

Для каждой стороны каталога (GATE, BACKEND) выполняется команда npm install (можно выполнить один раз).

Каталоги GATE и backend содержат файлы gf.*.config.json (в основном настройка redis и mysql).

Выполняется cd gate, затем команда npm run dev.

Выполняется cd backend, затем команда npm run dev.

Развёртывание в один клик (необходимо установить Docker Desktop)

Запускается файл /SimpleDeploy/run.bat.

Ручное развёртывание

Зависимости: redis, mysql.

Для каждой стороны каталога (GATE, BACKEND) выполняется команда npm install (выполняется один раз).

Для каждого каталога (GATE, BACKEND) выполняется NPM Run Buildts, затем упаковываются следующие файлы:

./deploy
./dist
./node_modules
. / GF.*.config.json (конфигурация изменяется в соответствии с реальной ситуацией).

Развёртывание на Windows предоставляет услуги быстрого развёртывания, администратор запускает deploy/install_runasadmin.cmd.

Развёртывание на Linux можно использовать pm2 для запуска: pm2 start dist/index.js.

Начало синхронизации фрейма DEMO (сначала необходимо запустить сервер)

Выполняется команда cd frontend, затем npm install (один раз).

Просмотр простого многопользовательского боя: frontend импортирует Creator, запускается assets/occupationthewar/occupationscene.scene.

Эффект боя (см. изображение).

Предварительный просмотр, для открытия второго клиента необходимо открыть адрес предварительного просмотра с окном private или переключиться на два браузера.

Браузер Vue: выполняется команда cd frontend, затем npm run vue (если браузер не запущен, вручную откройте выходной адрес).

Пример изображения (см. Demo1.gif).

Дополнительная разработка, использование модулей

На данный момент не предоставляются мультиплексные режимы, только копирование исходного кода, две разработки или справочные модули. Эта функция ожидается в версии V1.2.0.

Требования к дизайну

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

Отделение операций ввода: удобный доступ к фреймовой синхронизации.

Фактически, любой онлайн-игре требуется такой дизайн, здесь представлены принципы дизайна, предложенные в этом фреймворке.

Точки стыковки фрейма синхронизации игры (конкретная ссылка на DEMO)

  1. Настройте IP/порт сервера REDIS и каждого сервера.
  2. Разработайте независимое хранилище данных, такое как ECS.
  3. Игровой сервер: в зависимости от сценария использования создайте экземпляр игрового объекта Game, а затем вызовите startgame() (по умолчанию).

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления (1)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/fengssy-ts-gameframework.git
git@api.gitlife.ru:oschina-mirror/fengssy-ts-gameframework.git
oschina-mirror
fengssy-ts-gameframework
fengssy-ts-gameframework
master