Multiplayer Spel och nätverks trafik C#, XNA och Lidgren
Jag har sedan en tid tillbaka skrivit lite på ett spel i XNA i syftet att lära mig programmera och har nu kommit en bit, men så bestämde jag mig för att jag vill skriva in multiplayer med, läste på lite om hur UDP och TCP funkar, men insåg att det blir alldelles för mycke för mig att lära för att bara få små funktioner att fungera så tänkte att till just det kan jag använda Lidgren, vilket jag också har fått att fungera nu, till viss del iallafall.
Men sen så dök ju såklart lite problem upp med och det va därför jag tänkte skriva tråden här.
Det första problemet jag stötte på va att Servern och clienten blev lite osynkade, då clienten målar upp allting i 60fps och servern gör alla uträkningar med 30ms mellanrum(testade även 33, 16 och 17).
För att förtydliga då så kör jag En server tråd, även om man bara är en spelare, detta för att förenkla att skriva in för andra clienter med. men när clieten försöker måla i 60fps så blir movement av mobs osv ojämnt/hackigt eftersom att mobsen går inte synkat med clienten, min idée här är iallafall att skriva om ett variabelt timestep för servern så den uppdaterar på 60/per sekund med, sen tänkte jag göra något i stil med att jag skickar position + "påväg till" position till clienten, sen får båda två räkna ut det själva, baserat på tex tid, och försöka göra någon typ av felcheck med för vart moben egentligen är osv.
Men som sagt Hur brukar man göra det här typ? Är jag på rätt väg?
Sen övervägde jag om jag fick ett annat problem med, jag tror jag skickar paket lite för ofta.. just nu skickar jag all info om tex 100 mobs varje uppdatering, vilket då blev en hel del med bara en client (och det skulle ju bli mer om jag ändrade till 60upd/sec), resursövervakaren menar att jag skickade runt 200kb/s, vilket jag tyckte blev lite mycke kanske? så då kom funderingarna på om jag ska lägga in nån typ av "har något ändrats i moben" grej och bara skicka när det blir nån typ av ändring..
Hur mycke data är "okej" att skicka över nätverket?
Andra tips och idéer va gäller lidgren / nätverk uppskattas också.