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)
- 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
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...
- 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 ?
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 :)