Показать сообщение отдельно
Старый 14.08.2013, 18:46   #1
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,743
Написано 5,461 полезных сообщений
(для 15,676 пользователей)
Сетевые игры

В-общем пока что хочу сделать просто перемещение (WASD) кубиков-игроков по сети и в перспективе стрельбу шариками. Почему-то мне всегда казалось, что сделать сетевое перемещение это весьма просто. Однако прочитал я вот это:
https://developer.valvesoftware.com/...g_compensation
http://www.racer.nl/tech/multiplayer.html
И был впечатлён.
Переварив в голове прочитанное плюс более ранние знания, я придумал себе такой список действий, чтоб побегать с пацанчиками:

1. Определить понятие NMO — Net Manipulated Objects. То есть то, что может изменяться по сети.
2. Определить понятие Snapshot — "снимок" состояний всех NMO в определённый момент времени.
3. Определить понятие синхронизации. Вести отсчёт по миллисекундам с начала игры (или просто по системным миллисекундам). Например номер снапшота 100 соответствует стольки-то мсек на сервере и стольки-то на клиенте.
4. Определить понятие события. Например "подключился новый игрок" и "среспаунился новый разрушаемый ящик" или "ящик был разбит к чёртовой бабушке".
5. Запилить линейную интерполяцию NMO на клиенте. Время на клиенте всегда на 100 мсек меньше чем на сервере, чтобы было что интерполировать. Например для теста запилить NMO-куб, который будет по кругу летать на сервере и чтоб он отображался на клиенте. Пока без управления со стороны игрока.
6. Запилить игроков и передачу управления на сервер.
7. Запилить предсказание на клиенте и сверку с ответом сервера.

Думаю на начальном этапе от предсказания на клиенте пока можно отказаться (лагать будет управление на 100 мс, но жить можно в принципе, а если игра не FPS, то и вовсе будет незаметно).

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

А также выслушаю ваши предложения относительно организации мультиплеера.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Phantom (16.08.2013)