Article image

Street Fighter Clone

A fun revisit of the GameMaker engine.

A university assignment where the goal was to study and recreate Street Fighter's mechanics in our own clone of the game.
Ashley Smith
Repository - Street Fighter Clone

GitHub repository for Street Fighter Clone can be found here.

What is this?

This project was made as part of an assignment for Sheffield Hallam University in November, 2019. Since GMS is proprietary software, I’ve taken the liberty of compiling the project into a .exe file that you can find here. The point of this project was to try and mimic StreetFighter as closely as possible and understand not only what mechanics were programmed but also why.

This assignment was set up as a competition; we all went around the room and played everyone’s games (where everyone had chosen a different character to start with) to see which was the most fun and complete. Additionally, we were given the opportunity to guess whose was the best, and if we got it right, we got an extra mark. The person with the most votes also got extra credit.

I was confident with my project, and because I didn’t really feel like anyone could beat it, I didn’t really want to outright say that someone else’s assignment was better than my own (we were allowed to vote for ourselves and a lot of people did) since I wasn’t really very enthusiastic about students’ marks being dictated by the success of others’. I didn’t put anyone’s name down, and I actually managed to win the competition by a large margin. Lesson learned — if you’re confident in your work, don’t be ashamed!

Gameplay of my Street Fighter clone.

How do I play?

Simply download and extract the latest release and run the executable (StreetFighter.exe). You will be presented with this screen:

Opening screen of my Street Fighter clone.

Opening screen of my Street Fighter clone.

I made this game controller-only because we were all using controllers anyway and there were no extra marks for fully implementing KBM. To get around the issue of ‘who plays who’, I made it so that at the start of the round, both players need to press ‘Start’ on their gamepads. The characters are then assigned on a first-come, first-served basis.


Main Controls:

  • Press the start button to gain control of a character each round
  • Walk: L-Stick / DPad left or right
  • Crouch: L-Stick / DPad down
  • Jump: L-Stick / DPad up
  • Wall jump: Midair next to wall, L-Stick diagonally up + away from wall
  • Block: L-Stick / DPad backwards from opponent when they attack


  • Light punch: Square (PS) / X (Xbox)
  • Medium punch: Triangle (PS) / Y (Xbox)
  • Heavy punch: Left shoulder / Left trigger


  • Light kick: X (PS) / A (Xbox)
  • Medium kick: Circle (PS) / B (Xbox)
  • Heavy kick: Right shoulder / Right trigger

Special Moves:

  • Sweep: Crouch + Heavy kick
  • Flip kick: Move towards opponent, close range, medium kick
  • Neck breaker kick: Move towards opponent, close range, heavy kick
  • Stomp kick: Midair with a forwards jump (flip), L-Stick down + medium kick

Taken from the notes file I wrote for the assignment.


Obviously, the artwork used in this game isn’t mine. It’s taken from various spritesheets I’ve found on the internet.

Previous Project


An open-source forum that I was making in order to learn Clojure.
Next Project


My final year project for my masters degree at Sheffield Hallam Uni.