Fazendo um jogo como um tutorial? [fechadas]

19

Sou responsável por um clube de desenvolvimento de jogos na minha escola e gostaria de trabalhar em um projeto neste verão que possa usar como tutorial no próximo semestre. Eu nunca fiz nada parecido com isso, então eu queria saber se alguém tinha alguma linha de orientação ou idéias.

O que eu quero fazer basicamente é fazer um jogo muito simples. Algo como um jogo de tiro de cima para baixo, onde os inimigos vêm correndo para você matá-los e pegar alguns itens. No entanto, quero que tudo seja modificado com muita facilidade. As pessoas do clube têm pouca experiência em desenvolvimento de jogos; portanto, se eu pudesse configurá-lo de tal maneira que as pessoas pudessem modificar e adicionar funcionalidades com facilidade, seria ótimo para elas.

Coisas como ter uma classe inimiga onde o comportamento é fácil de jogar, ou fazer armas dispararem de maneira diferente / adicionar novas armas e novos itens. Inclusive adicionando novos elementos ao jogo. Qual seria a melhor maneira de criar o jogo para permitir esse tipo de maleabilidade?

Benixo
fonte
1
Veja esta resposta no Stack Overflow.
Andrew Russell

Respostas:

16

Uma maneira tradicional de atingir esse objetivo no desenvolvimento de jogos é usar uma arquitetura orientada a dados para os sistemas de jogos.

Em essência, isso significa que o código não implementa um tipo específico de arma (uma arma) com valores explicitamente definidos para seu alcance / dano / penetração, mas preenche os conceitos genéricos de uma arma de longo alcance (alcance / dano / penetração ...) de uma fonte de dados externa (para o código). Essa fonte externa pode variar de arquivos analisáveis ​​(talvez XML) lidos no disco, a arquivos binários ou elementos de banco de dados gerados por ferramentas internas ou externas ao próprio mecanismo de jogo.

Definindo algo como um inimigo, o sistema de IA pode ser projetado para suportar um número de comportamentos genéricos (agressivo, defensivo, suporte, covarde) que são aprimorados por elementos controlados por dados.

My New Enemy, começa com o agressivo comportamento básico da IA ​​com valores controlados por dados para: -ignore jogadores> meu nível + X-persegue jogadores até X unidades além do ponto de spawn -fuja quando a saúde <X -grandiu habilidades prioritárias -melee skills (para quando os jogadores se aproximam demais)

Um esquema orientado a dados mais complicado pode permitir a definição de pontos de dados específicos (eventos) nos quais um estado da AI faz a transição (máquina de estados finitos) para outro estado (ou até a chance de fazer a transição para um dos N outros estados), permitindo que os usuários definam um hierarquia complicada de comportamentos.

Tudo isso é obviamente mais trabalho do que apenas codificar explicitamente um comportamento, mas é um desafio divertido para permitir que os usuários produzam conteúdo sem modificação da fonte.

Existem pontos de bônus a serem alcançados:

  • se você pode atualizar dados dinamicamente e ter as alterações refletidas no mecanismo do jogo sem reiniciar o aplicativo
  • se você criar interfaces de usuário amigáveis ​​sobre os dados, permitindo que os usuários usem uma interface para interagir com os dados, em vez de editar diretamente arquivos de texto (xml ou qualquer outro)

Para um jogo tutorial direcionado para uma multidão mais técnica, a maior parte do trabalho é feita em classes / objetos projetados que expõem interfaces limpas para os usuários estenderem que, por sua vez, também podem ser orientadas por dados.

Christopher Larsen
fonte
Boa resposta! 1
AttackingHobo
Obrigado pela sua contribuição :)! Você conhece algum site que me mostre como implementar esse tipo de código? Eu nunca fiz jogos com fontes externas como essa. Embora eu definitivamente queira que eles codifiquem no XNA no clube, provavelmente farei algo mais ao longo das linhas de classes e objetos que eles poderiam facilmente herdar em suas próprias classes. Mas com certeza vou olhar para isso,
Benixo
Uma ótima maneira de fazer isso requer seu próprio analisador de configuração, para permitir que estruturas muito simples controladas por dados sejam carregadas. Essencialmente, a chave para qualquer tutorial é ensinar em blocos, portanto a abstração é absolutamente essencial. Um bom exercício poderia ser, projetar uma GUI simples que permita ao usuário definir e criar novos tipos de armas.
Deceleratedcaviar
Os aspectos mais comuns controlados por dados nos jogos são os níveis. Mesmo que todo o resto seja codificado, os designs dos níveis (ou seja, onde o cenário é colocado, onde os inimigos são colocados etc.) quase sempre são definidos nos arquivos de dados que o jogo carrega. Seu segundo ponto de bônus descreve uma ferramenta de edição de níveis.
Jhocking
O processo de gravação / leitura de objetos para / do disco é conhecido como "des- / serialização". Você pode encontrar alguns tutoriais úteis sob esse termo.
Exilyth 01/08/19
1

Se você está procurando algumas idéias sobre como iniciar seu projeto e construí-lo passo a passo para que possa ser convertido em um tutorial, dê uma olhada no XNA Game Programming Adventures . O autor possui vários tutoriais configurados, com explicação e código fonte que aumentam passo a passo.

Bart
fonte
0

Eu sugeriria olhar para o tutorial Java Game Development em www.thenewboston.com

Pode não ser exatamente o que você está procurando em termos de caras com armas e todo esse jazz, mas oferece um bom detalhamento passo a passo de vários fatores-chave no desenvolvimento de jogos. O apresentador "Bucky" também tem um estilo de ensino descontraído e divertido. Apreciar.

Jonny
fonte