Posted July 05, 2025 by Redreeh
#arcade #retro #devlog #fighter
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.
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 Bros. However, 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.
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).
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.
Click to open the page from the asset pack in a new tab!
- Font
Made with Unity and C#