Форум программистов, компьютерный форум, киберфорум
Программирование игр
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для Toxa33rus
3917 / 918 / 125
Регистрация: 16.04.2009
Сообщений: 1,940

Игра на время в пошаговой онлайн игре. Как учесть пинг и пр.?

25.04.2017, 14:46. Показов 1109. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Ситуация такая: делаем онлайн игру. Для простоты будем считать что нарды.
Процесс игры такой:
1. первый игрок бросает кубики
2. время у него пошло тикать
3. он подумал и сделал ход
4. отправил ход серверу
5. сервер прислал этот ход второму игроку
6. ход прорисовывается
7. время второго игрока начало тикать
8. далее как с п. 1.

Что хотелось бы: придумать механизм, исключающий читерство со временем.

В каких местах можно читерить:
4. при отправке своего хода указывать время чуть меньше чем есть (если вместе с ходом отсылается и его время)
4. раньше времени останавливать свой таймер (если он останавливается при отправке, без ответа сервера)
5. второй игрок включает дурака и говорит что у него большой пинг и делает вид что ход соперника пока еще не получил, но вот-вот получит, хотя он уже давно все получил и думает над своим ходом
6. не отрисовывать ход (отключить анимацию), получив тем самым лишние секунду-две времени (пока чужой ход анимируется - таймер не идет

Какие мысли по решению: почти все пункты (кроме п. 6.) решаются тем, что таймер останавливается и запускается при отправке/получении данных на сервере, но при этом будет преимущество у игрока с меньшим пингом, т.к. разница в пинге будет давать фору на каждом ходе (50 ходов х 50мс = 2,5 сек. с воздуха имеем).
6-й пункт вообще не знаю как исключить т.к. подразумевается что скорость анимации может настраиваться пользователем индивидуально и сервер достоверно не может знать это время (игрок серверу может сообщить что он будет долго смотреть анимацию, а по факту отключит ее).

Игра браузерная, клиент - Javascript, сервер - NodeJS. Так что мухлевать проще простого прям из консоли браузера
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.04.2017, 14:46
Ответы с готовыми решениями:

Когда играешь в онлайн-игры картинка замирает на некоторое время, но действие продолжается в самой игре
История такая. Примерно неделю назад появилась такая картина: когда играешь в онлайн-игры картинка замирает на некоторое время, но действие...

Навигация в пошаговой игре
Создаю пошаговую игру. Минимальная единица времени – тик. Персонаж может передвинуться на соседнюю клетку за 1 тик, но после этого он...

Как можно арендовать сервер для игры в онлайн и как это будет влиять на пинг и скорость
кто подскажит как можно арендовать сервер для игры в онлайн ? для группы и как это будит влиять на пинг и скорость ? если участники все в...

7
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
 Аватар для magirus
28049 / 15785 / 983
Регистрация: 15.09.2009
Сообщений: 67,752
Записей в блоге: 78
25.04.2017, 14:49
считайте время на стороне сервера - проблемы с пингом или вообще инетом клиента - его проблемы.
0
 Аватар для Toxa33rus
3917 / 918 / 125
Регистрация: 16.04.2009
Сообщений: 1,940
25.04.2017, 15:04  [ТС]
Цитата Сообщение от magirus Посмотреть сообщение
считайте время на стороне сервера
Скорее всего так и будет, хотя было бы неплохо предусмотреть какую-то поправку на пинг.
А как реализовать анимацию хода, чтоб при этом таймер не шел?

Для сервера это будет выглядеть так: я отправил состояние в т0, получил ответ в т1, значит игрок думал т1-т0. Но из этого времени часть занимает время анимации. И не известно сколько.

Добавлено через 8 минут
Придумал такую штуку: игра будет как на время, так и без учета времени (при создании указывается).
Так может если игра на время, то по-умолчанию отключать всю анимацию?
0
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
 Аватар для magirus
28049 / 15785 / 983
Регистрация: 15.09.2009
Сообщений: 67,752
Записей в блоге: 78
25.04.2017, 15:06
при чем тут анимация и время ответа?
0
 Аватар для Toxa33rus
3917 / 918 / 125
Регистрация: 16.04.2009
Сообщений: 1,940
25.04.2017, 15:10  [ТС]
Цитата Сообщение от magirus Посмотреть сообщение
при чем тут анимация и время ответа?
Соперник сделал ход, я его сначала смотрю (анимация), а потом начинаю думать (время пошло). Пока я смотрю на чужой ход, мой таймер не должен идти. А смотрю я на чужой ход не в реальном времени, а когда он окончательно сделан. Т.е. при анимации таймер не идет не у меня (я еще не знаю что будет на поле и не могу начать думать), не у соперника (он уже сделал ход и ждет мой).
0
9036 / 2937 / 493
Регистрация: 05.10.2013
Сообщений: 7,960
Записей в блоге: 216
25.04.2017, 20:06
Toxa33rus, вы затронули очень сложные вопросы, некоторые из них подробно описаны в книгах:
И в примере статьи:
1
 Аватар для Toxa33rus
3917 / 918 / 125
Регистрация: 16.04.2009
Сообщений: 1,940
26.04.2017, 10:01  [ТС]
8Observer8, а есть такое же но на русском?
0
9036 / 2937 / 493
Регистрация: 05.10.2013
Сообщений: 7,960
Записей в блоге: 216
26.04.2017, 12:21
На русском вообще ничего не удалось найти. Даже на английском почему-то очень мало достойной информации.

Есть ещё вот такие пошаговые уроки, но в них не затрагиваются ваши вопросы, они для первого знакомства с мультиплеером на Node.js: http://rainingchain.com/tutorial/nodejs
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.04.2017, 12:21
Помогаю со студенческими работами здесь

Мини онлайн бот для накрутки онлайн-времени в игре
Я играю в игру сайтовую там раз в 2 часа можно получить монетки. У меня вопрос как сделать онлайн бот который бы заходил на...

Мини онлайн бот для накрутки онлайн-времени в игре
Не закрывайте тему))) Мне просто интересно как сделать онлайн бот не накрутчик))) Бот который соединялся с...

Как узнать массив байт онлайн игре!
Доброго времени суток светлые головы!!! Помогите разобраться вот в чем,есть игра на эмуляторе Memu,в данной онлайн игре множество разных...

пинг в игре
Всем привет. У меня есть одна проблемка, сейчас расскажу) Может кто-нибудь сможет помочь. Я играю в онлайн игру и имею пинг (с московскими...

Как сделать счёт очков в игре "Пинг-понг"?
Подскажите, пожалуйста, как сделать счёт очков в игре пинг-понг на делфи. Совсем уже голова не варит:( а скоро сдавать игру


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru