Schönen Guten Tag liebe Com,
ich habe mich die letzte Zeit intensiv mit dem Code des Spiels auseinander gesetzt, zumidest mal mit python. Auch wenn es im Quellcode viele Elemente gibt, die ohne Probleme entfernt werden können und ich sehe oftmals Codes, die komplett unstrukturiert und übersichtlich sind. Als Beispiel werfen wir mal einen Blick in die typische game.py welche bei jedem fast gleich aussieht. Doch schon ganz oben fängt des ganze an:
1. --> Zusammenfügen der ganzen imports und löschen von doppelten imports.
Sieht schon vom Anfang unordentlich aus und vorallem diese doppelt und draifachen imports überall sind komplett UNNÖTIG, weil es bereits genügt , ganz oben es nur 1x stehen zu haben. Und um das ganze besser zu machen, habe ich dies in dieser Form zusammen gestellt, was exakt den gleichen Zweck erfüllt:
spart eine Mange Zeilen und wenn ihr die duplikat Imports noch entfernt, sind es noch mehr.
2. --> entfernen von Codes, die im Spiel nicht verwendet werden.
Überall in den Files befinden sich Code schnipsel, welche so aussehen:
Diese Codes wurden aus bestimmten Gründen auskommentiert und deaktiviert, z.B weil diese Probleme mit anderen Funktionen auslösen, nicht gebraucht werden oder nicht vollständig und fehlerfrei implementiert worden sind. Auf jeden Fall können diese entfernt werden, wenn nicht gebraucht, es wird keine Auswirkungen auf das Spiel haben. Wer gründlich sucht, wird auch einiges an Platz sparen können.
3. Kommentare welche auf Koreanisch sind.
Es befinden sich haufenweise Kommentare wie das hier z.B.
oder das hier:
hier kann man eben erkennen, dass den Entwicklern iwie langweilig war, weil solche Teile einfach nur überall vorkommen.
Jedenfalls genügt es, wenn man Funktionen mit eindeutigen Kommentaren versieht und diese auch lesen kann. Es kann auch vorkommen (abhängig vom Editor), dass diese Zeichenfolge beim Bearbeiten Probleme bereitet und beim Speichern (ich glaube die uilocale.py) oder sowas in der Richtung.
4. (Trifft nicht auf alle zu, da manche lieber den Abstand zwischen den Commands so lassen wollen), doch man kann alle Leerzeichen und Tabs am Ende jeder Zeile direkt rauslöschen. Ebenfalls können alle Leerzeilen mit rausgelöscht werden, dadurch wird der Code nochmal locker 100-300 Zeilen kleiner und ist am Ende übersichtlicher.
Wer diese Schritte befolgt, wird es später leichter haben, Dinge im Code zu suchen und zu verändern.
Das gleiche habe ich auch mit der Source des Clienten und des Servers gemacht, dort sollte man etwas vorsichtiger sein, weil das compilen eben zeitaufwändiger ist. Dort findet man sehr viele solche Elemente:
oder
Ihr werdet in vielen .cpp sowie auch .h Files extrem viel solcher unnötigen und sowieso unleserlichen Kommentare finden, diese werden euch in ein paar Fälle die Dateien um fast 1/3 schrumpfen, ohne das des Spiel davon beeinträchtigt wird.
Ich hoffe mit diesen Tipps konnte ich dem einen oder anderen bisschen helfen, auch wenn das jetzt keine große Sache ist. Es wird euch am Ende eben Zeit sparen und vllt geht das compilen auch etwas schneller, wenn das System nicht solange braucht, jede Datei vollständig einzulesen. Ich habe mir die Zeit genommen und ich hab das Gefühl, dadurch läuft das Spiel am Ende ein tick flüssiger und sauberer. vllt bilde ich mir des aber auch nur ein, es auszuprobieren, schadet auf jeden Fall nicht.
Wer dies machen will, soll am besten nach jeder File die root zusammenpacken und des Game starten und testen ob nichts versehentlich falsch gelöscht wurde. Auch backups sollten davor gemacht werden.
Falls ihr weiter Fragen habt, was Python und dem Modding von Metin2 angeht, könnt ihr mich gerne anschreiben.
€: Ich würde für diese Aktion Notepad++ benutzen, da dieser Editor alle Funktionen hat, dies schnell für die gesamte Datei zu übernehmen. Niemand will jede einzelne Zeile von Hand bearbeiten/löschen, sowas kann damit in wenigen Sekunden gemacht werden.
mit freundlichen Grüßen, Endless :)
ich habe mich die letzte Zeit intensiv mit dem Code des Spiels auseinander gesetzt, zumidest mal mit python. Auch wenn es im Quellcode viele Elemente gibt, die ohne Probleme entfernt werden können und ich sehe oftmals Codes, die komplett unstrukturiert und übersichtlich sind. Als Beispiel werfen wir mal einen Blick in die typische game.py welche bei jedem fast gleich aussieht. Doch schon ganz oben fängt des ganze an:
1. --> Zusammenfügen der ganzen imports und löschen von doppelten imports.
Code:
import os import app import dbg import grp import item import time import background import chr import chrmgr import cw_player import snd import chat import textTail import snd import net import effect import wndMgr import fly import systemSetting import quest import guild import skill import messenger import localeInfo import constInfo import exchange import ime import ui import serverInfo import uiCommon import uiPhaseCurtain import uiMapNameShower import uiAffectShower import uiPlayerGauge import uiCharacter import uiTarget import uiDeathCause import uiauctionbuylink import uiTeleport import uiMobInfo import uiProphecy import cw_lootfilter import localeString import nonplayer import uiCelestialPortal import uiToolTip
Code:
import serverInfo,uiCommon,uiPhaseCurtain,uiMapNameShower,uiAffectShower,uiPlayerGauge,uiCharacter,uiTarget import uiDeathCause,uiauctionbuylink,uiTeleport,uiMobInfo,uiProphecy,cw_lootfilter,localeString,nonplayer,uiCelestialPortal,uiToolTip
2. --> entfernen von Codes, die im Spiel nicht verwendet werden.
Überall in den Files befinden sich Code schnipsel, welche so aussehen:
Code:
# if not app.IsPressed(app.DIK_LSHIFT):
3. Kommentare welche auf Koreanisch sind.
Es befinden sich haufenweise Kommentare wie das hier z.B.
Code:
# ij¸¯ÅÍ ÁÂÇ¥ ¹
Code:
######################################################################################
Jedenfalls genügt es, wenn man Funktionen mit eindeutigen Kommentaren versieht und diese auch lesen kann. Es kann auch vorkommen (abhängig vom Editor), dass diese Zeichenfolge beim Bearbeiten Probleme bereitet und beim Speichern (ich glaube die uilocale.py) oder sowas in der Richtung.
4. (Trifft nicht auf alle zu, da manche lieber den Abstand zwischen den Commands so lassen wollen), doch man kann alle Leerzeichen und Tabs am Ende jeder Zeile direkt rauslöschen. Ebenfalls können alle Leerzeilen mit rausgelöscht werden, dadurch wird der Code nochmal locker 100-300 Zeilen kleiner und ist am Ende übersichtlicher.
Wer diese Schritte befolgt, wird es später leichter haben, Dinge im Code zu suchen und zu verändern.
Das gleiche habe ich auch mit der Source des Clienten und des Servers gemacht, dort sollte man etwas vorsichtiger sein, weil das compilen eben zeitaufwändiger ist. Dort findet man sehr viele solche Elemente:
Code:
// NOTE : 매트릭스에서 위치를 직접 얻어온다 - [levites]
Code:
/*스에서 위치를 직접 얻어온다
Ich hoffe mit diesen Tipps konnte ich dem einen oder anderen bisschen helfen, auch wenn das jetzt keine große Sache ist. Es wird euch am Ende eben Zeit sparen und vllt geht das compilen auch etwas schneller, wenn das System nicht solange braucht, jede Datei vollständig einzulesen. Ich habe mir die Zeit genommen und ich hab das Gefühl, dadurch läuft das Spiel am Ende ein tick flüssiger und sauberer. vllt bilde ich mir des aber auch nur ein, es auszuprobieren, schadet auf jeden Fall nicht.
Wer dies machen will, soll am besten nach jeder File die root zusammenpacken und des Game starten und testen ob nichts versehentlich falsch gelöscht wurde. Auch backups sollten davor gemacht werden.
Falls ihr weiter Fragen habt, was Python und dem Modding von Metin2 angeht, könnt ihr mich gerne anschreiben.
€: Ich würde für diese Aktion Notepad++ benutzen, da dieser Editor alle Funktionen hat, dies schnell für die gesamte Datei zu übernehmen. Niemand will jede einzelne Zeile von Hand bearbeiten/löschen, sowas kann damit in wenigen Sekunden gemacht werden.
mit freundlichen Grüßen, Endless :)