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?
fonte
Respostas:
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:
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.
fonte
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.
fonte
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.
fonte