MMORPG sozinho (perseguidor 2d)

Oi pessoal! O texto abaixo mostrará como eu desenvolvi meu jogo MMO sobre perseguidores, artefatos, emissões e motos ao redor do fogo por dois anos e meio.



Tudo começou com o fato de que, pela primeira vez na minha vida, eu era capaz de transferir informações de um dispositivo para outro, usando soquetes. Pressionar o botão de toque na tela do smartphone fez mover a caixa preta no monitor do laptop. Minha alegria não tinha limites. Isso é algum tipo de mágica, pensei. Foi imediatamente decidido - "É isso, eu estou fazendo um jogo online". Como sou fã do perseguidor, a pergunta - “Que tipo de jogo online?” Nem sequer ficou de pé. Sobre o fato de que jogos não são fáceis de fazer, eu sabia. O fato de fazer jogos on-line não é muito fácil, imaginei. Mas, naquele momento, embriagado pela alegria e pela inspiração, não lhe dei a menor importância.

E o desenvolvimento começou. Como não sei desenhar, surgiu imediatamente a pergunta sobre os gráficos. E a resposta para esta pergunta foi encontrada. Era uma vez, nos velhos telefones com botão de pressão (j2me), um entusiasta independente desenvolveu o jogo “Zone of Aliation”. Se descrever o jogo em poucas palavras, este é um perseguidor 2D para dispositivos móveis. Os gráficos deste jogo foram perfeitos para o meu projeto. Entrei em contato com o autor dos gráficos, Pavel Shevelev, e pedi permissão para usá-lo no meu jogo. Paulo não recusou e até desenhou outra coisa, pela qual muitos agradecem a ele.



Além disso, era necessário escrever código. Mover um quadrado preto é uma coisa, e fazer um jogo completo é outra. Se você dirige no mecanismo de pesquisa - "Como fazer um jogo online?", Não encontrará uma resposta específica que possa ajudar um pouco. As informações no RuNet sobre esse gato choraram, mas sobre os exemplos em geral eu sou silencioso. No entanto, consegui encontrar informações sobre Habré sobre as palestras em vídeo de Vitaliy Chibrikov, que contavam como escrever um servidor para um jogo online. Tendo estudado exaustivamente todas as 9 palestras (uma palestra dura cerca de duas horas em média), ainda consegui construir um forte esqueleto de interação cliente-servidor em minha base para o meu jogo futuro. Se não fosse Vitaly, eu não teria alcançado esse resultado, pelo qual muito obrigado a ele. Algumas palavras sobre as tecnologias que eu usei - o servidor está escrito em java, banco de dados MySql, conexão de rede netty. O cliente também é gravado em java usando a estrutura libgdx.



Tendo os gráficos e o mecanismo de transferência de dados, o mais "simples" permaneceu - para fazer um jogo. Para começar, ele fez uma localização. Então ele adicionou um personagem do jogo, ensinou-o a andar. Então ele estragou a mudança do dia e da noite, além dos efeitos climáticos. Então ele criou a primeira multidão - um porco. Então ele acrescentou atirar para que este javali pudesse ser morto. Então ele fez pvp para que fosse possível matar não apenas javalis, mas também outros jogadores. E agora há algo remotamente parecido com um jogo. Parece que praticamente não existem funções de jogo, mas demorou muito tempo para implementar todas as opções acima. Tudo foi complicado muitas vezes pelo fato de este ser um jogo MMO. Quase todas as ações que você faz no jogo devem ser vistas pelos jogadores ao seu redor. No estágio inicial de desenvolvimento, o servidor travava a cada espirro. Quase todos os dias, me deparei com vários problemas e erros. Antes do início do desenvolvimento, eu não conseguia imaginar quantos problemas teria que resolver. Mas o desenvolvimento prosseguiu lentamente e o jogo se desenvolveu.



Até certo ponto, os testes eram realizados apenas no meu PC pessoal. O servidor e várias cópias dos clientes foram iniciados na mesma máquina e comunicados entre si por meio do host local. Mas, à medida que o projeto se desenvolvia, o pensamento me ocorria cada vez mais: "Não é hora de mostrar o jogo para as pessoas e organizar testes reais com jogadores ao vivo?" E, a certa altura, decidi que estava na hora. Aluguei ferro, a configuração mínima com Linux a bordo. Eu baixei meu programa de servidor lá e, após uma nova porção de hemorróidas e dançando com um pandeiro, o servidor foi iniciado com êxito. "Uau!" Eu pensei, isso funciona. A primeira pessoa a entrar no jogo foi o artista Pavel. Corremos pelo mapa, conversamos e atiramos em javalis. Depois disso, fiquei satisfeito e feliz por tudo estar funcionando e comecei a me desenvolver com vingança. Dias se passaram, o jogo cresceu e se desenvolveu, a cada duas semanas eu organizava um teste aberto, durante o qual qualquer um podia jogar e testar novos recursos. Às vezes, o contador de jogadores online excedia cem. Foi um ótimo momento, criei um mundo virtual que vivia de acordo com minhas regras e leis, durante os testes me senti quase como um deus. Às vezes, fui ao servidor e simplesmente observei os jogadores, eles correm para lá, conversam, brigam, reconciliam-se, criam clãs, lutam, colecionam artefatos, entram em anomalias, andam obedientemente pelas casas durante o lançamento. E quantas histórias interessantes aconteceram no jogo! Lembro que alguns caras se declararam bandidos e derrubaram o saque por entrar em um determinado local. Aqueles que se recusaram a pagar foram baleados (inclusive eu). Ou uma vez, um grupo de perseguidores durante uma ejeção se escondeu em uma casa cercada por todos os lados por uma cerca e alguém bloqueou a única saída com anomalias do elétron (há um artefato que cria uma anomalia) após a ejeção, o grupo foi fechado no pátio dessa casa até o final do teste, então pois naquela época, após a morte, o jogador renascia no mesmo local em que morreu.



No momento, o jogo foi implementado: 20 locais, dia e noite, chuva, pvp, pve, 3 tipos de monstros com comportamentos diferentes, ataques maciços de multidões na base, 1 chefe de raide, 13 artefatos com características diferentes, 8 anomalias com efeitos diferentes, parafusos para procurar e neutralizar anomalias, 8 missões, sistema de experiência e nivelamento, pda perseguidor, radiação, emissões, agrupamentos, guerra de agrupamentos por territórios, npc que pode atirar em mutantes e se esconder de emissões em casas, mochila e sistema de itens, negociando com NPC e jogadores, 9 tipos de armaduras, 7 tipos de armas, detector de anomalias um detector de radiação, um violão, além de cerca de 15 itens diferentes e, claro, a oportunidade de sentar junto ao fogo e conversar com outros jogadores. Eu também gostaria de me debruçar sobre o método de extração de artefatos. Os artefatos nascem após uma ejeção em anomalias e, inicialmente, não são visíveis para o jogador. Para que o artefato seja gerado, é necessário atender a várias condições exclusivas de cada artefato. Por exemplo, para obter o artefato "Sangue", é necessário que a anomalia eletrônica de segundo nível, quando acionada (arremesso de parafuso), entre em contato com a anomalia de uma nuvem ácida (voe ao longo do mapa em uma direção arbitrária). Ou, para obter o "Coração", você precisa usar o artefato "Azul" (cria uma nova anomalia) para que a nova anomalia entre no momento da anomalia, além da necessidade de luz solar, ou seja, é necessária a falta de luz solar, ou seja, o artefato pode ser obtido apenas à noite.



Eu trabalhei nisso tudo por mais de dois anos, mas todo o sal desse conteúdo é suficiente por três ou quatro dias, após os quais simplesmente não há nada a fazer no jogo. Por causa disso, o número de jogadores no jogo foi diminuindo gradualmente, e eu entendi cada vez mais claramente que simplesmente não conseguia terminar o jogo. Passei muito tempo no desenvolvimento, mas parece que não terminei o projeto nem pela metade. Acho que consegui um bom resultado, mas ainda tenho que encarar a verdade - é impossível criar um MMORPG completo sozinho ou quase impossível. Tentei encontrar outro programador, mas não há muitas pessoas que conhecem java perfeitamente e têm experiência no desenvolvimento de aplicativos cliente-servidor. Sim, e poucas pessoas querem entender meu código, pois ele foi escrito longe de ser perfeito e, o mais importante, existem muitos, muitos, muitos realmente diretos. Não vou postar o código em acesso aberto, talvez um dia, tendo jogado o suficiente no stalker 2, terminarei da mesma forma.

Aqui está uma história. Equipe do projeto em vk - Zona do projeto 2d online .

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


All Articles