DevBlogs #2 - 1 Ano de Desenvolvimento do CPA
Olá Comunidade, aqui é o Renan, dessa vez falando sobre uma data muito especial, no dia 24 de Fevereiro de 2023 eu junto com Alberto, Sofia, Naphiss e Logan fundamos o Club Penguin Avalanche.
Lembro como se fosse ontem os 3 dias diretos que passei sem dormir, resolvendo bugs e descobrindo como o Club Penguin funcionava.
Tenho no começo só a agradecer esse projeto que fiquei meses full-time e me tirou da depressão que eu estava na época.
Hoje comemoramos 1 ano da fundação do CPA, e apesar de não ser a data de abertura das portas do nosso querido servidor, foi uma data marcante para nós que estamos aqui desde o começo.
Por isso nessa segunda edição do DevBlogs, trago um pouco da evolução no desenvolvimento do CPA durante um ano, e resumidamente mostrar como o foco foi, e continua sendo a qualidade na experiência dos usuários.
O Famigerado bug do login
Imagina o login no jogo ser um "Par ou Ímpar"? Se cair par, você consegue logar, se for ímpar o seguinte erro acontece:

Esse foi um dos piores bugs que o CPA possuía em sua fase Alpha (antes da abertura ao público).
Após dias e muito código sendo debugado (testado) em produção, descobrimos que o Club Penguin possuía um sistema de sorteio de servidores de login, e se um dos ips ou portas fossem sorteados errado você não conseguia entrar no jogo.
O bug dos selos dos dias de vida
Esse é um bug famoso para qualquer servidor CPPS AS2, com exceção do Avalanche, esse bug consiste em toda vez que você loga no jogo você recebe os selos de 183 dias e 365 dias de vida.

Esse erro acontecia porque o Club Penguin possui uma categoria de selos chamada achievements que são configurados à parte.
Esse sistema de achievements carrega antes mesmo do seu pinguim receber os selos que ele possui do servidor, o que fazia com que você ganhasse o selo toda vez que entrasse.
Desafio Ninja Água
Algo interessante é o Desafio Ninja Água do CPA, seu lançamento estava planejado para Novembro de 2023, contudo o Desafio Ninja Água é um dos meus minigames favoritos do Club Penguin, o que fez com que eu ficasse 3 madrugadas inteiras até que ele estivesse em uma versão estável.
Atualmente existe uma versão desenvolvida e mal feita do Água, cheia de bugs, problemas de lógica e memory leaks (memory leak é quando, geralmente um looping não é encerrado corretamente, resultando em uma infinita alocação de memória).
Abaixo você pode conferir alguns dos vários bugs nesta versão:

Isso fez com que eu tivesse que reescrever essa versão praticamente inteira do 0 (ao menos tive como entender o funcionamento do minigame).
É até irônico lembrar que esse minigame será reescrito novamente por conta da migração de stack do CPA.
Aos mais curiosos relaxem, farei um DevBlogs somente sobre o Desafio Ninja Água.
Minigames e arquivos AS3
Uma coisa que poucas pessoas sabem é a real diferença entre AS2 e AS3, geralmente dividimos um CPPS AS2 como um CPPS que foca na versão mais antiga do jogo (2008-2010) e AS3 na versão mais moderna (2017).
Contudo AS2/AS3 na verdade fala sobre a versão do ActionScript, linguagem de programação usada no Flash. Quando a Adobe lançou a Versão 3.0 quebrou a compatibilidade com a Versão 2.0, dessa forma é impossível um arquivo da Versão 3.0 executar um da Versão 2.0 e vice-versa.
Contudo a partir de 2011 o Club Penguin começava a dar suporte a vários arquivos AS3 incluindo minigames como o Patinuffle e Esmaga Fruta, isso é possível graças a uma adaptação para que esses arquivos sejam carregados separadamente, o ponto é que, qualquer CPPS AS3 possui esse suporte, e esse não foi o caso para o nosso sofrido Club Penguin Avalanche, que precisou fazer essa adaptação manualmente.
Abaixo você confere o que acontece ao tentar acessar esse minigame em um CPPS AS2 comum (o jogo não carrega):

Calma curiosos, também teremos um DevBlogs sobre isso.
Adicionalmente, fazer minigames AS3 funcionarem em um CPPS AS2 é relativamente simples, o problema começa ao carregar módulos AS3 do Club Penguin, onde esses precisam de uma série de dependências presentes na adaptação original feita pelo Club Penguin.
Atualmente o Club Penguin Avalanche possui suporte a qualquer minigame ou módulo AS3 do Club Penguin, com exceção do Desafio Ninja Neve que está em desenvolvimento.
Tabela comparativa
Por fim vamos comparar o que o Club Penguin Avalanche implementou em 1 ano em relação ao Club Penguin Original e a outros CPPSes de diferentes versões.
| Feature | CPPS AS2 Qualquer | CPPS AS3 Qualquer | Club Penguin Original | Club Penguin Avalanche |
|---|---|---|---|---|
| Manuseio de Cache Avançado | ❌ | ⚠️ | ⚠️ | ✅ |
| Pode carregar minigames de qualquer versão | ❌ | ✅ | ✅ | ✅ |
| Festas com evento de caçada | ❌ | ✅ | ✅ | ✅ |
| Festas com sistema de missões | ❌ | ✅ | ✅ | ❌ |
| Desafio Ninja | ✅ | ✅ | ✅ | ✅ |
| Desafio Fogo | ⚠️ | ⚠️ | ✅ | ✅ |
| Desafio Água | ❌ | ❌ | ✅ | ✅ |
| Desafio Neve | ❌ | ❌ | ✅ | ⚒️ |
| Encriptação de pacotes | ❌ | ❌ | ❌ | ✅ |
| Puffles não são itens de mão | ❌ | ✅ | ✅ | ✅ |
| Suporte a salas de todas as versões | ❌ | ✅ | ✅ | ✅ |
| Transformações | ❌ | ✅ | ✅ | ⚒️ |
| Sistemas avançados de moderação | ❌ | ✅ | ✅ | ✅ |
| Filtro de palavrões avançado | ❌ | ⚠️ | ⚠️ | ⚒️ |
| Sistema de iglus avançado | ❌ | ✅ | ✅ | ⚒️ |
| Suporta carregar qualquer arquivo AS3 | ❌ | ✅ | ✅ | ✅ |
| Jogo de fácil configuração | ❌ | ✅ | ✅ | ✅ |
Legenda:
❌ - Não implementa.
⚠️ - Implementa uma versão parcial, ou incompleta.
⚒️ - Está em desenvolvimento.
✅ - Implementa.
Assim finalizamos o nosso segundo DevBlogs, eai pinguins o que acharam? Aproveitem esse 1 ano de CPA com a gente, nossa festa de aniversário será em Março junto com a Festa dos Puffles.

3 Comentários
então né vocês meio que DIVARAM e ainda se tornaram destaque entre tantos outros servidores, patrões fazem assim!!!
São os devs não tem jeito 🙅♂️
Esse projeto é um dos melhores projetos que eu já trabalhei e tenho muito orgulho! <3
Tenho muito orgulho do meu Juninho, parabéns você é fera e vai ser um Dev excepcional, tudo de bom você merece 🫶
É um prazer imenso poder fazer parte de tudo isso e cada vez aprender mais.
O prazer é meu Sarf, fico muito feliz com as pessoas que conheci nesse projeto, em especial você irmão 👊
Deixe um comentário
Seu comentário terá de ser aprovado por um Moderador antes que apareça publicamente a todos os usuários, iremos mostrar apenas os comentários relacionados a esses posts. Muito obrigado!