forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   СЕТЬ...СЕТЬ...СЕТЬ... (http://forum.boolean.name/showthread.php?t=2976)

ЛысыЙ_Чук-Иванчук 18.03.2007 10:24

СЕТЬ...СЕТЬ...СЕТЬ...
 
ПОчему в 3д программировании, потомучто я делаю 3д игру(хотя:) )
Вот вопросы которые мне непонятны(хочется уточнить)
1-Сколько раз в секунду передавать данные главного героя(по лан, инет)
2-Я незнаю можно ли делать стрелялку :hunter: по инету(изночально расчитаную на низкую скорость передачи данных~3-5 кб/сек)
3-Для стрелялки мне непонятен вопрос(выстрела:hunter: ), где его проверять, я думаю делать так: Нажал игрок и на сервер передается что нажат выстрел, затем на серваке проверять попал-ли в кого:4to:
3-Ктонить делал чтонибуть по интернету(ну игру всмысле), скажите как вообще можно чтонить замутить(я хочу делать рпг, но у меня есть сомнения насчет её играбельности)

HolyDel 18.03.2007 10:55

Re: СЕТЬ...СЕТЬ...СЕТЬ...
 
1. зависит от игры
2. зависит от игры
3.1 зависит от игры. если делаеш пиками (а скорее всего пиками, т.к. из лука стреляться неинтересно) то проверяеш, если вражина пикнулась, то отнимаеш определенное кол-во енергии и отправляеш сообщение, что енергия отнялась у конкретной вражины всем игрокам,
3.2 кто нибудь да делал.

Progger_Leo 18.03.2007 11:44

Re: СЕТЬ...СЕТЬ...СЕТЬ...
 
Насчет второго: Юзай UDP ;)

ЛысыЙ_Чук-Иванчук 18.03.2007 14:11

Re: СЕТЬ...СЕТЬ...СЕТЬ...
 
Цитата:

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

Я думал так делать:)(но есть прикол, если у клиента вдруг уподет скорость, а в етот момент от какрас убил когонибуть(то тот кого убили ешо может натворить делов, хотя имхо это самый нормальный способ))

Цитата:

Насчет второго: Юзай UDP ;)
4-А что у неё скорость передачи данных повыше???
5-Сейчас я проверяю на одном компе(может на разных такого не будет), но если много передавать то сервер перегружается и наченает отстовать, а если передовать мало- то на клиенте все дребезжит, короче чет я не в ту сторону поехал, как лутше передовать положение игроков(все в одну кучу и потом разберать где X,y,z pitch, yaw, roll:) или по отдельности????) наверно тупо объяснил....
Мона любой примерчик по UDP (хоть нерабочий, ато в хелпе ниха непонятно;))

HolyDel 18.03.2007 18:48

Re: СЕТЬ...СЕТЬ...СЕТЬ...
 
собирать в кучу

ЛысыЙ_Чук-Иванчук 18.03.2007 22:00

Re: СЕТЬ...СЕТЬ...СЕТЬ...
 
Я тут подумал о методах отправки сообщения, поскольку скорость не ахти. Если на клиенте нажата кнопка вперед то игрок двигается на определенное значение и отправляется 1, ели сервер получает 1 то тоже двигает его. Но тут может(как мне кажется) произойти разсинхронизация так как могут некоторые недойти, и по этому поводу каждые Допустим- 5сек будут отправлятся с сервера (x,y,z) а каждые 10сек(pitch,yaw,roll) ну примерно так.
Скажите как такой метод(стоит ли его использовать), или есть что поумнее? :)

HolyDel 18.03.2007 22:08

Re: СЕТЬ...СЕТЬ...СЕТЬ...
 
try
...
except
...

то, что пакет не дойдет ето мало вероятно, а вто то что если игра будет чуть чуть подвисать, то пойдут баги - это да.
Рывки будут, с удивительной регулярностью причем, в 5 и 10 сек соответственно ;)

axel186 19.03.2007 01:23

Re: СЕТЬ...СЕТЬ...СЕТЬ...
 
хее , но если вы не заметили это во всех играх так! =) Во всех подвисает немного..

ЛысыЙ_Чук-Иванчук 19.03.2007 22:18

Re: СЕТЬ...СЕТЬ...СЕТЬ...
 
Чтото я недогоняю, до того момента как я использую камеру или 3д режим или даже просто пишу
в цикле text 20,20... скорость передаци бешаная(передачи сообщений), как только я их
исползовал ВСЕ тормоза конкретные.
Вот пример:
а=1 создать сервер
а=2 подключить тормозного
а=3 подключить быстрого :)
PS\ Может это из-за того что я тестю на одном компе?


Цитата:

a=1 ;Тип игры 1-сервер, 2-тормозной клиент, 3-нормальный ;)


If a=1
Geme=HostNetGame("VLAD"); СОЗДАЕМ СЕРВАК
myid=CreateNetPlayer("m01")
While Not KeyDown( 1 )
If KeyDown(57)
time=MilliSecs()
SendNetMsg 2,"ghghghghghgasfasdfasdfasdof[ofj[wnfmqwpofnmweomfqwiojgfsd;hgsdhgh;sdghgh",myid,0,0
EndIf
If RecvNetMsg() And NetMsgType()=2
Print "down_"+ (MilliSecs()-time)
EndIf
If MouseDown(1)
time5=MilliSecs()
SendNetMsg 55,"1",myid,0,0
EndIf
If RecvNetMsg() And NetMsgType()=55
Print "mouse_down_"+ (MilliSecs()-time5)
EndIf
If MouseDown(2)
time5=MilliSecs()
SendNetMsg 66,"",myid,0,0
EndIf
If RecvNetMsg() And NetMsgType()=66
Print "_______"+ (MilliSecs()-time5)
EndIf
Wend
End
ElseIf a=2;000000000000000000000 ЕТО ТОРМОЗНОЙ
netGame=JoinNetGame("VLAD","127.0.0.1")
myid=CreateNetPlayer("m011")
Graphics3D 640,480,32,2
SetBuffer BackBuffer()
cam=CreateCamera()
af$=0
While Not KeyDown( 1 )
If RecvNetMsg() And NetMsgType()=2
SendNetMsg 2,"",myid,0,0
af=NetMsgData()
EndIf
If RecvNetMsg() And NetMsgType()=55 SendNetMsg 55,"1",myid,0,0
If RecvNetMsg() And NetMsgType()=66 SendNetMsg 66,"",myid,0,0

RenderWorld
Text 20,20,"text-"+af
Flip
Wend

ElseIf a=3; жжжжжжжжжжжжжж ЕТО НОРМАЛЬНЫЙ
netGame=JoinNetGame("VLAD","127.0.0.1")
myid=CreateNetPlayer("m011323")
af$=0
While Not KeyDown( 1 )
If RecvNetMsg() And NetMsgType()=2
SendNetMsg 2,"",myid,0,0
af=NetMsgData()
EndIf
If RecvNetMsg() And NetMsgType()=55 SendNetMsg 55,"1",myid,0,0
If RecvNetMsg() And NetMsgType()=66 SendNetMsg 66,"",myid,0,0


;Text 20,20,"text-"+af
Wend




Часовой пояс GMT +4, время: 04:39.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot