Un petit cheat sheet pour évaluer les bibliothèques, les frameworks, les moteurs et les SDK et choisir les meilleurs
- Les bibliothèques, les frameworks, les moteurs SDK, etc. sont des outils destinés à résoudre des problèmes pour vous ou à vous aider à résoudre des problèmes et à répondre à certaines exigences.
- Évaluer signifie trouver celle qui répond le mieux aux exigences.
Par conséquent, avant même de commencer à évaluer, vous devez être clair dans quel scénario vous êtes et quelles exigences vous avez / voulez avoir car ce sont les questions auxquelles l'évaluation doit répondre.
Le scénario définit d'où viennent les exigences (qui décide ce qui est une exigence et ce qui ne l'est pas).
Les scénarios typiques sont:
Le scénario de projet le plus hobbiest
Vous seul ou avec des amis souhaitez créer votre (peut-être le premier) jeu. Parfait, vous pouvez tout décider par vous-même et vous n'êtes limité qu'aux exigences techniques de base et aux exigences techniques (que ce soit un jeu mobile, un jeu PC, un jeu console, un jeu web, ....). Vous pouvez décider ce que vous voulez.
Les exigences implicites seront que vous souhaiterez peut-être apprendre quelque chose de spécifique (un langage, un framework / moteur spécifique)
Le scénario étudiant
Les exigences peuvent provenir de votre professeur. Exigences typiques que j'avais dans ce cas: le jeu doit avoir des éléments physiques et un support réseau multijoueur. Ou il doit être écrit en C ++. L'évaluation devient donc facile. Vous recherchez un moteur de jeu qui vous permet de coder en c ++ et qui peut déjà inclure un moteur réseau et physique.
Une exigence plus mauvaise (la vie réelle): tout doit être écrit à partir de zéro (mais l'utilisation de bibliothèques est autorisée). Aucun éditeur n'est donc autorisé (par exemple Unity3D). Vous ne recherchez donc pas des moteurs / sdks mais des bibliothèques.
Le scénario du jeu indépendant
Vous voulez gagner de l'argent avec le jeu plus tard. Pour cela, vous devrez le vendre d'une manière ou d'une autre, ce qui vous amènera à vérifier quelles exigences proviennent du magasin sur lequel vous souhaitez vendre votre jeu.
Autorise-t-il les jeux Java, les jeux HTML5, ....)
Faut-il que vous incluiez des bibliothèques spécifiques (si oui, dans quelles langues ces bibliothèques sont-elles disponibles)
Google Playstore vous demandera d'écrire votre jeu en tant que jeu Android, Apple AppStore vous demandera d'écrire votre jeu en tant qu'application iOS. Ou vous devez choisir un moteur multiplateforme.
Le scénario professionnel
Vous avez non seulement un magasin fournissant des exigences, mais très probablement un éditeur ou un client ayant ses propres imaginations d'exigences. Dans ce scénario, vous aurez également une plus grande équipe de développeurs employés. En fonction de leurs compétences, de nouvelles exigences se posent (nos programmeurs ne peuvent écrire qu'en c ++, nous ne pouvons donc pas utiliser un moteur de jeu Java / Android pur sans qu'ils aient besoin de (beaucoup de) temps pour apprendre quelque chose de nouveau).
Je n'entre pas dans les détails de ce scénario, une fois que vous avez réussi à constituer une équipe d'employés et à trouver un client / éditeur, vous savez déjà ce que vous recherchez pour évaluer les choses.
Comment puis-je décider quelles sont mes exigences lorsque je suis un hobbiest ou un indi et que personne d'autre ne me le dit?
Posez-vous des questions sur vos objectifs et votre jeu?
Quel devrait être mon jeu? mobile, pc, web (html / Js), quels contrôleurs vais-je utiliser (écran tactile, gyroscope, manette de jeu)
Ce qui est nouveau dans mon jeu et ce que les autres jeux ont aussi. Les parties que les autres jeux ont également (rendu, audio, gestion des entrées) seront effectuées par la plupart des outils (moteurs de jeu) que vous pouvez trouver ou il est facile de regrouper des bibliothèques ayant cette fonctionnalité dans votre propre jeu ou moteur de jeu.
Quelle est la dimension de mon projet: oiseaux en colère ou skyrim? Angry Birds peut être fait dans presque tous les outils et skyrim serait limité aux outils haute performance avec des années (supposées) de personnalisation supplémentaire (les moteurs de terrain haute performance ne sont pas faciles)
Mon seul objectif est-il simplement de terminer un match? Oui? parfait, vous pouvez utiliser quelque chose de très avancé comme Unity, Unreal, ... avoir un éditeur pratique et une grande communauté vous fournissant des tutoriels et répondant à vos questions. Il enlève le fardeau de la gestion des tâches de bas niveau comme le chargement de maillage, l'implémentation de vos propres fonctions mathématiques, ....
Mon objectif est-il d'apprendre quelque chose de spécifique? Oui? que voulez-vous apprendre?
Quelle langue dois-je choisir? Si l'objectif est toujours juste de terminer votre jeu, choisissez celui que vous / votre équipe connaissez le mieux? Si vous voulez apprendre une langue spécifique, vous choisirez un outil dans cette langue.
L'outil X aura-t-il suffisamment de performances pour mon jeu? Peut-être que vous ne le saurez jamais. Même dans les grandes productions, la phase d'optimisation et de polissage prend beaucoup de temps et est un énorme travail pour y arriver. Commencez à vous soucier des performances lorsque vous rencontrez des problèmes de performances. Vous ne savez pas comment l'outil fonctionnera à moins d'atteindre ses limites. Tout sur le site Web du développeur d'outils n'est qu'une approximation. Après des années d'évaluation des outils, j'ai cessé de croire quoi que ce soit du site Web des développeurs.
Répondre à ces questions vous amène aux exigences. L'évaluation consiste à trouver une liste d'outils et à TESTER (et pas seulement à lire la page d'accueil) ce que l'outil peut fournir ou non.
Les exigences ne sont pas gravées dans la pierre mais sont dynamiques. Ils vont et viennent pendant le développement. Si le jeu a besoin de physique ou non, par exemple, cela dépend de la conception. Si la conception change, l'exigence peut également changer.
Prenez les exigences que vous avez et commencez. Les exigences changeantes sont le pain quotidien de la souffrance, ahm, des développeurs heureux, indépendamment de la taille du projet et du niveau d'expérience.