Salut,

Je viens de vous parler de Boombastic, une réécriture de Wormux que j'ai
en tête. J'ai bien réfléchi, et je pense que ça aurait des chances d'être
viable comme projet :)

!!! Avertissement !!!

Avant toute chose, je tiens à dire que cette réécriture n'engage que moi.
Je ne veux pas bloquer / ralentir le développement de Wormux. Par contre,
si des gens ont des critiques constructives à apporter, qu'ils m'en
fassent part (par la liste de diffusion).

!!! Fin de l'avertissement !!!

Le nom est choisi pour marquer la réécriture, et éviter les problèmes
juridiques avec Team17 ;-) Et puis, j'aime bien la chanson homonyme.

L'idée serait de partir de zéro. Ceci laisse la voie ouverte à plein
d'innovations, et une écriture mieux pensée. Quelques idées en vrac :
- ajout de pièges sur le terrain, comme par exemple un piège à souris
géant :) (je pense au jeu Lemmings)
- ajout de zones spéciales sur le terrain, comme un fontaine qui redonne
de l'énergie aux personnages qui en sont proches (idée reprise de Wacraft
3, jeu excellent au passage)
- séparation radicale de la partie logique et de l'affichage. la partie
logique ne verra que les fonctions draw() et collisionTest(obj). J'ai
carrément pensé à faire plusieurs affichages 2D différents et aussi à un
rendu 3D (c'est le projet X-Foot qui m'a fait pensé à ça).
- tout est un objet, et tous les objets actifs seront dans une liste
globale. Plus besoin de s'embêter à faire plusieurs boucles séparées pour
afficher tous les persos, puis le fond, puis les armes, puis ... Une seule
boucle fait *une* opération sur TOUS les objets.
- utilisation de SDL (héhé). bon, reste à voir si ça couvre tous les
besoins de Boombastic.
- probable changement du langage de programation. le c++ est lent à
compiler, et un peu trop bas niveau à mon goût (je veux dire que ça hérite
du C, et qu'on hérite des pointeurs null, et autres attrocités). Je vais
voir si le python pourrait couvrir tous mes besoins.
- Il faut un langage de script (pas forcément que le jeu soit écrit
qu'avec ce langage). Ceci permettrait de rendre le jeu beaucoup plus
dynamique, car je trouve que Wormux est plutôt chiant au bout d'un moment
(comme les escargots qui finnissent par s'allumer une cloppe au bout d'un
moment). Bon, j'ai du jouer trop longtemps tout seul.
- écriture d'une IA
- pour le moteur physique, je suis emmerdé. mais vu comme j'ai pensé le
projet, il peut être modifié facilement.
- écriture hyper-méga modulaire, pas comme Wormux où tout est mélangé
(passer à Wormux SDL ? impossible ...)

Le truc le plus intéressant est de rendre le jeu plus dynamique. Je pense
par exemple à une statue qui suit du regard le perso qui s'en approche
(super trippant ça).

L'histoire de séparer complètement la logique de l'affichage est une
excellente idée (normal, ça vient de moi, lol). Par contre, si on prévoit
X sorties différentes, il faut que chaque objet sache s'afficher dans de X
manières différentes. On peut imaginer aussi des thèmes, comme un thème
gore pour les grands enfants (+ 18 ans) avec des décors gloques et du sang
(le sang gicle quand un perso est touché => besoin d'un langage de script
pour personnaliser chaque thème).

J'ai pensé à un monde 3D circulaire, j'ai pas de scanner pour vous montrer
mon dessin, mais disons que vous plaquez le jeu Wormux comme texture d'un
cylindre. Vous ajouter de l'épaisseur, et vous y êtes.

Pour les pièges / interactions : alors là, on peut vraiment imaginer
N'IMPORTE QUOI ! J'ai pensé à un réservoir d'eau qui lorsqu'il est percé
se déverse sur les joueurs (et du coup l'eau pousse les joueurs). Imaginez
la même chose avec du métal en fusion (ouille !). Ou alors, que pour les
parties trop fines du terrain, si un "gros" personnages (en poid) passe
dessus, le terrain craque :-D Ou bien, comme dans le jeu Balazar, qu'on
puisse planter des arbres pour se protéger. Et ... que l'arbre grandisse !
Ceci permet de se fabriquer des abris ;-) Ou encore, Bozo le clown qui se
balance quand on le frapppe (cf. Maniac Manson, autre excellent jeu en 2D,
super délirant). Et si on le frappe trop fort, il bascule. Il pourrait
servir à traverser un trou dans le terrain.

Autre idée : dans le thème techno (avec de la musique électronique quoi),
le décor DANSE avec la musique sur le même rythme.

Dans un thème jungle, si un joueur est statique (genre, le campeur), des
racines poussent autour de lui pour finalement le bloquer !

Un mode grotte où ne l'on voit que 10m autour de soit !

Et il faudrait ajouter des animaux / objets / autre qui apparaissent dans
le jeu. Comme par exemple un oiseau qui s'envole quand on s'approche trop
prêt. Ou une chauve-souris vampire qui nous attaque. Ou une soucoupe
volante qui arrive n'importe quand et tue un joueur d'un coup de laser
(bam! dans ta gueule).

---

Niveau code, j'ai isolé plusieurs gros blocs (reste à retrailler ça, mais
c'est un début) :

- User input
- IA engine
- Logic
- World & objects
- Sound
- Visual

---

Beaucoup de bonnes idées, reste à les mettre en application. J'ai discuté
avec un mec à GameOver. Il m'a dit que la conception (UML / bien définir
les choses / ...) c'est bien joli, mais si on vise trop gros, au final on
se décourage. Il m'a dit qu'il faut écrire de petis bouts de code *qui
marchent* et ensuite les coller ensemble. Je pense qu'il a raison.

Si une réécriture me tient à coeur c'est parce que je trouve que Wormux
est un gros truc patché à mort que je ne comprend plus vraiment (alors que
pourtant j'ai écrit un gros morceau !).

Voilà voilà. J'espère que cet email ne va pas faire grincer trop de dents,
et qu'il va créer de nouvelles idées ;-)

@+ Haypo

Répondre à