
Tudo que foi publicado por Ericles
-
Desenvolvimento de MMORPG 2D com Engines leves
Adicionado o comando para atualizar a mensagem de boas vindas. A mensagem também é enviada no chat de cada membro online.
-
Desenvolvimento de MMORPG 2D com Engines leves
-
Desenvolvimento de MMORPG 2D com Engines leves
Passei muito tempo decidindo o que fazer e ainda mais tempo com foco em outras coisas, como meu TCC, por exemplo. Porém consegui avançar bastante. E como já faz bastante tempo que não posto nada aqui, resolvi trazer esse update. Aqui estão algumas coisas que consegui fazer nesse período (a maioria na madruga de ontem pra hoje kk): Integrei a mensagem de boas vindas na tela da guilda; Coloquei a mensagem de boas vindas para aparecer como um aviso sempre que o usuário logar; Adicionei "Guild Quests" na base do jogo; Implementei EXP de guilda (aquele NPC pelado era o teste para isso); Adicionei uma mensagem que é enviada a todos os membros online para avisar que a guilda subiu 1 nível; Também mexi na ordem que os equipamentos aparecem na aba de personagem, estava uma ordem muito aleatória. Isso parece simples falando, mas me deu uma certa dor de cabeça; Adicionei um novo evento para a adição de EXP de guilda (é o que esse NPC pelado executa para dar o EXP). Esse evento funciona para qualquer uso em mapa, monstros, NPCs e quests. Não está relacionado a algo que eu fiz, mas um negócio bem interessante que já encontrei pronto no código fonte é a possibilidade de instancias (aquele portal ali). Basicamente já é possível criar instancias individuais, em grupo ou em guilda. Isso já me dá algumas ideias bem interessantes e talvez eu consiga adicionar algum novo tipo de instancia no futuro, se realmente for necessário. Então, do check list original de guilda, me faltam apenas dois pontos: 1) finalizar a funcionalidade de mensagem de boas vindas (ainda preciso adicionar uma maneira de editar, provavelmente será por comando); e 2) aumentar a capacidade de membros da guilda baseada nos níveis. Terminando isso já posso avança no desenvolvimento da história e criação dos mapas. O alfa tá vindo
-
Desenvolvimento de MMORPG 2D com Engines leves
Na verdade não estou localizando nada. A engine já veio com muita coisa aparentemente localizada, porém não mexi nisso ainda. O que já havia eu mantive em inglês, coisas novas estou colocando em português mesmo. Quando eu conseguir ver direitinho essa parte de localização vou começar a localizar tudo. Se for muita coisa, irei lançar o alfa com a interface em inglês mesmo e, provavelmente, abrir um repositório público pra qualquer pessoa poder colaborar. Mas definitivamente o foco inicial será apenas o português.
-
Desenvolvimento de MMORPG 2D com Engines leves
Ainda consegui concluir quase todos os pontos. Por enquanto falta apenas adicionar o texto informativo para cada coluna. No nome do usuário, preferi deixar apenas uma das tags, ficou muito grande quando envolvia mais de uma. Mantive a tag da guilda para quem só tem ela e mantive a tag de AccessLevel para quem a tem, com prioridade nessa última. A data do último login foi bem fácil, ela já existe no banco e na entidade do usuário.
-
Desenvolvimento de MMORPG 2D com Engines leves
Pra dar uma ideia da dificuldade de editar a interface da Intersect, vou enviar uma captura do código. Basicamente, cada interface do jogo possui um arquivo JSON com muitas informações para cada componente. A captura a seguir representa apenas o Action button que adicionei ao final da linha de usuário na interface de guilda. Lembrando também que esse arquivo não é da interface de guilda, é apenas da linha que recebe as informações do usuário. Outra coisa importante de informar é que o JSON daquele ContextMenu também não é nesse arquivo, é em um que precisei criar do zero, pois não existia na Intersect ainda. P.s.: Ainda estou desvendando uma parte das informações desses arquivos de interface. A documentação oficial no site da engine é bem rasa.
-
Desenvolvimento de MMORPG 2D com Engines leves
O dia hoje foi de sofrência. Meu objetivo era terminar essa interface ainda hoje, porém vou ficar devendo algumas coisas... Acabou que personalizar a linha com as informações do usuário foi mais complexo do que parecia. Aquele ContextMenu com as opção de guilda foi o que mais deu trabalho — precisei reescrever todo o código umas três vezes. Em fim, o pior passou. Agora preciso resolver a data, que vai mostrar o último login do jogador (ainda preciso ver essa informação existe no banco) e também preciso resolver problemas desse ContextMenu. Adicionar labels de cada coluna (Nome | Última vez Online | Status | Ações)); Adicionar e formatar a data de último login do jogador; Remover o ContextMenu quando o usuário for o próprio jogador; Remover opções do ContextMenu quando o jogador não possuir tal permissão; Adicionar as tags de Guilda e AccessLevel ao lado do nome do jogador. Ex: [Líder][ADM]feericles
-
Desenvolvimento de MMORPG 2D com Engines leves
-
Desenvolvimento de MMORPG 2D com Engines leves
Hoje não foquei muito no game devido a algumas outras coisas que precisei fazer — até que procrastinei bastante, na verdade. Porém até que saiu bastante coisa nova. Essa é a interface original do Intersect, que mostrei ontem: Hoje consegui mudar completamente a interface com os dados de criação, fundador e level já integrados com o servidor e funcionando perfeitamente (até onde testei kk) Não gostei muito das cores dessa interface nova, mas não sou artista e é assim que vai ficar por um bom tempo. Mas no geral, gostei do resultado.
-
Desenvolvimento de MMORPG 2D com Engines leves
Acabei de relembrar minha conta do aldeia, bateu até uma nostalgia. Depois vou tentar pegar os créditos do google para criar uma vm para hospedar. Se tudo der certo mês que vem já dá pra ter um pré alfa
-
Desenvolvimento de MMORPG 2D com Engines leves
Uma coisa que acabei não mencionando no tópico original é que, além de ser uma engine mais moderna em comparação à Eclipse Origins, a Intersect foi desenvolvida em C#. Levando em conta toda a bagagem de conhecimento que adquiri desde 2014 — e o fato de já ter familiaridade com a linguagem —, ficou muito mais fácil entender o que já está implementado e identificar exatamente o que preciso para desenvolver minhas próprias funcionalidades.
-
Desenvolvimento de MMORPG 2D com Engines leves
Já adicionei uma boa parte do que vou precisar para a nova interface da guilda no banco de dados. Por enquanto só coloquei o nível da guilda na interface, com intuito de teste. Descobri que o back envia os parâmetros da guilda separadamente e o front coloca todas essas informações no objeto do Player (achei isso muito absurdo). Depois vou ver uma maneira melhor de fazer isso, mas provavelmente vou precisar adicionar um novo Packet, que será enviado em algum momento depois do login. Talvez somente quando o usuário abrir a interface de guilda? Ainda não sei uma maneira boa de fazer isso. Em um tópico futuro explico direitinho o que são os packets, mas basicamente o cliente e o servidor ficam trocando informações através de Packets (pacotes), cada ação possui um Packet (até mesmo as de abrir ou fechar uma interface).
-
Desenvolvimento de MMORPG 2D com Engines leves
Eu passava horas também. Inclusive, conversando com o jcesar hoje no Discord ele me lembrou do AldeiaRPG, eu morava nesse fórum. Nunca comentava nada, mas tava sempre de olho no que a galera comentava e nos assets e scripts que eles publicavam. Era um tipo de guilty pleasure, sabe? kkkkkkkkkkk
-
Desenvolvimento de MMORPG 2D com Engines leves
Há alguns anos, conheci uma game engine 2D chamada Eclipse Origins. Naquela época, eu já tinha uma vontade enorme de criar jogos, e essa engine só fez aumentar ainda mais esse desejo — especialmente por ser voltada para MMORPGs. No entanto, lá por 2013/2014, alguns obstáculos acabavam me fazendo desistir pouco depois de começar: As limitações da engine: Por ter sido desenvolvida com poucos recursos, muitos dos recursos que eu queria implementar precisariam ser criados do zero. Isso exigia um nível de conhecimento e dedicação que eu ainda não tinha na época. A programação: Comecei a me aventurar no desenvolvimento de software em 2012, mas com 14 anos eu não conseguia entender praticamente nada do código-fonte da engine — que, aliás, era open source (esqueci de mencionar isso). O código era escrito em Visual Basic 6, uma linguagem que já estava bem ultrapassada, lançada em 1998. A arte: Nunca tive muito talento com arte, e apesar da pixel art parecer “simples” à primeira vista, ela exige horas de dedicação para se chegar a algo realmente agradável. Agora imagine criar arte para um jogo inteiro, com diversas animações... Eu nunca consegui me dedicar o suficiente, porque não era realmente minha praia. Isso se tornava um grande obstáculo. E mesmo com os recursos gratuitos disponíveis na internet, era difícil encontrar algo que combinasse visualmente — e, quando encontrava, sempre faltava alguma animação importante, como ataque, magia, etc. A criatividade: Esse era outro ponto que sempre me travava. Eu conseguia imaginar o começo e o fim da história, mas o meio... o meio era sempre um buraco. Meus personagens acabavam presos nesse limbo sem desenvolvimento, sem rumo, e isso me desmotivava. Desde então, fiz várias novas tentativas, mas acabava esbarrando nos mesmos problemas antigos — e em novos também. Às vezes o código-fonte nem compilava, outras vezes já vinha com erros que eu não sabia resolver, além dos desafios constantes com a arte. Fuçando aqui nas profundezas do meu Facebook, acabei encontrando duas capturas de tela de 2014... Essa primeira é o mapa inicial — e provavelmente o único que existiu. Essa já é em outra tentativa, com a interface completa da Eclipse Origins. Com o passar dos anos, fui desanimando cada vez mais com essas engines — não necessariamente por causa delas, mas por frustração comigo mesmo, por não conseguir fazer o que eu queria na época. Em 2019, um novo projeto surgiu na minha vida: a Intersect Engine. Ela me lembrou bastante a Eclipse Origins, mas parecia ser bem melhor — com ênfase no “parecia”. A engine realmente se mostrava mais moderna e bonita, com várias mecânicas legais já prontas. No entanto, dois pontos acabaram me impedindo de continuar: Falta de performance: A engine não era muito otimizada, travava com frequência, mesmo em computadores mais potentes; Código fechado: Ela não era open source, o que me impedia de fazer qualquer tipo de alteração mais profunda. Na época, ainda havia uma promessa do criador da Intersect de torná-la open source, mas por um bom tempo isso parecia que nunca iria se concretizar. Felizmente, essa promessa foi cumprida. Desde então, embora eu não tenha acompanhado de perto o desenvolvimento da engine, percebo que houve uma grande evolução graças à comunidade. Quando conheci a Intersect, ela estava na versão Beta 6.0. Hoje, está na Beta 8.0. À primeira vista, parece pouca coisa — só dois números a mais —, mas posso garantir que a diferença entre essas versões é imensa. A engine está em outro patamar. Pensando nisso, decidi tentar mais uma vez criar algo com ela. Não quero colocar nenhum tipo de pressão ou compromisso que possa me frustrar depois, então estou indo com calma, sem grandes expectativas. Abaixo vou mostrar o que estou planejando fazer e o que já consegui realizar com essa nova versão da Intersect Engine: Roadmap para um provável Alpha: Atualizar o login ✅ Remover login por username✅; Adicionar login por email✅; Adicionar o nível de acesso ao lado do nome de jogadores; Ex: [ADM]Ericles Ao lado do nome no jogo✅; Ao lado do nome no chat✅; Ao lado do nome na janela de informações✅; Ao lado do nome na janela de grupos✅; Ao lado do nome na janela de guilda; Trocar os botões de ação da interface de grupos✅ Remove botões de mensagem privada e deletar amigo✅; Adicionar TargetContextMenu como botão de ação✅; Adicionar opção de enviar mensagem privada✅; Adicionar botão de excluir amigo✅; Remover botão de troca✅; Remover botão de adicionar amigo✅; Alterar Guilda Aumentar interface✅; Adicionar Level e EXP da guilda✅; Adicionar campo para mensagem geral da guilda; Adicionar campo para mensagem pessoal dos membros ❌ (não vou fazer por enquanto); Adicionar campo com último login do membro✅; Adicionar botão de remover membro✅; Adicionar funcionalidade de aumento da capacidade de membros baseado no nível da guilda; Missões Adicionar missões de guilda; Criar missões iniciais da história e secundárias; Criar mapas iniciais; Criar itens iniciais. Esse Roadmap está longe de estar completo para um alpha, mas já é um bom ponto para me guiar. A seguir adicionei algumas imagens do que já tenho pronto: Essa captura foi tirada logo após conseguir adicionar o rank ao lado do nome dos jogadores dentro do jogo: Essa foi após a adição do rank no chat. Acabei tirando o rank e o nome do usuário das mensagens de announcement, pois preferi sem: Depois de adicionar o rank na lista de amigos (só funcionou para amigos online por enquanto) e aqui também adicionei o TargetContextMenu como botão de ação. Atualmente não tenho mais a versão antiga para manda como comparação, mas eram apenas dois botões: um de mensagem privada com um ícone de pergaminho e um outro para excluir o amigo com um ícone de X Também adicionei o rank do jogador ao lado do nome dele na tela de grupos: A próxima atualização que pretendo fazer é na tela de guilda. Atualmente ela é assim: Esse é um protótipo de como planejo que seja a nova tela de guilda com tudo que pretendo fazer: Caso queiram, posso trazer uma explicação mais detalhada de tudo o que fiz até agora — mas vamos deixar isso para outro tópico, porque este aqui já ficou bem extenso.