Arquivo da categoria: Travelers Online

Projeto de MMORPG, baseado nas terras de Lendell.

Travelers Online: Change Log #2

Olá pessoal!

Venho-lhes informar sobre a mais nova característica que será implementada em todos os 3 servidores do jogo, que é o log de eventos. Ele foi desenvolvido para logar todas as mensagens de erro, debug e informações diversas do que ocorre durante o processamento do servidor e salvá-las em um arquivo texto para poder ser lido posteriormente pelo staff.

Além de registrar tudo o que ocorre com o servidor, o logger fará o mesmo com os usuários, criando um arquivo para cada conta criada e registrando todos os passos do seu personagem no jogo.

Houve tb uma pequena mudança na forma como lemos uma mensagem enviada do cliente para o servidor e vice-versa. Criamos um cabeçalho mais ágil para darmos fim à utilização de “tokens” ou delimitadores de mensagem, que acabam ocupando muito espaço ao transmitirmos as mensagens e com este novo cabeçalho teremos mais agilidade e uma considerável redução de latência.

Por enquanto é isso. Em breve trarei mais novidades.

Travelers Online: Change Log #1

:: Versão 0.0.2a

[17.01.2009]
- Corrigido o bug da consulta ao banco de dados que, ao tentar autenticar um cliente, gerava um erro e travava o servidor;
- Adicionada a autenticação do cliente que verifica: se sua conta existe na base de dados, se está banido, se alguém está utilizando a sua conta e se o servidor comporta novas conexões;

[14.01.2009]
- Substituída a thread que verificava novas conexões pelo método assíncrono, disponível no .NET Framework, chamado BeginAccept, que inicia o método de escuta ao socket, e EndAccept, que retorna o novo socket do cliente conectado;

:: Versão 0.0.1a

[13.01.2009]
- Adicionado o suporte a multi-cliente;

[11.01.2009]
- Corrigido o bug do recebimento de mensagens enviadas pelo cliente para o servidor;
- Corrigido o bug que existia no parser (para identificar o delimitador de mensagens), que retornava um lixo ao fina do buffer de mensagens. E também, foi feita uma otimização na função;

Rise from your grave…

Calma… se você pensou que o projeto Travelers foi abandonado e tudo aqui está jogado às traças, enganou-se! Estamos vivos e trabalhando!

Estive ausente todo esse tempo devido as festas de final de ano. Mas, como agora que as festas acabaram, voltamos para a ativa!

O que posso adiantar, é que temos os sprites dos humanos prontos (masculino e feminino) e estou trabalhando na autenticação da conta dos usuários, que já está quase 100%. Apenas pensando em uma melhor forma de como utilizar as threads para comportar múltiplos clientes.

Em breve, teremos screenshots das primeiras impressões de login e escolha de personagens!

Enfim, aguardem as atualizações!

Atenciosamente,
Todi.

Novidades do servidor

Há algum tempo venho procurando servidores que possam atendender nossas necessidades quanto a conectividade massiva de usuários. Como nosso primeiro servidor era visual, precisaríamos contratar um serviço de DS (Dedicated Server), o qual, nas pesquisas, ficou muito caro, sendo o mais barato custando 190 dolares. Mas, como diz o ditado, “Quem não tem cão caça com gato” e daí, comecei a procurar tecnologias alternativas para o desenvolvimento do servidor.

Eis que surge Python. Uma linguagem leve, multiplataforma, multi-thread, utiliza orientação a objetos, podendo ser adaptada para script e possui uma vasta biblioteca de módulos, com várias implementações, que facilitam bastante a vida. Então, adotei Python e comecei a escrever o servidor, por enquanto, bem básico, apenas aceitando conexões de outros clientes e enviando e recebendo mensagens, nada demais. Ainda não comecei a trabalhar com banco de dados, pois estou fazendo testes com threads, pq ainda não entendi muito bem como funcionam na linguagem. A outra ótima notícia, é que juntando todos os arquivos que escrevi com as funções e classes, não passam dos 4Kb e o processador está trabalhando livre, leve e solto, nem a 1% chega o seu processamento.

O ponto alto de toda essa mudança, é que poderei pagar um servidor com conexão de 100Mb, sem limite mensal de banda e com um espaço de armazenamento chegando a 10Gb, por míseros 8 dolares! Bastando possuir acesso via SSH e claro, suporte a Python, poderei ter meu servidor rodando na grande maioria dos web hosts de todo o mundo!

Aguardem por mais novidades!

Att,
Todi.

Atualizações do servidor

Há algum tempo venho trabalhando em um gerenciador para o servidor do jogo Travelers Online. Hoje, resolvi dar uma modificada em seu layout, que ficará assim até que eu teste toda a sua funcionalidade. Ainda não achei uma solução para fazer o gerenciador se comunicar com o servidor que rodará em background, mas já tenho algumas idéias, só preciso terminar de ajeitar o código do servidor pra começar os meus testes.

Segue as screens:

Travelers: Novidades sobre o servidor

Estou trabalhando, em meu tempo livre, na reformulação do servidor do Board Games, que será implantado no projeto de MMORPG, Travelers. Até o momento as modificações feitas no servidor foram: nova interface baseada em widgets e as principais tabelas do banco de dados foram modificadas e adaptadas para as novas necessidades de armazenamento de dados.

Ainda temos muito trabalho pela frente, infelizmente o tempo está mais curto agora devido a faculdade, mas sempre que posso estou incrementando o projeto.

Em breve, mais informações.

Att,
Todi.

Retomada

Como voltamos a ativa na retomada do projeto Travelers, me reuni com o grupo e decidimos algumas mudanças no projeto.

Adiquirimos à algum tempo atrás a ferramenta Game Maker, que é uma engine bastante robusta e barata e que atende totalmente aos nossos objetivos para com este projeto. Sendo assim, vamos utilizá-la para a produção do jogo. Este, voltará a ser 2D, bem ao estilo do falecido Deloria Online.

Att,
Todi.

Mais mudanças…

Tomei algumas decisões quanto as bibliotecas a serem estudadas e utilizadas.

Descobri que a RakNet (biblioteca de funções para conexões cliente / servidor) pode ser utilizada livremente se não for para fins comerciais, como meu interesse não é esse, então está totalmente viável a sua utilização, logo estou trocando a ZoidCOM pela RakNet, que é uma plataforma mais profissional e robusta. Assim como a DarkGDK que é livre para usos não comerciais.

Em resumo, minhas mudanças foram as seguintes:

  • A mudança do ambiente 2D para 3D.
  • A mudança da biblioteca SDL para a utilização da DarkGDK (renderização / input / som).
  • A mudança da biblioteca ZoidCOM para a utilização da RakNet (multiplayer).
  • A utilização da Newton Dynamics (física).

As bibliotecas a serem utilizadas serão as apresentadas acima. Mais atualizações, postarei em breve.

Atenciosamente,
Todi.

Mudanças no projeto

Bom, estou mudando alguns parâmetros iniciais do projeto, pois, quero torná-lo o mais viável possível.

Primeiramente, estou mudando o estilo gráfico do jogo de 2D para 3D. Por que? Simples… apesar da programação parecer mais complicada que 2D, felizmente, não é. O que complica um pouco, são os nós de cenário, que eu ainda não entendi muito bem, e a disposição das câmeras, mas nada como um pouco de leitura para solver estas ignorâncias. E, encontrar um artista 3D é muito mais fácil do que um artista 2D, fora o trabalho escravo que uma pessoa teria em ficar desenhando sprite por sprite, fazendo cada ação na mão, para depois colorir digitalmente, dividir em quadradinhos 48×48 etc… em 3D, tudo isso é simplificado com poucos passos, tornando a produção muito mais viável e menos estressante, tanto pro programador quanto para o artista.

Segundo, mudei as bibliotecas utilizadas, agora irei trabalhar com a DarkGDK para a renderização gráfica, entrada de dados e som, para física estou em dúvidas se trabalho com a Newton ou com a própria DarkGDK (como ainda estou estudando, utilizarei a mais viável), para conexão continuarei com a ZoidCOM e para utilizar como arquivos de configuração e dados utilizarei a TinyXML.

Por enquanto é isso, mais informações postarei em breve.

Atenciosamente,
Todi.

[Projeto] Travelers: File #2

O GDD está quase finalizado, creio que até o final dessa semana já esteja com tudo pronto e daí passarei para o estudo das documentações das bibliotecas que irei utilizar. Como estou estudando para as provas que estão por vir e tenho mais um trabalho de LP para poder entregar até o dia 15/05, ficarei um pouco ausente do blog e do projeto, e quando concluir meus afazeres acadêmicos, voltarei a postar. Mas, não deixarei de sempre dar uma adiantada no projeto sempre que puder!

Atenciosamente,
Todi.

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.