Форум программистов, компьютерный форум, киберфорум
Программирование мультимедиа
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 1 / 1
Регистрация: 23.08.2015
Сообщений: 67
1

Организация сетевого шутера

07.04.2016, 05:41. Просмотров 624. Ответов 17
Метки нет (Все метки)

Всем привет!
Вопрос возник следующий: как грамотнее реализовать перемещение и стрельбу игроков на сервере? Есть идея сделать это передачей координат и направления, но уже предвижу множество проблем.
Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2016, 05:41
Ответы с готовыми решениями:

Организация сетевого приложения на Java
Требуется создать систему тестирования. Имеется серверное приложение, работающее с БД (MySQL),...

Организация прямого сетевого взаимодействия между устройствами
Здравствуйте. Сабж. Например для медиа связи. Учитывая, что адреса у мобильных устройств...

Организация сетевого приложения, в основе которого БД MS SQL
Доброго времени суток, вопрос такой мне нужно написать базу данных которая будет работать в сети на...

Организация сетевого хранилища с возможностью работать с ним из Проводника
Всем привет. Давно мечтаю о сетевом хранилище... да, собственно, оно у меня уже и есть. Из...

17
4546 / 3764 / 1260
Регистрация: 14.04.2014
Сообщений: 17,490
Записей в блоге: 18
07.04.2016, 09:41 2
да, вот именно эти проблемы и нужно решить
0
1 / 1 / 1
Регистрация: 23.08.2015
Сообщений: 67
11.04.2016, 03:54  [ТС] 3
krapotkin, не понимаю, если подсказать было нечего, зачем оставлять подобный ответ?
0
4546 / 3764 / 1260
Регистрация: 14.04.2014
Сообщений: 17,490
Записей в блоге: 18
11.04.2016, 09:13 4
а что тут подсказывать?
нужно организовать связь через сокеты на сервер, по ним будут передаваться координаты и все остальное
сервер определяет группы игроков и всей группе как можно чаще пересылает координаты и статус остальных членов группы
0
1 / 1 / 1
Регистрация: 23.08.2015
Сообщений: 67
11.04.2016, 09:19  [ТС] 5
krapotkin, дело не в самой передаче снимков или событий, а в том, как минимизировать проблемы задержек. Если ограничиться простой передачей координат и направления, то в конечном итоге игроки будут бегать дёрганно и упираться в стены. Вопрос в том, как эффективнее реализовать обработку этой инфы клиентами, и как вообще лучше говорить о состоянии игроков. Возможно переача позиции и направления не самая лучшая идея.
0
4546 / 3764 / 1260
Регистрация: 14.04.2014
Сообщений: 17,490
Записей в блоге: 18
11.04.2016, 09:29 6
так вот об этом и надо было спрашивать?

формально нет никакой возможности повлиять на этот процесс. Пока не пришла новая команда, игрок выполняет предыдущее действие, в предыдущем направлении
А почему игроки будут бегать дерганно и упираться в стены? Какая задержка будет достаточной для игры?
Думаю, тут только эксперимент даст ответ
0
53 / 23 / 5
Регистрация: 21.02.2016
Сообщений: 234
11.04.2016, 09:47 7
у меня вопрос первый,- а есть ли ваще игра написанная? и для начала надо знать как передавать переменные онлайн между программами .ехе

Я вот не знаю,и создал тему,чтобы сделали управление кубом по интернету ,Задание куб онлайн

у вас разговор парадоксальный,может игры еще нет,а человек уже думает о сервере )

скриншот покажи че там за игра
0
1 / 1 / 1
Регистрация: 23.08.2015
Сообщений: 67
11.04.2016, 10:42  [ТС] 8
Detektor, у меня подход следующий: сначала я продумываю проект на бумаге. Затем я его создаю. При таком подходе у меня на этапе реализации меньше головной боли, и меньше проблем в будущем. У меня многое предусмотрено заранее.
И именно сейчас было бы еще более глупее сначала писать игру, а затем бегать по форумам с вопросами о том, что планировалось сделать изначально.
UPD: у меня уже есть мультиплеерные проекты. Но здесь конкретный реалтайм. Поэтому подход к реализации нужен жесткий.
0
2050 / 1525 / 167
Регистрация: 14.12.2014
Сообщений: 13,326
11.04.2016, 10:54 9
Цитата Сообщение от MoteX Посмотреть сообщение
Есть идея сделать это передачей координат и направления, но уже предвижу множество проблем.
Если хочешь избежать читерства то подход должен быть немного другой - на сервер передаются клавиши и координаты (или смещения) мыши. А вот уже с сервера клиентам раздаются их координаты и направления, а так же направления и остальные параметры пуль в момент старта. Определение попадания пули тоже на сервере. А просчет траектории как на сервере, для определения попадания, так и на клиенте при необходимости отрисовки трассера, чтобы весь набор координат траектории не гонять туда-сюда для всех пуль.
0
2 / 2 / 0
Регистрация: 18.02.2016
Сообщений: 9
11.04.2016, 15:07 10
Слишком большая нагрузка на сервер тогда получается. В кратце, можно поступить так:
За определённое время серверу и с сервера всем кидать "кадры ключи" по TCP: это позиция и направление игрока, а так же какое-то состояние (например, игрок сидит, лежит или какое либо ещё), но состояние стрельбы здесь лучше не передовать — этот ключ наверняка устарел, и нужен для подгонки, если пинг очень низкий.
По UDP передавать чаще надо такие ключи. Тем не менее, нужны также пакеты с изменением любого состояния: игрок начал движение — сообщи об этом остальным, чтобы началась анимация движения, а потом как можно чаще передавай пакеты позиций. Игрок начал стрелять — сообщи остальным, как можно чаще передавая пакеты направления. И так далее. И главное, обязательно в пакеты нужно оставлять временные метки, чтобы не применять старые пакеты.
На самом деле, можно заглушить читерство простой проверкой скорости передвижений игрока и тому подобным, но вот, чтобы сервер вычеслял всё... Это уже слишком.
Можно также делать разные проверки и на клиенте.
0
2050 / 1525 / 167
Регистрация: 14.12.2014
Сообщений: 13,326
11.04.2016, 15:23 11
Цитата Сообщение от GrWolf Посмотреть сообщение
Слишком большая нагрузка на сервер тогда получается.
Зато читы устранены, да и серверу все равно всю модель физики, игровой логики и ИИ мобов считать. Кстати по снифу протоколов движков свежих MMORG все так и пашет. туда клавиши при нажатии/отпускании оттуда координаты/состояния перса при изменении. По мобам даются начальные координаты/состояния, а потом они считаются на каждом клиенте. Какое либо изменение состояния мобов типа попал в него и он помер тоже с сервера присылается.
А иначе будут под землей прятаться и с Макарыча стрелять с точностью СВД и скорострельностью Вулкана термоядерными боеприпасами.
0
2 / 2 / 0
Регистрация: 18.02.2016
Сообщений: 9
11.04.2016, 15:30 12
Так идёт просчёт в мморпг, а не в шутерах. Более того, чтобы снизить нагрузку, клавиши туда точно не отправляется. Ты просто представь, сколько всего серверу надо будет обрабатывать? Сервер в принципе не должен этим заниматься в шутерах. Единственное, что ему нужно делать — передавать геймплейные ключи, проверять и пересылать ключи игроков. Этого вполне достаточно. А то похоже у кого-то сильная ненависть к читерам, и хочется сделать сервер без возможности читерства вообще. Но, как уже я говорил, это слишком большая цена.
0
2050 / 1525 / 167
Регистрация: 14.12.2014
Сообщений: 13,326
11.04.2016, 15:42 13
Цитата Сообщение от GrWolf Посмотреть сообщение
Так идёт просчёт в мморпг, а не в шутерах
То же самое в картошке (варгаминовских игрухах). при этом даже траектории чужих снарядлрв оттуда. Проверял. при отвале связи остаются только свои траектории и корабль неподвижен.
Цитата Сообщение от GrWolf Посмотреть сообщение
Ты просто представь, сколько всего серверу надо будет обрабатывать? Сервер в принципе не должен этим заниматься в шутерах. Единственное, что ему нужно делать — передавать геймплейные ключи, проверять и пересылать ключи игроков. Этого вполне достаточно.
Централизованно обрабатывать модель гораздо удобнее. При этом в ценах на электронику есть такой ньюанс что стоимость 100 вычислительных модулей Keppler купленных одним заказом равна стоимости 10 Keppler купленных по одному. Вообще насколько знаю уже ведутся разработки облачных игровых клиентов. Т.е. отрисовка на сервере, с клиента только клавиши, а ему стрим видео.

Добавлено через 5 минут
Цитата Сообщение от GrWolf Посмотреть сообщение
Так идёт просчёт в мморпг, а не в шутерах.
MMORG это тоже шутер, только не на 32 человека на локации, а на 32 тысячи как минимум + более развитая система итемов
0
2 / 2 / 0
Регистрация: 18.02.2016
Сообщений: 9
11.04.2016, 15:48 14
ММОРПГ — шутер?.. Кхм. Где ты такую информацию нашёл? Да, бывают MMOFPS, но чтобы так...

В общем, автору:
Расчитывай схему на такой основе:
Мощность, скорость, максимальный траффик сервера; минимальная скорость, пинг, мощность клиента.
В зависимости от этих параметров и нужно подгонять определённую схему.
0
1 / 1 / 1
Регистрация: 23.08.2015
Сообщений: 67
11.04.2016, 16:01  [ТС] 15
GrWolf, Я тебя понял) В принципе схожая идея:
Собираем состояние всех данных клиентов, и делаем так сказать снимок изменений для играющих, или полный снимок для только зашедших. Сюда входят Позиции игроков и тд. Это делать можно раз в какой то промежуток времени.
А вот выстрелы к примеру сделать событиями. При выстреле сервер не ждет лепки снимка, а сразу раскидывает всем сообщение о том, что игрок выстрелил.
Отсюда есть один нюанс, который пока больше всего меня волнует. Сделать показ собственных выстрелов как в баттле, или как в квейке? В первом случае игрок видит просто как стреляет он, а во втором случае он не видит собственного выстрела сразу, а только тогда, когда он придет с сервера. Хотя второй вариант мне меньше нравится.
0
2050 / 1525 / 167
Регистрация: 14.12.2014
Сообщений: 13,326
11.04.2016, 16:03 16
Цитата Сообщение от GrWolf Посмотреть сообщение
ММОРПГ — шутер?.. Кхм. Где ты такую информацию нашёл? Да, бывают MMOFPS, но чтобы так...
По сюжету не сосем шутер, или в малой доли шутер, а по технической стороне вопроса шутер + еще много чего
0
2 / 2 / 0
Регистрация: 18.02.2016
Сообщений: 9
11.04.2016, 16:05 17
Обычно идёт звук и анимация выстрела сразу, не зависимо, пришёл ли ответ с сервера. А вот эффекты и далее — только после ответа.

Добавлено через 2 минуты
Fulcrum_013, как раз таки нет. Есть разновидности и того и другого, которые могут быть похожи. Но в целом шутеры и мморпг сильно отличаются как технически, так и по геймплею.
0
2050 / 1525 / 167
Регистрация: 14.12.2014
Сообщений: 13,326
11.04.2016, 16:41 18
Цитата Сообщение от GrWolf Посмотреть сообщение
Но в целом шутеры и мморпг сильно отличаются как технически
Естественно. Потому как ММОРГ технически это шутер очень большого масштаба, плюс еще куча всего чего в шутере нет. И если в таких масштабах нагрузка на сервер позволяет всю физику на сервере считать, то в меньших, с резко ограниченным числом клиентов в игровой комнате, и подавно. Опять же, шутеры с движками 5-летней давности (Worlds Of ... к примеру) всю модель считают на сервере. С клиента только приходят клавиши.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.04.2016, 16:41

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

Помогите вспомнить название шутера
Здравствуйте!!!! Помогите плиззззз!!!! ни как не могу вспомнить название игры((((((:wall:%-). Игра...

Выходит обновление для шутера Quake 4
Всем любителям шутера Quake 4 самое время зарезервировать 300 мегабайт Интернет-трафика на закачку...

Возможно ли написать wallhack для шутера?
Возможно ли написать wh на vb.net для шутера? Примеры в студию,если это так.

Глобальный онлайн эксперимент - создание супер 3D шутера !
Я вот тут затылок почесал на днях и подумал... Всё равно эта ветка гниёт и в основном вся движуха...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.