I’m fairly new to game development but have lots of experience in the industry having being both a QA tester and an audio designer for many years. I’m looking to get into my first indie development, which is intended to be an objective based 3rd person shooter game. I’ve been searching for information relating to a few core ideals I have designed for the title and was hoping that the unity community would be able to advise me as to the engines capability towards them, as well as if applicable any useful resources to help me on my way!
The core game revolves around an arena style combat game (Similar to MOBA games) but from a 3rd person perspective. Players start with a set of 10 characters but can purchase further characters as DLC either as a single hero or in a pack. Each character has their own unique skillset ranging from stealth tactics to walking heavy weapons platforms.
My question is within unity is it possible to create the following and at what level of difficulty:
Character selection.
Addons and DLC.
Unique characters with different abilities and stats. (Including movement speed, health, damage etc)
Varying skill types from AoE to Sniper shots.
Multiplayer enviroments featuring a 5vs5 style combat
Objective based multiplayer gameplay
I apologise if these questions have been answered elsewhere.
Character selection. No problem - Unity’s GUI is a bit lame, so you’ll probably want to invest in NGUI.
Addons and DLC. A little bit tricky - addons are fine, microtransaction purchases are fine, but actual DLC where you can mix and match downloaded content will take some hacking.
Unique characters with different abilities and stats. (Including movement speed, health, damage etc) Yep. Varying skill types from AoE to Sniper shots. Cake. Multiplayer enviroments featuring a 5vs5 style combat You’ll need to be pretty good at programming to write a 10-player that’s performant enough. Objective based multiplayer gameplay Well, once you’re past the multiplayer hurdles, making it objective-based is simple enough. Some of the questions you asked suggest to me that you don’t understand Unity very well. That’s fine - you’re just checking it out, after all! Basically, Unity’s philosophy is to give you a blank canvas and let you build up game logic from nothing. It has no concept of “abilities” or “player characters” or “damage” or “health”. As a result, Unity is effective for pretty much any genre with any gameplay requirements - within reason of course. However, since it comes with very little to start with, you’ve got to either have a lot of money and take a trip to the Asset Store, or get relatively good at programming. Unity programming is not hard as long as you have a knack for critical thinking.
The difficulty for what you are describing would definitely be above average, leaning toward advanced. As DallonF pointed out, Unity does not come with most of what you described from the get-go. A lot of that would have to be created from scratch.
-Character Selection
This would be one of the easier features, as its really just a simple GUI system. You can store “characters” as simple integer values, and then retrieve the actual data for them from an XML file. Putting together a basic image-based GUI for selecting one of those integer values is child’s play. Low difficulty.
-Addons and DLC
This wouldn’t be too difficult, but would be heavily dependent on whatever store-front you are working through. It would have more to do with iOS, Android Play Store, or Steam, and less to do with Unity itself. Medium difficulty, depending on the store API you’re working with.
-Unique characters with different abilities and stats. (Including movement speed, health, damage etc)
This isn’t as hard as you might think. Especially if you know how to use Unity’s pre-fab system effectively. The real work would come in creating the custom art for each character. The rest is a fairly simple matter of cooking up a character controller, and applying certain variables to the game logic. These can be applied as very basic properties on your Behavior scripts, and are fairly easy to work with. Low difficulty.
-Varying skill types from AoE to Sniper shots.
This is where a lot of the work for a game like this would actually come into play. It’s entirely possible, but will require more customization and less built-in functionality than most of the other steps. Given a lot of the default functionality in Unity, though, I wouldn’t be worried. Medium difficulty.
-Multiplayer enviroments featuring a 5vs5 style combat
This step is all about level design. It is another step that is going to rely heavily on your skill as a designer. A lot of the level design could be done in a 3D editing program, or in the Unity editor itself. (a combination of both is common) Unity’s built-in component for Mesh collisions helps a lot on this one. Medium difficulty.
-Objective based multiplayer gameplay
This is the big one. For full-on multiplayer, you will have to dig into the Networking classes for Unity, and do a lot of testing. Objective-based missions will also require coding above and beyond the norm. This is definitely where the majority of your development efforts will have to be centered. Still entirely possible, though. Unity’s networking system is solid and proven. And 5 vs 5 is a realistic server load. High difficulty.
Summary:
While an engine specifically designed for a 5 vs 5 multiplayer game would be a more ideal solution, what you are looking for would be entirely possible within Unity. Since there are very few engines on the market designed specifically for 5 vs 5 MOBA-style games, Unity will be as good as most other options. I’d say go ahead.
It sounds like the engine is more than capeable of doing what I’m after. Design wise etc my skills are quite high however I have very limited programming knowledge (however i know a few programmers I could tap up for help!)
I noticed in Richard Kains comment he mentioned a specific engine focused at multiplayer may be more effective. Would anyone have any advice as to a system to look at in that regards? Just so that I’ve checked out as many options as possible before I get to work?
Other than what has already been said above, the best part about Unity is the community. With the engine fully capable of doing what you want plus this community you need look no further to be honest.
Well, if you were more experienced with programming, I’d recommend the UDK - it’s more multiplayer-oriented and already fairly well set up for a third-person shooter. However, its documentation is lacking and you really have to be able to read code that other people have written to understand how to do anything, among other things that make UDK less than beginner friendly.
Seeing as you’re not familiar with programming, I’d recommend a different approach: use Unity, and don’t make your dream game yet.
Start with Pong - just to learn the ins and outs of Unity and programming in general. Pong is basically the Hello World of game development.
Then make a slightly more complex game that starts to include the features that you want to have in your dream game. In this case, you might want to make a game where you control a single character - no multiplayer - and try to survive hordes of basic AI enemies. You should only have a few basic attacks. There should be no victory condition, just a high score of how long you lasted. Then add another character and allow the player to choose who they want to play as.
Then make a sequel to that game where you can co-op with another player. Add a couple of new characters and make the moves a little bit more interesting. Maybe add some more interesting enemy types, too. If you plan to have characters level up in your dream game, it would be good to experiment with that mechanic now.
Make sure to finish each of these games. Add a title screen, an options menu, the works. Who knows, they might turn out to be fun enough to sell and start making some cash so that you can fund your dream game! If nothing else, you could pop them on Kongregate and other web portals and make a few pennies.
Finally, now that you’re familiar with Unity, programming, the mechanics of your genre, and multiplayer, all you’ll need to worry about when building your dream game is objective-based gameplay, which should be fairly straightforward now that you’ve programmed three other complete games.
Good luck! Take baby steps! Finish games!
P.S. When you get a new game idea, write it down so you don’t lose it! Evernote is your friend. But whatever you do, don’t drop what you’re currently working on to start your new idea! You’ll never finish anything if you do that. (trust me, I know) It might be acceptable to take a break from your current project to make a prototype of something completely different and new… but it depends on how much you trust yourself to get back to the original project when you’re done.
I intended to start with some minor games building on the mechanics anyway. I was mainly wanting to know exactly how far unity could take me!
First thing I’ve gotta say is that there is a great community here and everyone has been helpful! Which when it comes to the game industry is rare! I hope to catch you all around soon and when I get underway with things proper I will drop some demo’s up!