swf Gameserver programmieren Anleitung/Tutorial?

Status
Für weitere Antworten geschlossen.
Ohne jetzt noch extra Öl in das Feuer dieser sinnlos Diskussion schütten zu wollen, aber omaliesschen, du hast dich bisher auch alles andere als mit Ruhm bekleckert. Und der JSON-Post rückt einige deiner Aussagen dann in ein ganz anderes Licht.



Hancock schrieb:
@e-Laurin:
Laut deutschem Recht darfst du dein Gameclient anpassen, so viel du willst. Du darfst auch die Anpassungen (an denen du das Urheberrecht hast), verteilen.
Tut mir leid Hancook, aber diese Aussage ist nach deutschem Recht falsch.
Man darf nach deutschem Urheberrecht ein Werk für den privaten Gebrauch anpassen, wie man es will, aber NIEMALS verteilen. Das ist erlaubt. Aber dieser Teil des allgemeinen Urheberrechts wird durch die Spezialregeln des Software-Urheberrechts §69 außer Kraft gesetzt. Und §69 Abs. 1 Nr. 2 UrhG schließt das Bearbeiten von Computerprogrammen aus, und da gibt es keinerlei Einschränkung auf den privaten Gebrauch mehr.
 
Ja, theoretisch könnte §69d Absatz 1 UrhG als Ausnahme von §69c Nr. 2 UrhG gelten, aber diese Ausnahme gilt eben auch nur wenn die Änderung für eine "bestimmungsgemäße Benutzung" nötig ist. Das Problem hierbei ist, dass die bestimmungsgemäße Nutzung gesetzlich nicht definiert wurde. Es gibt da ein Jahre altes Urteil, zu den Anfangszeiten von Word, als ein Rechtsanwalt das Paragraphen-Zeichen in den Bytecode von Word gefriemelt hat, damit er Word eben nutzen kann, das war auch nicht bestimmungsgemäß...
Und die Nutzungsbestimmungen des Software untersagen ja sowieso die Veränderung.

Und §69e UrhG hat keinerlei praktische Relevanz, denn hier hängt wieder alles an der Definition von bestimmungsgemäß aus §69c Absatz 2 UrhG. Die Juristen sind sich da ausnahmsweise auch mal alle einig, dass dieser Paragraph wirklich keinerlei praktische Relevanz hat. Der Paragraph wurde direkt aus den EU-Verordnungen übernommen, und da der deutsche Gesetzgeber den Paragraphen auch nicht verstanden hat, hat er Absatz 3 angehängt, dass die Regeln nur gelten, wenn quasi kein anderes Recht verletzt wird :lol:. Also auf gut deutsch, direkt einen Absatz dahintergehängt, der die vorderen beiden Absätze nichtig machen kann...


Auch wenn im Recht vieles Auslegungssache ist, die Modifikation fremder Software - selbst zum Eigenbrauch - ist in Stein gemeißelt: nicht erlaubt.
Nach den letzten Grundsatzentscheidungen der EU zur Nachprogrammierung von Software oder dem Verkauf von Gebrauchtsoftware würde die EU hier heute wahrscheinlich anders urteilen, aber dazu müsste eine Klage wegen so etwas erstmal bis zum EugH.
 
Vom rechtlichen Aspekt abgesehen, um was für ein Spiel handelt es sich denn konkret (habe beim schnellen Überfliegen nichts gefunden)? Ohne dem TS falsche (oder überhaupt) Hoffnungen machen zu wollen, wäre es mal interessant zu sehen oder abzuschätzen, was der Server überhaupt tut.
 
@ice-breaker
Der JSON Beitrag zerstört meine Reputation. :(

In welches Licht rückt er denn einige meiner Aussagen?

Wenigen Stunden nach dem "ersten richtigen Kontakt mit JSON" wurde das Konzept wie folgt in das Projekt eingebunden:

Code:
    $json = array('loaded_msg' => array('msg_detail'));
    foreach ($sth as $r) { $json['loaded_msg']['msg_detail'][] = $r; }
    $json = json_encode($json);

Der Loop ist unverzichtbar.

Deshalb habe ich das Thema JSON angesprochen und wie man anhand der Lösung erkennen kann untermauert es meine Argumentation. Selbst ein Besuch bei Stackoverflow war unnötig.

Dennoch ist nach wie vor nicht sicher geklärt in wieweit alle Zeichen mit der Standard Funktion escaped werden.
 
Zuletzt bearbeitet:
Interessant, du scheinst rechtlich fitter zu sein als ich.

Ich hab §69e so interpretiert, dass damit das Reverse-Engineering erlaubt ist für z.B. die Unterstützung von .doc in OpenOffice.

Auch passend zum Thread:
Da ja die Modifikation nicht drin ist, ist wohl der indirekte Weg (ini's, Hosts, DLL-Hook etc.) der beste Weg. Der Vorteil dabei ist, dass alles auch gut dokumentiert ist.
 
Das sich der TE bzgl. des Spieltitels so bedeckt hält lässt vermuten dass es hier um einen Rechtsbruch geht.
 
omaliesschen schrieb:
Der JSON Beitrag zerstört meine Reputation. :(

In welches Licht rückt er denn einige meiner Aussagen?
Frickellösung, der angesprochene Punkt mit der fehlenden "Ausbildung" (nicht die Ausbildung) usw.
Rummeckern über etwas total triviales, weil du es anfangs nicht verstanden hast. Weil du anfangs unbedingt alles neu erfinden musstest und eigene Ausgaberoutinen schreiben musstest (sieht man oft bei Anfängern usw.).
Somit zerstört es schon gewaltig das Bild von jemanden, wenn der dann 1 Tag später ankommt und schreibt, dass alles (Achtung: Übertreibung!) learning-by-doing klappt, Studium fürn Popo ist, Fachliteratur auf toten Büchern in den Zeiten von Google überflüssig ist, du ein Gott mit einer Publikation bist usw.
Beides kombiniert landet man ziemlich genau bei einem Bild eines unter Hybris leidenden Anfängers, der sich viel zu ernst nimmt.

Was davon nun zutrifft, weiß ich nicht, ist mir ehrlich gesagt auch vollkommen egal.

Ich verstehe deine Aussagen und auch die von Daaron. Mein Programmiererfahrung und Selbstständigkeit hatte ich schon vor meinem Studium, und da hat das Studium auch nichts verbessert, nur die praktische Arbeit.
Aber das Studium hat mir die Augen für noch mehr Dinge geöffnet, die man sonst einfach nie zu Gesicht bekommen hätte, und durchaus auch nicht immer die praktisch die höchste Relevanz haben, aber im großen und ganzen mich doch deutlich wachsen lassen haben und ich durchaus sagen kann, dass ich doch besser geworden bin. Aber auf eine Art, die man eben nicht ohne weiteres beschreiben kann, die man im Code auch nicht immer ohne weiteres sieht. Außer eben wenn man dann z.B. meinen Code liest und eine "kranke" Implementierung für eine topologische Sortierung liest, die eben keine 5 ineinander verschachtelten Schleifen sind (O(n^5)) sondern eben in O(n^2) läuft. Etwas worüber man sich früher keine besonderen Gedanken gemacht hat, oder was man über verteilte Systeme gelernt hat (Nachrichten kommen out-of-order oder gar nicht an) und Problemlösungen dann eben deutlich komplexer werden, weil die simplen Lösungen, die man vor diesem Wissen genutzt hätte, einfach tausende Fehlerquellen haben. Das wissenschaftl. Konzipieren eines solchen Systems, dass diese Fehler nicht auftreten, Nonces um Message-Duplikates zu filtern usw. Das meiste hätte man sich auch ergoogeln können, aber wenn man es von Anfang an schon, weiß, macht es einen eben irgendwie doch "besser". Genauso wie nicht die erstbeste Lösung zu nehmen sondern sich über ein Problem erst richtig zu informieren, dass man dann eine bessere Entscheidung trifft, das sind eben Dinge die man sich nicht unbedingt durch learning-by-doing aneignet, kann man, findet aber seltenst statt.

Und seien wir ehrlich, die meisten, die sich Entwickler schimpfen, kann man in einer Pfeife rauchen - warum das so ist, könnte ich aber nicht begründen.
 
Zuletzt bearbeitet:
Frickellösung, der angesprochene Punkt mit der fehlenden "Ausbildung" (nicht die Ausbildung) usw.
Rummeckern über etwas total triviales, weil du es anfangs nicht verstanden hast.

Das ändert nichts daran dass diese Lösung keinen Einzug in das bestehende Projekt gefunden hat und darauf bezog sich Tumbleweed.

Alles was zählt ist hier erstmal das Endprodukt. Deshalb die Frage: Gibt es etwas an der fertigen Lösung auszusetzen?

Ja? Was?
Nein? Aussage bestätigt.

der sich viel zu ernst nimmt

Der Kern meiner Argumentation wurde wohl missverstanden. Es bedeutet im Grunde folgendes: "Nimm Du dich mal nicht zu ernst". Gerichtet an den beteiligten Diskussionspartner, dessen von Ihm selbst so hoch angesehenes von <= Abiturienten nicht erreichbares wissenschaftliches Vorgehen für die Tonne ist da seine Aussagen diese Methoden missen lassen. Wissenschaftliche Neutralität. Hellseherei etc., Resultate ohne Grundlagen.

Und seien wir ehrlich, die meisten, die sich Entwickler schimpfen, kann man in einer Pfeife rauchen - warum das so ist, könnte ich aber nicht begründen.
Eine Aneinanderreihung von fertigen Bausteinen. Mehr ist es heute doch schon nicht mehr für den Durchschnitt. [...]Aber ich kenn mehr libs als Du[...]

Man muss sich halt nicht alles bieten lassen.
 
Zuletzt bearbeitet:
omaliesschen schrieb:
Das sich der TE bzgl. des Spieltitels so bedeckt hält lässt vermuten dass es hier um einen Rechtsbruch geht.

Für die Beurteilung ob es ein Rechtsbruch ist oder nicht spielt der Titel keine Rolle, da der TE ja bereits bestätigt hat dass es nicht sein Spiel ist sondern von anderen Entwicklern stammt und dass er nicht an den Code heran kommt, wie er ebenfalls bestätigt hat, schließt ein Open Source Spiel mit entsprechender Lizenz ebenfalls aus.

Wie dem auch sei: Wenn der TE wirklich sowas vorhat, vielleicht auch in einem anderen Zusammenhang, sollte er wirklich erstmal studieren gehen und anschließend Erfahrung in der Praxis sammeln. Danach sollte sein Vorhaben auch gelingen, mal unabhängig von der Rechtslage.
 
ice-breaker schrieb:
Auch wenn im Recht vieles Auslegungssache ist, die Modifikation fremder Software - selbst zum Eigenbrauch - ist in Stein gemeißelt: nicht erlaubt.

Ich modifizier ja nichts. Einfaches Beispiel: Minesweeper:

Erstmal such ich mir im Speicher wo das Array ist, in dem das Minenfeld liegt und analysiere wie das Array aufgebaut ist. Dafür murks ich zwar irgendwo im virtuellem Adressraum rum, aber dem Programm verändere ich dafür gar nichts. Ok, jetzt weiß ich wie das Array aussieht und welchen Wert es hat wenn es eine Mine ist.

Jetzt bin ich ja von Natur aus paranoid und weiß ja gar nicht ob minesweeper nicht ein böse Maleware ist (last time i checked ist reverse engineering erlaubt zur Überprüfung der Anwendungssicherheit) und es gibt nur einen Weg das herraus zu finden, also starte ich meinen Lieblingsdebugger und fange an mir alle Funktionen an zugucken. Dabei finde ich dann irgendwann die Funktion "CheckBox" die 2 Parameter aufnimmt.

Jetzt schreib ich mein eigenes Programm, was die Funktion "CheckBox" hooked und gewinne damit Minesweeper in wenigen millisekunden (Da ich ja genau weiß wo Minen sind und wo nicht) und die CheckBox Funkion ist genau die, die aufgerufen wird wenn ich auf ein Feld Klicke. Die Funktion ist da, ich ruf die nur auf und "interprocess communication" ist ein Designmerkmal von Windows.

An keiner Stelle hab ich minesweeper modifiziert.

Oh und wenn ich Protokoll Analyse mache, kann mir das Programm an sich evtl. sogar komplett egal sein und wenn ich den Server emuliere kann ich schlecht den Servercode klauen, wenn ich da keinen Zugriff drauf habe, ich implementiere das so, wie ich denke das es sein soll.
 
Zuletzt bearbeitet:
ice-breaker schrieb:
Und seien wir ehrlich, die meisten, die sich Entwickler schimpfen, kann man in einer Pfeife rauchen - warum das so ist, könnte ich aber nicht begründen.
Weil sie den schnellen, leichten Weg wählen. So einfach ist das.
Gerade die branchenfremden Autodidakten denken verdammt selten über ihr spezifisches Problem nach, sondern gehen es einfach mit einer "Let's do it"-Mentalität an. Ärmel hochkrempeln und mit Trial&Error so lange herumspielen, bis das Problem irgendwie gelöst ist. Stolpern sie nach längerer Zeit über ein ähnliches, aber eben doch leicht verschiedenes Problem, dann fangen sie WIEDER bei 0 an und basteln herum.
Solange die Probleme nur winzig sind, sagen wir mal in 2k Zeilen abgehandelt, funktioniert so etwas noch. Wenn man hingegen mal ein paar Zeilen mehr schreiben muss, wars das.
 
Und auch Daarons aktueller Beitrag lässt eine Wissenschaftliche Ausbildung nicht vermuten. Was hat es eigentlich mit diesem gerne erwähnten wissenschaftlichen Arbeiten auf sich wenn es am Ende in der Praxis nicht angewendet wird?
Ergänzung ()

Ich fühle mich zumindest nicht den von euch herabgestuften Autodidakten zugehörig. Die Wissenschaft stuft mich in den Geniesektor ein. Von daher. Who cares.:cool_alt:
 
Zuletzt bearbeitet:
omaliesschen schrieb:
Und auch Daarons aktueller Beitrag lässt eine Wissenschaftliche Ausbildung nicht vermuten. Was hat es eigentlich mit diesem gerne erwähnten wissenschaftlichen Arbeiten auf sich wenn es am Ende in der Praxis nicht angewendet wird?

Wer spricht denn hier vom wissenschaftlichen Arbeiten? Das hat doch eher mit Forschung zu tun und nichts mit der Praxis im Berufsalltag. Und dort sind die Anforderungen halt ganz andere. Da geht es um Effizienz und nicht darum, wie Daaron schon schrieb, bei jeder minimalen Abwandlung der Aufgabenstellung wieder bei Null anzufangen.
 
Kanibal schrieb:
Jetzt gebt ihm halt endlich das Tutorial !!

Ach so, hat einer seit gestern eines geschrieben? Lies bitte den Thread, denn für das was der TE will gibt es keines.
 
Ist die Aussage dass Autodidakten bei jeder kleinen Änderung von neu beginnen allgemeingültig? Auf welchen Forschungsergebnissen basiert die Annahme? Gibt es einen Link zu einem Paper hierzu?

Wie steht es um die Wiederholbarkeit der Analyse welche die Allgemeingültigkeit ergeben hat bei minimaler Veränderung am Autodidakten?

Ich zweifle hiermit die sachgerechte Anwendung empirischer Forschung an und mutmaße dass es sich bei der hier als Grundvoraussetzung für die Nachvollziehbarkeit der Argumentation gegebenen "Allgemeingültigkeit" um ein Sammelsurium aus persönlichen Erfahrungswerten handelt was aufgrund des Mangels an Neutralität und der vermeintlich unsignifikanten Menge an zusammengetragenen Daten jeglicher Grundlage entbehrt womit die Aussage an sich berechtigten Zweifeln unterworfen werden darf.
 
Zuletzt bearbeitet:
omaliesschen schrieb:
Ist die Aussage dass Autodidakten bei jeder kleinen Änderung von neu beginnen allgemeingültig? Auf welchen Forschungsergebnissen basiert die Annahme? Gibt es einen Link zu einem Paper hierzu?

Wer spricht denn hier davon dass Autodidakten immer von vorne beginnen? Auch an dich die Bitte: Lies bitte vor dem Posten.

Allerdings, und das entspricht zumindest meiner beruflichen Erfahrung, benötigen Autodidakten ohne nennenswerte Erfahrung wesentlich mehr Zeit als Entwickler die eine entsprechende Ausbildung samt Berufserfahrung vorzuweisen haben.

Du darfst meiner "Erhebung" nun gerne mit schönen Worten widersprechen, allerdings wird das nichts an meinen Erfahrungswerten ändern. Ach ja, und die Bedeutung des Wortes "empirisch" ist: Aus Erfahrung gewonnen.
 
Kanibal schrieb:
Jetzt gebt ihm halt endlich das Tutorial !!
Ich würd ja, aber das OP muss da erst mal genauere Angaben machen -.-

@daniel_m
sicher gibt es dazu Tutorials er ist vllt der erste der es für das bestimmte Spiel macht aber ansich ist das alles nichts neues. Ein Tutorial wird wohl sicherlich nicht reichen aber was man machen muss wenn man z.B. das Protokoll analysieren will, dazu findet sich was.
 
Stolpern sie nach längerer Zeit über ein ähnliches, aber eben doch leicht verschiedenes Problem, dann fangen sie WIEDER bei 0 an und basteln herum.

Aus Erfahrung gewonnen.
Ist die von euch erforschte "Allgemeingültigkeit" wissenschaftlich anerkannt?

Empirische Forschung
Empirische Forschung ist eine wissenschaftliche Methodik, welche Aussagen über die Realität durch Befragung, Beobachtung und Messung gewinnt.

Was ein paar nebenher so beobachtet haben dürfte dem Anspruch nicht gerecht werden.

Ein paar Leute und ich sahen gestern drei Schmetterling zickzack fliegen. Alle Schmetterlinge fliegen zick zack.


Allerdings, und das entspricht zumindest meiner beruflichen Erfahrung, benötigen Autodidakten ohne nennenswerte Erfahrung wesentlich mehr Zeit als Entwickler die eine entsprechende Ausbildung samt Berufserfahrung vorzuweisen haben.

Die dürfen sichs halt erlauben ohne gefeuert zu werden.^.^

BTW: Autodidakten ohne Erfahrung werden plötzlich verglichen mit Ausgebildeten Entwicklern mit Erfahrung.

Bissl unfair oder?

Vergleich bitte einen guten Autodidakt ohne Erfahrung mit einem frisch "entwickelten" Entwickler ohne Erfahrung die beide einen identischen Lernzeitraum vorzuweisen haben.
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben