AMA mit Phelan - Antworten Teil II - DE Diskussion

  • Gerade ein paar Takte mit dem leadQA von RoM geredet. Er wusste, wie man das reproduziert (alleine die Unterstellung, dass das nicht so wäre fand er nur mittellustig). Scheinbar sind die Skripte, die in jeder Zone geladen werden das Problem, die werden danach nicht ordentlich wieder entsorgt. Klingt recht einfach zu lösen, ist es aber dennoch nicht.

    ^

    Ich hatte vor einer Weile ein Problem (Questgeber wurden nicht mehr auf der Map angezeigt), das sich nicht durch manuelles Löschen der Files lösen lies. Nicht einmal eine Deinstallation und Neuinstallation half. Was dann half war ein reboot meines Rechners.... dass deutet schon auf ein... kreatives Speichermanagement hin.

    Das ist ein lustiges Problem.


    Ursache soweit wir wissen:

    x ist ein signed integer (=beliebige Vorzeichenbehaftete Ganzzahl zwischen +- 2kkk) mit festem Initialwert (vermutlich 0).

    y ist ein weiterer signed integer, der hochzählt. Dank Integer Overflow (was grundsätzlich kein Problem ist) kippt der alle 24 Tage und ist für 24 Tage negativ.

    n ist eine Positive Ganzzahl.


    Jetzt gibt es folgende Abfrage: if x+n<y then DO_STUFF() x=y; end.

    => Initialwert (n<y) => false für 24 Tage d.h. 24 Tage kann DO_STUFF nicht verwendet werden.


    P.S.: Auf die Ursache sind wir durch verschiedene Beobachtungen gekommen. Der 24 Tage Zyklus entsteht durch

    2.147.483.647ms=(2^32-1)ms=2.147.484s=35.791min=596h=24,85Tage


    P.S.: Phelan: Wenn du dich auf Zikiel einloggst...grade ist event :D

    Du bist mit einer Entscheidung von mir nicht zufrieden? Kontaktiere meinen Superior SaitoHajime

  • Das hab ich - offensichtlich - primär gemeint. K.A. ob die im Kern irgendeine Art von Garbage Collection bzw. "automatischem Freigeben" eingebaut haben - beides (mit und ohne GC und auch je nach Art von GC - auch da gibt es mehrere ...) hat Vor- und Nachteile (und multi-threading machen die Probleme mit GC bei schlechtem SW-Design nur noch viel größer).

    Typ 2: fehlerhaftes/langsames Memory Management/Zu große Listen

    -> Programm stürzt ab bevor Speicher freigegeben wird.

    Beispiel(e) c++:

    Code
    1. std::vector<double*> vector;
    2. for (int i=0;50000;++i) {
    3. vector.push_back(new double[100]);
    4. }
    5. for (int i=0;50000;++i) {
    6. delete[] vector[i];
    7. }
    8. vector.clear();
    9. </double*>

    Kein gutes Beispiel aber Problem sollte klar sein.

    C++ hat keine automatische Garbage Collection deshalb sollte derartiges eigentlich nicht zuschlagen können (und die Mechanismen aus der STL bzw. Boost-Lib sind mWn auch thrad-safe BTW).

    Typ 3: Memory Fragmentation

    -> Speicher ist theoretisch vorhanden, jedoch kann kein zusammenhängendes Stück alloziiert werden, welches groß genug ist.


    Angenommen ich hab nurnoch unzusammenhängende Blöcke in meinem Addressraum von weniger als 1024Bytes und versuche 1025Bytes zu alloziieren.

    => egal wie viele solche Blöcke ich habe, selbst wenn alle genau 1024Bytes lang sind und zwischendrin jeweils nur 1 Byte belegt ist kommt es zu einer Out-of-Memory Exception.

    Ja, das zu bedenken und zu vermeiden gehört auch zum Entwickler-Job und zu "dynamischer Speicherverwaltung" dazu - so what?
    Die Fragmentierung wird halt noch schneller akut, wenn da und dort Blöcke belegt und nie wieder freigegeben werden und damit den freien Speicher zerstückeln.
    Aber mit 2 GB Adreßraum sollte schon einiges machbar sein.


    Und ja, die Fehler werden sich alle multiplizieren (und nicht nur addieren) ....

    1+2 sind vergleichsweise "einfach" zu beheben, sobald man sie gefunden hat (wobei das wort einfach relativ ist, je nach komplexität). Nummer 3 ist da schon etwas nerviger.

    Naja, das ganze Zeug mal mit "Address sanitizer" bauen, testen lassen und den Fallout angehen. Ja, das ist unsexy, mühsam, aufwendig und $MANAGER nichts neues auf eine Slide oder sonstwohin packen.

    Es gibt Libs, die da helfen können, etc. - alles keine "rocket science" sondern mbMn "Handwerk".


    Erfahrungsgemäß werden 1+2 werden im Labor auch nicht unbedingt oft auftreten und 3 vermutlich noch seltener (was dann nicht für die Qualität des Testens spricht ...).


    zu 3): Je nachdem, wie das im Design ausschaut, können stellenweise "Memory Pools" hilfreich sein (und braucht man auch zwischendrin nichts freigeben;-).


    Und wer weiß, wie oft die im Kern "char *p = new char[256];" mit dazugehörigem "delete p;" haben - da wünscht man sich, daß die C++-Anfänger wieder malloc()+free() verwenden (dort gibt es diesen konkreten Bug nicht:-). Naja, es existieren aktuelle C++-Compiler, die da schon mal eine Warnung von sich geben (nur ist das im allgemeinen Fall nicht immer erkennbar).

    "Double free" ist böse, wird von einigen C/C++-Libs auch nur mit Extra-Optionen hart geahndet[1], läßt sich aber dafür sauber und *trivial* (mit allen vernünftigen C/C++-Libs) lösen, wenn man nach dam "delete" den Pointer auf NULL/0/nullptr setzt - es braucht auch nur ganz, ganz wenig Disziplin dafür (oder gleich ein Makro verwenden;-).

    Ich selbst bin kein Entwickler. Aber die Runewaker Jungs haben da ein paar von. Und sie haben Spiel geschrieben, dass es zur Marktreife brachte. Wäre der Leak ein triviales Poblem, dass einfach zu lösen wäre, hätten sie das bereits vor ein paar Jahren erledigt.

    Naja, ich bin halt einer (und deshalb hält sich mein Mitleid in Grenzen, wenn dermaßen dilettantisch agiert[0] wird und das Reparieren *offensichtlicher* Probleme, die praktisch deterministisch und trivial triggerbar sind, verweigert wird): Die Entwickler von damals wird es nicht mehr bei RW (oder wo immer die her waren) nicht mehr geben - in SO-Asien soll es seit vielen, vielen Jahren ziemliche Fluktuation bei derartigen Jobs geben (Foxconn wird nicht die einzige Verheizer-Bude dort sein ....).

    Und wenn keiner mehr da ist, der den gesamten Sourcecode+Dessen Design+dessen Evolution halbwegs überblickt, werden triviale Probleme halt nur schwer lösbar.


    Dann kommt dazu, daß -zig neue Features im Laufe der Zeit dazugebaut worden sind. Sind die anständig rein designt und implementiert worden oder hat der ganz neue Kollege/Praktikant die nur ganz schnell irgendwie dazugebastelt?


    Und viele Bugs sind ja dann doch auch mal gefixt worden - angeblich bzw. offiziell. Nur war das so, daß jemand die *Ursache* des Bugs (gesucht+)gefunden hat und dort das gefixt hat oder hat man oben nur die Symptome kaschiert (was nach außen bei technik-fernen Schichten als "Bug Fix" gesehen werden kann, auch wenn es keiner ist)? Dann sammeln sich jede Menge Workarounds - "Würgarounds";-) - an, die an der Oberfläche nur die Fehler kaschieren und irgendwann wird das Reparieren der Ursachen echter Bug noch mühsamer, weil man die Workarounds extra anpassen bzw. entsorgen muß.

    Das Implementieren neuer Features bzw. Contents wird ja dadurch auch nicht einfacher (sondern RW-verursachterweise noch aufwendiger für RW).


    Ohne automatisiertes Regression Testing wird das nochmal mühsamer - wird RW wohl auch nicht haben, weil sonst würden Bugs *nach* einem Fix nicht wieder auftauchen - was schon des öfteren passiert ist - (und es kostet zusätzlich Geld und beim Release 1.0 sieht keiner den Nutzen und alle nur Aufwand etc. Naja, jetzt wär der Nutzen vielfach da .....).


    Naja, und andere wirklich sauschwierige Probleme wie "NPC hat SYS_* Namen" oder bereits angesprochene Verkaufschars, die anderes liefern als in der Auslage steht (und derartiges ist ja alles auch nicht zum 1. Mal passiert) haben auch viele Monate bis zur Behebung gebraucht - und da gibt das 100% reproduzierbar und so offensichtlich, daß man es nicht leugnen oder wegargumentieren kann.


    PS: Danke an alle, die bis hierher durchgehalten haben. Wer "meine nervigen Walls of Text"(TM) lesen will, braucht es auch nicht;-)


    [0]: Ich will gar nicht "gearbeitet" sagen.

    [1]: Ich will (bereits) freien Speicher nochmal freigeben. Das Ziel ist, daß der Speicher nachher frei ist - was er ja ist. Ist das jetzt ein Fehler bzw. auf welcher Ebene ist einer?

    Burning Eyes, Rath, Bew100/Kr100/Ku100/Dr100/Sch100/M74 - Kettenträger FTW^^

    If you get the number one, the only way is down! --- Adam Ant

    Cojones kann man nicht kaufen! --- unknown

    Losers always whine about their best. Winners go home and fsck the prom queen. --- John Patrick Mason

    For I was talking aloud to myself. A habit of the old: they choose the wisest person present to speak to; the long explanations needed by the young are wearying. --- Gandalf, the White

  • hoi hoi...


    Da ja die weniger wichtigen fragen schon mehr oder minder beantwortet wurden, jetzt mal zum essentiellen:

    Machst Du das freiwillig hier, oder wurdest du "gebeten"?

    Anders ausgedrückt, ist der Frage/Antwort Thread auf deinem mist gewachsen, und macht es Dir Spass?

    Siehst Du persönlich einen Erfolg darin?

    Magst Du Spaghetti?


    MFG

    Iiu

  • Hammer Sache


    Alles richtig gemacht, jetzt noch ne 60% Dia Promo hinterher (während des Angebotes der Hammer) und Ihr macht das Geschäft eures Lebens.......


    Werden die Hammer dauerhaft als We Angebot mit aufgenommen?

  • Ich sagte recht gerne zu, dass ich mich den Fragen der Comm stelle. Ich glaube, die Idee mit dem fragt mich alles war meine, die ursprüngliche Anfrage ging eher in Richtung offenen Brief. Mir macht das in der Tat Spass, auch wenn ich es oft schwierig finde. Die Schwierigkeit besteht hauptsächlich darin, dass ich Dinge weiß, die ich aber nicht spoilern darf. Merkte man vielleicht ein wenig bei der Diskussion um den Shop. Da wusste ich schon, dass wir daran arbeiten, dass der Payout angefasst wird und eben auch, dass eine Promo ansteht. Und nein, wir sind, was den Shop angeht, noch nicht fertig.


    Quote

    Siehst Du persönlich einen Erfolg darin?

    Für mich? Ganz klar: ja. Ich verstehe jeden Tag mehr was einen RoM Spieler bewegt. Für euch? Noch nicht, aber ich hoffe, dass da doch das ein oder andere bei rumkommt (wieder so n paar Dinge, die ich zu gerne spoilern würde.. *seufz*)


    Quote

    Magst Du Spaghetti?

    Ich bin der felsenfesten Überzeugung, dass man Menschen, die keine Spaghetti mögen, nicht ernst nehmen kann.
    Würde ich keine Spaghetti mögen, könnte ich mir also meine Zurückhaltung bei Versprechungen sparen, weil mich sowieso niemand ernst nehmen würde.
    Am liebsten Bolo, aber dann und wann auch gerne Amatriciana oder Aglio Olio Peperoncini. Auch Pomodoro. Nur Fischzeug oder Meeresfrüchte sind nicht meins. Ich esse nichts, was mehr oder weniger Gliedmassen als ich hat.
    Das doch mal ne Frage, die ich hinreichend konkret beantwortete, oder? ;)

  • Warum nicht spoilern... ich find das nicht schlimm

    du kannst uns ruhig verraten, wann ne neue Ini kommt

    wann der erste, zweite, dritte Balancingpatch kommt

    wann nen neues Levelcap kommt

    wann die Preise im IS endlich angepasst werden

    wann ihr euch mit dem Thema F2P und Diamanten im AH sinnvoll auseinander setzt

    wann ihr denkt, dass mit dem Speicherleck doch noch was getan werden kann

    ...


    Ich hab da nix gegen Spoiler - und viele andere denke ich auch nicht


    Solang du nicht das Ende von Infinity War 2 verrätst - alles gut

  • Phelan,


    mal ein anderer Ansatz zwecks Dia - Handel......


    Dia Handel nicht zulassen aber das Ihr euren Shop eine weitere Währung Hinzufügt - Gold.....


    Das würde die Goldbestände am Server radikal senken....


    Kein Betrug möglich


    Jeder kann mit Gold Kaufen mit ner evtl Obergrenze sonst fängt wieder irgendjemand zum Weinen an....


    Aber an sich wäre es auch ne Idee oder auf bestimmt Items nur die man dann erwerben kann....


    Jetzt geht es gleich wieder los, geflame und das sind meist die üblichen Verdächtigen

  • Ein hoch auf die TQ-Armeen.

    Hadrían


    Druide 100 / Schurke 100 / Bewahrer 100 / Krieger 100 / Kundschafter 100 / Magier 100


    Es gibt in der Galaxis noch so viel zu entdecken, und doch sind wir hier.

  • Am liebsten Bolo, aber dann und wann auch gerne Amatriciana oder Aglio Olio Peperoncini. Auch Pomodoro. Nur Fischzeug oder Meeresfrüchte sind nicht meins.

    100 Punkte für guten Geschmack von meiner Seite!

    Server Asteria:


    Nasuareda (inaktiv)

    (Ritter/Krieger/Kundi)


    Dosenravioli

    (Champion/Schurke/Magier)



  • Die Hämmer in den Shop zu bringen ist schon absurd, der Preis umso mehr. Ein wiederholtes Zeichen dafür das niemand sich mit dem Spiel auskennt oder beschäftigt und für GF alleine der (kurzfristige)Gewinn zählt.

    Man könnte nun noch locker einige Beleidigungen einfügen, aber dies würde nur auch niemanden interessieren und wäre ohnehin nicht zielführend.


    Schade für so ein fantastisches Spiel.

  • Und das Schild "Botter aller Welt kommt nun zu RoM" gleich dazu?
    Ne.. im Ernst, das wird nix, das wäre ökonomischer Selbstmord. Wir überlegen schon ab und an, ob und wie man sich auch das ein oder andere Premiumitem erspielen könnte, aber Gold ist da nicht der richtige Ansatz. Drops sind da die eine Richtung, in die wir denken, Daily Quests eine andere... und noch ein paar mehr. Aber das man Gold direkt im Itemshop verwenden kann, würde ich zum derzeitigen Stand ausschliessen wollen.

  • Naja gut die Bots hab ich nicht bedacht aber in RoM wird auch nichts gegen Boter gemacht selbst wenn se gemeldet werden....


    Ne im ersten Moment dacht ich nur Items erspielen zu können aus dem Itemshop ausser die für Phirusmarken.....


    Weil die, die wegen den Gold gleich Gewittert haben brauchen dann auch nicht einen Dia Handel im AH oder Npc ist das gleiche in Grün....


    team2000 man kann es nicht jeden recht machen aber des mit den Hämmerchen ist Super.... wie oft musst hde laufen bis Du mal ein teil in ü/dura bekommen tust.... und dann fehlen dir die Katalysatoren ah noch und boss izems und und und und rechne es auf ein Gilde hoch......


    Ich find es sehr gut und ich bin eigentlich sehr geizig

  • .... wie oft musst hde laufen bis Du mal ein teil in ü/dura bekommen tust.... und dann fehlen dir die Katalysatoren ah noch und boss izems und und und und rechne es auf ein Gilde hoch......

    Genau das ist der Punkt. Ich weiss es wie oft. Aber wer auch immer das entschieden hat, hat Null Plan vom Spiel ansich.


    Sicherlich verstehe ich auch deinen Standpunkt, aber welche Motivation hast jetzt genau DU diese Ini nochmal laufen zu wollen?



    Nächste Stufe ist dann, kauf dein Gear im Shop. Dura ist aber random kannste dann ja hochhämmern. Gute Nacht Runes of Magic.

    Wirste auch da kaufen müssen da sich demnächst nicht einmal mehr 6 Leute für ne Gruppe finden lassen ^^

  • Flügel stattet man auch nur noch um und macht keine neuen mehr..hab seit Jahren dieselben....endlich in ü-Dura :):)

    :)Wenn Herz und Verstand eine Einheit bilden, gelingt alles.:thumbup::thumbup:

  • Ich halte RoM übrigens mitnichten für eine Ruine. Im Gegenteil. Gerade die Diskussionen hier zeigen, wie viel Herzblut der Community im Spiel steckt. Ich sehe da unglaubliche Chancen drin.

    Phelan Wenn du so große Chancen in der Community und vielleicht auch in RoM siehst, ist es dann auch möglich, dass ihr über eine Vergrößerung des Teams bei RW und GF, das an RoM arbeitet, nachdenkt?


    Denn aus meiner Sicht, und ich denke viele stimmen mir zu, dauert es viel zu lange bis Anpassungen, Bugfixes oder Contenterweiterungen kommen. Ich kann es verstehen, wenn z.B. nur fünf Leute bei RW an RoM arbeiten, dass es so lange dauert, aber ich hoffe trotzdem, dass es zukünftig schneller geht. Eine Option wäre die Vergrößerung des Teams bei RW.

  • Da arbeitet vlt eine Person in ein Monat 10h dran. Vieles was geändert werden sollte könnte man in ganz kurzer zeit machen.

    Gameforge hört auf die Spieler zu ignorieren. Lernt endlich das nur ein zufriedener Kunde gerne und viel bezahlt .


    Wenn Du nicht zuhörst, verkaufst Du auch nichts. – Caroline Marland

  • Wo ist Phelan hin? Hat ihn das game vergrault?

    Lunnarra Druide/alles Baldr - Gilde Thechiller


    Spongebôzz Hexenmeister/Champion Baldr - Gilde Thechiller


    Alaska Ritter/Magier Zikiel - Gilde Possibility R.i.p




    <3Atomic Kitten<3