[WIP Jeu video] Fonz, dessine moi un jeu vidéo !

5/10/2012 09:51:00 AM Esteren 1 Comments


Nous vous proposons le journal de bord de l'un des programmeurs du projet jeu vidéo dans les Ombres d'Esteren : Fonz. Même les néophytes pourront s'y retrouver grâce aux astérisques * qui renvoient à un petit lexique situé à la fin de cet article.


Bienvenue dans le monde passionnant - et parfois assez abstrait il faut le reconnaître - de la programmation de jeu vidéo...


Comment tout ça a commencé ?

D'abord par un jeu de rôle : Les Ombres d'Esteren. Coup de cœur de mon côté : univers ultra réussi visuellement, des inspirations celtiques et steampunk, des règles simples et une qualité de forme et de fond au top.

Je m'inscris sur le forum des MJ et là fin 2011, un message passe : ils recherchent des développeurs pour le jeu. Je suis informaticien de formation et même si je n'ai jamais travaillé sur des jeux à proprement parler, j'envoie ma candidature. Je précise qu'avec mes contraintes actuelles, il y a peu de chance que je puisse m'engager sur du long terme à plus d'une demi journée par semaine.
Et là … chose incroyable, je suis retenu avec Sylvain !!!

L'aventure commence et la première réunion a lieu le 11 Janvier 2012, après annulation de la première date pour cause de crise d'appendicite de mon côté :-p

Comment s'y prendre pour développer un jeu ?

Il faut savoir que Sylvain et moi ne sommes arrivés sur le projet qu'en « fin de course », le concept du jeu, les scénario, les musiques, les animations, images et décors n'attendaient pour la plupart que la main du développeur pour prendre vie !



Du coup qu'est ce qu'il reste à faire ?

Tout ce que les gens ne verront jamais ;-)

Le rôle de l'équipe de développement est énorme. En fait imaginez : vous voulez une maison donc vous décidez plus ou moins des plans (étages, nombres de pièces, fenêtres, piscine), de où sera le terrain de construction, de la décoration à l'intérieur etc … Bref sur le papier la maison est prête. Il faut maintenant qu'un architecte en trace les plans en prenant en compte les contraintes des matériaux (exemple : résistance, isolation), les contraintes de l'environnement (construire sur de la roche ou en plein marécage), le budget du client etc … Une fois les plans fait, il faudra également construire la maison !
L'équipe de développement a donc sur ce projet (ce n'est pas toujours le cas) le double rôle d’architecte et de constructeur immobilier. Nous allons donner vie à tout le matériel fourni (et certainement réclamer du rab!).


Les premiers choix

 

1. choix de la plate-forme cible.

Bon là encore le terrain avait été défriché donc ce sera : PC en premier (oui parce que bon hein!), les tablettes Android et Apple (iOS) en deuxième (le marché français est plus orienté Apple mais début 2012, il faut garder l'option Android bien en vue) puis les smartphones.

2. choix de la technologie

Plusieurs critères sur ce point (pas toujours des critères absolus d'ailleurs) :
code fonctionnant sur plusieurs plate-forme comme Android / Apple / Microsoft … (réponse HTML5* ?)
qu'est ce qu'on sait faire ? (on travaille sur notre temps libre, pas sur qu'on est le temps de devenir des experts dans une nouvelle technologie)
qu'est ce qu'on a envie de faire ? (oui nous autres développeurs on a besoin que la technologie sur laquelle on travaille nous plaise)

Choix final (en tout cas pour le moment) : PlayN.

C'est un framework java* développé par des gars de chez Google pour faire des jeux multi-plate-formes. Les fonctionnalités déjà présentes nous permettent de couvrir le scope de nos besoins.

On code en java et le framework - via des commandes Maven* standard – génèrent plusieurs versions du jeu (en théorie elles sont ou seront toutes fonctionnelles):
du binaire java (et oui une bonne vieille application de type « desktop » - on la télécharge, on l'installe et on la lance en local),
du HTML5* (là on peut se connecter sur l'application avec son navigateur web, qui a dit GWT* ?),
du natif android (on télécharge et on installe l'application depuis Google Play).

Oui je sais … « et iOS ? » C'est prévu, en cours de développement pour le moment. En même temps d'ici qu'on est fini le projet...

Tout est prévu pour l'IDE* Eclipse, ce sera donc Eclipse en IDE !


3. Organisation du travail

Et oui on est une équipe !

Documentation : Google Document est notre ami.

Gestionnaire de source* : github version source privé, privé veut dire que seuls les membres de l'équipe y ont accès (non mais vous pensiez pas qu'on allait vous filer les solutions comme ça quand même?).

Méthodo : on va s'essayer à scrumdo*. Pour l'instant on a juste travaillé sur des Proof of concept ou POC (pardon ! démonstration de faisabilité) donc on est pas encore très en place.

Après on a aussi des comptes FTP pour les fichiers un peu lourd ou autre.

Prochain épisode : le découpage en module !


 Fonz



------------------------------------------------------

Petit lexique...

 

HTML, Hypertext Markup Language, est le format de données conçu pour représenter les pages web donc si on génère du HTML, n'importe quel navigateur pourra l'ouvrir (en théorie, certains navigateurs ont parfois des spécificités). Le langage en est actuellement à sa version 5 d'où HTML5 (surtout parce que cette dernière version améliore très nettement la gestion d'animations et des médias).

Java est langage de programmation orienté objet

Framework est un ensemble de classes , objets et/ou éventuellement outils prêts à l'emploi

Maven permet principalement de compiler le code et de gérer les dépendances. La compilation est ce qui permet à partir d'un code humainement lisible de générer un code interprétable par les machines. On est dépendant de PlayN par exemple (et PlayN est lui même dépendant d'autres frameworks).

GWT, Google Web ToolKit, est un framework java qui permet de coder en java et de générer du HTML et du javascript*.

Javascript est un langage de programmation de scripts principalement utilisé dans les pages web interactives mais aussi côté serveur.

IDE, Integrated Development Environment, est grosso modo un logiciel qui permet de développer

FTP, File Transfer Protocol, est un protocole de communication dédié à l’échange de fichiers informatique sur un réseau TCP/IP. Retenez que grâce à ce protocole on peut partager des fichiers depuis un server central.

Gestionnaire de sources : quand on travaille à plusieurs il est important de ne pas effacer les modifications des uns et des autres, on utilise donc un logiciel qui garde en mémoire toutes les versions d'un même fichier et de la liste des modifications qu'il a subit (qui, quand et quoi).

Scrumdo : un site web qui permet de gérer un projet en suivant la méthode Scrum. Grosso modo on découpe le travail en tache (ou story), on affecte des gens dessus, on vise une date (même à la très grosse louche) et on change son status (à faire, en cours, réalisé, validé). Ça permet de savoir où on en est et qui fait quoi !

1 commentaire:

  1. Voilà qui semble bien ardu!
    Mes encouragements vous accompagnes dans ce projet qui je penses doit être passionnant à vivre, de votre côté :)

    RépondreSupprimer