samedi 21 avril 2012

Unity 3D: Créer son propre jeu "facilement"



[Je voulais à la base vous parler de mon projet de RPG mais mon billet a pris une autre orientation et je préfère le scinder en deux. je parlerai de mon projet dans un prochain billet tandis que celui-ci vous présentera un peu ce que j'utilise pour travailler en plus de vous expliquer pourquoi les programmes de création "facile" de jeux tel que RPG Maker ne sont que des grosses arnaques]


Salut tout le monde !

Je voulais commencer ce billet par "désolé d'être resté si longtemps sans poster mais je suis très pris par un projet blablabla"... Malheureusement j'ai posté il y a pas tellement longtemps en fait et mon intro tombe donc à l'eau. Monde cruel, je vous le dit.

J'en avais parlé un peu au début du billet sur CraftStudio (que je vous invite vivement à lire si vous ne savez pas ce qu'est CraftStudio) mais pour ceux qui n'étaient pas là voici un rapide résumé:

"Dégoûté par Skyrim, le jeune Beldir décide un jour de créer son propre RPG qui seras trop parfait de la mort, best RPG evar (après Morrowind). Dans son voyage il rencontrera pas mal de programmes pourris avant de trouver l'amour de sa vie."

J'ai donc pris un bloc note, une version pas très très légale de RPG Maker XP et me voici parti sur la route. Au début, ce qui est chouette avec RPG Maker c'est qu'on a un programme assez impressionnant puisqu'il permet de faire pas mal de trucs poussés sans s'embêter avec de la programmation. Puis en fait on finit par se rendre compte qu'il a été codé par des branquignoles qui ont eux-même bridés leur programme pour des raisons qui m'échappent encore (seulement 4 choix disponibles par dialogue et extrêmement limités en quantité de texte,...). Ne souhaitant pas créer un RPG avec des combats au tour par tour à la Final Fantasy (les RPG japonais m'ont toujours laissé totalement indifférent et m'endorment après 10 minutes de jeu) j'ai commencé à bidouiller avec des scripts créés par la communauté.

Et c'est là qu'on comprend le gros problème de RPG Maker, il est soit-disant fait pour faire des jeux facilement mais concrètement c'est absolument infaisable sans se plonger dans du code (du Ruby en plus). En plus, utiliser les ressources de la communauté vous oblige à lire des tonnes et des tonnes de licences pour être sûr que votre jeu soit légal (surtout si comme moi vous comptez gagner quelques euros dans l'affaire).

Et surtout le problème qui m'a vraiment achevé, c'est que le jeu limite certains trucs pour soit-disant simplifier la création du jeu. ce qui vous oblige à contourner ses limitations par des moyens ultra sophistiqués et complètement tordus (essayez de gérer le changement de map d'un environnement ouvert à la Zelda pour voir). Certains me diront que c'est tout le charme du truc et je ne vais pas te donner tort, Russe leur donner tort, mais quand on a un projet complet en tête et que tout ce qu'on veut c'est le faire passer du stade d'idée au stade de jeu jouable si possible rapidement, ça coince un peu.

Et enfin l'interface est absolument imbitable puisqu'on ne peut rien redimensionner/déplacer, du coup la moitié de vos script est illisible parce que vous avez fait trop de boucles, conditions, etc et que le texte ne tient pas dans la fenêtre de script. Pas pratique quand on tente de faire un jeu axé sur les dialogues.

Bref, je me suis dit que quitte à devoir galérer dans du code et prendre énormément de temps pour créer mon jeu, autant utiliser un vrai moteur de jeu. Et j'en ai trouvé un ! Unity3D.

Cliquez sur les images pour les voir en taille réelle
Unity3D
Une seconde vue permet de voir le rendu en jeu.
Notez qu'Unity tourne aussi sur Mac et permet de faire des jeux sur tous support (PS3, Wii, web, Android,...)

Voyons ensemble ses caractéristiques:
  • Gratuit
la version gratuite est certes un peu limitée (pas d'ombres dynamiques principalement) mais elle reste un outil professionnel puissant. Quand on sait que la version Pro coûte 1500 dollars (je ne me suis pas trompé, il n'y a pas de zéro en trop), je crois qu'on pourra se passer de ces ombres (les pros les dessinent eux-même sur le terrain). A titre de comparaison, RPG Maker XP coute 30 dollars et RPG Maker VX Ace (dernière version qui est toute pourrie) coûte 90 dollars.

Ces deux programmes vous permettent de vendre votre jeu mais vous devrez passer sous Unity Pro si vous faites plus de 100 000 dollars de bénéfice par an avec votre jeu. Il y a de la marge je crois :D
  • C'est un Engine 3D
On pourrait penser que travailler avec de la 3D est deux fois plus compliqué qu'avec de la 2D et c'est à peu près vrai. Sauf que faire de la 3D sans savoir dessiner est tout à fait possible (j'en suis la preuve vivante) tandis que c'est un peu plus chaud pour la 2D. Ensuite, imaginez que dans votre jeu vous souhaitiez que votre personnage s'affiche avec ses pièces d'armures sur le dos et son arme:

En 2D (RPG Maker): vous devrez dessiner votre personnage avec chaque pièce d'armure sur lui. De plus, sous RPG Maker votre perso s'affiche d'un bloc, vous ne pouvez pas lui mettre une tête différente sur un certain corps par exemple. Vous devriez donc le dessiner avec chaque combinaison d'armure/arme sur lui. Et bien sûr le dessiner pour chaque animation (attaque, marche, magie,...). Vous l'aurez compris c'est impossible à faire.

En 3D (Unity): créer votre perso sans armure ni arme, créez les différentes pièces d'armures et les armes en tant que modèles séparés et mettez les simplement sur le perso en jeu. C'est déjà beaucoup plus simple. Ensuite vous ne devrez pas refaire votre modèle pour chaque action, vous définissez les différentes animation du perso à partir du modèle en déplaçant, tournant etc, ses différents membres.

Bien entendu s'il vous prend l'envie de faire un jeu 2D avec Unity, rien ne vous en empêche. Jetez donc un oeil à Rochard si vous avez le temps. Cet excellent jeu à été créé avec Unity3D.

Rochard
Il n'est pas interdit de faire des jeux 2D avec Unity ;)

  • Tout ce qu'il faut là où il faut
Unity dispose de divers outils extrêmement utiles et (relativement) simples d'usage:
  1. Un éditeur de terrain plus que facile à utiliser et puissant.
  2. Gestion de la physique intégrée avec PhysX (moteur physique utilisé dans Mirror's Edge)
  3. Gestion des collisions simple à utiliser
  4. ...
  • Une excellente communauté
Un truc super énervant quand on travaille avec RPG Maker c'est qu'énormément de gens mettant leur scripts à disposition interdisent qu'on en fasse un usage commercial. Unity étant un moteur créé avant tout pour un usage commercial on n'y rencontre pas ce problème. 

Ensuite, vous trouverez énormément de tutorials en ligne pour vous aider à créer des types de jeux bien précis (plateforme 2D, Hack and slash, RPG à la Final Fantasy, jeu de course, FPS,...).

Le programme est très bien documenté et vous trouverez toujours des tutoriaux pour vous aider à digérer son jargon technique.

Conclusion


Je ne vais pas vous mentir, RPG Maker est plus facile à utiliser qu'Unity et vous ne pourrez pas faire un jeu avec Unity sans mettre les mains dans du code. Toutefois vous n'irez nulle part avec RPG Maker à moins d'avoir le talent graphique nécessaire pour vraiment créer un jeu original avec. Mais dans ce cas je vouc conseillerais de ne pas gaspiller ce talent sur RPG maker et de passer vers des solutions plus professionelles telles qu'Unity (qui en plus est gratuit contrairement à RPG Maker). 

Voila une petite FAQ pour vous aider dans votre choix si vous décidez un jour de vous lancer dans la création d'un RPG sans trop vous fatiguer.

RPG Maker ou Unity? Qu'est-ce qui est le mieux?
Unity, mille fois Unity !

J'ai 12 ans et je veux faire un RPG sans taper une ligne de code, je prend quoi?
RPG Maker malheureusement. Ne t'attends pas à devenir riche avec ton jeu cependant ;)
Ou sinon attends que CraftStudio sorte en version finale

J'ai un super projet de RPG, je ne sais pas programmer, je n'ai jamais fait de 3D mais je suis vraiment motivé.
Utilise Unity3D. Apprend les bases de la 3D avec le Site du Zéro. Entraîne toi encore et encore et ça viendra. Suis des tutos ciblés sur ce que tu veux faire pour la programmation ou essaye de trouver quelqu'un pour faire ce projet avec toi.

J'aime pas les RPG ! Je veux un jeu de tir avec des explosions partout et des phases en voitures où ça explose partout et y'aurais des hélicoptères qui explosent !!
Michael Bay je vous ait déjà dit de ne plus venir m'importuner !! Et puis utilisez Unity pour ça, voir l'Unreal Engine (UDK).

Voila voila. J'espère que ce billet vous aura fait comprendre qu'un jeu ne se fait pas à la légère et que les outils tels qu'RPG Maker promettant la création de votre jeu sans taper une ligne de code ne sont que des attrapes pigeons (sauf CraftStudio évidemment^^). Oui, vous pourrez créer des jeux avec, sans coder. Est-ce que ce seras votre jeu? Votre idée de départ qui n'aura pas été influencée par les limites du programmes? Je ne pense pas.

Désolé pour ce gros pavé de texte indigeste, le prochain billet seras beaucoup plus illustré et moins technique. A bientôt.