This all started two years ago, a friend of mine Afoba - Roblox aproached me with the idea of making a roblox game. We had been playing roblox since we where kids, and where always interested in game development, so we decided to have a go at it. He was learning programing, while i had prior experience 3D modeling and animating Intro Ana (best anim ) - YouTube.
(Note: Game: Weapon Clash )
First, we needed to decide what game we wanted to make, it was an easy decision. A Fighting Game. Most of you probably recognize “Street Fighter” or “Mortal Kombat”, something of the sort, tho we play more obscure games like Blazblue and Under Night.
We wanted to try and replicate the experience of playing these games on roblox, since we looked around and there was almost no competition. Most “Fighting Games” on roblox resemble “3d arena fighters”, more than traditional fighting games. However, since our target audience was roblox, we needed to make some design decisions.
Early Design and Concepts
We thought of making a game in 3D, but with some aspects of traditional fighting games we liked, so we turned to inspiration to Soul Calibur, where players can move in the whole 3d space, and have a vertical and horizontal attack (and others but we simplified it to just these 2). Where as the vertical attacks would be stronger or farther reaching, but the horizontal attacks had more ease catching people moving or doing evasive maneuvers.
As for actualy attacking on itself, we initialy wanted to do a move sistem like Tekken, where if you press a button and then press another in sequence, different moves will come out (example- pressing 1 2 2 will give you different moves than 1 2 1), and wanted to couple it with a blocking sistem. Usualy in fighting games, there are 2 types of blocking, blocking low, or blocking high:
If you “block high”, you are hit by attacks that hit your feet
If you block low, you are hit by attacks that hit your head (kinda simplifying it but thats the basics).
Since our movement was 3d but with no jumping on the plane, we wanted to, instead of high and low, to have left and right blocking.
Ok now that the basics where set, we started working on it. Instead of characers like traditional fgs had, i wanted to keep the player’s avatars intact, so a “character” is represented by what weapon you where holding. The first weapon had to be something to set the bases of the sistem mechanics and how other weapons would work. We decided on a rapier
Its moveset would consist of, a long and fast reaching vertical attack, a slow but arching horizontal attack. And now for one of the things that makes fighting games so unique, Special Moves.
In traditional fighting games, special moves are attacks you do by pressing a combination of buttons, or doing a “motion” followed by a button.
To do the “Hadouken” you need to press: Down > Down+Forward > Forward > Button
in this order. As shown in the image.
We, instead, decided to opt for a trend newer fighting games are doing, wich is to have special moves acessible by just pressing 1 button, since this helps Acessibility, and our target audience is roblox users, so that was the right call.
First prototype
Here is the first prototype we have recorded of the game, by this point we had already made 1 big change. Instead of there beeing left/right blocking and different attack chains like tekken, we scraped that idea, instead we looked at another fighting game for inspiration: Granblue Versus.
In this game, if you hit an opponent and mash the button, you get what is called an “Auto Combo”, wich is where the game does a combo automaticaly if you just press the button. What you see in this video is that we have 2 different auto combos, one for the vertical attack, and one for the horizontal, this way we could control how much damage the player would get from hitting the opponent with specific attacks.
Here you can also see a mechanic that caused controversy with the beggining of our game: HITSTUN, wich is the bane of every roblox user. In most roblox fighting style games, even while you are beeing hit, you can use attacks and hit the opponent back. But this doesent happen in the style of game we where going for, so thats what we did. When you are beeing hit, you cannot attack back, and have to wait for the opponent to finish theyr combo. Alot of players that tried out our game did not like this mechanic, because its not what they are used to on roblox, but its key on the design of our game and how it functions.
Onwards to the 2nd prototype
Ok so for this section i have to explain more things about fighting games so bear with me (bare with me? idk).
In the first video, you might have seen the opponent beeing “knocked down” after an attack. Thats what we call “knockdowns”, and its usualy what you will see at the end of any combo in a fighting game.
However there is a problem: if you knock the opponent down, and then hit them as they get up, they will just be stuck in loop forever and will never be able to escape. So how do designers fix this:
- Blocking, we have already described what blocking is, so yea, you can block as you are getting up
- “Reversals” - in fighting games we usualy call this to moves that Have invencibility, aka, you are invulnerable or invincible, during the duration of the move
- Rolling - a mechanic where you do some sort of dodge roll or evasive maneuver. We planned to put this in the game, it would evade vertical attacks, but lose to horisontal ones.
- Parry
Official Evo Moment #37, Daigo vs Justin Evo 2004 in HD - YouTube
A parry is a defencive mechanic where instead of blocking, you kinda press something within a small window of time, but are able to counterattack sooner. We knew we wanted to make this mechanic one of the core things about our game.
Here you see we have programed the “Special moves” in, we made a lunging move that covers alot of distance, and a “Reversal move” wich is the spinning one.
In this video there is the final special we made, wich is a “combo extender”.
We said that we made a sistem that if you mashed the button you would get a combo, that is still true, but we wanted to reward players that take time and learn how the game works, so we made these specials. What they do is litteraly just let you continue the current combo, so a player that knows how to use them will do much more damage than a player that just mashes.
“Ok but arent players able to combo the opponent forever” you may ask, and yes, in the version of this video, because we havent implemented a proper Infinite prevention sistem, nor drawback for just spamming special moves.
You might see the blue bar in the UI of these examples,
This is a “meter”, wich is a mechanic common in fighting games
Usualy what they do, is when they are full, they let you perform special super attacks you arent able normaly, and initialy, we wanted to do this too, for them to let you perform enhanced versions of your special moves.
But what we ended up doing was different
Remember when i said we needed a way to prevent infinite combos? Well, this was it. What if instead of the meter building up, you started at full, and each time you did a special the meter depleted, if you ran out of meter you couldnt do more specials, so this prevented both infinite combos, because you would run out, and it prevented players for spamming specials, and to consider theyr meter.
So, we implemented that, we also implemented the mentioned before Parry.
One thing that was kinda controversial among us, and very different from other fighting games, is that there was no blocking, you know, the thing at the start. That is because while we could program blocking, we couldnt program a Buffer Sistem, wich is basicaly a sistem that makes it so if you do an action while performing another action, that action will come out (aka, if you are blocking and then press attack, the game will attack AS SOON AS POSSIBLE without you having to time it manualy), alot of games do this and it is key to good game feel, but since we coulndt program it, our game doesent have blocking, and we designed the rest of the game sistems around not having blocking.
And so with this we have the Actualy first playable alpha
Well after this, it was basicaly just perfecting and tyding up what we had, cus we had designed the basics of a functional fighting game.
You might notice that you can fall off of the stage, in this video, that is because, besides losing all your HP, we wanted players to be able to die of a ring out, falling out of the arena, so we programmed a new type of “knockdown”, we called this one “sliding knockdown” that makes you slide backwards and you are able to fall off, so you have to consider where you are on the map.
Adressing other stuff
OK so this was something people talked alot initialy about the game, and its how animations dont go smoothly to one another. I am the animator for the game so i will explain why this was a deliberate decision.
In fighting games there is a mechanic called move canceling, where if you press a button and then another, you will cancel the animation you are doing, to do the next move:
I wanted to emulate that style. At this point i still was a new animator on roblox, but i was trying, the age defnetly shows on the animations of the Rapier, but yea this is why.
Ah and by this point we programmed kinda like “attack chains”
you see, we assigned each attack of the “autocombo” a name and a value
imagine you just press vertical (V for short)
you will do
V1 then V2 then V3
wich are the 3 attacks that happen when you mash the button,
same for horizontal (but in the case of the rapier its just 2 attacks) (H for short)
H1 then H2
we made it so that you can chain between the different attacks, as long as the number is correct, so
V1 H2 is possible, or, H1 V2 V3.
The specials beeing named, Q, E and R (corresponding to theyr keyboard bindings). So the notation of a rapier combo would be
V1 V2 R H1 E (for example). We will be using this notation style for the rest of this post.
A bit more testing, playtesting, and changes
By this point you probably noticed that during game development, your ideas change overtime from what you initialy imagine it, yea.
We released an open alpha and with it came some changes, the game was no longer 3D,ok kinda. The camera prespective had just been changed for you to view it from the side. We felt that this helped with alot of “jank” that was happening during matches, so we also made movement in the W and S keys (adjacent to the other player), be slower, so that you would mostly just move back and forward, but you could move horizontaly to reposition, and still roll on that axis.
Adding new weapons, and maps
Now that the gameplay was done, onto adding content!
Remember when we said that “if you ran out of meter you wouldnt be able to do specials”, so uhhh, we wanted you to instead, when you ran out of meter, you lost your weapon and had to fight with your fists, but when i was designing and animating the fists moveset, it was aton of fun to play as, and not really much of a hinderance, so i pushed for the fists to be its own separate weapon, and instead when you lost all your meter you just died.
FIRST MAP!
Bugs are fun.
Ok so what was the first’s moveset?
Your V and H buttons are very short ranged, but do alot of damage, in contrast with the rapier that ended up beeing one of the weapons with most eh damage.
Its specials include a lunge, just like the rapier, but you could combo off of it, and a combo extender of course.
But we decided that since fists didnt have a weapon, it shouldnt be able to parry. So what, we cant have a weapon miss such a core mechanic. Thats where the other special move comes in. We called it the “ultra instinct” because we used the ultra instinct sound effect on it. Its basicaly a special parry, that instead of putting the opponent in stun and letting you combo (like normal), it makes you switch sides with the opponent and it sends them flying, beeing great for when you are near the edge.
And after that THE HAMMER
have you noticed i love sharing bugs
The hammer was the heavy hitter of the house, it coulndt combo or extend combos, but its damage on a single hit was ABSURD, coupled with all of its attacks doing a sliding knockdown, it was a powerhouse in both damage and knocking opponents offstage, the drawback beeing it was very slow.
Its specials where the standaed lunging attack, but the other 2, oh boy.
A move (E) where it almost like flies across the stage and if it hits you it does like 800 damage (health was around 1000 for weapons), (this move would be problematic later).
AND Install (haha this move would be problematic later), ok what is install? By this point we wanted weapons to haave some sort of micromanaging aspect in them to make them more interesting, so by pressing R as hammer, your hammer powers up and becomes red.
This makes it so that EVERY MOVE YOU DO BECOMES UNPARRYABLE.
yea, very strong and we let it loose, completely goes against one of the chore mechanics. Lets just say the hammer was very opressive. But we didnt feel like it was broken, alteast yet, we where constantly trying our hardest to balance the game.
We also introduced another defencive mechanic, is that when you are knocked down, instead of getting up, you can roll to 4 directions. Wich helped against the hammer, but it still ended up having some cenarios where it did a completely unblockable move and you had no way to evade it unless you had a “reversal”.
Now about hammer’s E move.
Since it was very slow, you could basicaly always parry it or roll on reaction, making it almost useless even tho it did 800 damage. So, we made it a “reversal”, since hammer didnt have any invencible move, that move became it. It wasnt broken, since if you used it on defence you would just fly away from the opponent, so we thought it was fair. (foreshadowing).
FIRST COMMUNITY TOURNAMENT
With 3 weapons in, and a growing community, we decided to host a tournament promoting our game.
It was one of the most epic events i have ever experienced on roblox and it was very very fun to host and to see the people we interacted with on our journey play the game.
It also spawned some memes present in our community till this day.
In the finals there where 2 players:
Unlucky - A personal friend of ours that wasnt developing but was helping alot with playtesting, since he had alot of experience with the game ofc he would make it into the grand finals.
and
Pinto - A person that joined the community and became a friend of ours, and was also very helpfull in playtesting, one of the people that did the most playtesting in fact.
So yea, 2 very experienced players made it into the finals, but hey, they where both playing the hammer? Early on in the tournament, Fists was the meta because you could mash alot and do alot of damage, but these 2 where playing hammer, lets see why.
You might be asking yourself “hey you said E was useless, why are they spamming it”
A little bit before the tournament, we made another buff to the hammer, that is you can cancel V1 and E ON WIFF (aka, even if the moves dont connect).
Terrible mistake
Pinto in the middle of the tournament discovered what we now call “the pinto tech”. Basicaly, by canceling E onto itself, due to programing quirks, you have an attack that does 800 damage and is fully invencible. Yea…, an oof on our end.
In the middle of the tournament Unlucky caught onto it and started doing it too, so we had 2 hammers mashing E on grand finals. Was so epic.
Unlucky ended up winning the tournament, but after this, we knew we had alot of work to do to fix the hammer (for now we lowered the damage on E and removed the wiff canceling).
Monetization
Ok so we had made 3 weapons already, and had a small community. How would we make money to keep maintaining the game.
DLC WEAPON
In classic fighting game fascion, we would make you so that you had to pay to use certain weapons, easy.
So we made our first paid weapon: the staff.
and ho boy, the reception was terrible. For a couple reasons
1. It was broken, but in a bad way So like, we wanted to put a new mechanic into the staff, but it didnt work, so we had to kinda hastely redesign the staff to release it when we wanted but it didnt go well, it had a half baked untested moveset, and it all looked janky, defnetly something you wanted to pay for with money.
2. Concerns from the community With the reveal of this paid weapon, some players started to think we where gonna make all paid weapons in the future stronger than regular weapons, to make people have to pay if they wanted a chance to compete. This was never our objective, we wanted to make all weapons balanced, the paid ones are to support us, but everyone should have a fair chance.
SO lesson learned, dont haste content, and if you are going to make people pay for content, it has to be quality.
We then fixed the staff, and gave it its unique mechanic:
If you knock down the opponent, your next special attack will become stronger (indicated by you beeing golden), but if you get parried you lose the gold. So its a weaker weapon then the others, but if you play well it becomes a stronger weapon, risk vs reward.
We also gave the other 2 weapons without a mechanic one
Usualy when you parry the opponent, they lost 10 meter.
The rapier: makes them lose 15 meter, and gains back 5
Since the rapier is “the basics weapon” and we wanted to incentivise players to use the parry, we made the rapiers parry stronger.
And fits gained a “counter hit”, basicaly, when you hit an opponent during an animation, you deal extra damage.
And so we released version 1.0
Appendum: Writting music for the game
Yo i was also the composer, and i am a musician, but before this game i had not really made any music at all, so in preparation i made this track:
wich was basicaly messing around FL studio, learning how to use the program and some things about composition.
I wanted the music style to resemble fighting games i like, Blazblue and Guilty Gear. So kinda like Hard rock/metal vibes. I got some free programs that let me emulate eletric guitar sounds.
In fighting games, each character has a “theme”, wich is a piece of music that reflects that characters personality or design. Here i didnt have that, only the weapon and the stage.
For the rapier i did a darker metal theme with some barroque influences using harpishcord too, since i see it as a more “classy” weapon.
And for the hammer since it’s stage was a vulcano, i went harder with the guitars, used a tunned down steel pan that kinda sounded like a vulcano resonating, and had the chorus start with a bombastic high note as if it was exploding. There where also themes for the fists and for the axe. I didnt compose fo the other weapons for them to be released sooner and less work, specialy because alot of content was made during university, wich is alot of work too.
OST^
What now
well, we continued putting more weapons in, more stages, and balancing the game. We sit at 9 weapons, 2 of them beeing paid. We have 4 stages, and held 4 tournaments, and have a pretty healthy community even tho the game has been a bit dead, since we moved on. There where alot more changes than version 1.0, we kept working on it for 1 more year adding: scythe, katana, kunai, shield and the axe, each weapon with unique movesets. The katana trailer was revealed at the end of a tournament and made everyone hyped.
We tried to fix alot of the balancing, bugs and keep supporting the game, but we eventualy had to move on to other projects because:
PROBLEMS WITH THE GAME
We had a couple of problems that kept helding the game back, besides we just wanting to move on to do new stuff such as:
- Networking: The networking of the game is bad, no going around it. Lag completely kills this type of game too. We where learning how to make games, so yea this aspect, while not overlooked, was complicated, but since then we learned alot more about coding and if we did it again could defnetly make a better sistem.
- Old code, messy code, leftover code, etc: With more and more stuff added, it became a bit hellish to work in the game because of the way we had programmed it, alot of code and alot of changes where needed each update.
- Design oofs: Horizontals alot of the time dont really do what they are supposed to, wich is punsih rolls, because of point number 1 and 4. No blocking means the game is constant RPS(rock paper cisors) wich is a bit mentaly draining. There is also no universal guideline on attack startups and data, so there are alot of descrepancies between attacks.
- Roblox is not good for fighting games. Fighting games are very precise, and the tiniest connection faliures affect players alot. Normal fighting games use peer 2 peer connections, but in roblox we HAVE to connect to a server. That increases lag and makes the experience worse.
- No training mode: Due to how stuff was coded, we couldnt have the players beat up dummies to practice combos, so for you to practice you always have to play against someone.
End of the journey, what we learned, where we are going
Well, we learned alot about designing a game, its a very lenghty process but very rewarding. Dont be scared of needing to change things of the design you thought you knew, the objective is to make the experience better. We learned alot while programing this game, and how to polish things, researched more about networking, and are much more aware of how roblox operates. In hindsight it was a very ambitious first game, there are a ton of features i didnt even mentioned in this post like a shop and stuff that ended up not making it in at all. I also learned alot about making music, 3d modeling in blender and animating.
If you want to try it out, please do! Weapon Clash
So what are we working on now?
See for yourself:
This game already has much much more polish than Weapon Clash (wait i didnt mention the name of the game till now lol??), and we are using alot of what we learned.
If people request i can go in depht about the design and inspirations of the other weapons, but for now thats it.
If you have made it to here thanks for reading all of this, hoped you learned something and have a good day!
Bonus video: