jeudi 22 mars 2012

Jeu en 3D et des moteurs graphiques

Une chose que je me pose au sujet de beaucoup est de savoir si vous devez utiliser un jeu ou un moteur graphique au lieu d'apprendre OpenGL ES. Souvent, ces courriels sont précédées par une déclaration au sujet de la difficulté de programmation graphique. J'ai eu à répondre à cette question suffisamment de fois, maintenant qu'il apparaît comme un bon sujet pour un article de blog.

Honnêtement, je trouve ça un peu difficile de répondre, car je ne vois pas le "utilisant un moteur" et "l'apprentissage de la programmation graphique» comme étant distincts ou des approches mutuellement exclusifs. Même si un bon jeu ou moteur graphique gérera une grande partie des tâches de programmation plus noueux pour vous et pour raccourcir votre temps de développement, vous avez encore besoin de comprendre les concepts sous-jacents à construire quoi que ce soit de n'importe quelle complexité.

Tous ces moteurs sont construits sur le dessus d'OpenGL (et / ou s'ils supportent DirectX sous Windows), et sont soumis aux mêmes limitations et des forces. Ne pas comprendre, au moins à un certain niveau, la façon dont ces graphiques de bas niveau des bibliothèques de travail et les mathématiques de base de la programmation 3D finira par vous retenir.

Mais ... qui ne signifie pas nécessairement que vous devez apprendre OpenGL avant que vous puissiez commencer à utiliser efficacement ces outils. Vous n'avez pas. C'est juste que certaines des difficultés, les mathématiques et les concepts collant qui pourrait être vous effrayer d'OpenGL sont toujours là (bien mieux cachés), et vous pouvez ainsi toujours à traiter avec eux à un certain point, si vous faites le codage sur le jeu (par opposition à simplement créer des actifs ou de faire le level design).

Voici une sorte de règle de mot simple:

Si vous aimez la programmation graphique ou sont fascinés par elle, puis étude OpenGL ES et les maths sous-jacente et d'oublier d'utiliser les moteurs au premier abord (si l'étude de leur source est une excellente façon d'apprendre). Il y aura toujours du travail à des programmeurs de bons graphiques et vous ne pouvez pas mettre un prix sur ce que vous aimez.

Si, d'autre part, votre but est de faire un jeu ou d'autres graphiques lourdes applications et la programmation graphique est juste un moyen à cette fin, puis d'utiliser un moteur, car elle réduira la quantité de travail que vous avez à faire énormément , ce qui augmente intrinsèquement vos chances de faire de l'argent parce que le temps c'est de l'argent et il n'ya jamais assez de lui.

Ainsi, lorsque vous utilisez ne doit pas un moteur existant, si votre objectif est de faire un jeu et non d'essayer d'être le prochain John Carmack? Presque jamais. Rouler votre moteur propre jeu devrait être un travail d'amour. Il doit y avoir une démangeaison vous ne pouvez pas rayer; le genre de désir que je ne pourrais probablement pas vous parler de toute façon. Sinon, c'est juste un gaspillage de votre temps.

Qu'en est-il quand il n'y a tout simplement pas un moteur qui fonctionne pour ce que vous voulez faire?

Honnêtement, ce n'est pas tout que probable dans cette journée et l'âge, mais même si elle est, vous êtes bien mieux commencer par un moteur existant et ensuite le modifier pour répondre à vos besoins.

Du point de vue commercial et financier, il est presque jamais mieux repartir de zéro. Même de nombreux moteurs AAA jeu commercial sont des dérivés d'autres moteurs. Pour donner un exemple: Valve Source Engine, Est dérivé de leurs anciens Goldsource moteur, Qui lui-même était fourchue de la Moteur de Quake retour aux alentours de 1996.

Bien qu'il y ait tout à fait un jeu de quelques moteurs autour, Un très grand pourcentage de jeux haut de gamme commerciale, les deux consoles et PC, sont fondées soit sur l'Unreal Engine ou le moteur de Quake ou un de leurs dérivés. Si vous jetez dans une poignée d'autres moteurs, comme le CryEngine, Vous avez probablement couvert tous, mais quelques valeurs aberrantes.

Si ce n'est pas rentable pour les grandes équipes de développement multi-personnes avec des budgets de plusieurs millions pour développer leurs moteurs propre jeu, ce n'est probablement pas le meilleur choix pour les développeurs indépendants individuels ou les petits commerces.

Donc, ne pas réinventer la roue. Utilisez un moteur et se tenir sur les épaules de John Carmack et d'autres comme lui. Ne passez pas votre temps à essayer de résoudre les problèmes qui sont à long résolu. Juste être conscient que l'utilisation d'un moteur ne peut pas éliminer complètement le besoin d'apprendre un peu de mathématiques ou de comprendre les concepts sous-jacents.

Engines

Il se trouve que pour un certain nombre de propositions que j'ai fait dernièrement, j'ai regardé dans les moteurs de jeu en profondeur. Je ne vais pas faire des "critiques" en soi, mais au cours des prochaines semaines, je vais essayer et après mes réflexions sur plusieurs des moteurs disponibles pour iOS, y compris Unity3D, Sio2, Ogre3D, Et Cocos3D.

Je ne vais pas discuter de la UDK, Même si c'est un moteur phénoménal, car il nécessite l'utilisation de Windows pour de nombreuses tâches, et je ne veux pas passer du temps dans Windows. Si vous avez un Mac et une machine Windows, cependant, et ne me dérange pas de temps clivage entre OS X et Windows, vous pouvez le vérifier. Beaucoup de temps et de matière grise est allé dans obtenir l'UDK pour avoir des performances incroyables sur iOS et les conditions de licence ont été modifiées pour être beaucoup plus convivial pour les petits magasins indépendants (99 $ plus 25% des redevances après la première tranche de 50.000).

Aucun commentaire: