mmofacts.com

GF erklärt ActionScript als Ursache für viele lächerliche Bugs bei Legend-online

gepostet vor 15 Jahre, 1 Monat von Redrick

Ich hatte bei meiner Bewerbung im Entwiklerforum bereits geschrieben, dass Legend-online mehr oder weniger nahcbauen wollte, daher verfolge ich auch immer noch das hier und da das Geschehen. In letzer Zeit mehrten sich absolut inakzeptable Bugs im Spiel (viele User vergleichen diese mit 2X2=5 und ähnlich), die mit dem neuesten Update wohl noch schlimmer geworden sind. Hier ein Auschnitt aus der Moderatoren-Erklärung im Forum:

"Leider ist der Code, wie ihr euch sicher vorstellen könnt, nicht nur eine Din A4 Seite lang. Gerade weil das Spiel auf Flash basiert, ist es zum Teil sehr Buganfällig.
Fixt man zum Beispiel einen Bug, ändert einige Zeilen des Codes, kann es passieren, dass dies wieder an einer Stelle weit hinten im Code zu Problemen führt.
Oder aber Bugs können nicht eindeutig Lokalisiert werden, sprich: man kann sie nicht beliebig auslösen.
"

Nachtrag:

ich hatte mir die Zeit genommen und das Sourcchen mal angeguckt (illegal? - EGAL). Einige Notationshighlights ( kommentare sind von mir)

public function IWantNeueWare()  // lo, ja  ich want
public function PassVergessen_CallDochAccount() // dann calle ich doch noch, check!

immer wieder irrsinnige abfragen

 if (1 == (1)){
....

Nun ja, was soll man dazu sagen wenn solche leckerbissen schon ins Auge stechen, und die Main-Methode der einzigen SpielKlasse(!) von knapp 16 TAUSEND Zeilen Code  sich über 8 Tausend Zeilen erstrecken

wie kann man dann erwarten, dass die "Entwickler" sich im nachhinein die richtige Stelle zum Bugfixen finden. Aber ist klar Flash ist halt verbugt, was soll man da machen...

Fazit:

OMFG

gepostet vor 15 Jahre, 1 Monat von TheUndeadable

Das bestätigt nur meine These, dass Programmierer Flash nicht anfassen und so Designer versuchen müssen zu programmieren...

gepostet vor 15 Jahre, 1 Monat von MarcusSchwarz

Original von Redrick

public function IWantNeueWare()  // lo, ja  ich want

Immerhin heißt es nicht "IWandNeueWare()"

*scnr*

Aber ja, gute Actionscript-Programmierer scheint mir sind wie ein Sechser im Lotto...

gepostet vor 15 Jahre, 1 Monat von Nerosmeel

naja wie in jeder anderen Programmier/Script Sprache auch je besser der Programmierer desto besser der Code und desto weniger Bugs und vorallem desto besser sind diese zu finden

Aber für AS scheinen Gute Programmierer wirklich selten zu sein.

Ich kenn nur einen und der kann vor lauter Arbeit das Geld was er verdient nich ausgeben...*schwärm*

gepostet vor 15 Jahre, 1 Monat von FateF8

Hallo Zusammen,

interessant fände ich jetzt, ob es mit AS2.0 oder AS3.0 programmiert ist, und mit welchem DeCompiler Du, Redrick, Dir den Quellcode einmal angeschaut hast.

Ich stimme allerdings zu, dass es ein "Witz" ist, die Entwicklungsumgebung für fehlende Disziplin bei der Programmierung verantwortlich zu machen ;)

...und: Ja, es ist schwierig gute Flash- / Flex-Entwickler zu finden. Sollte da draussen gerade einer diese Zeilen lesen und auf der Suche nach einem neuen Betätigungsfeld sein... BITTE MELDE DICH ;)

Schönen Gruß,

FateF8

gepostet vor 15 Jahre, 1 Monat von Blabbo

Original von Redrick

Nun ja, was soll man dazu sagen wenn solche leckerbissen schon ins Auge stechen, und die Main-Methode der einzigen SpielKlasse(!) von knapp 16 TAUSEND Zeilen Code  sich über 8 Tausend Zeilen erstrecken

WOW!

Bewirb dich doch bei denen :)

gepostet vor 15 Jahre, 1 Monat von knalli

Naja.. das könnte ich mir bei PHP aber auch vorstellen. Es liegt noch immer daran, was man daraus macht. Auch Actionscript kann man sicher vernünftig programmieren - und Testfälle sollten genauso irgendwie machbar sein wie das Einhalten von ein paar Styles.

gepostet vor 15 Jahre, 1 Monat von Redrick

Original von FateF8

interessant fände ich jetzt, ob es mit AS2.0 oder AS3.0 programmiert ist, und mit welchem DeCompiler Du, Redrick, Dir den Quellcode einmal angeschaut hast.

FateF8

Also ich habe auch nicht schlecht gestaunt, ist tatsächlich AS3 auch wenn die Programmierweise wohl noch aus dem AS1 stammt , dekompiliert mit Trillix.

Die Main ist echt nur damit beschäftigt das gesamte Spiel VOR dem Login in den Speicher in Form von riesigen Arrays "Hero", "GFX_Loader" usw zu pumpen. Logischerweise wird da auch nichts wieder freigegegen ;)

Immerhin scheint BE zumindest gegen primitive Hackversuche ohne FE-abfragen gesichert. Sprich auf dem Server wird tatsächlich vor der ausführung der Tatsächliche bestand an zb Gold usw abgefragt und erst  dann gutgeschrieben

Noch ein Witz nebenbei:

Um zum Server zu connecten kontaktiert AS3 das im HTML in Form eines PHP-Files eingebundene JS auf. Das PHP ist wohl dazu da, abhängig von der URL also dem Server s1, s2, s3 oder s4 die IP sowie den servernamen als feste JS-variablen zu schreiben und getter zu generieren, damit AS diese anspricht

IP = ExternalInterface.call("get_ip");
BaseDomain = ExternalInterface.call("get_domain");
ServerIDString = ExternalInterface.call("get_serverindex");
ServerIDString2 = ServerIDString + ExternalInterface.call("get_ending");
Language = ExternalInterface.call("get_lang");
LegendFont = ExternalInterface.call("get_fonttyp");
LegendPortOffset = ExternalInterface.call("get_port");

Ferner wird ein Port-Offset von 10000 übergeben und jetzt kommts:

 Net_port = 0;
 if (LegendPortOffset == "")
{
       Net_port = 10001 + int(Math.random() * 24);
}
 else
  {
         Net_port = int(LegendPortOffset) + 1 + int(Math.random() * 24);
}

ich meine WTF ist das? Hat das überhaupt eine tiefsinnige bedeutung dass ich mir bei jedem connect einen randomport ab 10024 generiere?

Insgesamt sehr sehr wirr, wenn die schon den aufwand treiben, warum dann nicht gleich alle Pfade ablegen, Image-Ressourcen-URL ist wiederum fest im Quellcode verankert

BTW: AS3 ist zwar noch nicht 100% bereinigt aber im Vergleich zu AS2 sehr viel strukturierter und performanter sowieso. Ich persönlich habe es in paar Monaten lieben gelernt (FE von meinem "irgendwann mal fertig" Spiel) Macht auch wieder Sinn im Bezug auf OO.

Zur allgemeinen Belustigung neue Auszüge:

1. var MrPopupText; // mr popup, lol

2. EinloggenPassForget = new Einloggen_PassForgot(); // fehlendes Zeitgefühl??

3. EinloggenButtonLogIn = new Butto_LogIn(); // Budda login?

4.   public function PassVergessen_PasswordForgot(arg1:flash.events.Event):*
        {
            return;
        } // über den sinn oder unsinn dieser funktion lässt sich sicher nicht streiten^^

5. public const black:int=0; // sollte ich mir auch angewöhnen ;)

gepostet vor 15 Jahre, 1 Monat von Phoscur

Als angehender JS-Programmierer mit angeeignetem Crockford Stil frage ich mich dann doch warum Flash so komisch programmiert wird...

Was du da eben gepostet hast lässt sich bestimmt exploiten oder? Auch ohne den Flashquelltext zu verändern meine ich, nur per Greasemonkey..

gepostet vor 15 Jahre, 1 Monat von DrakeL

Ist das DeCompilieren und vor allem das öffentliche zeigen von Closed Software nicht verboten? ;) Aber wie man so schön sagt: Scheisse entwickeln kann man in jeder Sprache.

gepostet vor 15 Jahre, 1 Monat von Redrick

Original von Phlegma

Was du da eben gepostet hast lässt sich bestimmt exploiten oder? Auch ohne den Flashquelltext zu verändern meine ich, nur per Greasemonkey..

ich hatte nur versucht mich mit eigenem client zum server zu verbinden, das geht ohne probleme, für richtiges hacken bin ich zu fantasielos und würde die zeit auch wirklich eher zum weiterproggen des eigenen spiels verwenden, davon hat man eh nie genug

Original von DrakeL

Ist das DeCompilieren und vor allem das öffentliche zeigen von Closed Software nicht verboten? ;) Aber wie man so schön sagt: Scheisse entwickeln kann man in jeder Sprache.

ich weiss nicht, beim eröffnungspost hatte ich bereits meine zweifel aber aus diesem grund auch nicht in der offenen sektion des forums gepostet, ausserdem sind die veröffentlichten passagen zu allgemein und sicherheitsrelevant sowieso nicht, zum schluss "SWF-Dateiformat ist seit 1998 als offener Internet-Standard veröffentlicht". Ich weiss das alles ist womöglich keine ausrede aber wayne oder nicht?

gepostet vor 15 Jahre, 1 Monat von Nerosmeel

wo kein kläger da kein Richter sag ich immer und mal echt wenn juckts? die Entwickler werden selber wissen das das mist ist was die da zusammen gebastelt haben und die sich evt irgendwann mal mit der Sache befassen lesen hier schonmal was man nicht machen sollte xD.

Und die was sind die paar Zeilen im Verhältnis zu den 16000 Zeilen des Spiels?

Auf diese Diskussion antworten