Quote:
Originally Posted by cletite
Hart gesagt: C# kannst du für einen Spieleserver in die Tonne treten. Da es wegen dem GC viel zu langsam wird.
|
Das kommt drauf an - ich hab mir da mal einen sehr ausführlichen Test C# vs C++ in allen möglichen Varianten und methoden durchgelesen.
In vielen Dingen ist c++ schneller und auch nicht so performance lastig.
Aber es gibt auch viele Aufgaben in denen C# ebenfalls ein guter Kandidat ist.
Einfach zu sagen "C# ist für einen Spieleserver ungeeignet" - da machst du es dir etwas zu leicht :)
Quote:
Originally Posted by cletite
Ok am besten noch TrippleDes drüber wa^^. Währe besser einfach die Packete so zu coden das sie sicher sind.
|
Mit RSA wurden einmal signiert und der Twofish Key verschlüsselt und das in Server Bereichen die unkritisch sind (Account und Margin (Character) Server ). Der Worldserver hat nur Twofish und nutz dann den Key den der MarginServer übermittelt hat.
Twofish ist daher aber dennoch recht schnell und wenn man dann den Teil noch eine C++ Lib auslagert, gehts recht fix. Performance Probleme bzgl. der Verschlüsselung hatten wir noch nicht (und wir haben den Server vorher sogar auf Python testweise laufen gehabt ...selbst der hatte keine Performance Probleme bei der Verschlüsselung).
Quote:
Originally Posted by cletite
Ich würde über Caali nichts sagen. Er hatte lediglich eine gute Resourceverwaltung. Die Server sind jedoch schlechter gecoded als die Offi Server in version 4 - 5.
Bei nachfrage kann ich gerne den Sourceteile bzw Bottleneck's posten.
|
Caali war nicht perfekt - aber als ich das damals getestet hatte, hatte ich merkbar keinen unterschied zu den offiziellen festgestellt. Die gleichen Lags halt :D
Quote:
Originally Posted by cletite
Und wieder eine Aussage die nur von Intelligenz strotzt. Selber nicht besser Programmieren können aber erstmal die Koreaner dissen. Flyff kommt aus dem Jahr 2003, wo das Programmieren noch nicht so einfach war wie heute. Klar ist der Source an manchen stellen mies gebaut. Aber was viele vergessen: Wie viel haben die Koreaner mit diesem 'mist' eingenommen?
|
Und dennoch waren sie zu bequem den Server einmal komplett neu zuschreiben. An zu wenig Geld kann es ja nicht gelegen haben ;)
Quote:
Originally Posted by cletite
Außerdem warum der Worldserver so viel Arbeitsspeicher zieht liegt halt daran das er einfach nicht für kleine Home PC's programmiert wurde sonder für Server die mal eben 1k User tragen konnten. Wie viel konnte den Caali ab? achja...
|
Mit meiner uralt Kiste damals zumindest 2 :) Der aktuelle schafft nicht mal den einen vernünftig.
Ich mein ich hab das alles gestartet und allein für den Login braucht der Jahre..dann für einen Char erstellen (Button klick - ca. 5 min warten - weiter gehts), dauerts wieder länger.
Im World Server gehts dann wieder rasent schnell.
Das ist aber total unlogisch...wie kann ein Login Server so lange benötigen die Anfragen zu verarbeiten ?
Werde ich bei gelegenheit mal auf nem noch leistungsfähigerem System testen (vielleicht läuft auch was falsch).
Quote:
Originally Posted by cletite
Du musst dir nur im klaren sein das du unter MySql einen enormen Performance verlust hast und das vereint mit C# kommt das nicht so besonders gut.
Auch ist die Sicherheit bei MySQL nicht so hoch.
|
Inwiefern ? Generell ? Solange du klar trennst das statische Daten nie aus einer DB geladen werden in echtzeit und dynamische Daten periodisch (alle paar min. mal bzw. beim disconnect) in die Datenbank aktualisierst (EXP, Level, Position des Chars zum Beispiel), seh ich da wenig probleme.
Da haste dann aber auch mit jedem RDBS performance probleme.
Quote:
Originally Posted by cletite
Für was auch Crypto++? Crypto++ ist meiner meinung nach eh viel zu Performance lastig. Auch wenn nur geringfügig aber es ist bemerkbar.
Pakete verschleiert?
|
Hmm...also wie gesagt das kommt natürlich auf den Algorithmus an . Crypto++ wird in vielen MMO Servern verwendet (und damit mein ich eher sogar offiziellen). Gibt es da ne alternative in C++ ? Zumindest wären mir jetzt keine großen bekannt .
Quote:
Originally Posted by cletite
Es würde sich blos lohnen für ganz alte Versionen wie z.B v4 - v5 einen Emulator zu schreiben. Sonst würde sich das überhaupt nicht lohnen weil du wie gesagt gleich ein neues Projekt erstellen kannst. Bis du den Flyff Kernel wieder sauber hast vergehen Jahre und ob dann noch alles Läuft sei mal dahin gestellt.
|
Ein Emulator simuliert hautpsächlich den Netzwerkverkehr . Der Emulator muss auch nicht perfekt sein. Du must erstmal nur verstehen wie das Protokol funktioniert und was sich die Entwickler dabei gedacht haben :).
Klar hast du dann noch ziemlich viele anderen Dinge wie zum Beispiel das du theoretisch natürlich auch wissen müsstest welche Areas "walk" und "flyable" sind (also bräuchstest du eine Art Map Loader) sowie das du viele Dinge berücksichtigen must in Hinsicht auf Performance , Daten Handling und und und.
Es ist natürlich keine leichte Aufgabe aber du must den Server nicht nachschreiben wie er 1:1 war sondern kannst ihn theoretisch sogar verbessern in dem du Aufgaben besser und anders löst :)
Wie gesagt - theoretisch.
Ich gebe dir recht daß der Server nie wie der offizielle funktionieren würde - dennoch ist es doch interessanter so etwas zu entwickeln .