Kings of the Arena

Kings of the Arena - Dev Blog #7

Alright, I start uni again tomorrow so this will probably be the last regular dev blog. I'm still going to be working on the project as i'm still enjoying it, just not as often. Now, onto the new features.

Capture.PNG

First, i've added a chat box to the lobby, so that players can talk about what they want to do for the game.

I saw that Photon has their own chat systems, yet for what i'm doing it just seemed to complicated. What I done, was just send an RPC to all clients when a user enters a message. It sends over their player name and message. 

Capture.PNG

Then I added pretty much the exact same chat system for in-game. It's similar to DOTA 2's chat system, where it's in the middle of the screen and disappears after a few seconds. 

That's pretty much it, apart from a few minor additions and changes to existing systems. From now, probably expect another dev blog in around a weeks time, or whenever I implement a major feature.

Kings of the Arena - Dev Blog #6

Alright, in the past 5 days I've probably done the least amount of work on the project so far. That doesn't mean though, that nothing has been done, because stuff has been done.

First of all, I changed the lobby around, so that when you join you are assigned "random team", rather than blue or red. This allows for people to easily switch teams with others if they want, without needing to leave then rejoin again. When the game starts, all players who are assigned to "random team" will be put into a team.

 3 players being automatically assigned a team when the game is set to begin.

3 players being automatically assigned a team when the game is set to begin.

Also the 3 game modes have been implemented and are ready to play. Team Deathmatch, King of the Hill and Free for All (which I renamed to Arena).

Team Deathmatch

Team Deathmatch is pretty self explanatory. 2 teams fight to the death, and when the 8 (or whatever) minute timer runs out, the team with the most kills wins. At the moment maps aren't set up, yet when they are, spawns will be random around the map. If there is a tie with the kills at the end of the game, then the team who got the last kill wins the game.

 Team Deathmatch UI element, which shows the time remaining and total team kills.

Team Deathmatch UI element, which shows the time remaining and total team kills.

King of the Hill

King of the Hill is a gamemode where 2 teams fight over control of a point. The more players a team has on the point, the faster they will gain ownership of it. When the game timer runs out, the team who has the most control of the centre point wins the game. If there is a tie in control, then the team who is currently gaining ownership wins.

 Blue team regains control of the centre point.

Blue team regains control of the centre point.

Arena

Arena is a gamemode where everyone is for themselves. Basically a free for all, after the timer runs out, the player with the most kills wins the game. If there is a tie, then the tying players will have their KD's compared and the one with the best KD, wins.


As a bonus, I also implemented Druid's 2nd ability which is Speed Aura. For 5 second (stats will probably change in the future), all teammates inside of the aura will have a 30% increase in attack speed.

This is the first placeable ability and I added it to enchance Druid's aggressive/support playstyle.

Capture.PNG

Kings of the Arena - Dev Blog #5

It's been almost a week since I've last done one of these. It's not because there's a lack of work being done, it's just that there are large features that are being worked on. So what has been happening? Well i've been doing a couple of play tests. A 5 player test with friends was interesting as the game held up and everything worked out fine.

I also worked on quite a bit of networking problems that occured during those tests, these mainly being synching issues.

dsadas.PNG

A scoreboard was added, which displays player kills, deaths and ping. It also shows the game mode, current map and rules for the game mode.

One of the largest features I added since last time, is a menu with a lobby screen and lobby browser.

What you see in the above GIF, is a player creating a lobby, then switching the game mode for the game. Other players are joining the lobby and then the host starts the game. What I don't like about it though, is the way the teams are set up. When you join a lobby, you are automatically placed in a team and swapping teams can only be done if the conditions are right.

A better solution would be the way Shellshock: Live does it. They have a lobby like this, but each player can switch from no team, to a team. This would allow for people to easily trade teams with each other, rather than needing to leave and rejoin the lobby as it is now.

browsergif.gif

This here is the lobby browser. It displays all lobbies for players to join, along with their game mode and player count.

Kings of the Arena - Dev Blog #4

I've been working on the game for quite a bit lately. Additions to the ability system, UI, projectiles and more have been worked on. I also had my first proper play test that isn't just me trying to control 2 games at once. My friend and I spent around 15 minutes messing around in-game. Overall, it was better than I expected.

Before hand, I though the first initial gameplay was going to be unbalanced and not that fun if you're just spamming projectiles at each other. Yet when playing with another person, we both found it to be quite fun. Trying to hit our target by predicting movement, and using the abilities at the right times to give ourselves an advantage. The experience was great and I can't wait to test again, and with more people.

 Archer's Fury ability. Temp extra attack speed.

Archer's Fury ability. Temp extra attack speed.

 Archer's Poison Arrow ability. Poisons target overtime.

Archer's Poison Arrow ability. Poisons target overtime.

 Mage's Ice Shard ability. Temp stuns target.

Mage's Ice Shard ability. Temp stuns target.

 Mage's Shield ability. Temp blocks 50% incoming damage.

Mage's Shield ability. Temp blocks 50% incoming damage.

 Cleric's Blood Syphon ability. Temp transfer health over time.

Cleric's Blood Syphon ability. Temp transfer health over time.

 Assassins Killing Blow ability. Deals large damage.

Assassins Killing Blow ability. Deals large damage.

Above is a collection of the abilities that I have currently made. The values and stats for each are just placeholders, so what you see above won't be the final result. Each of the abilities also encourages that specific character's playstyle. The Mage has a shield and stun to encourage defensive behaviour, while the Archer has a poison arrow and increased attack speed to encourage aggressive behaviour.

Along with all this, the UI elements have also been implemented, to give the player many visual cues.

When they cast an ability, a cooldown timer appears on the ability icon, counting down in seconds.

If the ability has a temporary effect of the player, then there will be a purple bar above the icon, showing remaining duration.

The circular icon to the left, is just that character's defa

GIF5.gif
GIF6.gif

Something else i've been thinking about is game feel. In a game like this, the player needs to know if they've hit their target or when they have been hit.

So far I have screen shake when you get hit, sprite colour flashes for direct and poison damage, and a blood particle effect when a player dies.

For the future though, I currently have these ideas in mind:

  • Have a red vignette for when the player is almost dead.
  • Have a distinct sound when you hit an enemy.
  • Have the ability icon flash or pulse forward when casting it.
  • Have the ability icon flash or pulse when it is ready to be used again.

When I started these dev blogs, I said that i'll be doing around 1 or 2 a week. Well in the past 1 week and 1 day, i've already done 4 of them. This is good though as I do like making them. In the future though, i'd expect not to do this many as the time to implement new features will just keep rising. Hopefully by next week i'll have done a playtest with around 5 people, just to test how the game goes with that many people, and server issues. 

Kings of the Arena - Dev Blog #3

These posts might actually come out more often than I mentioned. I've been working quite a lot on the project and I think that there's enough progress for an update.

There's quite a lot of stuff to process in that GIF. The first thing you saw, was probably the character select screen. Whenever a player joins a game or dies, that screen pops up, allowing them to select a character to spawn as. 

I've added screenshake when you get hit. This still needs tweaking.

 
 Here's a logo that I whipped up. Probably not the final version, but I really like it.

Here's a logo that I whipped up. Probably not the final version, but I really like it.

 
Capture.PNG

That's the character roster. The Druid also finally has a skin. When drawing the sprites for the characters, I wanted them each not only to have a distinct colour, but to also have distinct features.

  • The Archer is the base/default look.
  • The Mage has a beard.
  • The Cleric has a mask and hair.
  • The Druid is bald.
  • The Assassin's face is almost all cloaked and they don't have brown shoes.

I've also been messing around with followers. One of the Druid's abilities, is to spawn a follower that can attack nearby enemies. At the moment it can just follow the player around and look in the direction of the player.

I'm still wondering if it should attack automatically when enemies are nearby, or attack when the player attacks. If when the player attacks, then should it find an enemy in that direction and shoot towards that, or just in the same general

Capture.PNG

Above are the current projectiles that I have made for the game. Look at them and think what a major problem would be in-game... They blend into the ground too much. If you are running around trying to fight other people, a core part of the game is being able to avoid enemy projectiles.

The rock, health shard and ice shard blend in too much with the ground.

Capture.PNG
Capture1.PNG

The fire ball for example. When it moves, there is a trail and particle effect attached to it. It's easy to see.

Then there's the rock, which when moving is not that easy to see. It blends in with the pattern of the grass, even though it's a different colour overall. I believe a solution would be to add a trail like the fire ball or make the rock spin as it's being thrown. This will hopefully make it stand out more.


Since each character will have 2 unique abilities, i've been working on a modular ability system. First, I though about the different types of abilities. These are: projectile, self, placeable, follower and allies.

  • Projectile abilities, are like normal attacks but can have higher stats and different effects attached.
  • Self abilities, are cast on the player themselves. Temporarily giving them extra stats like armour or attack speed.
  • Placeable abilities, are objects that the player can place. Like mines, goo or turrets. These are just ideas at the moment though.
  • Follower abilities, are spawnable creatures that can help the player in different ways. This can be attacking enemies, healing the player over time or other things.
  • Allies abilities, are abilities that affect the entire team or nearby teammates. This can be a heal, armour or other things.
download (1).png

Each player has an Ability Manager, which sets abilities when a new character is chosen, casts those abilities and manages cooldowns. Each Ability class contains the basic data. Like name, description, cooldown, sprite icons. Everything that all abilities have. 

Then there are the 5 (so far) distinct ability classes. These are ProjectileAbility, SelfAbility, PlaceableAbility, FollowerAbility and AlliesAbility. They each are contain data for that specific ability type. Each Ability class connects to one of these distinct ability classes. I know it's not that well explained, just know that doing this allows for modular abilities. So adding new ones or changing existing ones in the future is much easier and faster. 

Kings of the Arena - Dev Blog #2

Alright, so production of the game is underway. My main focus for the past few days has been on setting up the networking and making sure everything is properly synchronised. I'm using Photon for the multiplayer, which is very similar to Unity's built in networking. I've used Photon before on previous projects, so using it here would be the obvious answer.

In the above GIF you can currently see movement synchronisation and client-side hit detection. I'm controlling the player on the left, yet my on the right looks quite weird. The movement looks floaty and not rigid at all. This is due to the clients sending data 20 times second and setting that directly will make the movement look very choppy. So what we need to do is lerp towards the sent position data. This is why in some parts of the game to the right, the movement "jumps forward", as the lerp needs to catch up to the newest position recieved. 


I've also been working on the menu flow. This being the process of which a player gets from being on the main menu, to being in a game.

download.png

When players are in a lobby they will be automatically be placed in either red team or blue team. Only in the lobby can players change teams. They can only change teams though, if their current team has the same amount or more players than the other team.

Also in the image you see "When start conditions are true". These are the conditions for the game to begin. They are:

  • There must be at least 1 player on each team.
  • All players must be "Ready" by clicking the ready button.

Once that is done, a 15 second countdown will begin, allowing for more people to still join, or for players to "Unready".


In the last post I mentioned a couple different game modes, yet didn't really go into detail about them. At the moment I have 2 that I want to implement and another in my mind, just so that the game won't be stuck to one game mode that will get boring overtime. There are a few similarities that all the game modes have, these are:

  • Each game mode can have a minimum of 1 person each team, with a maximum of 5 people each team.
  • Each game mode will run for a maximum of 5 minutes. This number might change in the future, yet this is in place because I want quick games. Similar to Rocket League, which allows people to play short, yet numerous amounts of them.

Now that that's done, here are the game modes that I have in mind for the game:

Capture.PNG

Deathmatch

Your traditional team deathmatch where 2 teams battle it out to the death. After 5 minutes, the team with the most combined kills wins the game.

Capture.PNG

King of the Hill

2 teams fight to claim ownership of the center piece. When a team's ownership reaches 100%, they win. Ownership can be increased by having a majority of your team's players on the pad. There is also a 5 minute timer, which at the end, if no team is at 100% ownership, then the team with the most wins.

Capture.PNG

Free For All (not sure...)

At the moment a free for all game mode is iffy in my mind. I would like to add it, yet I don't believe that it will fit in with the style of game. For example, playing as a support character like the Cleric would be very weak in this gamemode.

That's all so far. In the next update, I will focus more on what has been done on the game, rather than ideas for the future. If you have any suggestions or questions, ask away. 

Kings of the Arena - Dev Blog #1

For the next 3 weeks i'll be on uni holidays and have decided to create a game that i've had in my mind for quite some time. It's a 2D, top down, multiplayer arena shooter game. A lot to take in, but I can't really explain it in just one sentence. I've had the idea actually for this type of game for around 2 years. In January of 2015 I actually even attempted to make it. It worked, kinda. The multiplayer was a bit finiky, but the overall attacking and killing other players worked out fine.

 Kings of the Arena, January 2015. Unfinished, and badly made game.

Kings of the Arena, January 2015. Unfinished, and badly made game.

That's what it looked like. You controlled one of 3 different characters and could shoot projectiles to kill enemies. Each character also had a unique ability, like an arrow burst, invisible or shield. It was kind of similar to a MOBA, where there are the unique heroes with their different stats and abilities. 

At the time of making it, there was no real goal. There was no game modes, no kills required to win - it was an incomplete project.

For the past 2 weeks though, i've been planning a "remake" which will be similar to the original game, yet more carefully designed and complex. The game will be like this...


Kings of the Arena will be a top down 2D, MOBA style shooting game. 

  • There will be a range of characters, with each having their own projectile and 2 unique abilities.
  • The primary source of attacking other players is by shooting a character specific projectile. These projectiles can be dodged by players. 
  • All projectiles deal only damage.
  • There will be a number of different game modes: Deathmatch, King of the Hill and maybe more.
  • The maps will be sized appropriately so that encounters happen regularly.
  • Games will last around 5 minutes.
  • The game will be fast paced. Players will be constantly moving to attempt to avoid enemy projectiles and engaging in combat.
  • Abilities can be projectiles, shields, spawnable followers, auras, for allies, etc. Very similar to those that can be found in DOTA or other MOBAs.
  • Abilities have a cooldown after they are used.

Already in the planning stage i've set out 5 different characters. The Archer, Mage, Cleric, Druid and Assassin. Their design, stats and abilities aren't final, but here they are:

Capture.PNG

Archer is aggressive and will shoot arrows. First ability shoots a poison arrow, second ability puts Archer into a fury mode, temporarily giving extra attack speed.

d.PNG

Mage is defensive and will shot fire balls. First ability shoots an ice shard which stuns target, second ability shields Mage temporarily, blocking 50% of incoming damage.

Capture.PNG

Cleric is support and will shoot wooden spikes. Cleric is special, since they have a secondary attack that shoots small health balls which can heal allies. First ability is a mass heal which heals all allies for a bit, second ability is a syringe projectile which draws health from target overtime and gives it to the Cleric.

Capture.PNG

Druid is a support/aggressive and will shoot rocks. First ability spawns a small creature which follows Druid and shoots at enemies, second ability makes Druid temporarily shoot higher damage but slower rocks.

Capture.PNG

Assassin is aggressive and will shoot daggers. First ability is blink which allows him to teleport a short distance, second ability shoots a high damage dagger.

I've mentioned this game being similar to a DOTA style MOBA, yet really its most comparable game would probably be Overwatch. The different characters have their own playstyles and abilities and there are a range of different game modes for quick play. That is what I want from this game. Quick, in and out play, with games being around 5 minutes long. It should be a game that anyone can pick up and play for as long as they want.

The big question now is... will I even finish it. If you have ever looked at my portfolio, you would see that many of the games I attempted to make in the past have not been finished. That can be due to lack of knowledge, pre-planning, scope and overall goal of the project. For this one though, I have all those things. Doing these blogs regularly would also probably motivate me to keep working on the game and who knows what it will be like 3 weeks from now.

So when is the next blog and how often will I be working on this project? Well, i'm hoping to release a blog around 2 times a week, or maybe even 1 - we'll need to wait and see. I'm also hoping to work on this quite regularly as i'm currently on 3 weeks holiday from uni, so that will give me plenty of time. Also i'm pretty bad at explaining ideas and a lot of this will probably be rambling, so if you still don't really know what sort of game this is going to be, just imagine 2D Overwatch for now. See you soon.