Blog freding - Développeur Iphone

Par freding Blog créé le 25/09/13 Mis à jour le 11/10/13 à 12h58

Ce blog a pour but de présenter le développement d'un jeu IOS.

Le jeu qui je développe est un tower defense qui se présente sous la forme d'un jeu de plateforme. Le but étant d'empêcher les héros d'aller à la fin du niveau en disposant divers ennemis/éléments qui ont différentes capacités.

Ajouter aux favoris
Signaler

De retour de vacances, on va pouvoir enfin entrer dans le développement du jeu.

 

Cela sera peut-être un peu technique. Merci de me dire si vous êtes interessé, si certains points méritent des éclaircissement.

 

Je vais donc aborder aujourd'hui le développement des trajectoires des différents éléments du jeu. En effet, les héros ont des trajectoires, les ennemis ont des trajectoires, les différents projectiles qu'ils peuvent lancer ont aussi des trajectoires. 

Le but d'un développement propre étant(parmis d'autres facteurs) de ne pas répéter de code et de pouvoir le réutiliser facilement. Pour aider dans cette démarche nous avons en tant que développeur à notre disposition des centaines de "design patterns" qui sont des réponses standard aux problèmes les plus courant. Cela à pour avantage de proposer une solution éprouvée et de pouvoir la nommer facilement. Cela permet de pouvoir quand on revient sur son code identifier le concept tout de suite et de pouvoir travail plus efficacement en équipe car la façon de répondre au problème sera connu sans entrer dans les détails de l'implémentation.

 

Pour notre problème de trajectoire nous avons donc un design pattern tout trouvé "Strategy" qui est issu du livre "Design Patterns - Elements of Reusable Object-Oriented Software" écrit par le "Gang of Four". Ce Pattern étant l'un des plus simple, il est donc idéal pour notre présentation.

 

Ce pattern va nous permettre de découpler le comportement, de l'élément auquel il va se rattacher de manière élégante. Il sera de plus possible de changer à l'exécution le comportement(donc la trajectoire dans notre cas)

 

La partie qui va suivre demande des connaissances en programmation orientée objet pour les détails mais je pense que la compréhension du concept peut se faire sans, pour qui veut appréhender le concept général.

 

Pour faire simple nous allons avoir 2 types pour commencer:

- Les classes qui représentent les éléments(héros, ennemis, projectiles...)

- Les classes qui implémentent les comportements(différentes trajectoires)

 

On peut voir sur le diagramme de classe suivant la structure d'un design pattern strategy:

 

 

Dans notre cas :

- "ClasseUtilisantStartegie" sera l'une des classes "Elements"

- "Strategie" sera l'interface requise pour les trajectoires.

- "ConcreteStrategieA et B" seront les différentes classes implementant le comportement trajectoire.

 

Le Classe "ClasseUtilisantStartegie" attendra donc qu'on lui donne l'une des classe concrete ayant l'interface "Trajectoire" pour definir la façon dont elle va se déplacer.

 

Cela donnera à l'execution en pseudo-code quelque chose comme:

 

oHero = new Hero;

oAllerToutDroit = new AllerToutDroit;

oHero.setTrajectoire(oAllerToutDroit);

oHero.updatePosition();

 

Et ensuite le Hero ira tout droit, la méthode "updatePosition" métant à jour dans le temps la position de l'élément.

 

Je peux entrer dans les détails si des personnes sont interressées par ce concept.

 

Je parlerai dans l'article suivant de l'intelligence artificiel des ennemis de mon jeu pour comprendre comment il réagira à son environnement sans donner l'impression de faire toujours la même chose.

Ajouter à mes favoris Commenter (0)

Signaler

Bonjour à tous,

 

Pour mon premier article je vais faire la présentation du jeu que je développe actuellement ainsi que les outils que j'utilise pour cela.

 

Le jeu en question est donc un tower defense qui se présente sous la forme d'un jeu de plateforme. Le but étant d'empêcher le héro d'aller à la fin du niveau en disposant divers ennemis qui ont différentes capacités. 

 

Pour une présentation plus visuelle, une vidéo est disponible qui présente le jeu sous émulateur iPhone. Il présente donc un nombre de FPS très restreint. Sur l'iphone lui même il tourne bien sur en 60 FPS:

 

http://www.youtube.com/watch?v=e4yx78VwhAA

 

Le but de ce blog est de présenter la façon dont j'ai organisé le début du développement de ce jeu mais aussi de trouver un artiste(graphiste/illustrateur) qui pourra donner vie à ce jeu qui pour l'instant n'a des sprites qu'à l'usage de test. Le but étant bien évidement de proposer l'application sur l'Appstore.

 

Ce blog sera orienté sur le développement.(design patterns, intelligence artificielle...)

 

Toute idée sur le concept/ le développement/le gamedesign... Etant bien sur la bien venu.

 

Je vais donc commencer la présentation du développement par présenter les outils que j'utilise pour cela:

 

- un macbook 

- Xcode ( Environnement de développement)

- Cocos2d (Framework de jeu 2d)

- Git (Pour gérer les versions du code et les branches pour tester de nouvelles fonctionnalités...)

- Jenkins (Pour gérer la vie du projet: tests, redondance sur le code, qualité...)

- "Cocoa Touch Unit Testing Bundle" pour les tests unitaires.

 

- Dia ( Pour modéliser le projet en Uml)

- Gimp et Inkscape ( Pour réaliser les éléments graphiques)

- une bonne dose de café aussi;)

 

Je présenterai dans un second article la façon dont est gérée le déplacement des "ennemis", j'utilise pour cela le design pattern "Strategy" que je présenterai aussi.

 

 

 

Ajouter à mes favoris Commenter (0)

Archives