Descrição detalhada do projecto "O Dilema do Android"
Resumo:
Criar um jogo multi-utilizador (apenas jogável on-line) baseado no conhecido "Dilema do prisioneiro". O objectivo do jogo é ganhar a maior quantidade de dinheiro possível, fazendo negócios com outros jogadores. O Jogo terá uma licença Open Source e será gratuito.
O jogo realiza-se em diferentes "épocas" ou "gerações" em que haverá variações nas caracteristicas (regras e parâmetros) do jogo. A análise dos resultados de cada geração do jogo, poderá ser interessante e é um aspecto a considerar no desenho e desenvolvimento do jogo.
Nota: Este projecto está relacionado com o projecto "Android OSS Market PT"
Como candidatar-se a este estágio: |
1. Procure na lista de estágios disponíves da sua escola. Actualmente o projecto está disponível em:
2. Caso a sua escola não esteja listada, envie-nos um email para: [email protected] com os seus dados e os dados da Escola. Se a sua escola tiver um processo para aceitar propostas de estágios de empresas, a Neoscopio fará a submição. Em alternativa, o estágio poderá ser combinado caso a caso com o responsável da área de estágios da sua escola. |
Descrição
Os jogadores movimentam-se num mundo virtual (representado internamente por uma matriz) e a cada momento podem fazer negócios com os seus vizinhos, em quatro direcções possíveis:
Vizinho da esquerda, vizinho da direita, vizinho de cima e vizinho de baixo. Também é possível um movimentar-se no mundo virtual e encontrar novas pessoas para negócios.
O negócio em sí é extremamente simples:
Cada interveniente decide uma posição negocial à partida: Posição "Bill" ou Posição "Linus"
O resultado da negociação depende das posições que cada jodagor assume de acordo com a seguinte tabela:
Jogador 1 | Jogador 2 | Resultado Jogador 1 | Resultado Jogador 2 |
Linus | Linus | +3 creditos | + 3 creditos |
Linus | Bill | -1 creditos | + 10 Creditos |
Bill | Bill | -2 creditos | -2 Creditos |
(tabela a ser revista)
Pârametros de decisão
Cada jogador começa com 100 créditos. Se chegar a zero, perde o jogo. A partir de determinado valor, ganha vidas extra que poderá usar em qualquer momento, mesmo em simultâneo.
Existem vários parametros que podem ajudar o jogador a tomar a sua decisão posicional:
- Memória. No caso de um jogador encontrar um outro com quem já tenha negociado, o resultado global das negociações anteriores é apresentado antes da decisão.
- Cada jogador tem um indicador aproximado da sua performance; tempo no jogo, número de negócios, riqueza.
- Um jogador pode decidir comprar indicadores extra para o seu avatar como forma de dar indicações para os outros.
- Os avatares são personalizaveis e únicos, pelo que é sempre possível reconhecer o jogador. Poderá em qualquer momento ser consultado o "estado geral geográfico" do jogo. Eventualmente podem ser detectadas zonas de maiores transações comercias de um certo tipo.
- Outros: Interessa pensar e analisar outros possíveis parâmetros que possam tornar o jogo mais interessante.
Um jogador pode deslocar-se para qualquer zona do "mundo virtual" mas necessita fazer alguns negócios pelo caminho para avançar, ou poderá simplesmente comprar uma viagem
Deverá existir um mecanismo (básico) anti-cartel que impede que pequenos grupos façam apenas negócios entre sí.
MÁQUINAS: Inteligência Artificial
Por último, existem vários jogadores máquinas. Estes são indistinguíveis dos humanos. Obedecem a pequenos programas lógicos para fazer as suas proprias negociações. É possivel a cada jogador criar seres virtuais deste género, podendo caso queira ditar a sua estratégia de negociação.
Software a desenvolver:
Na aplicação android que navega e comunica as negociações a fazer com o servidor.
Na aplicação de servidor que recebe as posições negociais em cada contracto e mantem o registo dos lucros/prejuizos/compras de cada jogador bem como o historico de todos os contratos efectuados.
O servidor promove "Épocas" no fim das quais o jogo termina e os vencedores são declarados. Será sempre feita uma comparação entre humanos e máquinas (espera-se que os humanos ganhem!!!)
Cada época poderá ter regras especificas.
O servidor poderá promover ligações a redes sociais existentes, i.e. Facebook, etc, provovendo negócios entre jogadores usando a informação da rede social. (e.g. pontos extra para negocios entre pessoas não ligadas, etc)
Objectivos e resultados esperados:
- Aplicação para Android Funcional
- Desenho e implementação de uma plataforma de servidor básica mas extensivel
Aspectos inovadores:
O "dilema do prisioneiro" é um problema fundamental da teoria dos jogos, que demonstra que duas pessoas (jogadores) podem decidir não colaborar, mesmo que isso seja no seu próprio interesse. Devido a uma forte relação com o mundo real, a implementação prática jogo e a análise dos seus resultados tem também encontrado interesse nas áreas sociais.
A conjugação de características multi-jogador, on-line, plataforma móvel e redes sociais, é uma configuração recente e ainda pouco explorada. Uma implementação simples de um jogo com estas características, poderá proporcionar novo conhecimento nesta área sobre várias vertentes (novas plataformas moveis, redes sociais, modelos de negócio para software, etc) que no momento actual estão cada vez mais presentes na vida social e profissional de pessoas e empresas.
Plano de trabalho:
(dias úteis, 20 dias por mês)
dias 1-10:
Revisão do projecto e planificação, adaptação deste ao aluno e às condicionantes conhecidas, ambientação e estado da arte.
Milestones:
- Plano de trabalho revisto
- Relatório de ambiente de trabalho e desenvolvimento
- Relatório do estado da Arte
dias 11-20:
Estudo do protocolo, inserção na comunidade Android, estabelecimento de contactos
Desenho e planificação do software (cliente e servidor)
Dias 21-40:
Implementação do jogo no ambiente de desenvolvimento android
Impementação de aplicação de servidor
Milestone:
- Prototipo
Dias 41-60:
planificação e implemntação de novas "features" planeadas de acordo com o espectavel, dada a avaliação do projecto à data.
Dias 61-80:
Implementaçao
Milestone:
- Prototipo
Dias 81-100:
Code freeze, Inicio de testes e divulgação
100-final
Correcção de bugs, divulgação
Referências bibliográficas
http://en.wikipedia.org/wiki/Prisoner%27s_dilemma
Perfil do candidato
- Bons conhecimentos de JAVA
- Gosto por redes sociais
- Gosto por novas plataformas moveis
- Gosto por uso de tecnologias e ferramentas Open Source
Possibilidade de continuação na empresa
Alta - A empresa tem planeado alguns projectos de desenvolvimento para novas plataformas, e está em processo de criação de uma spin-off da empresa dedicada ao desenvolvimento de Jogos.