Jump to content
  • Advertisement
Sign in to follow this  
AnthonyVelazquez

2D Arcade Fighter Game

This topic is 1502 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello, can anyone give me any tips/hints on working out collision when making a Arcade Fighter? If you want specifics its going to be made using SFML and C++. Also, any programs that you would recommend to make the characters in? Any help would be appreciated.

Share this post


Link to post
Share on other sites
Advertisement

Hello,

 

I assume that you want to develop an arcade fighter as "Street Fighter". I also assume that you will use sprite-sheet for your characters. Given that for pixel perfect collision you should calculate for each stance/animation in the sprite-sheet which pixel is empty and which is part of the fighter. Then in every Update method in which you detect for collision you do:

1. take the current animation of both fighters and their respective position

2. check if rectangles (around the characters) collide

3. if they do then you do check for each pixel of the colliding part of both rectangles and if there are pixels that are from both characters then you have a collision

 

The algorithm for step 3 is pretty simple, I think you could easily find it online, I could give you the code too. 

 

Of course those calculated arrays with empty/non-empty pixels should be already loaded and re-used every time in the collision detection. Calculating/Loading them on the fly will be a killer :)

Share this post


Link to post
Share on other sites

To answer the art question posed, the program you make the characters in doesn't matter as much as the tutorials you follow. It's generally more about the technique than the technology. With that said, start with:

 

1. MS Paint.

2. GIMP (free) or Photoshop (costs money)

3. etc.

Share this post


Link to post
Share on other sites

Hello aanthonyz1
 

I've also been thinking about how to handle collision detection in fighting games, so I did some research about it and I found some pretty cool results. Some games use the pixel perfect approach as DpakoH mentioned, But there are others who use a collection of "Hit Boxes" for each frame of animation. The fighting game Skullgirls uses the Hitbox method. Here is a link so you can get an idea of how it works.

 

http://wiki.shoryuken.com/Skullgirls/Hit_Box_Ref

 

While hitbox detection is most often faster than pixel perfect collision detection, you have to manually create the hitboxes for every single frame ,of every single animation and for every single character in your game, while the pixel perfect method only needs the image data. But in my opinion I think hitbox detection is the way to go. It makes it very easy to specify which parts of your character are Hurt areas (Areas that can be hit by attacks, such as the torso, head ,etc.), and which areas are Attack areas (Areas used in attacking, such as, fists, legs, weapons, etc.). Though the downside is that it will most likely be tedious to set up, unless you make some kind of external program to make editing the hitboxes for your characters easier. But then again the same thing could be done with pixel perfect collision detection if you use a separate set of images along with the original image data that specifies the hurt and attack areas. For example you could color the hurt areas blue and the attack areas red. Then when you do the collision detection, you just get the color of the pixels that are colliding and determine if its a successful hit or not. But this would make your game take up more space due to the extra image data.

Edited by xinfinite33

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!