Neues Leben alter Spiele: das offenste Quellverzeichnis der Quellports (Java + PHP)

Vor kurzem kam mir der Gedanke, meinen alten Katalog mit Quellports und Grafikmodifikationen fĂŒr alte Spiele wiederzubeleben. Die neue Version sollte so offen und offen wie möglich sein, damit jeder Benutzer sowohl den Inhalt der Website als auch den Code bearbeiten kann, und ich mĂŒsste mich nur mit der Vormoderation der Änderungen befassen. Wenn Sie daran interessiert sind, was daraus entstanden ist, wie ich meine eigenen Probleme geschaffen und wie ich sie dann gelöst habe, sind Sie bei cat willkommen.



Kurze TK auf der Website


  • Informationen zu Änderungen fĂŒr Spiele (Fan-Patches, Textur-Sets, Quell-Ports usw.) werden auf die Site hochgeladen, um die Grafik zu verbessern, einige Aspekte der Verwaltung zu vereinfachen und sie auch auf ein anderes Betriebssystem oder eine andere Plattform zu ĂŒbertragen. Ein Beispiel fĂŒr solche Mods ist das HinzufĂŒgen von Frames zu Dune 2, um Einheiten oder hochauflösende Texturen fĂŒr Doom auszuwĂ€hlen
  • Die Site enthĂ€lt nur Informationen, nicht jedoch die Dateien mit Änderungen und Ports. In der alten Version der Site habe ich versucht, neue Kopien von Dateien zu pflegen und hochzuladen, was Zeit in Anspruch nahm
  • Die Site sollte sowohl vom Desktop als auch von einem Tablet oder Telefon aus bequem zu verwenden sein
  • Jeder Benutzer sollte in der Lage sein, der Site ein Spiel, eine Änderung usw. hinzuzufĂŒgen sowie alle Informationen zu bearbeiten, die der Site bereits hinzugefĂŒgt wurden
  • Jeder Benutzer sollte in der Lage sein, den Code und das Layout der Site zu bearbeiten
  • Der Websitebesitzer sollte in der Lage sein, Änderungen vorab zu moderieren
  • Es sollte möglich sein, zusĂ€tzliche Moderatoren hinzuzufĂŒgen
  • Es sollten SchaltflĂ€chen zum Teilen in sozialen Netzwerken vorhanden sein

Lösung


Und lassen Sie uns alle Daten auf den Github stellen. Werden wir aus diesen Daten eine statische Site generieren? Solide Pluspunkte!


  • GitHub bietet bereits eine WeboberflĂ€che zum Ändern oder HinzufĂŒgen von Dateien und zum Übermitteln von Änderungen als Pull-Anforderung.
  • Pull Request - ein hervorragendes System zum Moderieren von Änderungen und Anzeigen von Unterschieden
  • Benötigen Sie neue Moderatoren? FĂŒgen Sie dem Projekt auf dem Github Benutzer hinzu, ohne ĂŒber das Rechte-System nachdenken zu mĂŒssen
  • Eine statische Site kann auf absolut jedem Hosting gehostet werden, einschließlich GitHub-Seiten
  • Jede AktivitĂ€t wie Kommentare, Freigabe oder der Block "zufĂ€llige Änderung" kann auf dem Client mithilfe von JS und vorgefertigten Lösungen wie Disqus implementiert werden
  • Verwenden Sie zur Vereinfachung und Geschwindigkeit des Layouts Bootstrap

Außerdem wollte ich schon lange ĂŒben, eine statische Site in Java zu schreiben. Gelöst! In einem Repository speichern wir Daten , im zweiten einen statischen Site-Generator . Zug ... Obwohl nein, hör auf, musst du zuerst eine andere Entscheidung treffen.


In welchem ​​Format sollen Informationen gespeichert werden?


Das Speichern von Spielbeschreibungen oder Änderungen in Dateien des Formats "JSON / XML / eigene Version schreiben" scheint eine gute Idee zu sein, aber unsere Anforderungen lauten "... jeder Benutzer ...", und einige JSON können Sie erschrecken. Nun, die Frage ist MĂŒll - speichern wir die Daten in einem BĂŒndel von Text- oder Markdown-Dateien. Eine Datei - eine EntitĂ€t, MD-Dateien auf Github haben eine Vorschau - Lepota! Und um die Situation zu vereinfachen, werden wir in der Dokumentation ausfĂŒhrlich schreiben, wofĂŒr verantwortlich ist. Teil dieser Informationen:



Und ich möchte sagen, dass das Bearbeiten der vorhandenen Informationen in diesem Modus sehr praktisch ist. Aber es gibt eine EinschrÀnkung ...


Neue Informationen hinzufĂŒgen


Es stellte sich als zweckmĂ€ĂŸig heraus, die Daten zu bearbeiten, aber eine neue Änderung zu starten war nicht sehr wichtig, da 4 bis 14 Dateien gleichzeitig erstellt werden mussten. Und dies ĂŒber die Github-Schnittstelle zu tun, ist verdammt unpraktisch. Der erste Gedanke war, mehrstufige Anweisungen zu erstellen, die beschreiben, wie neue Informationen von und nach hinzugefĂŒgt werden.



Leider war das Urteil der Website-Benutzer eindeutig: unpraktisch! Und wenn Benutzer sich auf einer Site unwohl fĂŒhlen, die von BenutzeraktivitĂ€ten leben sollte ... wissen Sie, das kirdyk-Projekt.


PHP zur Rettung


Nun, was zu tun war, war die Entscheidung im Allgemeinen offensichtlich: Schreiben Sie Formulare zum Erstellen neuer Informationen, indem Sie eine Pull-Anfrage mit allen erforderlichen Dateien erstellen und Screenshots in vorhandene Beschreibungen hochladen. Laut altem GedĂ€chtnis wurde PHP fĂŒr diese Formulare verwendet, weil das Projekt so schnell wie möglich gestartet werden sollte und weil PHP bereits auf dem Hosting war.



Aufgestiegen?


Nach dem HinzufĂŒgen praktischer Formulare begann der Prozess: In den ersten Wochen nach dem Posten von Informationen ĂŒber die Site in meinem Videoblog und auf der Old-Games.RU-Site wurden neue Mods und Ports mit einer solchen Geschwindigkeit hinzugefĂŒgt, dass ich einfach keine Zeit hatte, Moderation durchzufĂŒhren!



ZusĂ€tzlich zum HinzufĂŒgen von Informationen wurde mir auch eine Reihe von Kommentaren und VorschlĂ€gen zur BenutzeroberflĂ€che und FunktionalitĂ€t abgeworfen, von denen einige bereits implementiert wurden und einige noch in den Startlöchern warten.


Eine der hĂ€ufigsten Beschwerden war das Erscheinungsbild der Website - und das ist verstĂ€ndlich, da ich das Standard-Bootstrap 4-Thema mit dem Gedanken "Dies ist vorĂŒbergehend, dann werde ich eine schöne Haut aufsetzen" verwendet habe. Der Witz ĂŒber "es gibt nichts Bleibenderes als nur vorĂŒbergehend" will nicht einmal reproduziert werden.


Dann begann natĂŒrlich die AktivitĂ€t abzunehmen, aber es gibt immer noch einige aktive Benutzer auf der Site und die Site fĂŒllt sich weiterhin mit Informationen. Zum Zeitpunkt des Starts Mitte Februar hatte die Site 227 Mods fĂŒr 86 Spiele und zum Zeitpunkt dieser Veröffentlichung 323 Mods fĂŒr 130 Spiele .


Und warum hast du es hier geschrieben?


Erstens, um eine andere Geschichte mit offensichtlicher Moral zu erzĂ€hlen: „Die BenutzeroberflĂ€che ist bequem und angenehm fĂŒr den Programmierer, sie wird fĂŒr den Benutzer der Website ĂŒberhaupt nicht bequem sein.“ Trotz der BanalitĂ€t der These sollte sie regelmĂ€ĂŸig erinnert werden.


Und zweitens - um Fans einzuladen, sich in den Code zu vertiefen oder die Schnittstellen zu zeichnen und zu drehen. Vielleicht interessiert dich das Thema der Seite und du willst ein wenig bei der Entwicklung helfen ;-)


Wenn Sie interessiert sind, dann lebt der gesamte Quellcode der Site auf einem Github .


PS Video-Tour durch die Website


Source: https://habr.com/ru/post/de451226/


All Articles