image

Acesso vitalício ao Atalho Secreto + bootcamps ilimitados

86
%OFF
Article image
Carlos CGS
Carlos CGS09/02/2026 08:25
Compartir
Microsoft Certification Challenge #5 - DP 100Recomendado para tiMicrosoft Certification Challenge #5 - DP 100

🎮Voltei num projeto de 2017 e finalizei um jogo completo em 3 dias (offline + online)

    🌌CodeVerse2026 - Artigo#03

    👋Fala Galera Dev!🧑💻🎮

    Tem um tipo de satisfação que só quem programa entende: voltar num projeto antigo, aquele que você começou cheio de vontade… e abandonou porque era complexo demais na época — e finalmente concluir de verdade.

    Esse foi o caso do meu game World War.

    Eu comecei esse projeto em 2017 como um jogo de tabuleiro digital de guerra, baseado em cartas. Na época eu estava aprendendo PHP, JavaScript e banco de dados. Eu até avançava, mas sempre travava em coisas que hoje parecem “óbvias”: organização, rotas, estrutura, bugs difíceis de rastrear, e principalmente a parte online.

    Em janeiro de 2026, eu resolvi voltar e concluir.

    E o mais curioso: em 3 dias o projeto ficou pronto, com modo offline e modo online.

    💻O que eu fiz nesses 3 dias (sem romantizar):

    Eu não “criei do zero em 3 dias”. Eu já tinha um projeto iniciado, mas estava parado e com várias partes incompletas. O que eu fiz foi entrar com foco total e transformar aquilo num projeto publicável e organizado.

    Dividi assim:

    • Dia 1: finalizei o modo offline, ajustando cartas, sons, tabuleiro e a lógica do jogo contra IA.
    • Dia 2: implementei e estabilizei o modo online (multiplayer), com matchmaking, sincronização de turno, abandono e registro de resultados.
    • Dia 3: organizei o projeto inteiro para ficar claro, fácil de manter e pronto para deploy.

    O que eu aprendi aqui é simples: às vezes o que falta não é “mais código”… é organização e um caminho claro do que fazer primeiro.

    📆O que mudou de 2017 pra cá (e por que isso importa pra dev júnior):

    A maior diferença não foi “eu virei gênio”, foi que eu comecei a pensar como projeto real.

    Quando a gente é júnior, a gente quer fazer a feature funcionar. Quando a gente começa a evoluir, a gente percebe que o projeto precisa ser:

    • legível para quem chega depois,
    • estável em produção,
    • minimamente seguro,
    • e fácil de manter.

    E foi isso que eu busquei, em cada parte do código, estavam pensando no todo, não apenas em fazer funcionar.

    🏗️Uma parte que quase ninguém mostra: a estrutura do projeto:

    Eu organizei o World War como um “MVC simplificado”, separando o que é público do que é servidor.

    • public/ ficou com os HTML (login, regras, mapas, jogo offline etc.)
    • src/ ficou com o backend em PHP (autenticação, matchmaking, sincronização...)
    • assets/ com CSS, JS, imagens e sons
    • database/ com os scripts SQL
    • docs/ com documentação completa e checklist

    Isso parece “detalhe”, mas muda tudo. Resolve 404, resolve bagunça de caminho, resolve manutenção. E principalmente: deixa o projeto com cara de produto, não de pasta aleatória.

    🌐Modo Online: onde eu mais aprendi:

    O modo online foi a parte mais divertida e mais desafiadora, pois o jogo ja estava funcionando, e replicar essa mesma estrutura com o modo online foi bem difícil, pois a acda implementação de matchmaking e novas regras, eu alterava outras regras que já estavam funionando no modo offline.

    Eu implementei um fluxo com:

    • matchmaking automático (buscar_partida.php)
    • sincronização com polling a cada 2 segundos (sincronizar_partida.php)
    • controle de turno e estados da partida
    • abandono de partida e derrota automática (abandonar_partida.php)
    • registro de resultado e atualização de stats no banco (registrar_resultado.php)

    E tudo isso usando:

    • PHP + Sessions
    • MySQL
    • JavaScript Vanilla consumindo endpoints PHP

    O jogo basicamente funciona assim: o navegador faz requisições frequentes, o servidor responde com JSON, e o client atualiza a UI com base no estado da partida. Não é WebSocket ainda mas está funcional, estável e bem organizado.

    🛡️Segurança: fiz o básico bem feito:

    Eu também não quis deixar o projeto “aberto” de qualquer jeito.

    A estrutura tem .htaccess para bloquear acesso direto a pastas sensíveis (database/, config/, src/). No PHP, apliquei:

    • validação de sessão em rotas e endpoints
    • prepared statements para evitar SQL injection
    • hash de senha com bcrypt
    • e proteção via session para evitar abusos básicos

    Dev júnior costuma ignorar isso no começo (eu ignorei também). Mas a verdade é: segurança é parte do projeto, mesmo em projeto pessoal.

    👾O papel do GitHub Copilot nisso tudo:

    Eu usei o GitHub Copilot como apoio principalmente para: acelerar correções repetitivas, revisar caminhos, organizar estrutura, identificar erros de lógica e sugerir soluções.

    Mas o ponto é: a IA não “concluiu” o projeto por mim. Ela reduziu o atrito e aumentou velocidade, gerando os códigos que eu pedia, as vezes eu memso os escrevia, pois escrever ainda é o melhor jeito de se obter o que deseja, enquanto eu mantive a visão e as decisões.

    Pra mim foi uma aula prática de como IA pode ser um copiloto de verdade, e não um “atalho”.

    🔰Se você é dev júnior, aqui vai a mensagem principal:

    Se você tem um projeto parado, antigo, incompleto… volta nele. Porque finalizar um projeto ensina coisas que tutorial nenhum ensina:

    Você aprende a organizar. Você aprende a corrigir bug de verdade. Você aprende a terminar. Eu mesmo aprendi bastante concluindo esse que foi um dos meus primeiros projetos que pensei em criar, e para mim foi muito mais do que um conclusão de um código, veio com aquela sensação de dever cumprido, de não deixar nada para trás, de não esquecer dos seus sonhos, de saber que com esforço conseguimos fazer e criar o que imaginamos.

    📹Onde ver o jogo e o código

    Eu vou publicar um vídeo aqui no LinkedIn mostrando o World War funcionando. 🧠 E quem quiser estudar o projeto, o código e a estrutura completa, deixei tudo no meu GitHub.

    Se você está começando e quer uma base real de: PHP + MySQL + JavaScript + rotas + multiplayer com polling + organização de projeto …esse repositório pode te ajudar.

    Seguimos evoluindo. Um projeto concluído de cada vez. 🚀🎮

    image

    Compartir
    Recomendado para ti
    Microsoft Certification Challenge #5 - AZ-204
    Microsoft Certification Challenge #5 - DP 100
    Klabin - Excel e Power BI Dashboards 2026
    Comentarios (1)
    Fernando Araujo
    Fernando Araujo - 09/02/2026 10:11

    Fantástico, Carlos!!!

    Eu tenho alguns projetos HIBERNANDO, desde o tempo em que comecei a programar em C++ (faz um bom tempo, viu?).

    Este seu projeto me deu motivação para retomar meus projetos parados e dar vida a eles!!!

    Só falta achar tempo no meio da avalanche de trabalhos da vida profissional.

    Mas, continuo a nadar...

    Recomendado para tiMicrosoft Certification Challenge #5 - DP 100