Erstens: Was du in Ruby getan hast ist grauenvolles Design und es wird dir von jedem erfahrenen Programmierer davon abgeraten werden soetwas zu tun. Vorhandenen Code von einer anderen Stelle aus zu überschreiben verstößt gegen alle Arten von Regeln guter Programmierung.
Wenn du es allerdings in Java tun willst, dann kannst du, zum Beispiel, Byte-Code Injection verwenden um den vorhandenen Byte-Code deiner GameActor Klasse mit beliebigem anderen Code zu überschreiben. Du wirst aber nirgendwo Freunde mit soetwas finden. Falls du jemals ein Portfolio für mögliche Arbeitgeber zusammenstellen möchtest würde dir solch ein Code wahrscheinlich sofort Tür und Tor versperren.
Ganz Nebenbei:
Alles geht beim Programmieren. Es gibt keine Naturgesetze die uns an irgendetwas hindern. Du hast zu jedem Zeitpunkt die vollständige Kontrolle über deine Hardware; du kannst den Speicherplatz beliebig beschreiben. Am Ende sind alles nur Bits und Bytes.
Es ist ja auch nicht so, dass im Beispiel oben die Methode speed erweitert wird, sie wird komplett überschrieben. Wenn nun ein neues Plugin eingebunden wird, das wieder eine andere speed-Methode hat, dann wird die Methode nochmal überschrieben. Es kann immer nur eine Speed-Methode geben. Was würde es schaden, die Methode direkt in Game Actor umzuschreiben?
Erstens: Was du in Ruby getan hast ist grauenvolles Design und es wird dir von jedem erfahrenen Programmierer davon abgeraten werden soetwas zu tun. Vorhandenen Code von einer anderen Stelle aus zu überschreiben verstößt gegen alle Arten von Regeln guter Programmierung.
...
Zitat
Was würde es schaden, die Methode direkt in Game Actor umzuschreiben?
...
Es geht um Plugins, also Code den du zB hier im Forum posten kannst und jemand ohne Ahnung einfach in sein Spiel kopieren kann - das klassische "erstelle ein neues Skript über Main und füge das hier ein".
Mein Beispiel ist da natürlich extrem simpel. Stellt euch ein komplexeres Skript vor, dass viele standard Klassen verändert. Ziel ist es doch ein einfaches Plugin System zu haben, bei dem man eben nicht an 5 verschiedenen Stellen etwas ändern muss.
Dann müssen einfach die entsprechenden Standardklassen derart designed werden, dass man soetwas wie Plugins angenehm einfach verwenden kann.
Was du in Ruby machst ist in der Software-Entwicklung verpönt. Aber im RPG-Maker bist du mehr oder minder dazu gezwungen, weil der Code der Standardklassen unter aller Sau ist. (Vielleicht ein bisschen übertrieben, aber der Code ist dennoch ziemlich schlecht)
Wenn du ein gutes System haben möchtest, welches Plugins unterstützt, dann würdest du eine ordentliche Klassenhierarchy mit Factories und Delegation aufbauen um alle einzelnen Bestandteile modular austauschen zu können. Allerdings muss man dafür etwas mehr als minimale Programmierkenntnisse besitzen, also schätze ich soetwas ist für die Entwickler des RPG-Makers zu viel.
Aber im RPG-Maker bist du mehr oder minder dazu gezwungen, weil der Code der Standardklassen unter aller Sau ist. (Vielleicht ein bisschen übertrieben, aber der Code ist dennoch ziemlich schlecht).
...
Dafür aber sauber auskommentiert, was ich für wichtiger halte.
So kann ich den Code verstehen. Aber ich habe mich entschieden z. B. mein Spiel eh komplett über Events laufen zu lassen, da ich keine Lust habe mich nochmal neu in Ruby bzw. die Feiheiten von RGSS3 einzuarbeiten.
Klar, so was wie eine Hypoth-Funktion bzw. allgemein eine Wurzel wird schmerzhaft vermisst aber da ja nicht alles 100 % korrekt in einem RPG-Maker-Spiel laufen muss kann man da super irgend nen Quark runterscripten der halt läuft und Ergebnisse im richtigen Bereich liefert.
Dafür aber sauber auskommentiert, was ich für wichtiger halte.
...
Eh? "Sauber auskommentiert" mag Ansichtssache sein, mMn zählen die Kommentare im RPG Maker mit zu den unnützesten überhaupt, weil sie fast nie genutzt werden, um Code zu erklären, sondern oft - manchmal wortwörtlich - wiederholen was als Code schon da steht.
Im Ace wurde das reduziert, aber im XP (und vermutlich auch im VX), wo scheinbar krampfhaft versucht wurde wirklich jeder Zeile einen Kommentar zu verpassen, findet sich zuhauf Blödsinn wie das hier:
--
"Banjo, you're a BEAR... and I will teach you... THESE MOVES!"