Hejsan jag har gjort ett VÄLDIGT simpelt multiplayer spel, man spelar 1vs1 online. Man styr två olika gubbar. Mer kan man inte göra ännu. Använder du UDP eller TCP? jag använder mig av TCP. så du menar att udp borde gå fortare? När du ska köra udp så använder du kontrollen på ett helt annat sätt... Kolla i msdn-dokumentationen för kontrollen för beskrivning okej! har läst lite men fattar inte riktigt, tycker msdn är väldigt rörigt. <code> sådär tackar! hade fått de och funkar precis innan, men connectionrequest behövs ju inte när det är udp, eftersom någon anslutning aldrig upprättas utan den bara skickar snabbt, eller klart de blir en anslutning men inte speciellt länge. Jag är nyfiken på dit spel. Kan du inte lägga upp ditt spel här på Pellesoft. Så kan vi andra ta del av din källkod och komma med synpunkter och tips. jovisst skulle jag kunna göra det, just nu är det endå så extremt simpelt! man styr två fyrkanter som åker omkring, mycket mer är det inte än så länge. Men man kan ju bygga vidare på det, de hade jag tänkt. Du behöver bara lägga till: Annars, om du vill köra tcp/ip (för att undvika bekymmer) så kan du se till att du inte bara hoppar omkring fyrkanterna utan istället hela tiden försöker anta vad motspelaren kommer att göra samt att försöka göra lite mjuka övergångar mellan den position du har sparade i minnet samt den positionen du nyss fick.winsock laggar?
När jag testar det på nätverket fungerar det finemang. Men när jag kör det på över Internet med en kompis så laggar det. Jag har känslan över att winsocket laggar, eller rättare den hinner inte skicka all data hela tiden. Det fungerar så att den skickar kordenaterna på ena gubben till den andra spelarens dator och där flyttas då gubben efter kordenaterna, och så likadant för andra gubben fast tvärtom. Och om då winsock inte riktigt hänger med att skicka allt så kan den ju "hoppa över" vissa kordenater och de ser då ut som lagg.
Hur får jag winsock att inte lagga? Menar den skickar ju ba en textsnutt på ca 20 tecken såfort man rör sig. Det borde ju klaras.Sv: winsock laggar?
TCP är slöare och säkrare än UDP eftersom TCP verifierar att datan verkligen har kommit fram.
/MickeSv: winsock laggar?
förresten, om jag kör udp när jag kör winsock.listen så kommer felmess,
wrong protocol or transfer...nått liknande
iofs så skickar den data var 30 millisekund, men datan ser ut så här:
01 2 56 608, där 01 står för att de är ett move kommando, 2 för vilken gubbe som ska flyttas hos mottageren, 56 för gubbens x axel och 608 för y axeln. Så det borde fan inte ta många bytes.Sv: winsock laggar?
Sv: winsock laggar?
Nån som vet hur jag ansluter/taremot/skickar data med winsock udp-protocol?Sv: winsock laggar?
'Server
sckServer.Bind 500
Private Sub sckClient_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
sckClient.GetData strData
MsgBox strData
End Sub
'Client
sckClient.Connect "127.0.0.1", 500
sckClient.SendData "hej"
</code>
Det är allt som behövs.
/MickeSv: winsock laggar?
En sak till, hur kollar jag nu ifall motspelaren stänger ner spelet? förut kom det ju ett errmsg som lydde:
wrong protocol or connection...eller nått i den stilen, det kunde man ju bygga vidare på. Men nu får man inget felmess alls utan allt bara fortsätter. Blir jag tvungen att hålla en tcp koppling för att kolla det eller?Sv: winsock laggar?
Fördelen med "öppen" källkod. Nackdelen är ju at folk kan ta den och utge sig för att vara författaren av den.Sv: winsock laggar?
Kom på hur jag kan kolla om ena disconnectar. Jag har en timer som körs typ var 3e sekund, den skicka typ nått som pingar, och får den inte svar så har den andra disconnectat.Sv: winsock laggar?
"objektnamn-på-din-winsock-kontroll".close i winsockhändelsen Close
Men om du prompt vill använda ett kommando så kan du väl bara använda något i stil med:
"R_ExitAPP" eller liknande.
Och helt enkelt kontrollera med te.x:
if instr(1,strInData,Kommando,vbtextcompare) then
ja, det du nu vill göra
end ifSv: winsock laggar?