doom2d.org

Главная база плоских морпехов
It is currently 05 Mar 2024, 03:40

All times are UTC + 3 hours




Post new topic Reply to topic  [ 2 posts ] 
Author Message
PostPosted: 02 Mar 2023, 01:38 
Offline
Принципиально неуничтожаем
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 6650
Location: Владивосток
Реквест заведомо очень масштабный, поэтому пишу его сразу в "Наркоманию".

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

Загрузка игры должна быть доступна только серверу. При этом он должен иметь возможность загружать и сохранения, сделанные в одиночной игре.
Например, если кто-то начал проходить мегавад в одиночку, а затем понял, что с друзьями ему это делать было бы веселее.
Кроме того, такая возможность явно необходима для постепенного (с перерывами) прохождения огромных мегавадов вроде Timewall.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 09 Feb 2024, 01:29 
Offline
Приколист
User avatar

Joined: 04 Feb 2010, 14:42
Posts: 854
Location: Equestria
Провёл эксперимент. С минимум изменений криво-косо, но работает. Загрузка выглядит как смена карты. Так что не такая уж и наркомания.
Все (малочисленные) изменения пока что у меня локально.

Что надо исправить:
- Сетевые игроки ломаются - ничего нельзя сделать (надо перезаходить).
- Если загружается другая карта, то клиенту отдаётся неправильное имя карты. Наверно криво восстанавливаются настройки игры.
- Сетевые сохранения не загружаются в одиночке, одиночные сохранения некорректно загружаются в сетевой игре.
- Правильно исключить шатдаун сервера при загрузке.

Что надо дополнительно сделать:
- Во время загрузки надо привязывать сохранённых игроков к имеющимся на сервере. Для простоты - по нику или рандомно. Потом можно сделать привязку по какому-нибудь уникальному идентификатору. Непривязанных игроков убивать.
- Добавить в меню загрузку/сохранение (на сервере)
- Сетевые сохранки ложить в отдельное место. Как минимум для безголового имеет смысл, с сервером на клиенте - вопрос дискуссионный.
- Уведомлять клиентов о сохранении/загрузке (тупо гадить в чат или добавить специальную нотификацию)

Комментарий ar888:
Code:
tg: <ar888> И надо как-то ещё определять кто за какого игрока будет, при загрузке
tg: <ar888> Возможно было бы хорошо так:
tg: <ar888> 1) При запуске сохранения на сервере игра вешается на паузу.
tg: <ar888> 2) Все игроки в этот момент могут листать точки появления. Например, если на сохранении было 2 игрока, то при загрузке доступно выбрать первого игрока, второго игрока или точки старта игроков. Не надо ограничивать с какой точки можно начинать. То есть могут все появится на точке первого игрока в сохранении. Всё можно решить в чате.
tg: <ar888> 3) После выбора точки спауна игрок переходит к готовности. И когда все игроки определились, игра снимается с паузы.
tg: <ar888> 4) Всем игрокам, выбравшим точки игроков передаётся их инвентарь из сохранения. Если одна из точек была не выбрана, то такой игрок считается убитым. На его месте спаунится труп и выбрасываются все его предметы.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 

All times are UTC + 3 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
doom2d.org, since 2005