Quote:
Originally Posted by DuOtto
Schön erklärt, aber die Zahlen können nicht so ganz passen. Die Frage ist natürlich immer, ob man Engines, Librarys, Leerzeilen, Header/Footer usw. mitrechnet, aber selbst mit allem wird Fiesta niemals auf 40 Millionen Zeilen kommen.
Mal so zum Vergleich: Der Linux-Kernel hat derzeit etwa 15 Millionen Zeilen Code und selbst Windows 7 kommt "nur" auf knapp 40 Millionen Zeilen.
Bei WoW sollen es angeblich 5,5 Millionen sein. Bei Fiesta wird die Zahl also mit Sicherheit unter 5 Millionen liegen.
Für alle Interessierten: [Only registered and activated users can see links. Click Here To Register...] noch ein paar Zahlen.
|
Ich berichtige mich dann mal auf 1-4 Mio Zeilen Code, ich hatte da etwas Falsches in erinnerung :D
Ryzom z.B. hat ca 2 Mio Zeilen Sourcecode und insgesamt glaube ich weitaus weniger Funktionen als Fiesta, kann aber natürlich auch ein Irrtum sein.
Natürlich rechne ich den gesamten Code der Dienste sowie auch des Clients wobei der Client mindestens die Hälfte des Codes ausmachen sollte.
Ausserdem ist die Anzahl an Zeilen die ein Quelltext besitzt ohnehin nicht aussagekräftig für die Komplexität eines Programms denn vieles was man auf mehrer Zeilen aufteilt aus Gründen der Lesbarkeit
könnte man auch in einer Zeile unterbringen.
Ausserdem @DuOtto ist es nicht ganz richtig das wir nichts wissen von dem Code,
was ich dort beschrieben habe wird/wurde teils tatsächlich so gehandhabt und kann
man teilweise mit OllyDB nachvollziehen.
Ein sehr gutes Beispiel dafür ist z.B. das unlimitierte verkaufen einer Waffe im Charakter Shop,
hier wurde dem Server übermittelt welches Item gehandelt wird und wohin es soll jedoch wurde
in damaligen Zeiten vom Server nicht mit der DB abgeglichen ob das Item auch tatsächlich auf
dem Charakter liegt welcher es verkaufen will. Es wurde lediglich überprüft ob das Item mit
genau dieser ID vorhanden ist und dann der neue Besitzer eingetragen.
Kannst du in nahezu allen releasten PServer Datenbanken nachschauen, das bei bestimmten
Prozeduren welche für den handel zuständig sind zwar die Variable @nOwnerTo gefüttert wird aber
z.B. ein gegenstück (vergleichsvariable) like @nOwnerFrom zur Überprüfung fehlt da ohnehin dieser Wert
nicht vom Dienst übergeben würde denn auch hier gibt es diesen vergleichswert nicht.
Wäre dem so, wären eine ganze reihe von Bugs schonmal grundlegend nicht mehr möglich gewesen in dem
man ganz einfach einen Check wie diesen gemacht hätte (Pseudocode):
-----------------------------------------------------------------------------------------------------
Setze @nOwnerFrom = Aktueller Besitzer der vom Client/Server übergeben wird
Setze @nOwnerCheck = Aktueller Besitzer der in der DB eingetragen ist
Setze @nOwnerTo = Charakter an den ein Item übertragen werden soll
IF !EXISTS ITEM
RETURN GIBBET NICH!
IF @nOwnerFrom != @nOwnerCheck
RETURN Datt Item gehört nicht dir!
ELSE
SETZE Aktuellen Besitzer = @nOwnerTo
-----------------------------------------------------------------------------------------------------
und so weiter und so fort
Bei anderen Funktionen wiederum existiert diese Vergleichsvariable übrigens.
Naja weiterhin viel Spaß beim Bugs suchen und ausnutzen, das Spiel ist ja nun eh tot,
nicht zuletzt weil so viel gebuggt wurde und immernoch wird.:D