LotGD refactoring

Philosophieren über Code-Schnippel und Selbsthilfegruppe für Hard- und Softwareproblemchen.
BlackScorp
Beiträge: 3
Registriert: Mi 20. Jul 2016, 21:06

LotGD refactoring

Beitragvon BlackScorp » Mi 20. Jul 2016, 21:36

Hallo liebe lotg spieler,

eine kleine Vorgeschichte, in 2004 bekam ich zum ersten Mal Internet und sofort suchte ich nach Browser Spielen, damals wurde LotGD mir bie Google empfholen und nach dem ersten RP schwierigkeiten überwenden wurden gefiel mir das Spiel immer mehr und mehr, irgendwann habe ich beschlossen das Spiel nachzubauen, ich besuchte Berufsbildende Schulen in fachrichtung Informatik, lernte PHP kennen, machte ausbildung und arbeite nun seit knapp 5 Jahren als PHP Entwickler. Ich habe es nie geschaft ein Browsergame zu entwickeln, angenfangen habe ich viele, jedoch lernte ich auf dem Weg viele interessante Personen. LotGD hat mich zu PHP Geführt, was dann mich letzendlich zu meinem Berufszweig geführt hat.

In den letzten jahren wurde die Entwicklung des Spiel eingestampft und ich habe mir gedacht, ich gebe dem Spiel das zurück was es mir gegeben hat.
Ich versuche in den nächsten Abschnitten auf die Fragen Was, Warum, Wie einzugehen

Was:
Es gibt mittlerweile viele versuche das Spiel von 0 auf zu Entwickeln, auch jetzt sind einige in Arbeit und ich habe mich auch selbst dran versucht. Ich möchte versuchen das Spiel aufzuräumen, Alle fortschritte der Spieler sollen erhalten bleiben, die Admins sollen in der Lage sein, den Code direkt zu aktualisieren.

Warum:
Viele Entwickler lieben es einen sogennanten "Greenfield" Projekt zu starten, wenn man sich aber unsere Arbeit anschaut, dann sieht man sehr oft vorhandenen Code, dieser muss gepflegt werden, bugs müssen behoben werden, unschöne hacks müssen entfernt werden usw. Dieser Prozess ist aber nicht so einfach, es ist nicht so dass man einfach sagt, ich verändere den Code und mach ihn besser, man muss immer im Hinterkopf wissen, was könnte durch meine änderung kaputt gehen. Der Prozess muss geübt werden und wenn ich mir den aktuellen Code von LotGD anschaue, ist es ein Perfektes übungsprojekt.

Wie:
Ich werde zunächst alle funktionen in Klassen auslagern, die methoden werden statisch sein, auf diesen weg muss ich im Inhalt der Funktionen nichts verändern und kann anschließend den C.R.A.P Index für die methoden ermitteln.CRAP bedeutet Change Risk Analysis and Predictions, in einfachen worten, wieviele automatisierte Tests benötige ich um 100% sicher zu gehen dass jeder Fall abgedekt ist. Sobald alle funktionen ausgelagert sind, werde ich nach und nach die Unittests für die Klassen erstellen, angefangen bei den Klassen mit dem Höhsten CRAP index.

Sobald die unittests da sind, dann kann man mit dem Refactoring beginnen.

Aktueller Status:

Der Sourcecode befindet sich auf LINK ENTFERNT er läuft auf PHP 7.0.4(default version von Ubuntu 16.04)
Ich habe mittlerweile 114 funktionen in Klassen übertragen, 391 sind noch übrig.
Die Klasse LINK ENTFERNT hat aktuell den höchsten CRAP Index von 11990
Durch das bearbeiten der Dateien im Hauptverzeichnis ist mir aufgefallen, dass sehr oft die output funktion aufgerufen wird, dadurch nehme ich an, dass durch die implementierung einer Template engine man schon sehr viel Code wegschmeißen wird.

Was hat das jetzt mit euch zu tun? :D

Zu einem dachte ich, dass es für die Admins hier interessant sein kann(php 5.6 wird ja nur noch bis zum Ende des Jahres entwickelt, anschlißend gibt es nur Security Fixes), zu anderem hoffe ich dass vielleicht sich ein Spieler oder Admin bereit erklärt einen Testserver aufzusetzen so dass die Spieler es testen könnten, das Spiel ist, soweit ich es sehen konnte, spielbar, aber ich bin nicht sonderlich weit im Spiel und viele stellen werden sicherlich ausgelöst wenn man bestimmten level erreicht hat oder auf einer anderen Art und weise.

Außerdem würde ich gerne wissen ob die admins hier sehr viel am code gearbeitet haben, wäre eventuell schade, wenn ich irgendwann fertig bin aber durch modifikationen ließe sich die neuere version nicht installieren.


Bitte verzeiht mir die Rechtschreibfehler, 8 Stunden auf der Arbeit programmiert, 5 Stunden nach der Arbeit an LotGD gearbeitet, kann ganz schön anstrengend sein :D

Viele Grüße,

BlackScorp
Zuletzt geändert von Meliz am Mi 20. Jul 2016, 23:03, insgesamt 1-mal geändert.

Benutzeravatar
Meliz
Administrator
Beiträge: 690
Registriert: Mo 25. Jul 2011, 15:12

Beitragvon Meliz » Mi 20. Jul 2016, 23:17

Hallo BlackScorp,

vielen Dank für deine Mühe.

Leider müssen wir den Aufruf an Spieler für Testserver als Werbung werten, weshalb ich die Links in deinem Beitrag entfernt habe.

LotGD.de existiert bald 13 Jahre, was bedeutet, dass 13 Jahre ständig daran weitergearbeitet wurde. Der größte Unterschied zu 2004 wird sein, dass wir schon lang nicht mehr die ehemalige 0.9.7 Dragonprime Version benutzen, sondern 1.1.2, die von verschiedensten Dragonprime-Staffmitgliedern entwickelt wurden (initial neben Talisman unserem ehemaligen Admin XChrisX). Dragonprime selbst ist so gut wie ausgestorben, da gebe ich dir Recht. Momentan ist es so, dass jeder Server seine eigenen Brötchen backt und im besten Fall danach die Sourcen (auf Anfrage o.ä.) bereitstellt. Dadurch gibt es eine sehr heterogene Landschaft, die alle ein eigenes Look and Feel haben. Im Login-Bereich von LotGD.de wirst du den Link "Netz von LoGD" finden. Du wirst schnell merken, was ich meine.

Bei uns kommen dazu auch immer wieder neue Module hinzu, ebenso wurden Coredateien an ein paar Stellen auf unseren Server zugeschnitten.

Hinzu kommt, dass dein Code generell erst einmal überprüft werden müsste, wozu mir definitiv die Zeit fehlt. Ich hoffe auf dein Verständnis.

Eine einfache Transition auf eine andere, von einer aus unserer Sicht fremder und unbekannter Quelle stammenden Version ist also nicht mal eben so getätigt und ich muss dir deshalb leider für das Großprojekt auf LotGD.de absagen.

Für technische Fragen steht dir das Team im Rahmen seiner Möglichkeiten gerne bereit.

Schönen Gruß,
Meliz
Der Kodex ist Gesetz.

„Verabschiede dich von kurzen Wegen. Begrüße Schmerz und Schinderei. Niemand hat jemals behauptet, dass immer alles einfach sei."
Tausendundeine Nacht
"Alter, das ist ein Ritualfeuer, du kannst da doch keine Marshmellows drin machen!"

BlackScorp
Beiträge: 3
Registriert: Mi 20. Jul 2016, 21:06

Beitragvon BlackScorp » Do 21. Jul 2016, 08:06

Hi Meliz,

sorry ich habe nicht erwartet dass, der Link zu Github als Werbung bewertet wird.

Also ich habe die DragonPrime 1.1.2 Stable Version als Basis verwendet, diese kann man sich zwar auf deren Forum herunterladen, jedoch ist Github die bessere Variante um ein Quellcode zu Teilen denn man sieht dort jede Zeile die Verändert wurde und man kann Issues zum Code erstellen. Das was auf Github aktuell hinterlegt ist, ist die Modifizierte DragonPrime version.

Na gut, ich denke wohl, das Beste was ich tun kan, ist selbst einen Server aufzusetzen und dort die Spieler das Spiel testen lassen.

Viele Grüße,

BlackScorp

Benutzeravatar
Meliz
Administrator
Beiträge: 690
Registriert: Mo 25. Jul 2011, 15:12

Beitragvon Meliz » Do 21. Jul 2016, 09:21

Zu Werbung zählt jede Art kommerzieller Link oder Erwähnung und speziell auch Links zu anderen Internetspielen, egal, ob frei oder kostenpflichtig.
Aus den Forenregeln. Leider muss ein weiterer Server als Konkurrenz angesehen werden, weswegen wir hier Links dazu nicht dulden können.

Was du machen kannst, ist, deinen Server, wenn er steht, ans logdnet anzubinden, dann wird er auch bei uns in der Linkliste auftauchen.

Ich verstehe schon, warum du Github nutzt, jedoch gehört diese Entwicklung eher ins Dragonprime-Forum (sofern es dort den Regeln entspricht). Dieses Forum gehört zur Instanz LotGD.de sowie seinen Aliasen und ist nicht allgemeingültig für alle LoGD-Server. Es ist also nicht die allgemeingültige, deutsche Community, sondern nur für diesen einen Server.

Schönen Gruß,
Meliz
Der Kodex ist Gesetz.

„Verabschiede dich von kurzen Wegen. Begrüße Schmerz und Schinderei. Niemand hat jemals behauptet, dass immer alles einfach sei."
Tausendundeine Nacht
"Alter, das ist ein Ritualfeuer, du kannst da doch keine Marshmellows drin machen!"


Zurück zu „Techtalk“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste