Donc, il y a ce projet appelé BulletML qui est un langage de balisage pour créer des motifs de particules / puces complexes. Vous aurez presque certainement besoin de porter le code dans votre propre langue, mais cela peut faire des choses vraiment incroyables.
Par exemple, ce boss a été fait dans une extension (fortement modifiée) de BulletML pour Unity3D (l'auteur de ce modèle a téléchargé cette vidéo et Misery est fou, ainsi que la bonne 1 ). C'est la variation la plus difficile de cet ennemi et cela montre ce que BulletML est capable de faire assez bien (et consultez également certains des autres patrons de Misery, comme Wallmaster ).
Ou je peux montrer cet exemple, qui est un modèle que j'ai écrit en travaillant sur une expansion pour The Last Federation , en utilisant une ancienne version du système qui est moins adaptée aux mods et utilise uniquement des variables AZ à un seul caractère:
Les balles vertes qui font ces anneaux sont générées à partir d'une balle parent qui tourne à grande vitesse, mais elles-mêmes n'ont aucun mouvement. Ils infligent des dégâts massifs, gardant le joueur à une plus longue portée, les limitant à des armes à dégâts plus faibles et permettant aux défenseurs mobiles de harceler le joueur (le joueur a gagné si la structure immobile au milieu était détruite).
Voici une partie de la syntaxe XML qui crée ces bulles:
<bullet_pattern name="Barrier">
$WallShotAngle B=.3 A=90
$WallShotAngle B=.3 A=-90
$WallShotAngle B=.3 A=0
$WallShotAngle B=.375 A=180
</bullet_pattern>
<var name="WallShotAngle">
<bullet angle="[A]" speed="4000" interval_mult=".01" dumbfire="1" shot_type="GravityWavePurple">
<wait time="[B]" />
<change angle="0" speed="1000" time=".0001" />
<spawn>
<bullet_pattern>
<bullet angle="[A]" speed="0" shot_type="CurveBarGreen" damage_mult="8">
<wait time="12" />
<die />
</bullet>
</bullet_pattern>
</spawn>
<die />
</bullet>
</var>
Vous pouvez voir quelques-uns des plans violets de "l'onde de gravité" dans la capture d'écran, qui se déplacent presque instantanément de la source (qui tourne) jusqu'au bord de la bulle, après quoi il déclenche le plan vert "barre incurvée", qui reste là pendant 12 secondes avant disparaître. Les plans bleus et jaunes que j'ai omis, car ils sont beaucoup plus compliqués.
L'un des autres motifs (un obus d'artillerie ) de l'expansion a été écrit par Misery, bien que j'y ai apporté quelques modifications. Au départ, c'est un tir pénétrant à faible dégâts qui vole à longue portée et explose ensuite en un énorme feu d'artifice, infligeant des tonnes de dégâts. Sa portée maximale était beaucoup plus élevée que ce que le joueur pouvait atteindre, forçant essentiellement le joueur à s'engager à courte portée, ce qui était avantageux pour les autres types d'unités PNJ en raison de l'effet de fusil de chasse (plus de balles regroupées dans une petite zone).
BulletML est facile à utiliser en général et peut faire des choses incroyables. Les balles peuvent changer de direction, changer de vitesse, engendrer d'autres modèles, mourir tôt, répéter la collecte de commandes dans une boucle, utiliser des retards, changer l'image de sprite de balle, suivre leur parent (ou non) ... Et tout ce que cela ne prend pas en charge, vous pourriez écrire dedans.
Je le recommanderais certainement si vous faites un jeu de tir sérieux. Vous auriez encore besoin de calculer les coordonnées pour obtenir les formes souhaitées, comme le dit Charanor dans sa réponse, mais un moteur de puces comme BulletML vous donnera tellement plus de flexibilité que vous passerez plus de temps à concevoir de nouveaux modèles qu'à trouver comment les coder.
- Pour expliquer à quel point Misery est bon, ces vidéos sont contre les boss du sol avec l' équipement de départ : pas de modules, pas de consommables et le jeu de tir de pois de base. Et xe ne prend qu'un coup malgré la nature allongée du combat. Ok, 9 coups contre Centrifuge (qui n'apparaîtra qu'au troisième étage après que le joueur aura certainement des améliorations entraînant au moins deux fois plus de dégâts comparativement).