En août dernier (2006) j'ai commencé à traîner régulièrement sur Mediabox et il y a eu un thread de Durss pour parler d'un jeu qu'il avait fait et qu'il avait judicieusement intitulé : Pan paaan tiouuu pan tiou tiiioouu!!

ça avait donné lieu par la suite a un second thread super intéressant sur la sécurité des jeux flash

un peu après je me suis mis en tête de faire un jeu de vaisseau et c'est là que j'ai commencé XO.
j'ai voulu tout faire tout seul.
En général il faut une équipe structurée motivée et payée pour faire un jeu.
Seul, je me suis dispersé. En plus c'était l'époque où je ne codais pas encore en classes du coup le résultat est inexploitable.

Après deux mois et demi de temps libre passé dessus, j'ai fini par abandonner.
La vie est injuste.

Donc ça donne ça et ça n'ira pas plus loin, c'est dommage car il y a des bons trucs dedans.

Pour voir ce que ça donne clique ici

 

C'est vraiment un condensé de toutes les erreurs qu'on fait quand on ne sait pas faire :

  • pas de vue d'ensemble du projet donc :
    • pas scénarisé en se disant qu'on le fera plus tard
    • ni fin, ni deadline
    • organisation gauloise : code puis graphisme, re-code, re-graphisme etc.
    • ajouter des modules a la dernière minute qui génèrent des conflits avec le code existant
    • implémenter des fonctions en se disant qu'on les fera plus tard cf.dans la démo ci dessus :
      • gestion des options de jeu
      • gestion des sauvegardes
      • implémentation des modules hangar / shop
  • coder tout en procédural en se disant que ça ira plus vite que d'apprendre a faire des classes
    • structure de projet inexistante
    • code redondant
    • code peu robuste et peu lisible variables et fonctions non typées, aux noms exotiques
    • "pansements" pour parer aux défauts d'une fonction quand celle ci n'est pas envisagée dans un ensemble
    • gestion catastrophique des ressources
  • vouloir gérer le graphisme + le code en n'étant bon ni dans l'un ni dans l'autre et toujours sans avoir de vision d'ensemble
    • graphismes disparates
    • production d'éléments inutiles cf. planche des tirs
    • éléments manquants cf. interface du magasin
    • aspect 'ballot' du tout.
    • perte d'énergie considérable, dispersion.
  • aucun son ! je suis bien emmerdé quand il s'agit d'en mettre. un jeu sans son perd 50% de son intérêt (regardez un film sans son si vous n'êtes pas convaincu).

En même temps ça apprend beaucoup de choses de se planter sans apporter de réponses, ça met en garde contre les pièges.

Par exemple p rendre quelques heures (jours) pour planifier un projet est une étape indispensable, peut être la plus importante du projet. Si on ne se pose pas les questions en amont on se les reprend tellement fort en boomerang que ca peut tuer un projet, la preuve.

 

GRAPHISME

HEROS

Voila XO, admirez la puissance de la modélisation (hum...)


montrer / cacher l'animation de XO qui marche


DECOR

un décor, le hangar hyper friendly (ça va mieux niveau modélisation) decor
montrer / cacher l'animation du décor



INTERFACE

je voulais même faire une partie beat them up ... ha ha ! grand fou!
perso


puis aussi pouvoir positionner des satellites ajouter des armes secondaires dans le shop
shop

J'avais aussi fait une batterie de tirs disponibles avec leurs différentes puissances ... inutiles vu qu'ils n'étaient pas implémentés

 

 

VAISSEAUX
(les modèles ne sont pas de moi ils viennent de 3DCAFE)

colossus
résistant, grosse puissance de feu mais très lent. ce serait celui qu'on utilise dans la partie shoot them up à scrolling vertical

top front
side voir / cacher l'animation

minerva
équilibre puissance / vitesse / résistance

top front
side voir / cacher l'animation

viper
pas de bol tu commences avec ca ... rapide mais c'est tout.

top front
side voir / cacher l'animation

 

GAMEPLAY

Historiquement, j'ai commmencé à coder un shoot them up à scrolling vertical (comme DUrss). Ca commençait à aller bien mais je crois que j'ai trop poussé ça et que du coup après c'était dur de l'intégrer ou de le modifier.

donner le focus puis les flèches pour bouger et click - drag - drop et reclick pour bouger les armes.
regarder / cacher ce que ca donne

 

ensuite je me suis dit que je ne savais pas faire des comportements de vaisseaux ; là les ennemis descendent tout droit et c'est chiant

donc j'ai cherché des typologies de mouvements pour ces saloperies d'alien de l'espace. Dans la démo, ils sont générés un peu au hasard minimum toutes les 10 secondes

certains suivent

  • une ligne
  • le vaisseau puis explosent après x millisecondes
  • une oscillation linéaire
  • un chemin précalculé avec des waypoints
  • certains sont générés en cercle autour d'un point

tous sont configurés avec des fréquences de tirs points de dommage différents ils s'entretuent aussi (ce qui est bien)

regarder / cacher ce que ca donne


Pour la première phase, je voulais faire un jeu d'esquive il s'agit d'éviter les gros trucs qui sont en fait des astéroïdes et tout contact est mortel (théoriquement, là, ça marche pas)
regarder / cacher ce que ca donne

Dans le sécnario inexistant, pendant sa reconnaissance Xo se fait repérer alors qu'il n'a pas d'armes et alors il se barre très très vite.

deuxième étape plus sport encore nouvelle session d'esquive en scrolling vertical avec une accélération de ouf et un bouclier / vie qui descend.
On peut imaginer des tirs ennemis arrivant de derrière pour rajouter de la pression.
regarder / cacher ce que ca donne

enfin la version que j'ai ajoutée à XO tel qu'il est, est un compromis raté entre course d'esquive et chasse à l'homme. Rendre ça jouable prendrait beaucoup de temps et d'énergie.

Je ne regrette pas mes heures passées dessus, comme pour le reste l'important c'est d'avoir appris de mes erreurs et de ne plus les refaire :)