Nouvelle vie des anciens jeux: le répertoire source le plus ouvert des ports source (Java + PHP)

Récemment, j'ai eu l'idée de faire revivre mon ancien catalogue de ports sources et de modifications graphiques pour les anciens jeux. La nouvelle version était censée être aussi open-source et ouverte que possible afin que tout utilisateur puisse éditer à la fois le contenu du site et son code, et je n'aurais qu'à gérer la modération préalable des modifications. Si vous êtes intéressé par ce qui est arrivé, comment j'ai créé des problèmes pour moi-même et comment je les ai résolus, bienvenue au chat.



Brief TK sur le site


  • Des informations sur les modifications apportées aux jeux (correctifs pour les fans, ensembles de textures, ports source, etc.) seront téléchargées sur le site, améliorant les graphiques, simplifiant certains aspects de la gestion et les transférant également vers un autre système d'exploitation ou une autre plate-forme. Un exemple de tels mods consiste à ajouter des cadres à Dune 2 pour sélectionner des unités ou des textures haute résolution pour Doom
  • Le site ne contiendra que des informations, mais pas les fichiers de modifications et les ports eux-mêmes. Sur l'ancienne version du site, j'ai essayé de maintenir et de télécharger de nouvelles copies de fichiers pour moi, et cela a pris du temps
  • Le site doit être pratique à utiliser à la fois depuis le bureau et depuis une tablette ou un téléphone
  • Tout utilisateur doit pouvoir ajouter un jeu, une modification, etc. au site, ainsi que modifier toute information déjà ajoutée au site
  • Tout utilisateur doit pouvoir modifier le code et la mise en page du site
  • Le propriétaire du site doit être en mesure de modérer à l'avance les modifications
  • Il devrait être possible d'ajouter des modérateurs supplémentaires
  • Il devrait y avoir des boutons pour partager sur les réseaux sociaux

Solution


Et mettons toutes les données sur le github, et allons-nous générer un site statique à partir de ces données? Des atouts solides!


  • GitHub fournit déjà une interface Web pour modifier ou ajouter des fichiers et soumettre des modifications en tant que pull request.
  • Pull Request - un excellent système pour modérer les changements et visualiser les différences
  • Besoin de nouveaux modérateurs? Ajoutez des utilisateurs au projet sur le github, pas besoin de penser au système de droits
  • Un site statique peut être hébergé sur absolument n'importe quel hébergement, y compris les pages GitHub
  • Toute activité comme les commentaires, le partage ou le bloc "modification aléatoire" peut être implémentée sur le client à l'aide de JS et de solutions prêtes à l'emploi comme Disqus
  • Pour plus de simplicité et de rapidité de mise en page, utilisez Bootstrap

De plus, je souhaite depuis longtemps pratiquer l'écriture d'un site statique en Java. Résolu! Dans un référentiel, nous stockons des données , dans le second - un générateur de site statique . Former ... Bien que non, arrêtez-vous, vous devez d'abord prendre une autre décision.


Dans quel format les informations doivent-elles être stockées?


Le stockage des descriptions du jeu ou des modifications dans des fichiers au format «JSON / XML / écrire votre propre version» semble être une excellente idée, mais nos exigences sont «... tout utilisateur ...», et certains JSON peuvent vous faire peur. Eh bien, la question est des ordures - stockons les données dans un ensemble de fichiers texte ou Markdown. Un fichier - une entité, les fichiers MD sur github ont un aperçu - lepota! Et afin de simplifier la situation, nous écrirons en détail dans la documentation ce qui est responsable. Une partie de ces informations:



Et ce que je veux dire, c'est que l'édition des informations existantes dans ce mode est vraiment très pratique. Mais il y a une mise en garde ...


Ajout de nouvelles informations


Il s'est avéré commode d'éditer les données, mais démarrer une nouvelle modification n'était pas très important, car il fallait créer de 4 à 14 fichiers à la fois. Et pour ce faire, utiliser l'interface github est sacrément gênant. La première pensée a été de créer des instructions en plusieurs étapes décrivant comment ajouter de nouvelles informations depuis et vers.



Hélas, le verdict des utilisateurs du site est sans équivoque: gênant! Et si les utilisateurs sont mal à l'aise sur un site qui devrait vivre de l'activité des utilisateurs ... vous savez, le projet kirdyk.


PHP à la rescousse


Eh bien, que faire, la décision était généralement évidente: écrire des formulaires pour créer de nouvelles informations en créant une demande d'extraction avec tous les fichiers nécessaires, ainsi que télécharger des captures d'écran dans les descriptions existantes. Selon l'ancienne mémoire, en raison de la volonté de lancer le projet le plus tôt possible, et aussi parce que PHP était déjà sur l'hébergement - PHP était utilisé pour ces formulaires.



Envolée?


Après avoir ajouté des formulaires pratiques, le processus a commencé: les premières semaines après avoir publié des informations sur le site dans mon blog vidéo et sur le site Old-Games.RU, de nouveaux mods et ports ont été ajoutés à une vitesse telle que je n'ai tout simplement pas eu le temps de modérer!



En plus d'ajouter des informations, j'ai également été éjecté d'un certain nombre de commentaires et suggestions sur l'interface et les fonctionnalités, dont j'ai déjà implémenté certains, et certains attendent toujours dans les coulisses.


L'une des plaintes les plus fréquentes était l'apparence du site - et cela est compréhensible, car j'ai utilisé le thème Bootstrap 4 par défaut avec la pensée «c'est temporaire, puis je vais mettre une belle peau». La plaisanterie sur «il n'y a rien de plus permanent que temporaire» ne veut même pas se reproduire.


Ensuite, bien sûr, l'activité a commencé à décliner, mais il y a encore des utilisateurs actifs sur le site et le site continue de se remplir d'informations. Au moment de son lancement à la mi-février, le site comptait 227 mods pour 86 jeux , et au moment de cette publication - 323 mods pour 130 jeux .


Et pourquoi l'avez-vous écrit ici?


Tout d'abord, pour raconter une autre histoire avec une morale évidente: "l'interface est pratique et agréable pour le programmeur, elle ne sera pas du tout pratique pour l'utilisateur du site". Malgré la banalité de la thèse - il convient de la rappeler périodiquement.


Et deuxièmement - pour inviter les fans à fouiller dans le code ou à dessiner et faire pivoter les interfaces. Peut-être que le thème du site vous intéressera et que vous voudrez aider un peu dans son développement ;-)


Si vous êtes intéressé, alors tout le code source du site vit sur un github .


Visite vidéo PS du site


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


All Articles