About the Development


The assignment was to create a clone of an existing retro game. To do this, we had 3 weeks. Unfortunately I did have some technical difficulties with my laptop, resulting in multiple days their progress being lost. Because of this, I wasn't able to include as much in the game as I had planned.

 

 

Some of my requirements

  • User must be able to start the game using a start menu
  • User must be able to view the goal of the game and the controls through the menu
  • Game has been made using Unity
  • Game must be playable on the school's arcade machine
  • Game should be local multiplayer so 2 players can play against each other on 1 device
  • Players can attack eachother 
  • Players must be able to receive damage
  • When a player has won, it should be displayed on screen that they've won the game

  

  

Why I chose to create this game specifically

About six months into my software development study, I had the idea of making a melee combat game. At the time, though, I didn’t have the skills or time to build something like that for a two week school project. Fast forward three months, and I felt like I just might be able to do this like I imagined. This project became the perfect opportunity to finally make my melee combat game.

Originally, I wanted to create something inspired by Super Smash BrosHowever, with the theme for this project being "retro", Street Fighter immediately came to mind. After exploring various titles in the series, I decided to create my clone based of Street Fighter II specifically.

 

 

What was new, what did I learn?

In this project, there were lots of things I did for the very first time. Some more difficult and complicated than others.

One major new area was working with Unity's new Input System. I wasn’t sure how to properly reference or connect actions in my scripts. Eventually, I found that using Invoke Unity Events worked best for me. This approach lets me make connections visually through the Inspector, which really helped clarify things.

Another major new area was how I would do the melee combat itself. How I would change the collider with animations and keep the collider optimized. To do this I used Physics2D.OverlapCircle, which let me check for collisions at a specific point and in a specific radius. To accurately position the overlap circle, I used an empty GameObject placed at the player's fist location. Each time the player punches, the circle is summoned at that GameObject's position, allowing precise and efficient collision detection tied to the animation.

Also new was the countdown, this was needed for the rematch screen. On my very first try it displayed as a very very small float number, even if I waited a long time it still didn't get near any of the numbers I was looking for. In the end I used CeilToInt, it takes a float number as input, (which we need for seconds), rounds it up to the nearest whole int (to display just the whole numbers on screen) and returns that int, (so you can actually see it on screen).

 

I also learned a few smaller but still useful things:

  • Using assets for the sliders
  • Having a textbox that pops up at the end of the match and announces the winner
  • Creating a flickering sprite with the sprite renderer and it's assigned color



My final thoughts

Despite the many challenges and technical difficulties I faced during this project, I truly enjoyed working on it. As I mentioned earlier, I had originally planned to include more features. Having a jump attack, being able to crouch and having a battle timer just like the original, that you could toggle in the options menu. 

All things considered, I’m really happy with how this project turned out. I’d been looking forward to creating something like this for a long time after all.

 

 

Assets used:

Click to open the page from the asset pack in a new tab!

Street Fighter II Assets

Font

  

 

Made with Unity and C#

Files

StreetFighter2_Web.zip Play in browser
2 days ago
StreetFighter2_Download.zip 29 MB
2 days ago

Get Street Fighter II Multiplayer

Leave a comment

Log in with itch.io to leave a comment.