Forumdelen sponsras av

Trädvy Permalänk
Medlem
Plats
Tyresö Strand
Registrerad
Maj 2005

Tibia C# i Unity3D

Hej,

Jag har under ett tag nu ägnat lite tid på ett litet projekt (på skoj för nu) där jag försöker skapa ett Tibia-liknande spel. Jag har kommit en bra bit nu och tänkte att jag kunde posta om min utveckling. Det kanske kan intressera någon där ute iallafall

Jag höll för några år sedan på att skriva lite i XNA (C#), men detta projektet valde jag att göra i Unity3D (också C#) för att det är ett så bra hjälpmedel, och jag vill gärna lära mig mer.

Nätverkskommunikationen sköts genom ett egen bibliotek som jag utvecklat till ett tidigare projekt, men det bygger i grunden på Lidgren.Network som jag tycker är ett grymt bra nätverksbibliotek.

Servern skrivs i C# och är ett självständigt Console program. Ett litet urklipp av servern ser ni nedan. (Öppna bilderna i ny flik om ni vill förstora dom).

Här är ett litet urklipp från lite av nätverkskoden. Rätt ointressant för er läsare kanske då inget av nedan är kommenterat ^^

Man kommer först till en inloggning. Först tänkte jag skippa att programmera hela inloggningssystemet till senare i utvecklingen men insåg rätt snart att det kommer skapa stora problem om jag inte har en bas färdig innan jag fortsätter med resten. Så jag gjorde detta först.

Efter godkänd inloggning kommer man till sina karaktärer. Just på detta kontot fanns 1 karaktär med namnet Test Char.

Efter valet av karaktär kommer man in i spelläget. Bilderna är tagna inifrån Unity. Längre ner kommer lite bättre bilder på själva spelet.

På nedan bild ser ni lite hur min "Tile Engine" fungerar. Unity är bra på flera sätt, men det har sina nackdelar ibland, och att skapa en bra Tile Engine i Unity tog mig väldigt många försök, men tillslut hittade jag något som funkade bra. Unity ritar ut alla tiles som är nära dig, och skippar resten. Jag återanvänder också varje GameObject så att unity inte behöver skapa nya. Detta ger en hög framerate, och som spelare ser man ingen skillnad.

Jag utvecklade ett Map-system som kan läsa kartor från programmet "Tiled" som finns att ladda ner gratis från internet. Där man bara slänger in Sprites som man vill använda och ritar i olika lager. Detta programmet gör att jag snabbt kan skapa en värld. Det är också där jag slänger in Spawns. Detta blev också lite smått komplicerat, men bra tillslut.

Senaste jag gjorde var att implementera ett Attack-system. Nedan ser ni en liten demonstration av den, där en Link står och slår mot mig. Skadan baseras på en liten formel som skalar med Strenght.
Hela Attack-Systemet är lite jobbigt att förklara, det hade säkert tagit en hel post i sig.

Till sist så har vi en bild som visar 2 klienter som är inne och spelar. (Ena spelaren har Link som look).

Jag skulle kunna berätta så himla mycket mer om hur allt är uppbyggt, men jag vet inte om folk är så intresserade så jag väntar lite med det Om någon undrar något så är det bara att fråga !

God Natt!
/Robin

Trädvy Permalänk
Medlem
Plats
Hudiksvall
Registrerad
Jul 2001

Riktigt bra jobbat

Har du några planer med projektet eller är det bara att du tutar på?

{ Supermicro X10SRi-F | Intel Xeon E5-2620v3 | 64GiB DDR4 | LSI 9207-8i | 4x250GiB Samsung 840 EVO } @ Supermicro CSE216E16-R1200LPB

Trädvy Permalänk
Medlem
Plats
Upplands Väsby
Registrerad
Jul 2001

Väldans skoj! Jag har spelat tibia sen 99-00 nån gång så det ligger ju nära hjärtat med såna här projekt

i7 7770K @ 4,7 GHz med Noctua NH-D15. 16GB corsair. Asus Prime Z270-P. GTX 1070 @ 2100 / 8500. Samsung 960 EVO nvme. Dell Ultrasharp 2560x1440. Fractal R4. Antec 650Watt PSU.
Logitech G900. Logitech K65.

Trädvy Permalänk
Medlem
Plats
Norrland
Registrerad
Apr 2012

Intressant läsning och tittning
Posta gärna så mycket information och kod som möjligt! Är rena rama lyckan att få läsa lite till kvällsmaten

Kul att se Lidgren.Network användas, bara älskar det nätverksbilioteket!

2600k @ STOCK <|> GTX 970 Omega!<|> Nån samsung 500gb ssd <|> 8 GB Kingston Hyper X <|> BenQ XL2420t
"Det finns inget skrot, bara gamla delar som kan användas på nya sätt" - Mulle Meck

Trädvy Permalänk
Medlem
Plats
Östersund
Registrerad
Okt 2013

Följer detta! Förstår inte så mycket utav koden, men som en nybörjare inom programmering är det sjukt intressant att se ^^

CPU [Intel Core i5 4690k] GPU [Asus DirectCUII GTX 780]
PSU [EVGA Supernova G1 650W]
MOBO [AsRock z97M Anniversary]
Chassi [Bitfenix Neos]
Admin/owner @ GANKGAMING.se

Trädvy Permalänk
Medlem
Plats
Bålsta
Registrerad
Nov 2010

Riktigt intressant!

Har du använt formlerna som finns på Tibia Wiki sidan eller har du kommit fram till egna?
Funderade förut att reverse engineer:a en egen klient till en TibiaOT server.

För många år sen fanns det en experimentiell 3d klient som jag hade som tanke att köra copy-cat på. Men som vanligt blev det för jobbigt och jag kom inte längre än till en inloggningskärm

Keep up! Vill se mer bilder och förklaringar!

edit: Funkar animeringar och ljussättningar? Lägg gärna upp ett youtube klipp!

~. Citera så jag hittar tillbaka .~

Trädvy Permalänk
Medlem
Plats
Tyresö Strand
Registrerad
Maj 2005
Skrivet av Wixner:

Riktigt bra jobbat

Har du några planer med projektet eller är det bara att du tutar på?

Tack! Nej inte riktigt, men sen är det väl alltid så att när man programmerar något så har man väl en förhoppning av att kunna göra något kul med det
Men detta är ett rätt stort projekt för 1 person. Jag ser det mer som ett inlärningsprojekt.

Skrivet av elklazor:

Intressant läsning och tittning
Posta gärna så mycket information och kod som möjligt! Är rena rama lyckan att få läsa lite till kvällsmaten

Kul att se Lidgren.Network användas, bara älskar det nätverksbilioteket!

Lidgren är absolut det bästa jag har testat. Lätt att bygga vidare på också
Ska posta mer info ikväll tänkte jag, kan visa lite hur jag byggt upp systemet och hur jag hanterar allt.

Skrivet av iFerz:

Följer detta! Förstår inte så mycket utav koden, men som en nybörjare inom programmering är det sjukt intressant att se ^^

Kul att höra Allt jag kan om programmering har jag lärt mig själv genom att just följa andras projekt, se hur dom strukturerar saker och ting. Självklart lär man sig bäst av att bara skriva lite kod, men en stor del av att bli duktig har jag märkt är att just strukturera på rätt sätt.

Skrivet av KeVVa:

Riktigt intressant!

Har du använt formlerna som finns på Tibia Wiki sidan eller har du kommit fram till egna?
Funderade förut att reverse engineer:a en egen klient till en TibiaOT server.

Jag har tagit del av dom och modifierat dem aningen. Level formeln är tagen direkt ur Tibia Wiki.

Skrivet av KeVVa:

edit: Funkar animeringar och ljussättningar? Lägg gärna upp ett youtube klipp!

Ja visst funkar det. Det är det som är lite av det fina med Unity, man kan få väldigt bra ljuseffekter och liknande utan större problem. Däremot så har jag inte implementerat något ljus i mitt spel ännu så just nu är allting bara standard, det kommer senare.

EDIT: Blev själv lite sugen på att se hur Unity hanterar ljus i 2D. Tog 2 minuter att fixa en liten preview

En annan grej jag har tänkt att använda mig av är Unitys "Particles". Där kan man göra riktigt häftiga partikeleffekter för explosioner, skada, vatten och annat liknande.

Kan slänga upp en video ikväll på hur spelet ser ut när man spelar det Nu måste jag åka och jobba!

Trädvy Permalänk
Medlem
Plats
Hudiksvall
Registrerad
Jul 2009

Kul!
Som ohjälplig kodnazist vill jag tipsa dig att kolla upp foreach-loopar och ToLower vs string.Equals.

Chassi: DAN A4 | MB: ASUS VI Impact | GPU: Titan X | CPU: 4770K | RAM: 2x8GB Corsair Vengeance | SSD: Samsung 830 512GB | Skärm: ASUS Swift IPS

Trädvy Permalänk
Medlem
Plats
Tyresö Strand
Registrerad
Maj 2005
Skrivet av xinux:

Kul!
Som ohjälplig kodnazist vill jag tipsa dig att kolla upp foreach-loopar och ToLower vs string.Equals.

Tack! Uppskattar alla tips jag kan få. Har faktiskt aldrig reflekterat över just det där men läste lite och om man ska vara korrekt så ska jag självklart använda string.Equals. Lägger detta på min todo!

Varför tycker du att jag skulle kolla om foreach-loopar?

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Plats
Hudiksvall
Registrerad
Jul 2009
Skrivet av BlasteRs:

Tack! Uppskattar alla tips jag kan få. Har faktiskt aldrig reflekterat över just det där men läste lite och om man ska vara korrekt så ska jag självklart använda string.Equals. Lägger detta på min todo!

Varför tycker du att jag skulle kolla om foreach-loopar?

Loopen i skärmdumpen

for (int i = 0; i < a.Players.Count; i++) { Program.server.SendMessage((byte)NetworkData.Player, (byte)PlayerData.SendCharacter, Sender, a.Players[i].Name, (byte)a.Players[i].Vocation); }

Skulle jag skrivit så här:

foreach(var player in a.Players) { Program.server.SendMessage( (byte)NetworkData.Player, (byte)PlayerData.SendCharacter, Sender, player.Name, (byte)player.Vocation ); }

Chassi: DAN A4 | MB: ASUS VI Impact | GPU: Titan X | CPU: 4770K | RAM: 2x8GB Corsair Vengeance | SSD: Samsung 830 512GB | Skärm: ASUS Swift IPS

Trädvy Permalänk
Medlem
Plats
Tyresö Strand
Registrerad
Maj 2005
Skrivet av xinux:

Loopen i skärmdumpen

for (int i = 0; i < a.Players.Count; i++) { Program.server.SendMessage((byte)NetworkData.Player, (byte)PlayerData.SendCharacter, Sender, a.Players[i].Name, (byte)a.Players[i].Vocation); }

Skulle jag skrivit så här:

foreach(var player in a.Players) { Program.server.SendMessage( (byte)NetworkData.Player, (byte)PlayerData.SendCharacter, Sender, player.Name, (byte)player.Vocation ); }

Finns det någon prestanda vinst i foreach istället för For loop?
Jag gillar generellt inte att använda foreach för om kollektionen skulle förändras under loopen så får man en exception, och det finns scenarion som ändrar a.Players under loopen och då kraschar det.

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Plats
Hudiksvall
Registrerad
Jul 2009
Skrivet av BlasteRs:

Finns det någon prestanda vinst i foreach istället för For loop?
Jag gillar generellt inte att använda foreach för om kollektionen skulle förändras under loopen så får man en exception, och det finns scenarion som ändrar a.Players under loopen och då kraschar det.

Ah, om den förändras kan det uppstå problem. Kan SendMessage orsaka förändringar i listan, eller är det trådat på nån vänster?
Tänk på att om du t.ex. lägger till en spelare på ett index som loopen gått förbi så kommer inte den bearbetas.
Det är nog ingen prestandaskillnad mellan foreach och for i det här fallet.

Chassi: DAN A4 | MB: ASUS VI Impact | GPU: Titan X | CPU: 4770K | RAM: 2x8GB Corsair Vengeance | SSD: Samsung 830 512GB | Skärm: ASUS Swift IPS

Trädvy Permalänk
Medlem
Plats
i din garderob
Registrerad
Sep 2007
Skrivet av BlasteRs:

Finns det någon prestanda vinst i foreach istället för For loop?
Jag gillar generellt inte att använda foreach för om kollektionen skulle förändras under loopen så får man en exception, och det finns scenarion som ändrar a.Players under loopen och då kraschar det.

Skickades från m.sweclockers.com

Om du modifierar din array medan du itererar över den har du andra problem.

Bilanaloger är som Volvo — varenda svenne kör med dem

Trädvy Permalänk
Medlem
Plats
Tyresö Strand
Registrerad
Maj 2005
Skrivet av xinux:

Ah, om den förändras kan det uppstå problem. Kan SendMessage orsaka förändringar i listan, eller är det trådat på nån vänster?
Tänk på att om du t.ex. lägger till en spelare på ett index som loopen gått förbi så kommer inte den bearbetas.
Det är nog ingen prestandaskillnad mellan foreach och for i det här fallet.

Det var precis vad jag misstänkte. Nej SendMessage ändrar inte listan, men däremot så sköter en annan tråd laddningen av spelare, så om jag t.ex skulle ändra en spelare i mitt Admin GUI så laddas alla spelare om. Man vet ju aldrig om det någon gång händer just när den loopar någons karaktärer. Så det är egentligen mer för säkerhets skull som jag använder for - loop

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Plats
Queenstown NZ
Registrerad
Apr 2011
Skrivet av BlasteRs:

Finns det någon prestanda vinst i foreach istället för For loop?
Jag gillar generellt inte att använda foreach för om kollektionen skulle förändras under loopen så får man en exception, och det finns scenarion som ändrar a.Players under loopen och då kraschar det.

Skickades från m.sweclockers.com

Man får väl egentligen inte någon prestandavinst genom att använda foreach istället för for, utan snarare tvärt om. Detta beror dock lite på hur ofta du återanvänder de lokala variablerna. Använder du dessa flera gånger i loopen kan du faktiskt vinna på att använda foreach, men förmodligen minimalt. Det du vinner på mest är ju att koden blir mer tydlig eftersom den talar av sig själv. "For each player in a.Player" är ju betydligt mer läsbart än "For i = 0; i < a.Players.Count; i++".

Trädvy Permalänk
Medlem
Plats
Tyresö Strand
Registrerad
Maj 2005
Skrivet av JellyCow:

Man får väl egentligen inte någon prestandavinst genom att använda foreach istället för for, utan snarare tvärt om. Detta beror dock lite på hur ofta du återanvänder de lokala variablerna. Använder du dessa flera gånger i loopen kan du faktiskt vinna på att använda foreach, men förmodligen minimalt. Det du vinner på mest är ju att koden blir mer tydlig eftersom den talar av sig själv. "For each player in a.Player" är ju betydligt mer läsbart än "For i = 0; i < a.Players.Count; i++".

Håller helt och hållet med om tydligheten i koden, men jag behåller nog min for loop av ren personlig preferens

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Plats
Borås
Registrerad
Jul 2004
Skrivet av BlasteRs:

Finns det någon prestanda vinst i foreach istället för For loop?
Jag gillar generellt inte att använda foreach för om kollektionen skulle förändras under loopen så får man en exception, och det finns scenarion som ändrar a.Players under loopen och då kraschar det.

Skickades från m.sweclockers.com

Ja och nej, det beror lite på situation om man ska börja med micro optimeringar med foreach vs for loop oftast så handlar det om rejält små skillnader.

T.ex accessar du objekt enbart en gång så är en for loop ca 5% snabbare, dock accessar du objektet mer en en gång, 2 eller mer så för varje gång så är foreach runt 10-30% snabbare. Accessar du en dictionary 3 ggr så är en foreach loop dubbelt så snabb som en for loop, större skillnader på Listor samt arrays.

Som i fallet ovan där han accessar det två ggr så är foreach loop snabbare än en for.

Dock med det sagt, det är nog viktigare med mer lättläst kod en att micro optimera på denna nivå, micro optimera på den här nivån bör man göra mer efter behov.

Speldator: i7-8700k, 16GB DDR4, GTX1070
Server 1: SB 2500k, MZI -P67GD55, 32GB DDR3, Corsair MX 240GB SSD
Surface Pro 2017, Konsoler: Typ alla, Oculus Rift

Trädvy Permalänk
Medlem
Plats
Tyresö Strand
Registrerad
Maj 2005

Videos

Lade upp 2 Videos på när jag spelar spelet. Använde mig av något gratisprogram för screen recording, tyvärr laggar videon lite.

Trädvy Permalänk
Medlem
Plats
Jönköping
Registrerad
Jul 2011

Väldigt intressant att se ditt projekt då jag själv precis ska starta ett liknande projekt, inte lika ambitiöst då det bara är ett projekt till skolan. Men ser fram emot att du skriver lite om det här och om det är något speciellt du använder som gör livet lättare så man kan få lite tips

Intressant att du gör det i Unity däremot, gissar på att det är riktigt smidigt att göra 2d där istället för XNA som jag kommer köra med?

Citera så hittar jag tillbax :D

Trädvy Permalänk
Medlem
Plats
Tyresö Strand
Registrerad
Maj 2005
Skrivet av Kabeltv:

Väldigt intressant att se ditt projekt då jag själv precis ska starta ett liknande projekt, inte lika ambitiöst då det bara är ett projekt till skolan. Men ser fram emot att du skriver lite om det här och om det är något speciellt du använder som gör livet lättare så man kan få lite tips

Intressant att du gör det i Unity däremot, gissar på att det är riktigt smidigt att göra 2d där istället för XNA som jag kommer köra med?

Kul att höra Ska du göra multiplayer?
XNA har jag faktiskt en hel del erfarenhet av, och det är väldigt bra att arbeta med. Det blir bara en himla massa mer kod än med Unity. Kommer ihåg att koden för att skapa en bra Camera tog en del tid att få rätt. Samt får man ju bygga upp hela systemet med olika Gamescreens som man måste programmera någon manager som hanterar. Just dessa sakerna underlättar Unity något extremt!

Med Unity kan jag lägga mer fokus på att programmera servern, där allting faktiskt händer. Servern sköter all movement och uträkningar. Unity gör knappt något alls mer än att ritar ut allt

En sak som jag satt jävligt länge med var min Pathfinding. Om du skall implementera Pathfinding så rekommenderar jag dig att läsa på lite om A* Algoritmen.
Eftersom servern hanterar precis all pathfinding i mitt spel så krävs en del CPU kraft. Det är detta som tar absolut mest av processorn, iaf i mitt fall. Jag har 6 olika trådar som hanterar pathfinding lite som ett kösystem. En ''Entity''(T.ex ett monster) skickar en request på en pathfinding från X till Y. Denna request läggs i en kö, därefter tar första lediga thread översta pathfinding requested och räknar ut bästa väg och meddelar entiteten om denna, sen blir den tråden ledig igen och kan hantera en annan request. Jag fann att detta fungerade oerhört bra, men jag vet inte alls hur andra spel gör, jag hittade på detta själv så jag vet inte alls om det är det mest optimala.
En pathfinding request tar typ mellan 0.001-0.08s.

Lycka till med ditt projekt :)!

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Plats
Jönköping
Registrerad
Jul 2011
Skrivet av BlasteRs:

En massa text om smarta saker
Skickades från m.sweclockers.com

Jo, det är just multiplayern som blir det roliga i hela projektet, och exakt som du beskriver så är det som jag är mest rädd för pathfinding för monster. Men ska försöka hitta någon bra artikel om A* algoritmen? Detdär med att du gör en queue, är ganska ny inom trådar men låter som en lite väl komlicerad idé, varför gjorde du inte bara en ny tråd varje gång? Eller skulle CLR inte köra det direkt kanske, tror jag läste något sådant om java.
Det du menar med att unity bara ritar ut allting? Skickar du bara tangenttryckningar till servern då, känns som om det borde bli en rätt bra delay tills gubben rör på sig.

Tack för Lidgren.Network också, känns som ett ganska bra bibliotek när man väl lärt sig att använda det

Schysst att du svarar ändå, kasnke man ska lära sig Unity 2D, låter rätt smidigt

Citera så hittar jag tillbax :D

Trädvy Permalänk
Medlem
Plats
Tyresö Strand
Registrerad
Maj 2005
Skrivet av Kabeltv:

Jo, det är just multiplayern som blir det roliga i hela projektet, och exakt som du beskriver så är det som jag är mest rädd för pathfinding för monster. Men ska försöka hitta någon bra artikel om A* algoritmen? Detdär med att du gör en queue, är ganska ny inom trådar men låter som en lite väl komlicerad idé, varför gjorde du inte bara en ny tråd varje gång? Eller skulle CLR inte köra det direkt kanske, tror jag läste något sådant om java.
Det du menar med att unity bara ritar ut allting? Skickar du bara tangenttryckningar till servern då, känns som om det borde bli en rätt bra delay tills gubben rör på sig.

Tack för Lidgren.Network också, känns som ett ganska bra bibliotek när man väl lärt sig att använda det

Schysst att du svarar ändå, kasnke man ska lära sig Unity 2D, låter rätt smidigt

Problemet med att skapa en ny tråd för varje gång någon vill ha en path är att om 500 monster och spelare skulle fråga om en path så skapas 500 nya trådar. Nu skapar jag direkt 6 trådar i en array som hela tiden är igång, på det sättet fick jag ner väntetiden med rätt många ms, plus att trådantalet är i kontrollerat skick

Ja unity skickar i princip bara kommandon när du klickar för att t.ex gå. Medans jag testar spelet så har jag alltid på en virtuell delay på 250ms mellan client och server, och det funkar jättebra än sålänge, delayen märker man inte av alls.

Sen skickas alla entiteters info (Position, Hp, mana, status mfl...) bara var 100e millisekund. Unity flyttar alla entiteter som fått en ny position gradvis varje frame så att allt ser ut att röra sig väldigt mjukt. Genom att lägga upp det på det sättet så spelar det ingen roll om jag har 10ms eller 1000ms delay, allting kommer röra sig fint och mjukt ändå.

Självfallet så om du har 1000ms i delay så får du ju vänta 1 sekund på alla kommandon du gör mot servern, men då kanske man skulle hitta en bättre uppkoppling till servern ;).
Genom att sköta allting på servern så blir det omöjligt för någon att fuska dessutom.

IMO så är Unity framtiden. Det kommer användas mer och mer så jag tycker absolut att du ska lära dig det

Lidgren används i många stora kommersiella spel så det är väl testat. Det första jag gjorde med lidgren för att lära mig var att göra ett simpelt chatprogram. Det var för ca. 2 år sedan när jag precis börjat hobby programmera.

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Plats
Tyresö Strand
Registrerad
Maj 2005

Har efter ett litet uppehåll börjat på mitt projekt igen och tänkte lägga upp en uppdatering av hur det går.

Jag håller på att jobba på Item systemet. Just nu är det mycket jobb på klientsidan, då nästan allt är klart på serverdelen. Jag har inte gjort det speciellt snyggt rent grafiskt, men jag vill bara få ett fungerande system så kan jag göra det lite vackrare i senare skede.

Nedan är editorn. Där editerar jag allting som har med spelet att göra. Startas genom serverns konsoll.

Trädvy Permalänk
Medlem
Registrerad
Jan 2012

Måste säga att jag är imponerad

Tibia är ett spel man har goda minnen ifrån
Ska bli intressant att följa projektet

Trädvy Permalänk
Medlem
Plats
Gävle
Registrerad
Jan 2008

Har aldrig varit riktigt intresserad av Tibia, även om kompisarna kunde sitta i timmar.
Men detta projekt är intressant att följa, så det kommer att göras.

Har själv funderat lite på unity, men då jag tittade på det.
sades det att deras inbyggda nät-kod för t.ex. göra multiplayer, inte var något
att hänga granen.

Vilket fick en att börja titta på c++ igen.
Det verkar ju funka bra för dig just nu i alla fall,

ps läste precis något om lidgren.network, inte unitys egna?

Trädvy Permalänk
Medlem
Plats
Tyresö Strand
Registrerad
Maj 2005
Skrivet av Gunrunner:

Har aldrig varit riktigt intresserad av Tibia, även om kompisarna kunde sitta i timmar.
Men detta projekt är intressant att följa, så det kommer att göras.

Har själv funderat lite på unity, men då jag tittade på det.
sades det att deras inbyggda nät-kod för t.ex. göra multiplayer, inte var något
att hänga granen.

Vilket fick en att börja titta på c++ igen.
Det verkar ju funka bra för dig just nu i alla fall,

ps läste precis något om lidgren.network, inte unitys egna?

Jag använder inte Unitys egna multiplayer funktion. Den har man inte alls samma kontroll med. Lidgren network är min favorit, absolut att rekommendera.
Jag programmerade mycket i C++ förr i tiden, men tycker inte längre att det är värt att sitta i. C# är så mycket roligare och snabbare att skriva
Den pyttelilla prestandavinst man kan få ut genom att skriva i C++ är inte värt mödan idag!

Trädvy Permalänk
Medlem
Plats
Gävle
Registrerad
Jan 2008
Skrivet av BlasteRs:

Jag använder inte Unitys egna multiplayer funktion. Den har man inte alls samma kontroll med. Lidgren network är min favorit, absolut att rekommendera.
Jag programmerade mycket i C++ förr i tiden, men tycker inte längre att det är värt att sitta i. C# är så mycket roligare och snabbare att skriva
Den pyttelilla prestandavinst man kan få ut genom att skriva i C++ är inte värt mödan idag!

Nej, som du säger, tog mig en titt och unity verkar ju använda RakNet.
Ska ta och kolla lite på lidgren.network

Trädvy Permalänk
Medlem
Plats
Tyresö Strand
Registrerad
Maj 2005
Skrivet av Gunrunner:

Nej, som du säger, tog mig en titt och unity verkar ju använda RakNet.
Ska ta och kolla lite på lidgren.network

Gör det, Har gjort ett eget bibliotek på Lidgren som jag använder i alla mina nätverksapplikationer.

Trädvy Permalänk
Medlem
Plats
#Archlinux
Registrerad
Jun 2007
Skrivet av BlasteRs:

Gör det, Har gjort ett eget bibliotek på Lidgren som jag använder i alla mina nätverksapplikationer.

Angående trådar istället för att skapa dessa i en array, kör med threadpool istället. Du specifierar antalet trådar så hanterar den resten, allt du skickar är bara tasks som de skall jobba med.

Arch - Makepkg, not war -||- Asus Crosshair Hero VI -||- GSkill 16GiB DDR4 15-15-15-35-1T 3600Mhz -||- AMD 1600x @ 4.1GHz -||- nVidia MSI 970 Gaming -||- Samsung 850 Pro -||- EVEGA G2 750W -||- Corsair 570x -||- Asus Xonar Essence STX -||- Sennheiser HD-650 -||
Arch Linux, one hell of a distribution.

Trädvy Permalänk
Medlem
Plats
Tyresö Strand
Registrerad
Maj 2005
Skrivet av Commander:

Angående trådar istället för att skapa dessa i en array, kör med threadpool istället. Du specifierar antalet trådar så hanterar den resten, allt du skickar är bara tasks som de skall jobba med.

Tack för tipset Ska kolla på detta!