Search Unity

Desert Storm: Arenas -- Multiplayer Physic Based Action Combat Battle Arena

Discussion in 'Works In Progress - Archive' started by Christian-Tucker, Oct 17, 2014.

  1. Christian-Tucker

    Christian-Tucker

    Joined:
    Aug 18, 2013
    Posts:
    376
    Whoah, that title was quite the mouthful, wasn't it? Let's go ahead and get started with discussing the project.

    This is my first major project using Unity3D and the first one that I've actually stuck with long enough to create a working prototype. From there I decided that it was time to continue on with the project and try to create my first game. Now, they always say, "When you start with game development, starting with multiplayer is suicide."... well, they're not wrong. However, this is my first game project that I've actually gone through with.

    Overall goals for the game:
    • Get greenlit on steam ( in the future )
    • Fund a successful kickstarter campaign solely for animation/models. ( in the future )
    How the multiplayer works:
    • The TPC Server: I've created my own master-server using the Java NIO networking library by the name of Netty. This server handles all of the players account information such as their in-game currency, account experience, level, and so forth. This server also handles all the other servers. ( P2P Servers ). Using packets it will update a SQL Database with the information of a server whenever a player decides to host a server publicly, it will then send pings to that server every so often to make sure that it's still a valid server, if it's not then it will be removed from the database. Servers also talk to the master-server every-time a player connects and disconnects telling it to update the amount of players connected in the database. This server basically serves as a hub for all of the important information in the game. The actual "Game" or "Match" is hosted by a player.
    • The "RPC Server": This server uses the standard networking code that comes built in with networking and is hosted by the player. I've decided on using a semi-authoritative approach with lag calculation to help with the physic based combat. I have quite a bit of experience with memory modification and creating hacks for games, so it's going to be my goal to make it damn near impossible to cheat in Desert Storm. The only downside to the player-owned servers is that if the host is the cheater, there's nothing you can do about it.
    About the game / play style:

    The idea of this game came from a Korean game that I had played a very long time ago when I was a kid that went by the name Rakion. The game was an over-all mess with hackers everywhere, but it was still pretty fun, basic, but fun. I started playing games like c9 and tera to get a better feel for action-combat games and started to notice how certain things were done over the network. I did quite a bit of research as to why things were handled certain ways, and most of it was due to lag compensation or heavy process taxing, so I decided to find a way to minimize these effects as much as I possibly could while still offering a fast-paced smooth animation game play.

    Play Style: Currently the idea behind the game is to have a very fast paced action-combat system with smooth animations and movement displacement skills. We're going to be using a character system that will have certain traits to it and will probably have the unlock system similar to how most MoBA games do it. Currently the plan is to have a few different kind of melee classes, an archer, and possible mage classes. We're not trying to imitate the MoBA Scene at all though, so that's not something to worry about.

    Game Modes:
    • Free For All - Players join the game with the character they have selected and battle it out to the death, the player with the most kills when the timer runs out wins.
    • Team Deathmatch - Players select a team at the start of the game (or when they join the game late) and fight to the death, the team with the most kills when the timer runs out wins.
    • Capture the Flag - Players select a team at the start of the game (or when they join the game late) and attempt to capture the other teams flag, The only catch is that the enemy can carry their own flag. Capture the flag and return it to your base to score a point. The first team to reach the score cap wins.
    • DoTA Style - Smite in a nutshell.
    Current Status of Game: Prototyping - Because of the nature of the game, without proper models and animations creating physic based content because extremely difficult. We're still looking for modelers and animators that are willing to work with us to help bring this game to life. I'm currently learning about animating characters, however I don't have any previous experience. This project so far is a one-man team.

    Media:

    Prototype multiplayer lobby, random values were sent from the master-server.


    Prototype physic based combat, ranged combat.
    This is a raw cut version of the combat, floating damage, and floating healthbar. Keep in mind I currently don't have any animations for my characters, this explains the stance.


    There's also a login screen and much more, but why would I flood you guys with bad images.


    I know this isn't the collaboration section, however, I really need an UI Artist and an Animator to work with me to complete this project, I don't have anything to offer besides possible revenue share if the game makes anything, which it probably won't. It's not my goal to make money from this project. I just want something nice and shiny that I can point to and say "I did that" and put it on my resume.
     
  2. Christian-Tucker

    Christian-Tucker

    Joined:
    Aug 18, 2013
    Posts:
    376
    Update One:

    Networking functions have had a few problems here recently, sometimes players would spawn into the game invisible. This has been fixed.I've also taken some of the permissions away from the client and changed the way that a lot of information was stored; The client will no longer have access to the ServerPlayer class, thus making it impossible to change the values. The server no longer checks information from the clients ServerPlayer class, instead gets the servers instance of it. This has disabled two different methods of "hacking" that had previously worked. ​
     
    Last edited: Oct 18, 2014
  3. Christian-Tucker

    Christian-Tucker

    Joined:
    Aug 18, 2013
    Posts:
    376
    Update Two:

    The networking (for the master-server) has been completely redone, we moved from Netty version 3.6.1 to 4.0 as well as rewrote how the data was transferred between our clients. We managed to cut the bandwidth flow in half by optimizing a bunch of data-types to fit the proper variable size. We started sending bytes and integers instead of strings for most information and then have the client find the relative string pertaining to the byte. The only thing that still uses the String method is the kog in function to the master server (Which is soon to be replaced by custom cryptography), as well as the chat function. I've also talked to my friend about creating some maps for the game and he had agreed, so we should see where we are in a week or so. ​