Mecanismos de jogos pequenos e de código aberto disponíveis para o tutorial [fechado]

8

Estou aprendendo a criar um mecanismo de jogo do zero no XNA. Estou procurando exemplos de mecanismos de jogos muito pequenos, especificamente a arquitetura e a estrutura dos arquivos de origem, etc. Deve incluir um mecanismo de script. Os artigos também são apreciados.

Mais especificamente, tenho um problema em saber como conectar o mecanismo de script ao restante do mecanismo do jogo, como carregar modelos do script.

Shawn Mclean
fonte
Apenas por interesse, por que você precisa de um mecanismo de script? O próprio C # já resolve quase todos os problemas que um mecanismo de script é usado para resolver. E o XNA já é um "mecanismo de jogo muito pequeno" que pode carregar modelos.
Andrew Russell
O cara com quem estou trabalhando disse que quer um mecanismo de script para não precisar recompilar o jogo sempre que algo na história mudar.
Shawn Mclean
Só para você saber, existem soluções C # puras para esse problema: stackoverflow.com/questions/1353456/… (o compilador C # faz parte do tempo de execução).
Andrew Russell

Respostas:

2

O Angel Engine é um mecanismo Open Source pequeno e muito bom, escrito em C ++ e OpenGL. Além disso, possui uma interface de script Python. Embora o mecanismo não seja escrito em C #, ele deve fornecer algumas dicas e idéias, e pelo pouco que eu joguei com ele, o código é muito limpo e fácil de entender, mesmo que você não esteja totalmente em C ++.

Muttley
fonte
4

Gosto do livro Programação de jogos de papéis com DirectX (2ª edição) para sua seção de scripts; Eu realmente não vi um tutorial do início ao fim sobre como criar um mecanismo de script em outro lugar. E, é claro, sendo um livro, ele o guiará passo a passo, criando a parte de script do mecanismo (e todo o restante do mecanismo de jogo que ele estabelece ao longo do livro, é claro). Infelizmente, o código fonte não está disponível online.

Depois de ter um mecanismo de script, eu manteria separados os modelos 3D dos scripts . Os scripts geralmente estão no lado lógico das coisas, enquanto os modelos 3D são certamente o lado da apresentação / exibição das coisas, e esses não devem realmente ser misturados. Quando um script ordena que um caractere "caminhe para (3,5)", não precisa dizer "carregar animação curta, defina a velocidade como (-1,1), aguarde 3 segundos, defina a velocidade como zero, carregue ocioso animação"; você normalmente teria apenas uma walkTo(x,y)função disponível para o script, e o código intermediário cuidaria de modelos 3D, animações etc.

Mas, ei, se você realmente precisar, defina suas próprias funções no seu intérprete de script que obtém modelos 3D e faz o que for necessário com eles. Eu acho que você está pensando um pouco longe demais; primeiro, preocupe-se em escrever um interpretador de script simples e adicione as funções necessárias ao intérprete enquanto escreve seus scripts.

Ricket
fonte