Tema:
Utilização de sistemas distribuídos em jogos eletrônicos livres
Aluno: Henrique Gemignani Passos Lima
Supervisor: Professor Daniel Macêdo Batista
Resumo:
Desenvolvedores de jogos eletrônicos livres que desejam implementar alguma funcionalidade multijogador sofrem com um problema: manter servidores, ou pelo menos uma lista desses.
Jogos comerciais mais antigos para PC adotavam a estratégia de permitir que o jogador se conectasse a um endereço IP qualquer. Também era popular o jogo ter um lista de servidores oficial, que podia ser acessada de dentro do jogo. Já jogos comerciais recentes sempre possuem um servidor oficial principal do qual todas funcionalidades multijogador dependem. Não é comum um jogo moderno ter suporte a se conectar a um endereço IP qualquer.
No caso de um jogo livre, o desenvolvedor tem duas opções: manter ele mesmo um servidor principal ou deixar esse trabalho para a comunidade. O primeiro implica num custo de manutenção para o desenvolvedor, enquanto o segundo aumenta a barreira de entrada para novos jogadores, dado que o jogador precisa ativamente procurar tal lista.
Uma possível solução é a utilização de uma rede distribuída descentralizada na qual todos os jogadores e servidores participam.
Objetivos:
- Implementar uma rede distribuída para jogos com as seguintes funcionalidades:
- Armazenamento local de nós conhecidos
- Busca de novos nós da rede
- Políticas para eliminação de nós conhecidos
- Implementar funcionalidades do jogo que utilizam a rede:
- Buscar servidores que fornecem conteúdo adicional ao jogo
- Buscar partidas mutijogador disponíveis, que sejam:
- Com servidor central responsável
- Descentralizadas
Atividades já realizadas:
- Implementação de um jogo eletrônico mas sem utilização de funcionalidades dependentes de rede por enquanto: vikings
Vikings
O vikings foi um jogo produzido numa experiência de mini-projetos realizada pelo USPGameDev. Foi desenvolvido em Janeiro e Fevereiro de 2013 por Henrique Gemignani Passos Lima e Wilson Kazuo Mizutani utilizando a LÖVE, um arcabouço para jogos 2D em Lua.
Maiores informações podem ser encontradas na página do jogo no site do USPGameDev.
- Um estudo sobre utilizar uma tabela hash distribuída (DHT) como solução. De forma resumida, a conclusão foi que uma DHT pode ser utilizada, mas seria apenas uma parte do sistema final.
Cronograma:
| Março | Abril | Maio | Junho | Julho | Agosto | Setembro | Outubro | Novembro | Dezembro | |
| Estudos | ||||||||||
| Programação | ||||||||||
| Análise de desempenho | ||||||||||
| Monografia | ||||||||||
| Apresentação | ||||||||||
| Poster | ||||||||||
Estrutura esperada da monografia:
Parte Objetiva
- Introdução
- Conceitos
- Servidores e listas de servidores em jogos eletrônicos
- Redes Distribuídas
- Análise de desempenho
- Resultados
- Dificuldades
- Conclusão
- Bibliografia
Parte Subjetiva
- Desafios e frustrações
- Disciplinas cursadas
- Comentários