Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 04.01.2007, 16:42   #1
pipns
Нуждающийся
 
Регистрация: 01.10.2006
Сообщений: 55
Написано одно полезное сообщение
(для 0 участников)
Lan

Кто не будь может написать пример игры со сетью - простой, чтобы не запутаться!? Например мир с двумя кубиками, при этом, чтобы мы их двигали. Заранее спасибо!
(Offline)
 
Ответить с цитированием
Старый 04.01.2007, 22:12   #2
Nunan
Оператор ЭВМ
 
Регистрация: 23.10.2006
Сообщений: 39
Написано одно полезное сообщение
(для 0 участников)
Re: Lan

Я сам пишу понемногу онлайновую игру. Структура сервера игры не такая простая как модет показаться изначально.
Вот как я представляю и делаю сервер:
программа сервера состоит из таких частей:
1) - приём всех входящих посылок
2) - распознование посылок от клиентов:
2.1) - если от зарегистрированного клиента то расшифровка пакета и сохранение в данные сервера (данные об этом клиенте)
2.2) - если от нового клиента то создаётся база его данных.
3) - просчитывание мира
4) - зашифровка (создание) massage (для каждого клиента)
5) - рассылка massage каждому клиенту.

Причем ты должен сделать так чтобы новые клиенты сначало заходили на сервер как гости, потом происходила их регистрация, помом они начинали играть, им присылались все данные о других игроках. Когда игрок уходит то это долно быть тоже продумано. И каждому игроку должны отправляться только данные предназначенные для него!
__________________
NTFS для Mac
(Offline)
 
Ответить с цитированием
Старый 04.01.2007, 22:34   #3
jimon
 
Сообщений: n/a
Re: Lan

Nunan
ето уж слишком поверхносно

притом реальную сетевую архитектуру надо проектировать достаточно долго
обычно очень сильно влияет жанр и стиль игры
 
Ответить с цитированием
Старый 05.01.2007, 02:09   #4
Atomikc
Бывалый
 
Регистрация: 14.12.2006
Сообщений: 811
Написано 93 полезных сообщений
(для 257 пользователей)
Re: Lan

Ну допустим танчики на 5 играков. простенькая игра. Там ведь можно всё и проше сделать. Или нет?
Вот нарыл пару примеров

сервер:

Сервер для сетевой программы (обучение как пользоватся Direct play)
Два шарика и возможность переписки
Извените без пояснений....

Graphics 640,480,32,0
fon=LoadFont("Ms sans Serif",10)
SetFont fon
 
Print "WAITING START NETGAME..." :Delay 1000
 
PK=HostNetGame("Lanx")
If PK<>2 Then End
PLY=CreateNetPlayer("Jim")
 
 
NMT=0
NMF=0
.g
 
 
If RecvNetMsg() Then
NMT=NetMsgType()
NMF=NetMsgFrom()
NMTT=NetMsgTo()
NMD$=NetMsgData$()
 
If nmt=100 Then plu=NMF
 
 
If nmt=2 Then x2=Int(NMD$)
If nmt=3 Then y2=Int(NMD$)
 
 
 
If nmt=5 Then
tot6$=tot5$
tot5$=tot4$
tot4$=tot3$
tot3$=tot2$
tot2$=tot$
tot$=NMD$
End If
 
 
End If
 
count=count+1
If Count=25 Then
SendNetMsg 2,x,ply,plu,0
SendNetMsg 3,y,ply,plu,0
Count=0
End If
 
 
If INPU=0 Then
If KeyDown(30) Then x=x-1
If KeyDown(32) Then x=x+1
If KeyDown(17) Then y=y-1
If KeyDown(31) Then y=y+1
End If
 
If KeyDown(15) Then INPU=1
 
 
 
If inpu=1 Then
s=GetKey()
If s<>0 And s<>9 And s<>8 Then t$=t$+Chr(s)
If s=13 Then SendNetMsg 5,t$,ply,plu,0:t$="":inpu=0
If s=8 Then t$=""
End If
 
 
Cls
Color 255,0,0:Oval x,y,10,10
Color 0,255,0:Oval x2,y2,15,15
Color 255,255,255
If inpu=1 Then Color 0,255,0
Text 10,50,">>>>>> "+t$+" <<<<<"
Text 10,90,Tot$
Text 10,100,tot2$
Text 10,110,tot3$
Text 10,120,tot4$
Text 10,130,tot5$
Text 10,140,tot6$
Color 255,255,255
 
 
Text 10,10,"YOU ID "+ply+" you joint with "+NetPlayerName(PLU)
Flip
 
Goto g
Клиент:
Client для Server DirectPlay (semples)

Тут все поясняется как управлять программой
принцип клиента и сервера по внешнему виду
идентичные даже код похож...
Лиш небольшие различия
(Примечание%) Я подключался так
Два модема один настроен как сервер с IP 197.57.0.1
а другой просто к нему подключается
тот кто сервер тот и запускает прогу сервер
Тот кто клиент соответственно
запускает клиента и указывает IP 197.57.0.1
и все.... Версии програм реально действующие
Сам пробывал... Правда ЛАГАЮТ из за не совершенства кода...


Graphics 640,480,32,2
fon=LoadFont("Ms sans Serif",10)
SetFont fon
 
 
 
.NE
Cls
Print ""
Print " Инструкция по применению."
Print ""
Print " Управление"
Print " [A,S,D,W] - управление шариком в четырех направленияях"
Print " [TAB] - вход в текстовый наборный режим (при етом стрелочки должны загорется зеленым)"
Print " [ENTER] - окончание текстового режима и отправка сообщения на сервер"
Print " [DEL] - удоление строки в текстовом режиме для перепичатования занова"
Print ""
Print ""
Print ""
Print ""
Print ""
Print ""
Print ""
Print ""
Print " Нажмите любую клавишу ..."
;WaitKey()
 
 
IPADDR$=Input ("IP ADDRES LIKE [127.0.0.1]: ")
Print "WAITING START NETGAME..." :Delay 1000
 
PK=JoinNetGame("Lanx",IPADDR$)
If PK<>1 Then Cls:Text 100,100,"SERVER CLOSED. TRY RECONNECT":If Input (" [y/n] ")="y" Then StopNetGame():Goto NE:Else End
 
PLY=CreateNetPlayer("Serg")
 
 
.g
 
 
If RecvNetMsg() Then
NMT=NetMsgType()
NMF=NetMsgFrom()
NMTT=NetMsgTo()
NMD$=NetMsgData$()
 
 
If nmt=100 Then plu=NMF
 
 
If nmt=2 Then x2=Int(NMD$)
If nmt=3 Then y2=Int(NMD$)
 
 
If nmt=5 Then
tot6$=tot5$
tot5$=tot4$
tot4$=tot3$
tot3$=tot2$
tot2$=tot$
tot$=NMD$
End If
 
 
 
End If
 
 
count=count+1
If Count=25 Then
SendNetMsg 2,x,ply,plu,0
SendNetMsg 3,y,ply,plu,0
Count=0
End If
 
 
 
If INPU=0 Then
If KeyDown(30) Then x=x-1
If KeyDown(32) Then x=x+1
If KeyDown(17) Then y=y-1
If KeyDown(31) Then y=y+1
 
End If
 
 
If KeyDown(15) Then INPU=1
 
 
If inpu=1 Then
s=GetKey()
If s<>0 And s<>9 And s<>8 Then t$=t$+Chr(s)
If s=13 Then SendNetMsg 5,t$,ply,plu,0:t$="":inpu=0
If s=8 Then t$=""
End If
 
 
 
Cls
Color 255,0,0:Oval x,y,10,10
Color 0,255,0:Oval x2,y2,15,15
Color 255,255,255
If inpu=1 Then Color 0,255,0
Text 10,50,">>>>>> "+t$+" <<<<<"
Text 10,90,Tot$
Text 10,100,tot2$
Text 10,110,tot3$
Text 10,120,tot4$
Text 10,130,tot5$
Text 10,140,tot6$
Color 255,255,255
 
NAMER$=NetPlayerName(PLU)
Text 10,10,"YOU ID "+ply+" you joint with "+NAMER$
If NAMER$="" Then Cls:Text 100,100,"SERVER CLOSED. TRY RECONNECT":If Input (" [y/n] ")="y" Then StopNetGame():Goto NE:Else End
Flip
 
Goto g
(Offline)
 
Ответить с цитированием
Старый 05.01.2007, 02:12   #5
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Lan

если нужно нечто по круче и соответственно посложнее (правда тоже без комментариев) то прошу заглянуть в раздел незаконченные проекты.
(Offline)
 
Ответить с цитированием
Старый 06.01.2007, 22:18   #6
Freestyler
AnyKey`щик
 
Регистрация: 12.11.2006
Сообщений: 5
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Lan

А как организуется в мультиплеере физика? Вот допустим две сферы и куб, подвержены физике, сферы управляются игроками. Физика просчитывается вся на сервере, и посылается вся инфа клиентам, а у них физики нет вообще? или как?
(Offline)
 
Ответить с цитированием
Старый 06.01.2007, 22:46   #7
jimon
 
Сообщений: n/a
Re: Lan

Freestyler
примерно так
но на клиентах тоже иногда кое че просчитывается дополнительно
 
Ответить с цитированием
Старый 06.01.2007, 22:54   #8
Freestyler
AnyKey`щик
 
Регистрация: 12.11.2006
Сообщений: 5
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Lan

Jimon
Что например?

А как же так не лагает это дело в таких играх как unreal и cellfactor , я понимаю что у них там сильно заморочено по этому поводу, но хотябы принцип.
(Offline)
 
Ответить с цитированием
Старый 07.01.2007, 00:15   #9
jimon
 
Сообщений: n/a
Re: Lan

к примеру в lineage2 идет дополнительная проверка в самой игре чтобы игроки не вылазили

а в таких шутерах очень сильная заморочка с проверками
по сетевому коду unreal'а можно книги писать ...
 
Ответить с цитированием
Старый 07.01.2007, 17:59   #10
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Re: Lan

физика влияющая на геймплей (положение игроков например) на сервере. все остальное и эффекты - на клиентах.
__________________
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com