vendredi 28 juin 2013

Unity3D: Par où commencer ?

Salut tout le monde !

On me pose très souvent la question et je suis toujours obligé de retrouver mes liens et d'ensuite écrire tout un pavé. Donc autant écrire ce pavé ici, histoire que je puisse le retrouver facilement et que tout le monde en profite.

Je dois vous prévenir directement que tous les liens que je vais donner ici mènent à des ressources en anglais. Si vous ne parlez pas un mot d'anglais, je ne saurai malheureusement pas vous aider et je pense aussi que vous partez avec une grosse difficulté en plus. Je ne vous demande pas d'être capable d'aller en Angleterre et de vous y exprimer sans accent mais pour moi la compréhension écrite de l'anglais est un minimum si vous espérez vous lancer dans Unity. Ne fut-ce que pour pouvoir lire la documentation du programme.

Ok, cela dit, on peux commencer :)

Je vais vous citer ici les ressources que j'ai utilisées et ce qu'elles m'ont apporté, je ne doute pas qu'il existe probablement de meilleurs tutos sur terre mais bon, ceux-là m'ont permis de me lancer.

Le commencement



J'ai commencé avec les tutos de BurgZerg Arcade, simplement pour m'imprégner des concepts d'Unity. C'est à dire que je tapais pas mal de trucs que je ne comprenais pas, ce qui n'est pas top mais bon, il faut bien commencer quelque part.

Je vous conseille le tuto vous guidant pas à pas pour la création d'un Hack'n'Slash. Je ne l'ai pas fait en entier. Je me suis arrêté vers l'épisode 20 je crois.

Avantages:

  • C'est du C#, le language le plus conseillé pour Unity3D (personnelement j'utilise du javascript parce que je suis trop un rebelle de la forêt).
  • Il passe en revue pas mal de trucs et notamment des choses autres que du code (l'éditeur de terrain par exemple)
Désavantages

  • Tutorial vidéo... Je ne sais pas pourquoi les gens ne font quasiment plus que ça maintenant, c'est chiant et si vous n'avez pas deux écrans pour mettre la vidéo d'un côté pendant que vous écrivez le code sur l'autre écran, vous allez vraiment galérer.
  • Vu que c'est une vidéo ça demande un niveau au-dessus pour la compréhension de l'anglais

Le livre qui a changé ma vie


A cause de ces désavantages j'ai fini par passer à autre chose. En fouinant un peu partout pour dégoter des tutos écrits, j'en suis arrivé à la conclusion que le plus simple serait d'utiliser un livre.

J'ai donc utilisé celui-ci:


Vous pouvez le trouver ici, ou bien auprès de votre Baie préférée si vous n'avez pas d'argent et/ou que vous souhaitez voir le monde brûler.

J'ai lu environ les 2/3 avant de me lancer dans mon propre jeu, en roue libre.

Avantages

  • Très bien écrit et très drôle, ça peux sembler être un détail mais ça m'a vraiment permis de ne pas décrocher
  • Les jeux qu'il nous apprend a développer sont originaux et non pas des nièmes clones de Tetris, Pong, etc...
Et enfin le plus gros avantage qui explique pourquoi ce livre a changé ma vie, c'est qu'il ne se contente pas de vous apprendre à coder, il vous donne aussi et surtout une méthode de travail (que j'utilise encore) et qui va vous permettre de coder intelligemment en découpant les grosses tâches en plus petites et en vous apprenant à limiter vos ambitions (meilleur conseil du monde quand il s'agit de faire un jeu tout seul).

Désavantages

  • Javascript: merci pour les mauvaises habitudes de coding^^'
  • Payant

Et après ?



Ça y est, je suis un l33t programmeur après avoir regardé/lu tout ça ?
Nope, ou alors juste un tout petit peu^^

Après tout ça je vous conseille de vous lancer dans votre propre jeu. En principe le bouquin aura couvert ce que je vais vous dire maintenant mais:

Ne vous lancez pas dans le jeu de vos rêves ! Parce que si vous faites ça vous allez vous planter, plusieurs fois ! Pensez à un petit projet. Mais un que vous voulez faire, pas un truc qu'on vous conseille de faire. Pensez votre projet petit, ensuite diminuez encore vos ambitions (ne vous en faites pas, vous aurez l'occasion durant le développement d'alourdir votre charge de travail avec des ajouts non prévus^^).

La clé pour progresser c'est de finir vos jeux, vous risquez d'être tenté après un moment a bosser sur un jeu de passer à autre chose: parce que vous êtes plus skillé, parce que votre code est un gros bordel truffé d'erreurs de débutants,... N'abandonnez pas vos projets pour autant, finissez-les ! (sauf si vraiment vous ne prenez plus aucun plaisir à travailler dessus).

Edit 27-11-13: D'ailleurs, à ce propos, je vous conseille de participer au Ludum Dare de temps en temps. Le jam (72h pour faire un jeu) est très libre sur les règles a respecter et en principe, après ce cours laps de temps, vous aurez en main un jeu terminé a montrer au monde^^. Ce n'est pas rare que des projets du LD à la base soient continués par leur auteur et deviennent de vrais hits.

Une fois lancé, vous vous en doutez, il va bien falloir lire pas mal de trucs encore pour progresser et espérer finir vos jeux, mais lire quoi ?

La documentation d'Unity, tout simplement. Elle est très bien écrite et est une ressources plus que précieuse. Ce que je vous conseille c'est, lorsque vous coincez sur un élément, disons par exemple que vous voulez faire un FPS mais que vous ne savez pas comment faire pour instancier un projectile, cherchez votre problème sur Google, vous tomberez probablement sur answers.unity3d.com

Là vous devriez rapidement voir dans les réponses quel élément pourrait vous aider. GameObject.Instantiate par exemple, ou un Raycast, refaites une recherche google sur cet élément pour arriver dans la doc Unity où vous devriez trouver pas mal d'infos utiles. Essayez toujours d'aller un peu plus loin, voir ce que vous pouvez faire d'autre avec cette fonction, etc.

Ça ne sera peut-être pas utile dans l'immédiat mais le jour où vous en aurez besoin, vous vous rappellerez que la fonction peux également faire ceci ou cela.

Conclusion



Voilà voilà. J'espère que ces quelques ressources vous aideront et que dans quelques mois/années je pourrai jouer à vos jeux awesomes. Si vous souhaitez faire un Tower-Defense avec des zombies, oubliez tout ce que je viens de vous dire et par pitié, ne touchez plus jamais à Unity, merci.

Bonne chance les loulous :)