Qual SceneGraph é o melhor para começar na programação de pequenos jogos?

8

Sou desenvolvedor de aplicativos Web Java (principalmente do lado do servidor) há 7 anos que recentemente se interessou pelo desenvolvimento de jogos (não sei por que, talvez esteja entediado). Hoje eu estava procurando estruturas. Li alguns gráficos de cenas e dei uma olhada no jMonkeyEngine . Foi recomendado aqui e aqui .

Meu primeiro objetivo foi criar um plano simples e uma esfera que pudesse ser movida usando o teclado. Bem, como mencionei, sou desenvolvedor web e nunca mais programava nada, então comecei com os tutoriais do jMonkey. Mas não consegui fazê-los funcionar. Dei uma olhada no wiki, mas notei que a documentação parece ser muito pobre, pelo menos em comparação com o que estou acostumado. Dei uma olhada em alguns outros gráficos de cena (também para C ++), mas eles também parecem ter uma documentação desatualizada e incompleta.

Alguém pode me recomendar um gráfico de cena que esteja bem documentado com amostras de trabalho? Ou existe algo como o "guia final" para entrar nesse tópico? Preciso primeiro saber como desenvolver meu próprio gráfico de cena para fazê-lo funcionar ou é possível apenas entender os princípios abstratos e usá-lo de um ponto de vista mais alto?

De alguma forma, tenho a sensação de que preciso entender o interior profundo de um gráfico de cena para usá-lo bem (como é o caso das ferramentas ORM no web dev, você não pode usá-las bem se não entender bancos de dados)

Sinto muito se esta pergunta é muito 'noobish', mas eu só quero ficar de pé e dar os meus primeiros passos.

Chris
fonte

Respostas:

5

Um gráfico de cena é uma ferramenta. Não é realmente uma ferramenta adequada para quando você está começando no desenvolvimento de jogos.

Acho que o que você procura não é um gráfico de cena, mas apenas uma estrutura de algum tipo.

Normalmente, eu recomendaria o XNA porque é realmente bom (poderoso, moderno, bem documentado, fácil para iniciantes). Mas é C # e posso ver que você é um homem Java. Se você preferir ficar com o Java, talvez um bom lugar para começar sejam as portas Java dos antigos NeHe OpenGL Tutorials (este não é um framework - mas é um conjunto de tutoriais sobre como fazê-lo (em um nível baixo ) o tipo de coisa que uma estrutura faz por você - carrega e renderiza modelos, carrega texturas etc.).

Nas primeiras lições, você aprenderá sobre matrizes de transformação, que são basicamente sobre o que são os gráficos de cena (no caso comum).

Para descrever brevemente um gráfico de cena: Digamos que você tenha um modelo de moinho de vento - ele é definido em seu próprio espaço. Você o traduz para onde deseja que apareça no seu espaço mundial . Esse moinho de vento teria um objeto filho para suas lâminas rotativas - portanto, você aplicaria uma transformação de rotação às lâminas e também herdaria a tradução de seus pais para colocar as lâminas corretamente no mundo.

Quando você está começando a fazer pequenos jogos, não precisa se preocupar muito com essa estrutura de dados complicada. Normalmente, você terá apenas alguns modelos aos quais aplicará matrizes de transformação diretamente.

(Os gráficos de cena também são usados ​​para itens relacionados ao desempenho, como classificação por material, seleção, etc. - tudo desnecessário para iniciantes e para a maioria dos jogos pequenos.)

Andrew Russell
fonte
Eu nunca usei o XNA, ele possui um cenário próprio?
Calvin1602 23/08
Não. O XNA é um nível um pouco mais baixo que isso. Você teria que escrever o seu próprio.
Andrew Russell
8

O gráfico de cena perdeu um pouco de posição como um item obrigatório. Principalmente porque um mecanismo centrado no gráfico de cenas está tão ligado à idéia de um gráfico de cenário que se confunde. O fato é que várias partes de um mecanismo precisam de uma visão diferente do mundo, enquanto que um mecanismo centralizado no cenário gráfico tende a impor a mesma visão em todas as partes do mecanismo.
O gráfico de cenário, como é tradicionalmente exibido, uma hierarquia de objetos pai e objetos filhos é bom para transformações, mas pode ser totalmente inadequado para renderização, onde você está mais interessado em quais materiais são usados ​​(tudo bem, a localização também conta, mas existem diferentes maneiras de lidar com isso e pai-filho não garantem que eles estejam próximos, apenas tendemos a vê-lo dessa maneira).
Em muitos jogos, você descobre que tem uma raiz de cena com muitas crianças, mas essas crianças raramente têm seus próprios filhos. Os poucos que têm filhos também podem se atualizar e pular o gráfico de cenário, pois ele adiciona complexidade e perda de desempenho desnecessárias (toda transformação que verifica se o pai está sujo, enquanto apenas alguns realmente têm um pai que fica sujo) (a raiz mundial raramente movimentos).

Kaj
fonte
2

Por que não usar um mecanismo de jogo como o Unity3d ? É muito conhecido por ser fácil de usar e com ótima documentação. Eu mesmo tentei brevemente e fiquei impressionado com o quão bem documentado tudo era a API e vários bons tutoriais. Eu tive problemas com meu braço e algum estágio e tive que obter ajuda de minha esposa. Ela não tem idéia sobre programação, mas achou o Unity3D muito legal. Você pode conseguir muito, basta arrastar e soltar. Você pode usar várias linguagens de script com o mecanismo. Ele suporta JavaScript, entre outras coisas, o que eu acho que, considerando que seu histórico deve ser atraente. Você pode obter uma versão gratuita com todos os recursos que um desenvolvedor de jogos iniciante precisaria.

Se você não precisa de 3D, então GameMaker é uma ótima alternativa. É realmente fácil entrar e fazer jogos. Eu usei na Universidade e fiz alguns jogos com ela. Muito divertido. Ele permite que você realmente se concentre em criar o jogo e não precisa pensar muito em tecnologia. Você pode montar um jogo inteiramente com apenas apontar e clicar. Mas à medida que você progride e entende como tudo funciona, você começa a escrever seus próprios scripts.

Na minha opinião, funciona muito melhor do que dizer GameSalad, que não possui linguagem de script. Assim que você começa a fazer coisas mais complicadas, fica realmente irritante com apenas apontar e clicar, eu acho.

Erik Engheim
fonte
0

Eu concordo completamente com Kaj. Para mais informações sobre esse assunto, consulte gamearchitect (a propósito, se você estiver interessado no desenvolvimento de jogos, basta ler o site inteiro, especialmente o antigo)

Calvin1602
fonte