Salve a tutti.
Vorrei creare un gioco multiplayer dove i giocatori si connettono ad una rete che non e' LAN o locale.
Chiaramente per una connessione Lan non ho trovato problemi ed infatti sono riuscito a creare questo tipo di collegamento senza troppi patemi.
A questo punto mi domando:
1) Per essere raggiunto in rete ho bisogno di un server esterno e quindi devo acquistare qualche servizio di game server?
2)Devo impostare un IP statico?
chiaramente i listati che seguono sono solo un piccolo esempio e funzionano in LAN
Adesso in pratica, vorrei che con questo esempio, i giocatori potessero comunicare fuori da una rete Lan
ed eventualmente sapere tutto quello che serve perche' la magia avvenga
Ringrazio chiunque puo' aiutarmi a risolvere il dilemma
GRAZIE!!!!!
Rickyes
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
listato
Host:
SetVirtualResolution( 640, 960 )
SetResolutionMode(1)
net=HostNetwork("192.168.0.103","host",48230)
AddVirtualButton(1,200,200,50)
AddVirtualButton(2,100,200,50)
AddVirtualButton(3,100,300,50)
AddVirtualButton(4,100,400,50)
///
LoadImage(1,"Square.png")
CreateSprite(1,1)
LoadImage(2,"Square.png")
CreateSprite(2,2)
SetSpriteColor(2,0,255,0,255)
do
Sync()
print("PROGRAMMA HOST")
Print("Network ID is " + Str(net))
Print("Device IP is " + GetDeviceIP())
Print("Server ID is " + str (GetNetworkServerID(net)))
Print("Client ID is " + str (GetNetworkMyClientID(net)))
gosub internet
if GetVirtualButtonState(1)=1 then xx=xx +1
if GetVirtualButtonState(2)=1 then xx=xx -1
if GetVirtualButtonState(3)=1 then yy=yy -1
if GetVirtualButtonState(4)=1 then yy=yy +1
loop
internet:
msg2=CreateNetworkMessage()
msg=GetNetworkMessage(net)
if msg <> 0
x=GetNetworkMessageInteger(msg)
y=GetNetworkMessageInteger(msg)
name$=GetNetworkMessageString(msg)
AddNetworkMessageInteger(msg2,xx)
AddNetworkMessageInteger(msg2,yy)
SendNetworkMessage(net,0,msg2)
DeleteNetworkMessage(msg2)
DeleteNetworkMessage(msg)
endif
SetSpritePosition(1,x,y)
SetSpritePosition(2,xx,yy)
print(name$)
return
----------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------
Listato
Cliente:
SetVirtualResolution( 640, 960 )
SetResolutionMode(1)
net=JoinNetwork("192.168.0.103",48230,"client")
AddVirtualButton(1,200,200,50)
AddVirtualButton(2,100,200,50)
AddVirtualButton(3,100,300,50)
AddVirtualButton(4,100,400,50)
AddVirtualButton(5,100,600,50)
///
LoadImage(1,"Square.png")
CreateSprite(1,1)
LoadImage(2,"Square.png")
CreateSprite(2,2)
SetSpriteColor(2,0,255,0,255)
xx=xx
yy=yy
do
Sync()
print("PROGRAMMA CLIENTE")
Print("Network ID is " + Str(net))
Print("Device IP is " + GetDeviceIP())
Print("Server ID is " + str (GetNetworkServerID(net)))
Print("Client ID is " + str (GetNetworkMyClientID(net)))
gosub internet
if GetVirtualButtonState(1)=1 then x=x +1
if GetVirtualButtonState(2)=1 then x=x -1
if GetVirtualButtonState(3)=1 then y=y -1
if GetVirtualButtonState(4)=1 then y=y +1
if GetVirtualButtonState(5)=1 then end
loop
internet:
msg=CreateNetworkMessage()
msg2=GetNetworkMessage(net)
AddNetworkMessageInteger(msg,x)
AddNetworkMessageInteger(msg,y)
AddNetworkMessageString(msg,"Cliente")
xx=GetNetworkMessageInteger(msg2)
yy=GetNetworkMessageInteger(msg2)
SendNetworkMessage(net,0,msg)
DeleteNetworkMessage(msg2)
DeleteNetworkMessage(msg)
//in aggiunta
SetSpritePosition(1,x,y)
SetSpritePosition(2,xx,yy)
//fine
return