|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.08.2010, 23:03 | #1 |
Форумчанин
Регистрация: 26.10.2009
Сообщений: 170
|
проблемы сетевой игры
Так...постараюсь сформулировать проблему как можно более яснее, ибо понимаю, что с таким вопросом могу остаться и без ответа...
Я занялся реализацией многопользовательского режима для своего детища. Все вроде бы получилось, но есть некоторые но... Суть игры заключается в следующем: по уровню бегают уродцы, стреляют друг в друга, бросают друг на друга всякие тяжелые камни. Каждым уродцем управляет другой уродец, сидящий за компьютером. Цель игры - перемочить друг друга. Игра в стиле Supaplex, все объекты одного размера, каждый объект занимает определенную ячейку, движущиеся объекты перемещаются с одинаковой скоростью. Программа имеет логический и рендерный циклы, выполняющиеся друг за другом 30 раз в секунду. При нажатии на кнопку уродец поворачивается к нам в профиль и начинает плавное движение, которое заканчивается по истечении заданного интервала времени (0.2 сек), после чего он снова повернут к нам анфас. При движении в логическом цикле происходит перерасчет координат уродца, в зависимости от проиденного количества времени. Пока уродец в движении, он не реагирует на нажатия кнопок. Если зажать кнопку, то будет наблюдаться плавное равномерное движение монстрика, с разворотом в фас только в конце движения, когда мы отпустим кнопку. В сетевом режиме при нажатии кнопки монстрик начинает движение, а на сервер отправляется сообщение о том, что, дескать, уродец начал движение в таком-то направлении (все это касается только уродцев, управляемых людьми). Сервер броадкастит эту мессагу остальным клиентам. Каждый клиент передвигает у себя соответствующего уродца. Все, вроде бы работает, но, вот беда, если человек зажимает кнопку, то его урод начинает двигаться равномерно, а на сервере и у других клиентов появляются проскоки - то есть, уродец движется с "затормозами" и, иногда, может пройти, скажем, 5 шагов вместо положенных 6-ти. Все работает синхронно только, если все жмут на кнопки, не торопясь, без спешки). Да, кстати, клиент, нажавшего на кнопку игрока, шлет сообщения непрерывно, пока нажата кнопка. Соответственно, большая часть сообщений сервером игнорируется, потому что уродец большую часть времени находиться в движении. Вот такие дела, даже и не знаю что тут поделать. Посоветуйте что-нибудь, у кого есть какие идеи. Понимаю, что проблема специфична, но, возможно, кто-то встречался с подобными вещами. Последний раз редактировалось sashonk; 26.08.2010 в 00:45. |
25.08.2010, 23:45 | #2 | |
Форумчанин
Регистрация: 01.09.2009
Сообщений: 197
|
Цитата:
|
|
25.08.2010, 23:55 | #3 |
Участник клуба
Регистрация: 15.01.2010
Сообщений: 1,325
|
Я не уверен, что понял, хотя все объяснено, вроде, нормально. Но нельзя ли опрашивать клавиатуру раз в долю секунды, а не постоянно (соответственно и мессаги отсылать не постоянно, а с определенным интервалом)?
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "[ПРОграммист]" Yan's Home Digital Lab |
26.08.2010, 00:45 | #4 |
Форумчанин
Регистрация: 26.10.2009
Сообщений: 170
|
ну, там как бы так и происходит, что в каждый вызов логического тика поступают обновленные параметры клавиатуры, то бишь опрос происходит 30 раз в секунду.
|
26.08.2010, 00:54 | #5 |
Участник клуба
Регистрация: 15.01.2010
Сообщений: 1,325
|
Может, не так часто делать опрос?
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "[ПРОграммист]" Yan's Home Digital Lab |
26.08.2010, 18:04 | #6 |
Форумчанин
Регистрация: 26.10.2009
Сообщений: 170
|
|
27.08.2010, 01:08 | #7 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 722
|
|
27.08.2010, 21:39 | #8 | |
Форумчанин
Регистрация: 26.10.2009
Сообщений: 170
|
Цитата:
|
|
29.08.2010, 00:25 | #9 | |
Форумчанин
Регистрация: 26.10.2009
Сообщений: 170
|
Цитата:
|
|
29.08.2010, 10:12 | #10 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 722
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Последовательные проблемы с картами(сетевой и звуковой) | st_ | Компьютерное железо | 8 | 18.05.2010 15:32 |
разработка игры "Реверси". Имеется код этой игры на С++ | CD-RW | Помощь студентам | 0 | 28.03.2010 00:13 |
Создание сетевой игры с помощью ТClienSocket, TServerSocket | Vitamine | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 10 | 23.02.2010 18:18 |
ПроблеМы с сетевой картой Realtek 8168c(p)/8111c(p) PCI-E Gigabit Ethernet NIC | Gatto | Компьютерное железо | 11 | 20.11.2009 15:35 |