J'ai (enfin en version papier) : Développer des jeux pour iPhone et iPad pour les nuls - Edition First Interactive - 22,90 euros dans toutes les bonnes librairies.
LOL c'est maigre comme question. Quel type de jeu (2D, 3D, statique façon réflexion, animé, en OpenGL, en CoreGraphics, en aplats... technos forcément bien différentes selon si tu as besoin de 3D ou pas et de gestion de collisions ou pas ou de moteur physique ou pas...), quel niveau (tu débutes pas en Objective-C, dev iOS et tout ce qui va bien, côté gestion mémoire & tout, j'espère, pour te lancer dans le dev d'un jeu ?)
Sinon y'a des sujets qui parle déjà de pas mal de tutos, de bouquins pour se mettre au dev ObjC, et un beau petit pavé notamment (cité il me semble par Draken ?) sur la prog de jeux pour iOS. [EDIT] Ah ben tiens, grillé par ledit Draken qui justement cite ce fameux bouquin
[EDIT] Ah ben tiens, grillé par ledit Draken qui justement cite ce fameux bouquin
8--)
Comme le dit Ali, il y a de nombreux types de jeux. On ne réalise pas un petit casse-brique comme un jeu d'action en 3D. Déplacer une balle sur l'écran en 2D c'est facile, en utilisant les fonctions graphiques de base. Animer les mouvements d'un monstre en 3D c'est infiniment plus complexe.
Ceci dit, même la création d'un jeu 2D "simple" est un travail important, impossible a résumer dans un seul tuto. Il en faudrait quelques dizaines pour traiter raisonnablement du sujet.
- Qu'est-ce qu'un sprite ? - Animation des sprites à 60Hz - Intégration des graphismes dans le jeu - Gestion des collisions - Gestion du son - Comportements des objets et (pseudo) Intelligence Artificielle - Gestion des interactions joueurs - Affichage du score - Conception d'un gameplay sympathique - Sauvegarde des scores - Etc..
J'ai déjà participé à la création de plusieurs jeu en C et C++ avec gestion de collisions, interactions avec d'autre joueur, interactions avec des ennemis... . Je suis en train d'apprendre en se moment l'Objective-C et la programmation sur IOS. Je voudrais donc apprendre pour débuter à concevoir des petits jeux D2 tout simple du genre du casse brique par exemple et aussi de jeux (toujours D2) avec de la gestion de collision interactions entre perso/ennemis ...
@devulder: merci pour les liens je vais regarder sa de plus près. @Draken: j'ai vu ton livre à la fnac, il est bien? vos t'il le coup?
Oui, le livre est bien. Par contre, le traducteur français s'est planté dans certains listings et oublié quelques fichiers.h. Cela n'est gênant que si tu cherches à recopier pas à pas le code source des explications. J'ai consulté l'ouvrage avec intérêt quelques semaine avant de me rendre compte du problème. Heureusement le code source complet est disponible en téléchargement sur le site de l'éditeur.
Si c'est tes premiers pas dans la programmation Objective-C, commence par plus simple : il y a tellement de choses à maà®triser en Objective-C et dans le SDK Cocoa avant de commencer à manipuler ce qu'il faut pour faire des jeux ! Il y a des patterns à connaà®tre, mais surtout la gestion de la mémoire à maà®triser sur le bout des doigts, et pas mal d'autres trucs (KVC, KVO, j'en passe)... Et il y a déjà pas mal de choses dans ces domaines à connaà®tre et pour lesquels tu verras les subtilités dès la réalisation d'un programme simple, donc évite peut-être de brûler les étapes
Pour 11 Euros les deux, l'investissement est intéressant. Je les ai récupéré, d'après les sommaires pas mal de choses sont abordées et expliquées. Je n'ai pas encore eu le temps de les lire, mais de ce que j'ai vu, connaitre les bases du dev iOS avant de les aborder est un plus.
J'ai vu que certains nouveaux inscrits viennent sur ce post, assez obsoléte. A l'époque, il fallait bidouiller pour créer des petits jeux. Maintenant Apple a développé le framework SpriteKit pour faciliter la création de jeux 2D avec des sprites, du scrolling, des effets graphiques, des explosions, des nuages de fumées, des bruitages, de la musique, de la détection de collision, un moteur physique pour créer des jeux avec de la gravité (style hangry birds), etc .. Que du bonheur !
Oui, j'ai un peu trollé. Disons que le modèle objet est bon, et les performances très correctes.
Mais j'ai quand même eu deux problèmes:
- un plantage d'OpenGL quand je sortais d'une scène, parce que le rendu continuait alors que le ViewController n'était plus à l'écran. Je ne sais plus comment je l'ai contourné.
- la version actuelle de mon jeu ne fonctionne pas bien du tout sous iOS 9, alors que mon code est correct. Le problème est qu'Apple a merdé sur les textures Atlases. Ce qui ne m'étonne pas, ils merdent sur ce sujet depuis le tout début (ça fonctionnait même pas en Retina, au départ). Mais bon, ça a fonctionné sur iOS 7 et 8, c'eut été une bonne idée de leur part te tester, non ? La solution que j'ai trouvé est de ne pas utiliser d'Atlas, mais de mettre les images dans les resources. Dans mon cas, ça va, je n'ai pas trop de sprites.
À noter que je n'ai pas trouvé la raison moi-même. D'autres en causaient sur le forum d'Apple... et ont évidemment ouvert un radar qui n'a pas été jugé comme suffisamment important.
Hum .. même en mettant les images dans les ressources, il y a des problémes. Je viens de lancer le template de démo de SpriteKit sans RIEN MODIFIER. Un message d'erreur s'affiche au premier chargement d'un sprite :
Réponses
Quel type de jeu (2D, 3D, statique façon réflexion, animé, en OpenGL, en CoreGraphics, en aplats... technos forcément bien différentes selon si tu as besoin de 3D ou pas et de gestion de collisions ou pas ou de moteur physique ou pas...), quel niveau (tu débutes pas en Objective-C, dev iOS et tout ce qui va bien, côté gestion mémoire & tout, j'espère, pour te lancer dans le dev d'un jeu ?)
Sinon y'a des sujets qui parle déjà de pas mal de tutos, de bouquins pour se mettre au dev ObjC, et un beau petit pavé notamment (cité il me semble par Draken ?) sur la prog de jeux pour iOS.
[EDIT] Ah ben tiens, grillé par ledit Draken qui justement cite ce fameux bouquin
Quelques liens:
lien 1
lien 2
lien 3
Après tout dépens de quel framework tu compte utiliser pour faire ton jeu (OpenGL, cocos2d, etc etc)
Cocos2d voir ici
Sparrow voir ici
8--)
Comme le dit Ali, il y a de nombreux types de jeux. On ne réalise pas un petit casse-brique comme un jeu d'action en 3D. Déplacer une balle sur l'écran en 2D c'est facile, en utilisant les fonctions graphiques de base. Animer les mouvements d'un monstre en 3D c'est infiniment plus complexe.
Ceci dit, même la création d'un jeu 2D "simple" est un travail important, impossible a résumer dans un seul tuto. Il en faudrait quelques dizaines pour traiter raisonnablement du sujet.
- Qu'est-ce qu'un sprite ?
- Animation des sprites à 60Hz
- Intégration des graphismes dans le jeu
- Gestion des collisions
- Gestion du son
- Comportements des objets et (pseudo) Intelligence Artificielle
- Gestion des interactions joueurs
- Affichage du score
- Conception d'un gameplay sympathique
- Sauvegarde des scores
- Etc..
C'est vaste, mais intéressant à étudier.
J'ai déjà participé à la création de plusieurs jeu en C et C++ avec gestion de collisions, interactions avec d'autre joueur, interactions avec des ennemis... . Je suis en train d'apprendre en se moment l'Objective-C et la programmation sur IOS. Je voudrais donc apprendre pour débuter à concevoir des petits jeux D2 tout simple du genre du casse brique par exemple et aussi de jeux (toujours D2) avec de la gestion de collision interactions entre perso/ennemis ...
@devulder: merci pour les liens je vais regarder sa de plus près.
@Draken: j'ai vu ton livre à la fnac, il est bien? vos t'il le coup?
- iPhone Game Development : http://itunes.apple.com/fr/app/iphone-game-development/id337191397?mt=8
- iPhone 3D programming : http://itunes.apple.com/fr/app/iphone-3d-programming/id371697737?mt=8
Pour 11 Euros les deux, l'investissement est intéressant. Je les ai récupéré, d'après les sommaires pas mal de choses sont abordées et expliquées. Je n'ai pas encore eu le temps de les lire, mais de ce que j'ai vu, connaitre les bases du dev iOS avant de les aborder est un plus.
J'ai vu que certains nouveaux inscrits viennent sur ce post, assez obsoléte. A l'époque, il fallait bidouiller pour créer des petits jeux. Maintenant Apple a développé le framework SpriteKit pour faciliter la création de jeux 2D avec des sprites, du scrolling, des effets graphiques, des explosions, des nuages de fumées, des bruitages, de la musique, de la détection de collision, un moteur physique pour créer des jeux avec de la gravité (style hangry birds), etc .. Que du bonheur !
Jusqu'à ce que tu l'utilises vraiment...
Il me semblait pourtant que tu trouvais que SpriteKit était bien, à la différence de SceneKit ?
Oui, j'ai un peu trollé. Disons que le modèle objet est bon, et les performances très correctes.
Mais j'ai quand même eu deux problèmes:
- un plantage d'OpenGL quand je sortais d'une scène, parce que le rendu continuait alors que le ViewController n'était plus à l'écran. Je ne sais plus comment je l'ai contourné.
- la version actuelle de mon jeu ne fonctionne pas bien du tout sous iOS 9, alors que mon code est correct. Le problème est qu'Apple a merdé sur les textures Atlases. Ce qui ne m'étonne pas, ils merdent sur ce sujet depuis le tout début (ça fonctionnait même pas en Retina, au départ). Mais bon, ça a fonctionné sur iOS 7 et 8, c'eut été une bonne idée de leur part te tester, non ? La solution que j'ai trouvé est de ne pas utiliser d'Atlas, mais de mettre les images dans les resources. Dans mon cas, ça va, je n'ai pas trop de sprites.
Oki. Effectivement c'est gênant d'avoir un bug sur les textures Atlas. Cela se produit sur toutes les versions d'iOS 9 ?
Note pour les novices lisant ce post : les textures Atlas sont des objets permettant de regrouper plusieurs graphismes dans une seule image.
Jusqu'à maintenant, oui.
À noter que je n'ai pas trouvé la raison moi-même. D'autres en causaient sur le forum d'Apple... et ont évidemment ouvert un radar qui n'a pas été jugé comme suffisamment important.
Hum .. même en mettant les images dans les ressources, il y a des problémes. Je viens de lancer le template de démo de SpriteKit sans RIEN MODIFIER. Un message d'erreur s'affiche au premier chargement d'un sprite :
Cela se produit sur le simulateur des iPhones 5, 5S, 6, 6S, 6 Plus, 6S Plus mais pas avec le simulateur du 4S !!!
Et jamais sur les différentes versions de simulateur iPAD ???. Très curieux.
J'ai googolisé le message d'erreur. Manifestement je ne suis pas le seul à être perplexe avec ce truc.