Страница 1 из 1

[uNet] [Client/Server] Инвентарь персонажа

СообщениеДобавлено: 20 окт 2018, 14:39
KanycTa
Буду на сколько можно краток...

Пилил сетевую игру по примерам:
https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
https://developer.valvesoftware.com/wiki/Lag_compensation
https://developer.valvesoftware.com/wiki/Prediction
http://www.gabrielgambetta.com/client-side-prediction-server-reconciliation.html

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

На клиенте всё просто, есть к примеру скрипт InventoryManager который хранит, добавляет, удаляет предметы из инвентаря и выводит это всё в графическом виде а как быть с серверной стороной?

Re: [uNet] [Client/Server] Инвентарь персонажа

СообщениеДобавлено: 20 окт 2018, 15:59
anomal3
KanycTa писал(а):е а как быть с серверной стороной?

А как сетевое взаимодействие написано? Просто синхронизация картинки у клиентов?
Для сохранения можно использовать БД. Например используйте SQLlite. Допустим раз в 15 минут сохранять все объекты у всех персонажей. Или допустим при каждой добавленной вещи в инвентарь.
Вам пример нужен или теория?

Re: [uNet] [Client/Server] Инвентарь персонажа

СообщениеДобавлено: 20 окт 2018, 16:49
KanycTa
anomal3 писал(а):
KanycTa писал(а):а как быть с серверной стороной?

А как сетевое взаимодействие написано? Просто синхронизация картинки у клиентов?
Для сохранения можно использовать БД например SQLite


Использую uNet (LLAPI), держал направление по тутору http://gabrielgambetta.com/client-side-prediction-server-reconciliation.html всё вроде получилось... Клиент симулирует движение на своей стороне и отправляет буфер с нажатиями с интервалом, а на серверной стороне принимаются нажатия и проигрываются а после серверное состояние объекта рассылается всем клиентам. Клиент (отправляющий буфер нажатий) при приёме состояния сервера проверяет предсказанные состояния и если они неверны откатывается до последнего удачного предсказанного состояния и заного проигрывает нажатия... Так организуется плавность игры будто всё происходит в локальной сети (для управляемого клиентом объекта)

Пришлось копать код: https://github.com/GenaSG/UnityUnetMovement чтобы понять как реализовать...



Сохраняю инфу о каждом игроке в отдельном файле с определенным интервалом, сохраняю позицию, поворот, состояние персонажа (здоровье, сила и т.д.)

С сохранением инфы о предметах в инвентаре можно сохранить но как это сделать с минимальными потерями производительности? Не на каждый же объект вешать скрипт контролирующий инвентарь?

Re: [uNet] [Client/Server] Инвентарь персонажа

СообщениеДобавлено: 20 окт 2018, 17:40
anomal3
KanycTa писал(а):
anomal3 писал(а):
KanycTa писал(а):а как быть с серверной стороной?

А как сетевое взаимодействие написано? Просто синхронизация картинки у клиентов?
Для сохранения можно использовать БД например SQLite


Использую uNet (LLAPI), держал направление по тутору http://gabrielgambetta.com/client-side-prediction-server-reconciliation.html всё вроде получилось... Клиент симулирует движение на своей стороне и отправляет буфер с нажатиями с интервалом, а на серверной стороне принимаются нажатия и проигрываются а после серверное состояние объекта рассылается всем клиентам. Клиент (отправляющий буфер нажатий) при приёме состояния сервера проверяет предсказанные состояния и если они неверны откатывается до последнего удачного предсказанного состояния и заного проигрывает нажатия... Так организуется плавность игры будто всё происходит в локальной сети (для управляемого клиентом объекта)

Пришлось копать код: https://github.com/GenaSG/UnityUnetMovement чтобы понять как реализовать...



Сохраняю инфу о каждом игроке в отдельном файле с определенным интервалом, сохраняю позицию, поворот, состояние персонажа (здоровье, сила и т.д.)

С сохранением инфы о предметах в инвентаре можно сохранить но как это сделать с минимальными потерями производительности? Не на каждый же объект вешать скрипт контролирующий инвентарь?

На счёт производительности не подскажу, как быстрее. Дам пример. Варез запрещен!
Тестировал на 30 игроков, всё сохраняет прекрасно и без багов. Кстати тоже используется UNet

Re: [uNet] [Client/Server] Инвентарь персонажа

СообщениеДобавлено: 21 окт 2018, 00:07
programmist_derevo
anomal3 писал(а):
KanycTa писал(а):
anomal3 писал(а):На счёт производительности не подскажу, как быстрее. Дам пример.
Тестировал на 30 игроков, всё сохраняет прекрасно и без багов. Кстати тоже используется UNet

Объясните тупому, это вот так просто платный ассет вы выложили на обменник?))) Вроде ж низя :)

Re: [uNet] [Client/Server] Инвентарь персонажа

СообщениеДобавлено: 21 окт 2018, 10:01
anomal3
programmist_derevo писал(а):
anomal3 писал(а):
KanycTa писал(а):
anomal3 писал(а):На счёт производительности не подскажу, как быстрее. Дам пример.
Тестировал на 30 игроков, всё сохраняет прекрасно и без багов. Кстати тоже используется UNet

Варез запрещен так пойдёт?
И это не последняя версия с магазина.

Re: [uNet] [Client/Server] Инвентарь персонажа

СообщениеДобавлено: 21 окт 2018, 12:38
seaman
так пойдёт?

не пойдет...
Объясните ...

Оскорблять тоже не надо.