Nova vida de jogos antigos: o diretório de código-fonte mais aberto das portas de código-fonte (Java + PHP)

Recentemente, ocorreu-me reviver meu antigo catálogo de portas de origem e modificações gráficas para jogos antigos. A nova versão deveria ser o mais aberta e possível, para que qualquer usuário pudesse editar o conteúdo do site e seu código, e eu teria que lidar apenas com a moderação das alterações. Se você está interessado no que aconteceu, como criei meus próprios problemas e como os resolvi, bem-vindo ao gato.



Resumo TK no site


  • Informações sobre modificações de jogos (patches de fãs, conjuntos de texturas, portas de origem etc.) serão publicadas no site, melhorando os gráficos, simplificando alguns aspectos do gerenciamento e também transferindo-os para outro sistema operacional ou plataforma. Um exemplo desses mods é adicionar quadros ao Dune 2 para selecionar unidades ou texturas de alta resolução para Doom
  • O site conterá apenas informações, mas não os arquivos de modificações e portas. Na versão antiga do site, tentei manter e fazer upload de novas cópias de arquivos para mim, e isso consumiu tempo
  • O site deve ser conveniente para uso tanto na área de trabalho quanto em um tablet ou telefone
  • Qualquer usuário deve poder adicionar um jogo, modificação etc. no site, além de editar qualquer informação já adicionada ao site.
  • Qualquer usuário deve poder editar o código e o layout do site
  • O proprietário do site deve poder pré-moderar as alterações
  • Deve ser possível adicionar moderadores adicionais
  • Deve haver botões para compartilhar nas redes sociais

Solução


E vamos colocar todos os dados no github, e vamos gerar um site estático a partir desses dados? Vantagens sólidas!


  • O GitHub já fornece uma interface web para modificar ou adicionar arquivos e enviar alterações como uma solicitação pull.
  • Pull Request - um excelente sistema para moderar alterações e visualizar diferenças
  • Precisa de novos moderadores? Adicione usuários ao projeto no github, sem necessidade de pensar no sistema de direitos
  • Um site estático pode ser hospedado em absolutamente qualquer hospedagem, incluindo páginas do GitHub
  • Qualquer atividade como comentários, compartilhamento ou o bloco "modificação aleatória" pode ser implementada no cliente usando JS e soluções prontas como Disqus
  • Para simplicidade e velocidade do layout, use o Bootstrap

Além disso, eu sempre quis praticar a escrita de um site estático em Java. Resolvido! Em um repositório, armazenamos dados , no segundo - um gerador de site estático . Treine ... Embora não, pare, primeiro você precisa tomar outra decisão.


Em que formato as informações devem ser armazenadas?


Armazenar descrições do jogo ou modificações em arquivos do formato “JSON / XML / escreva sua própria versão” é uma ideia maravilhosa, mas nossos requisitos são “... qualquer usuário ...” e alguns JSON podem assustá-lo. Bem, a questão é lixo - vamos armazenar os dados em um pacote de texto ou arquivos Markdown. Um arquivo - uma entidade, os arquivos MD no github têm uma visualização - lepota! E, para simplificar a situação, escreveremos em detalhes na documentação o que é responsável. Parte desta informação:



E o que quero dizer é que editar as informações existentes nesse modo é realmente bastante conveniente. Mas há uma ressalva ...


Adicionando novas informações


Acabou sendo conveniente editar os dados, mas iniciar uma nova modificação não foi muito, porque era necessário criar de 4 a 14 arquivos por vez. E fazer isso usando a interface do github é muito inconveniente. O primeiro pensamento foi criar instruções em várias etapas descrevendo como adicionar novas informações de e para.



Infelizmente, o veredicto dos usuários do site foi inequívoco: inconveniente! E se os usuários se sentirem desconfortáveis ​​em um site que deve viver da atividade do usuário ... você sabe, o projeto kirdyk.


PHP para o resgate


Bem, o que fazer, a decisão foi geralmente óbvia: escreva formulários para criar novas informações, criando uma solicitação de recebimento com todos os arquivos necessários, bem como fazendo upload de capturas de tela nas descrições existentes. De acordo com a memória antiga, devido ao desejo de iniciar o projeto o mais rápido possível, e também porque o PHP já estava na hospedagem - o PHP foi usado para esses formulários.



Subiu?


Depois de adicionar formulários convenientes, o processo começou: nas primeiras semanas após a publicação de informações sobre o site no meu blog de vídeo e no site Old-Games.RU, novos mods e portas foram adicionados a uma velocidade que eu simplesmente não tive tempo de moderar!



Além de adicionar informações, também fui dispensado de um certo número de comentários e sugestões sobre a interface e a funcionalidade, alguns dos quais já foram implementados e outros ainda aguardando nos bastidores.


Uma das reclamações frequentes foi a aparência do site - e isso é compreensível, porque eu usei o tema padrão do Bootstrap 4 com o pensamento "isso é temporário, então vou colocar uma pele bonita". A piada sobre "não há nada mais permanente que temporário" nem quer ser reproduzida.


Então, é claro, as atividades começaram a declinar, mas ainda existem alguns usuários ativos no site e o site continua a se encher de informações. No momento do lançamento, em meados de fevereiro, o site tinha 227 mods para 86 jogos e, no momento desta publicação - 323 mods para 130 jogos .


E por que você escreveu aqui?


Primeiramente, para contar outra história com moralidade óbvia: “a interface é conveniente e agradável para o programador, não será nada conveniente para o usuário do site”. Apesar da banalidade da tese, ela deve ser lembrada periodicamente.


E em segundo lugar - convidar os fãs a descobrir o código ou desenhar e girar as interfaces. Talvez o tema do site seja do seu interesse e você queira ajudar um pouco no seu desenvolvimento ;-)


Se você estiver interessado, todo o código-fonte do site estará no github .


PS Vídeo do site


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


All Articles