Quel SceneGraph est optimal pour commencer pour la programmation de petits jeux?

8

Je suis développeur d'applications Web Java (principalement côté serveur) depuis 7 ans et je me suis récemment intéressé au développement de jeux (je ne sais pas pourquoi, je m'ennuie peut-être). Aujourd'hui, je cherchais des cadres. J'ai lu quelques graphiques de scène et jeté un œil à jMonkeyEngine . Il a été recommandé ici et ici .

Mon premier objectif était de créer un plan simple et une sphère pouvant être déplacée à l'aide du clavier. Eh bien, comme je l'ai mentionné, je suis développeur Web et je n'ai jamais rien programmé d'autre, alors j'ai commencé avec les tutoriels de jMonkey. Mais je n'ai pas réussi à les faire travailler. J'ai jeté un œil au wiki mais j'ai remarqué que la documentation semble très pauvre, du moins par rapport à ce à quoi je suis habitué. J'ai ensuite jeté un coup d'œil à quelques autres graphiques de scène (également pour C ++) mais ils semblent également avoir une mauvaise documentation obsolète et incomplète.

Quelqu'un peut-il me recommander un graphique de scène bien documenté avec des échantillons de travail? Ou existe-t-il quelque chose comme le "guide ultime" pour entrer dans ce sujet? Dois-je d'abord savoir comment développer mon propre graphe de scène pour le faire fonctionner ou est-il possible de simplement comprendre les principes abstraits et de l'utiliser d'un point de vue supérieur?

D'une certaine manière, j'ai le sentiment que j'ai besoin de comprendre l'intérieur d'un graphique de scène pour bien l'utiliser (comme c'est le cas pour les outils ORM dans le développement Web, vous ne pouvez pas bien les utiliser si vous ne comprenez pas les bases de données)

Je suis désolé si cette question est trop «noobish», mais je veux juste me lever et faire mes premiers pas.

Chris
la source

Réponses:

5

Un graphique de scène est un outil. Ce n'est pas vraiment un outil approprié lorsque vous débutez dans le développement de jeux.

Je pense que ce que vous recherchez n'est pas un graphique de scène mais juste un cadre quelconque.

Normalement, je recommanderais XNA car il est vraiment bon (puissant, moderne, bien documenté, adapté aux débutants). Mais c'est C # et je peux voir que vous êtes un homme Java. Si vous préférez rester avec Java, peut-être un bon point de départ serait les ports Java des anciens didacticiels OpenGL de NeHe (ce n'est pas un cadre - mais c'est un ensemble de didacticiels pour savoir comment faire (à un bas niveau ) le genre de choses qu'un framework fait pour vous - charger et rendre des modèles, charger des textures, etc.).

Dans les premières leçons, vous apprendrez les matrices de transformation, c'est-à-dire essentiellement ce que sont les graphiques de scène (dans le cas commun).

Pour décrire brièvement un graphique de scène: Supposons que vous ayez un modèle de moulin à vent - il est défini dans son propre espace. Vous le traduisez à l'endroit où vous souhaitez qu'il apparaisse dans votre espace mondial . Ce moulin à vent aurait un objet enfant pour ses pales rotatives - vous appliqueriez donc une transformation de rotation aux pales, et il hériterait également de la traduction de son parent pour placer correctement les pales dans le monde.

Lorsque vous commencez à créer de petits jeux, vous n'avez pas tellement à vous soucier d'avoir cette grande structure de données compliquée. Habituellement, vous n'aurez que quelques modèles auxquels vous appliquerez directement des matrices de transformation.

(Les graphiques de scène sont également utilisés pour des choses liées aux performances comme le tri par matériau, l'abattage, etc. - tous inutiles pour le débutant et pour la plupart des petits jeux.)

Andrew Russell
la source
Je n'ai jamais utilisé XNA, est-ce qu'il a un scénario à lui tout seul?
Calvin1602
Non. XNA est un niveau un peu inférieur à cela. Vous devrez écrire le vôtre.
Andrew Russell
8

Le graphique de la scène a légèrement perdu sa place de must-have. Principalement parce qu'un moteur centré sur un graphique de scène est tellement lié à l'idée d'un graphique de scène qu'il se confond. Le fait est que les différentes parties d'un moteur ont besoin d'une vue différente du monde, alors qu'un moteur centré sur le scénario a tendance à vouloir imposer la même vue à toutes les parties du moteur.
Le scénario tel qu'il est traditionnellement vu, une hiérarchie d'objets parents et d'objets enfants est agréable pour les transformations, mais peut être totalement inapproprié pour le rendu, où vous êtes plus intéressé par les matériaux utilisés (bien d'accord, l'emplacement compte aussi, mais il y a différents façons de gérer cela et parent-enfant ne garantit pas qu'ils sont proches les uns des autres, nous avons tendance à le voir de cette façon).
Dans de nombreux jeux, vous constaterez que vous avez une racine de scène avec beaucoup d'enfants, mais ces enfants ont rarement leurs propres enfants. Les quelques-uns qui ont des enfants, vous pourriez aussi bien vous mettre à jour et sauter le scénario car cela ajoute une complexité inutile et une perte de performances (chaque transformation vérifiant si son parent est sale alors que seuls quelques-uns ont en fait un parent qui se salira jamais (la racine du monde rarement se déplace).

Kaj
la source
2

Pourquoi ne pas utiliser un moteur de jeu comme Unity3d ? Il est très connu pour être facile à utiliser et avec une excellente documentation. Je l'ai moi-même essayé brièvement et j'ai été impressionné par la qualité de la documentation de l'API et de plusieurs bons tutoriels. J'ai eu des problèmes de bras et de stade et j'ai dû demander l'aide de ma femme. Elle n'a aucune idée de la programmation mais pense que Unity3D était vraiment cool. Vous pouvez accomplir beaucoup de choses par simple glisser-déposer. Vous pouvez utiliser plusieurs langages de script avec le moteur. Il prend en charge JavaScript entre autres choses, ce qui, je suppose, étant donné que votre expérience devrait être attrayante. Vous pouvez obtenir une version gratuite avec toutes les fonctionnalités dont un développeur de jeu débutant aurait besoin.

Si vous n'avez pas besoin 3D, alors GameMaker est une excellente alternative. Il est vraiment facile d'entrer et de faire des jeux. Je l'ai utilisé à l'université et j'ai fait quelques jeux avec. Très amusant. Cela vous permet de vraiment vous concentrer sur la création du jeu et vous n'avez pas à penser autant à la technologie. Vous pouvez créer un jeu entièrement avec juste pointer et cliquer. Mais à mesure que vous progressez et comprenez comment tout cela fonctionne, vous commencez à écrire vos propres scripts.

À mon avis, cela fonctionne beaucoup mieux que GameSalad, qui n'a pas de langage de script. Dès que vous commencez à faire des choses plus compliquées, cela devient vraiment ennuyeux avec seulement un point et un clic, je pense.

Erik Engheim
la source
0

Je suis entièrement d'accord avec Kaj. Pour plus d'informations sur ce sujet, consultez gamearchitect (au fait, si vous êtes intéressé par le développement de jeux, lisez tout le site, en particulier l'ancien)

Calvin1602
la source