Comment implémenter un fusil de chasse dans un jeu?

14

Les pistolets et les mitrailleuses sont faciles - vous pouvez simplement faire voler des balles dans une certaine direction, alors j'ai déjà mis cela en œuvre. Un fusil de chasse, d'autre part, endommage tout ce qui ressemble à un cône dans une certaine zone. Comment dois-je mettre cela en œuvre? J'ai quelques suggestions ici, mais je pourrais utiliser quelques conseils:

  • Divisez une balle en plusieurs petites balles, qui font moins de dégâts par elles-mêmes, mais volent dans la même direction (un ennemi plus proche est plus susceptible d'être touché)
  • N'utilisez pas de balles - ayez simplement un effet de particule d'un coup de fusil et calculez combien de dégâts les ennemis subissent en fonction de la position / orientation, etc.
  • Ayez une grosse balle invisible (un cube par exemple) qui endommage les choses, ainsi qu'un effet de particules qui lui donnera l'air d'un coup de fusil.

Merci d'avance!

Oleksiy
la source
Ces options sont toutes valides (bien que la première, pourquoi ne pas simplement commencer par les multiples puces?) Et la décision est basée sur la conception de votre jeu.
congusbongus
Connexe: formule de précision vs distance et «cône de feu» peut être un bon terme de recherche pour cela.
MichaelHouse

Réponses:

21

La plupart des jeux utilisent des fusils de chasse comme une arme qui tire plusieurs projectiles à la fois, mais chacun avec une certaine randomisation de l'angle qu'ils quittent l'acteur. Dans la plupart des fusils à la première personne modernes, presque toutes les armes ont au moins une certaine propagation pour chaque tir qu'elles tirent afin de les rendre moins précises à longue portée, de sorte que la même implémentation peut être utilisée pour les fusils de chasse.

Implémentation simple: lorsque vous voulez un écart de 10 ° et que le joueur regarde dans la direction 0 ° vertical et 50 ° horizontal, les projectiles les laisseraient dans un angle compris entre -5 ° et + 5 ° vertical et entre 45 ° et 55 ° horizontal.

Meilleure mise en œuvre: Écartez les projectiles non pas dans un rectangle mais dans une zone circulaire autour du réticule du joueur.

L'efficacité réduite perçue à longue portée résulte de la propagation des projectiles, ce qui signifie que les cibles éloignées et petites ne seront pas touchées par tous. Lorsque vous souhaitez mettre davantage l'accent sur cela pour faire de votre fusil de chasse une arme à courte portée, vous pouvez également réduire les dégâts de chaque projectile pour chaque cadre de logique de jeu qu'il parcourt.

Dans les tireurs de haut en bas ou à défilement latéral, il est moins courant de se propager sur toutes les armes parce que l'aire de jeu est trop petite pour que cela ait du sens, mais lorsque vous voulez une arme comme un fusil de chasse, c'est une question différente et la même chose la technique peut être utilisée, juste que vous n'avez pas besoin de vous soucier de la 3ème dimension. Alternativement, vous pouvez simplement tirer les projectiles dans des angles fixes comme -6 °, -4 °, -2 °, 0 °, 2 °, 4 °, 6 °. Dans un contexte 2D, cela ne semblera pas aussi artificiel que dans un contexte 3D et le joueur de défi l'aimera, car cela réduit les chances.

Philipp
la source
La meilleure mise en œuvre est tout aussi simple. La première approche nécessite deux angles aléatoires (horizontal et vertical), tout comme le second (hors axe [0, + 5 °] et rotation le long de l'axe [0, 360 °])
MSalters
@MSalters Cela ne répartit pas uniformément les projectiles dans le cercle. Au lieu de cela, il les concentre autour de l'axe. Cela peut être ou non l'effet recherché. Pour obtenir une distribution aléatoire uniforme dans le cercle, consultez cette réponse .
Daniel AA Pelsmaeker
@Virtlink: à droite, bien que la densité de probabilité uniforme à l'intérieur du cercle ne soit pas celle que je choisirais. Une distribution normale a tendance à être la meilleure pour des trucs de physique comme celui-ci, et c'est aussi particulièrement simple à faire: il suffit de répartir les valeurs ϑ avec une distribution normale 1D, et les valeurs φ avec la même distribution normale mises à l'échelle par ϑ. Pas besoin d'aller à des coordonnées doublement polaires.
partir du
Voici une page discutant des spreads de fusil de chasse , vous pourriez jeter un oeil et voir ce qu'ils font.
AJMansfield