Permalänk
Medlem
Skrivet av TheCadde:

Har jag länkat till benchmarks eller antar du bara att jag syftar på benchmarks?
Java kör i en VM, det är en av "fördelarna" med Java. (http://en.wikipedia.org/wiki/Java_virtual_machine)
Om du sätter om en klassvariabel utan att släppa eventuella resurser som behöver släppas så tar GC hand om den när GC känner för det. Googla!
Antaganden kommer du inte långt med...

Du får gärna förklara va för andra "bevis" som finns. Jag vet inga.
C# kör också i en VM, likt Java. Vad är så svårt att förstå?
En GC tar inte bort saker man fortfarande refererar till. Fattar inte vad du menar.

Permalänk
Inaktiv
Skrivet av tufflax:

Vad menar du egentligen med "inkl GUI dessutom, som pollar events och massa skit"? Och vad menar du med "abstraktionslager mellan själva koden och resultatet"? Du slänger dig med mycket vaga termer. Dessutom heter det "framgår tydligt ifrån hans inlägg" och inte "utgår", newbiemistake.

Låt mig förklara då, jag tycker inte att det är vaga termer om man förstår .NET CLR'en och tekniken bakom detta. Weak att gå och klaga på ett grammatikfel också bara för att du inte riktigt hade något att komma med utan ville bara klaga

"inkl GUI dessutom, som pollar events och massa skit" = Precis som det står. Ett GUI kan ofta ta upp väldigt mycket processorkraft, och det gör det dessutom oftast också. För en massiv server som en MMO-server så gör alla små optimiseringar väldigt mycket, och då är inte ens "Inget GUI" en optimisering heller utan något man förväntar sig av en >=mellan stor server. Är du van med microsoftprogrammering så klingar nog "pumpa meddelanden" bättre i ditt huvud än "polla events" förresten, om det säger dig något mer.

"abstraktionslager mellan själva koden och resultatet" = som sagt läs på om .NET CLR och hur managed code funkar.

Hoppas du har lärt dig något nytt idag din mupp

EDIT: Efter att ha läst igenom tråden måste jag bara säga att jag tänker skita i att svara om ni inte kommer med vettiga frågor framöver. Riktigt trist att det inte finns utvecklare på professionell nivå här, ännu tristare att det är relativt omoget folk som tar illa upp när man försöker vara hjälpsam och förklara teknikaliteter..

Lycka till TS! Hoppas du gör något skithäftigt av detta!

Permalänk
Medlem
Skrivet av martinrlilja:

Har för mig att man inte behöver kolla om ett element finns i en lista eller ej, om det kan tas bort så görs det. Try/Catch som en del utav logiken kan ta upp mycket cpu-kraft, fast det kan ha ändrats vid det här laget, var länge sedan jag skrev något i C

Try biten är inte så tung, men just 'catch' biten är väldigt väldigt tung och tar upp väldigt väldigt mycket prestanda, så helst ska man enbart avnända sig av det när det blir 'fel'. Och inte för att ta sig ur metoder.

Visa signatur

Speldator: Ryzen 7800X3D, 64GB DDR5, RTX 3070
Server: i7-8700k, 32GB DDR4, RTX2080
Steam deck + de fiesta konsoller.

Permalänk
Medlem
Skrivet av MugiMugi:

Try biten är inte så tung, men just 'catch' biten är väldigt väldigt tung och tar upp väldigt väldigt mycket prestanda, så helst ska man enbart avnända sig av det när det blir 'fel'. Och inte för att ta sig ur metoder.

Good 2 know

Permalänk
Medlem

Jag slängde ihop något "snabbt" för att demonstrera vad jag menade med det vi pratade om igår.

https://www.dropbox.com/s/ewedi09888133ys/EntityCollisionTest...

Det som är intressantast för dig finns i MapLoader.LoadFromFile() och Entity.Move().

Fråga gärna om det är något du/ni undrar över.

NOTE:
Till alla som kollar på koden...
Detta är ihophaspat at best, klaga inte utan kom bara med konstruktiva tips men hitta inte på saker om ni inte förstår er på C# för det är väldigt irriterande när vissa sprider felaktigheter.

Skrivet av Haikarainen:

EDIT: Efter att ha läst igenom tråden måste jag bara säga att jag tänker skita i att svara om ni inte kommer med vettiga frågor framöver. Riktigt trist att det inte finns utvecklare på professionell nivå här, ännu tristare att det är relativt omoget folk som tar illa upp när man försöker vara hjälpsam och förklara teknikaliteter..

Fetmarkerat det som är mest relevant. Om du anser dig vara professionell så ligger det hos dig men att kalla alla som inte föjler din standard eller opinion för "oproffsiga" är väl ändå att ta i lite?
Jag har inget emot att bli tillrättavisad själv när den andra kan komma med vettiga argument och kan backa upp dom med källmaterial men när den andra bara säger saker utan att ha en grund att stå på och dessutom ignorerar allt källmaterial som uppvisar motsatsen till vad denna säger så blir man rätt så snabbt trött.

Istället för att dra alla över en kant (ja, självklart känner man sig träffad när du säger att INGEN här håller en professionell nivå) så kanske du skall vara lite mer anständig och säga vissa istället.

Vad det gäller omoget folk skulle jag snarare säga att det är folk som är ointresserade av vad man har att säga och envisas med att ha fel.

Själv tänker jag sluta käbbla om detta då ingen kommer någonstans och hålla mig till tråden istället.

Visa signatur

Chassi: Svart, PSU: 230 volt, Moderkort: Stort, CPU: Med fläkt, Minne: Tappat, GPU: Klarar MsPaint jättebra, Hårddiskar: Stor och liten, Mus: Med rullhjul, Tangentbord: Svenskt, Skärm: Platt

Permalänk
Medlem
Skrivet av TheCadde:

Jag slängde ihop något "snabbt" för att demonstrera vad jag menade med det vi pratade om igår.

https://www.dropbox.com/s/ewedi09888133ys/EntityCollisionTest...

Det som är intressantast för dig finns i MapLoader.LoadFromFile() och Entity.Move().

Fråga gärna om det är något du/ni undrar över.

Tack för hjälpen!

Ska se hur jag kan få till det med mitt Ska nog inte vara så svårt, iaf inte kollisionsdelen.

Permalänk
Medlem
Skrivet av anon214934:

Låt mig förklara då, jag tycker inte att det är vaga termer om man förstår .NET CLR'en och tekniken bakom detta. Weak att gå och klaga på ett grammatikfel också bara för att du inte riktigt hade något att komma med utan ville bara klaga

"inkl GUI dessutom, som pollar events och massa skit" = Precis som det står. Ett GUI kan ofta ta upp väldigt mycket processorkraft, och det gör det dessutom oftast också. För en massiv server som en MMO-server så gör alla små optimiseringar väldigt mycket, och då är inte ens "Inget GUI" en optimisering heller utan något man förväntar sig av en >=mellan stor server. Är du van med microsoftprogrammering så klingar nog "pumpa meddelanden" bättre i ditt huvud än "polla events" förresten, om det säger dig något mer.

"abstraktionslager mellan själva koden och resultatet" = som sagt läs på om .NET CLR och hur managed code funkar.

Hoppas du har lärt dig något nytt idag din mupp

EDIT: Efter att ha läst igenom tråden måste jag bara säga att jag tänker skita i att svara om ni inte kommer med vettiga frågor framöver. Riktigt trist att det inte finns utvecklare på professionell nivå här, ännu tristare att det är relativt omoget folk som tar illa upp när man försöker vara hjälpsam och förklara teknikaliteter..

Lycka till TS! Hoppas du gör något skithäftigt av detta!

Jag håller fast vid att "abstraktionslager mellan själva koden och resultatet" är väldigt otydligt uttryckt. Det spelar ingen roll om jag vet hur .NET fungerar, det är ändå otydligt skrivet. Och ja, snälla, skit i att svara! Förresten heter det optimering och inte optimisering. Du använder ordet så ofta att du borde veta det. Är det inte nån som har påpekat det för dig i din professionella karriär?

Permalänk
Inaktiv
Skrivet av tufflax:

Jag håller fast vid att "abstraktionslager mellan själva koden och resultatet" är väldigt otydligt uttryckt. Det spelar ingen roll om jag vet hur .NET fungerar, det är ändå otydligt skrivet. Och ja, snälla, skit i att svara! Förresten heter det optimering och inte optimisering. Du använder ordet så ofta att du borde veta det. Är det inte nån som har påpekat det för dig i din professionella karriär?

Med abstraktionslager mellan koden och resultatet så förklarar jag, IGEN, att jag syftar på .NET's CLR. Läs på om det så förstår du. Och inom branschen skiter folk fullständigt i små grammatiska detaljer och fokuserar på det tekniska, hoppas för din skull att det går in i ditt huvud om du nu ens siktar på att lyckas.

Permalänk
Medlem

Ser ut som ett kul projekt! Nu blev jag inspirerad att dra igång något eget, det var fasen 13 år sedan jag skrev ett spel senast.

Lycka till!

Visa signatur

5950X, 3090

Permalänk
Avstängd
Skrivet av BlasteRs:

Vet inte exakt vad du menar med första frågan om hur protokollet är uppbyggt, men antar att det är nätverkskommunikationen du menar?
Jag tar hjälp av lidgren network library, skickar byte fram och tillbaka.

Kartorna serialiserar jag. Sparar från editorn genom att serialisera ner klassen till en XML. Servern laddar kartan vid uppstart.
Kartans tiles har x,y,z kordinater, detta är floats.
Kartklassen har en array av Layers, som i sin tur har en multidimensionell array av tiles.

Djupet är mellan nivåerna 0 - 10. där 5 är "havet", 0-4 är underjord, 6-10 är över havet. Självklart är just antalet 10 en variabel som jag bara kan ändra, men kände att det räcker

Just nu lagrar jag karaktärer och användare i XML och laddar in dem under serverns uppstart. Kanske lägger till SQL lösning sen istället men tvivlar på att det kommer behövas !

Jag menade nätverkskommunikationen och spel-språket som klienten och servern pratar med varandra.

Är daemonen asynkron?
Hur hanterar du asynkrona sockets?

Jag har gjort något liknande.
Istället för C# och .NET använder jag Python med Twisted för asynkrona sockets.
Jag lagrar kartan som ett Python objekt (multidimensionell array) som jag bara läser från en fil.
Istället för UDP kör jag TCP.
Istället för floats så använder jag integers.
Istället för ett binärt protokoll kör jag ett text-baserat protokoll, nämligen JSON som serialiserar Python objekt till JSON format.

Permalänk
Medlem
Skrivet av rektor:

Jag menade nätverkskommunikationen och spel-språket som klienten och servern pratar med varandra.

Är daemonen asynkron?
Hur hanterar du asynkrona sockets?

Jag har gjort något liknande.
Istället för C# och .NET använder jag Python med Twisted för asynkrona sockets.
Jag lagrar kartan som ett Python objekt (multidimensionell array) som jag bara läser från en fil.
Istället för UDP kör jag TCP.
Istället för floats så använder jag integers.
Istället för ett binärt protokoll kör jag ett text-baserat protokoll, nämligen JSON som serialiserar Python objekt till JSON format.

Hur gick det då?

Permalänk
Avstängd
Skrivet av tufflax:

Hur gick det då?

Har inte load testat det.
Bara kört med en klient.
Jag brukar tröttna snabbt, fick problem med renderingen.

Permalänk
Medlem

Tibia! =D

Visa signatur

Citera för svar