Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Is Unity really right for MMOs?

Discussion in 'Multiplayer' started by waldo, Jul 25, 2008.

  1. waldo

    waldo

    Joined:
    Jul 25, 2008
    Posts:
    21
    Is it really fair to say 2.1 "enables" MMOs? It seems like there are so many core components of the back end of an MMO that are missing. The last thing I would want to do is be writing network code and reinventing that wheel to create an MMO.

    Now that said, I'd like to make a public inquiry if any other companies have already implemented these foundational MMO components. I basically know the answer is yes (Cartoon Network for one). If you're one of those companies and have your technology available for licensing, I'd ask you to contact me - I'd like to discuss it.
     
  2. David-Helgason

    David-Helgason

    Moderator

    Joined:
    Mar 29, 2005
    Posts:
    1,104
    Unity doesn't (currently) have an "MMO-ready backend" built in. But between the various middlewares that are out there, both commercial (Electroserver, BigWorld), open-source (Ogoglio), and proprietary (build-it-yoursel), there's plenty of options.

    Not least, you can use a combination of Unity's multiplayer networking and a simpler database back-end to create a virtual world experience that approximates an MMO really well. You won't have thousands of people interacting simultaneously, but you can easily have groups doing quests (or other types of gameplay) together, in an infinite world populated by thousands of people.

    And as a client, it beats anything else hands down :)

    d.
     
  3. podperson

    podperson

    Joined:
    Jun 6, 2006
    Posts:
    1,371
    It would (obviously) be neat if Unity got to the point of being "plug and play" with some middleware options, especially if they're not hideously expensive. (Flash's server was sufficiently compelling that a lot of folks tried to implement MMO-style stuff using Flash only to be horribly burned by performance and maintenance issues.) This would make it reasonably simple to deploy any multiplayer game and be able to scale it.
     
  4. MrBodean

    MrBodean

    Joined:
    Jan 25, 2008
    Posts:
    103
    Has anybody on the forums used Electroserver with Unity?

    We are trying to figure our best and quickest options for adding a server that can easily be expanded as our site grows and from the look of this, it seems like it should be able to handle things.

    I would just like to chat with someone that has actually used it

    Thanks,
    Jeff White
    www.FriendsHangout.com
     
  5. waldo

    waldo

    Joined:
    Jul 25, 2008
    Posts:
    21
    I'd shudder at the thought of spending all my time making buddy systems, quests and world persistence instead of... just making the world!

    And davidhelgason... currently? :D
     
  6. jashan

    jashan

    Joined:
    Mar 9, 2007
    Posts:
    3,307
    To be honest: Given the massive amounts of content needed for a full-blown MMO ("just making the world"), the challenges involved in providing the service to massive amounts of players (user-support and IT infrastructure = "keeping the world alive") and the general complexity of even simple MMOs, I'd consider "buddy systems" and "world persistence" kind of trivial things to set up.

    After all, a buddy system is not much more than a tiny part of the world persistence. I'd budget even a somewhat advanced buddy system with about a week for one somewhat skilled developer, which is "nothing" compared to the rest of what needs to be done on such a project. On the other hand: even a buddy system, or - much more interesting: a guild system - provides plenty of room for creativity, so that I'd personally not really want this to come "pre-made".

    And "world persistence" could mean anything from "a couple of attributes per player" (which is kind of trivial to implement with Unity, if you have an understanding of database systems and how to develop them) to "everything in the world could be changed by the players - even new content could be created, including new game logic" (which is... well... "difficult and truly challenging no matter how skilled you are" ;-) ).

    Where should anybody draw the line here?

    When it comes to quests: If such a thing was integrated into Unity, it would be a waste for all people who create MMOs that don't even have quests (even though it might potentially be useful for people who don't create MMOs but single-player RPGs ;-) ). Besides, I don't think such a thing could be created in a useful manner that suits even most needs for most game designs (let alone all for all), since questing should in most cases be very dependent on the game design (there's plenty of room for creativity in this area, too). So even if some folks create an MMORPG, and do have quests in it - it might turn out useless for them because they want to create something different that's simply not covered.


    So all in all, personally I would consider investments into such things from UT kind of a waste of time and money. Might be interesting as a 3rd party offering as what you asked for in your first posting, though...


    What I want from Unity (and what I think it currently provides), is being an open door into uncharted terrain. That terrain is what I can create - so Unity supports my creative freedom.

    What I don't like is when Unity imposes boundaries to what's possible. That was the case with a few aspects of networking in 2.0. But almost all those boundaries have been removed in 2.1! The only thing I still miss is being able to simultanuously connect to multiple servers (AFAICS, that currently cuts out "seamless servers" if you want to take full advantage of Unity's networking capabilities).

    Also "single terrain per level" was one such limitation - which is now gone, which I think is extremely cool. Just to give a few examples (if you read the release notes, it's fairly obvious).


    If instead of an open door I wanted a living room packed with stuff I very likely don't need, I'd go with something like http://www.multiverse.net/index.html ... I haven't really followed that project and don't know its exact status (at first sight it seems unchanged during the last 1.5 years), but AFAIK, this project does try to handle some of the really difficult aspects of MMO development (and maintenance)... ... ... maybe that's why it seems not too much has changed!?
     
  7. tpelham42

    tpelham42

    Joined:
    Apr 15, 2008
    Posts:
    119
    Jashan...I concur.
     
  8. waldo

    waldo

    Joined:
    Jul 25, 2008
    Posts:
    21
    If Unity would sell an MMO library as an extension, I (and others I imagine) would gladly pay for it. I'm not saying, "This is what Unity needs to be complete", I'm saying, "This is what you need to make an MMO with Unity."

    I've used Multiverse extensively by the way. It's a nice system and a great company. But tools for now are a bit lacking, and lack of Mac support is an issue. Unity really fits this unique niche of being extremely easy to get a client running.

    Put it this way. If I had to choose between spending say an extra $2000 (or $10k!) on a Unity license for an MMO extension, or $80,000 for a developer for a year to implement MMO technology (and hopefully get it right), I'd buy the Unity addon any day.

    Hint, hint!
     
  9. kattkieru

    kattkieru

    Joined:
    Jan 2, 2006
    Posts:
    130
    Not just from OTEE, either... I can see anyone selling an MMO add-on package making a lot of money if it were done well. Of course, it'd require a lot of time to keep up to date.

    In the interim, I'm sure scripts and examples will start turning up on the wiki. (I'll be really surprised if someone doesn't use the streaming stuff to do a GTA-inspired city thing.) But what would be most helpful would be a set of prefab models, and that's something the community could come together to produce if a leader stepped forward.
     
  10. Der Dude

    Der Dude

    Joined:
    Aug 7, 2006
    Posts:
    213
    I agree with Jashan completely.
    There is no "one fits all" with MMOs.
     
  11. zumwalt

    zumwalt

    Joined:
    Apr 18, 2007
    Posts:
    2,287
    There seems to be misunderstand here for MMO.
    Unity uses Rakknet for its networking component. This is a strong engine to say the least. It is more than capible to handle an MMO setting. The question then lies in how the information is handled and how you create your game.

    1) Zones or in Unity, a game level, keep it simple and restricted
    2) packets, the smaller the better, keep the data simple
    3) thick clients work best for an MMO, the more the client can handle the less needs to be transmitted to the server
    4) distributed server model, you need more than 1 box, for instance, Everquest has a max of 2000 players per server BANK, each zone is on its own server, literally. So in the Unity world this means each 'level' is on its own server

    Now breaking this down, all levels exist on the player side, going from level to level, all assets exist in each level on the player side, only thing that resides on the server side are object ID's and location information along with variabled defining components within those objects.

    All you do when a player zones in, is send that player (all players in zone) announcements in a broadcast out only, status on objects. When objects are hit by players, it broadcasts out status on itself.

    Ok there is more to this. A ton more. For instance, the server has to be able to cache data from the database about given objects, now this leads into shops and such, notice in EQ, the more shops exist in the zone, the smaller the zone is? Active objects and NPC's alike have something in common, they only broadcast to a target player.

    You have to define simple broadcast rules and complex broadcast rules. A simple broadcast rule is a zone wide rule, this type of rule is subject to dynamic objects (objects in play that move), complex broadcast rules are target to players who are interacting with the object. Take a shop keeper, approaching the shop keeper you are dealing with a simple broadcast, once you interact with the shop keeper, you are now in the complex broadcast ruleset.

    When creating characters in Unity (or rather for Unity), there are several things to take into consideration, the physical characteristics of the character are the very least of your problems. For MMO, you need to create a rules database for PC's, NPCS, Static and Dynamic objects. This is just the begining.

    Edit:
    Prime example, here is a basic core to a player character layout, storyboard style, I did this a while back, its way beyond this design at this point though.

    Character Layout via storyboard
     
  12. Jeff-Kesselman

    Jeff-Kesselman

    Joined:
    Apr 5, 2010
    Posts:
    99
    The RedDwarf project is the ongoing open source community effort based on Sun's Project Darkstar. A number of community members have played with using Unity as a front end and PDS/RD as a back-end technology.

    You might try poking around the forums at the community site:

    http://www.reddwarfserver.org
     
  13. Matroblend

    Matroblend

    Joined:
    Jan 30, 2009
    Posts:
    134
    Hey Cybergat, I have been working with PDS now RDS for about 3 or 4 months and it does have potential if you really know what you are doing but it really needs working Unity examples. I am going to continue to work with it on the back burner but I think I am going to get Photon for now until RedDwarf has a better learning curve and Slipsteam added design or I get better at understanding how to write code.
     
  14. Jeff-Kesselman

    Jeff-Kesselman

    Joined:
    Apr 5, 2010
    Posts:
    99
    Well, I can't say i agree with at least one philosophical point of theirs. Reinventing TCP/Ip with your own reliability layer on top of UDP is seldom a win. The internet understands TCP/IP and it has better then 35 years of development and tunign behind it.

    But, if all you need is a socket server, then in my general opinion one is about as good as another, so go for it.

    BUT I would predict that approximately 18 months into your actual deployment cycle you are going to start wishing you had much more of your game logic server-side. That seems to be the pattern of everyone Ive met who has come into this space... so maybe you'll pick up RD again on your second game. ;)
     
  15. ColossalDuck

    ColossalDuck

    Joined:
    Jun 6, 2009
    Posts:
    3,246
    This topic seems to be brought back from the dead.
     
  16. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,551
     
  17. TwiiK

    TwiiK

    Joined:
    Oct 23, 2007
    Posts:
    1,729
    Haha, that quote made the card in my mind.

    This made me want to rummage my attic looking for my MTG cards.
     
  18. Jedimace1

    Jedimace1

    Joined:
    Jan 2, 2010
    Posts:
    119
    Hey,

    On the subject of MMO games with Unity, check out www.badumna.com. They are working on a really cool drag-and-drop solution for Unity MMO games that requires very little server management. An indie version is coming out this month. Now, this isn't going to suddenly make an MMO game possible for the masses, but it definitely lowers the requirements to get in. For example, this might make it possible for a team of about 10-15 people working full time, maybe.
     
  19. Matroblend

    Matroblend

    Joined:
    Jan 30, 2009
    Posts:
    134
    Looks interesting.
     
  20. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    looks interesting indeed though there are various details that are relevant yet are missing in relation to the world simulation etc

    I only see messaging and chat, which is not that much for anything more than "quiz-puzzle" alike multiplayer
     
  21. Jedimace1

    Jedimace1

    Joined:
    Jan 2, 2010
    Posts:
    119
    Dreamora: Then you aren't looking hard enough, because it's there.
     
  22. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    Possibly.
    I checked their designs mentioned on the technology page and didn't really see anything.
    Given I didn't missinterpret things:
    There are mentions that indicate that you can / must hook up anything beside chat and networking. As such you can naturally support everything, but and thats a big but, it does not make it an MMO solution of any kind.
    Its just another network solution, basically one of the kind of NetDog but with some differences (and benefits out of my view)

    I like the stuff they mention though and would definitely put it on the list of those backend techs you definitely must evaluate when doing MMOs with Unity, given their prices will be reasonable (as in sFS Pro / Photon reasonable). I've seen the wording of Indie too often in the past and I've seen price tags associated with it that are not at its best day indie anymore. (I think netdog named the single node non scaleable license that once cost $30000 the "indie license" yet thats not even remotely realistic for a single node networking library not even on the professional side)

    But the real work, the dirty work, thats designing and developing the services (especially simulation service) in a performant way relies on you so its nearly as far out of reach as without that. Its just "scaleable out of reach now" ;)
     
  23. Quietus2

    Quietus2

    Joined:
    Mar 28, 2008
    Posts:
    2,058
    It looks very nice. I'll have to keep my eye on it.

    While very useful for certain types of games, such as Diablo or GunZ Online, I wouldn't for an instant think of making an MMO with it. The authoritative server model exists for a reason, and peer->peer's drawbacks are it.

    It's especially exacerbated by the ease with which you can decompile or interject your own code changes into a Unity standalone. It would be a hacker's paradise.
     
  24. Jedimace1

    Jedimace1

    Joined:
    Jan 2, 2010
    Posts:
    119
    You realize they built it to make MMOs, right?
     
  25. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    Define MMO.

    Most here see MMO = WoW and alike type of game.
    Not Diable, GW or Facebook "play and socialize" MMOs.

    The peer to peer communication is definitely not standard in the first "normal game" MMO, normally all communication between clients goes through a server service of some kind. For the second case peer to peer is more commonly up to a given degree

    its a pretty flexible solution for more than just MMO
     
  26. Quietus2

    Quietus2

    Joined:
    Mar 28, 2008
    Posts:
    2,058
    Can you make a peer->peer MMO? Sure. As various groups of players disagree on the current world state, persistence would be difficult but not insurmountable. However...



    One word: Stone of Jordan.

    You can either live with the drawbacks of peer->peer, or do like Blizzard and mass ban players on a periodic basis in lots of 100k or more. Is either choice really good for an MMO?
     
  27. ColossalDuck

    ColossalDuck

    Joined:
    Jun 6, 2009
    Posts:
    3,246
    @Quietus

    I love Diablo 2, and I am unable to wait for Diablo 3.
     
  28. Nesmibi

    Nesmibi

    Joined:
    Apr 30, 2010
    Posts:
    10
    I know this post is old but I'd like to ask the same question two years after.
    I read a lot of stuff about the ElectroServer/Unity subject but never found any example of communication between them.
    Apparently, it is possible to make ElectroServer communicate with client-side Flash API's but Unity isn't.
    So, is there another way for ElectroServer to communicate with Unity (by C#, JavaScript, Boo or even Mono) ?

    Thanks a lot for your answers !
     
  29. devilkingx

    devilkingx

    Joined:
    Jan 4, 2010
    Posts:
    98
    so pretty much unity is better for borderlands style mmos rather than WoW(1 billion players)/runescape(even though it sucks)/everquest1 and 2/maple story(3.5 million players)
     
  30. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    I don't see how player numbers even are of importance.

    The server will not be hosted with unity no matter what, just the client and on that end its more capable than EQ and EQ2 together cause EQ1 is very restricted and EQ2 for a long time had inacceptable requirements (while still suffering the original problems)


    Runescape might potentially get away better as their tech is totally focused at their specific use, it might become a real task to compete with that functionality wise without source license or at very least the Unity Browser Caching addon license.

    WoW is not worth thinking about, as I doubt you have the tens of millions to pay the senior and veteran staff and artist hords for the next years to compete with that.
     
  31. Ashkan_gc

    Ashkan_gc

    Joined:
    Aug 12, 2009
    Posts:
    1,117
    too old topic, but atm unitypark suite of www.muchdifferent.com is another option which is a good one. Take a look if you are interested.

    It handles network load balancing and allows unity logic run on the server. It has a good backend for databases which is called Riak. Riak is a no sql thus scalable database. They have ready lobby and a fantastic special tech for having simless worlds called pikko server however licensing it might not be that easy.
    They have their tools available on their website for you to try and use.
     
  32. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,816
    +1 for the UnityPark suite of products.

    They also have Pikko, which is a scalable cell server solution with mast-based traffic distribution architecture.
    If anyone is thinking of making an MMO using Unity, they may want to read the Pikko server white papers to read about the tech behind there, which quite frankly, is pretty awesome.

    http://www.muchdifferent.com/?page=game-pikkotekk
     
  33. Ashkan_gc

    Ashkan_gc

    Joined:
    Aug 12, 2009
    Posts:
    1,117
    Yep, UnityPark is a great solution even without Pikko server. Pikko server opens the door for design of some new kinds of multiplayer/MMO games but even without that they are really powerful.
     
  34. MagnusZane

    MagnusZane

    Joined:
    Feb 13, 2012
    Posts:
    147
    I'm currently working on a massively-multi-player real-time action game... I'm using smartfoxserver 2X. no problems yet, and the game is really coming along!
     
  35. Ashkan_gc

    Ashkan_gc

    Joined:
    Aug 12, 2009
    Posts:
    1,117
    @Magnus You should not get into problems if you choose something that you have knowledge with and can do what it says it's doing good. Smartfox is really good if you want to make your server side code using Java.
     
  36. whyunoworkunity

    whyunoworkunity

    Joined:
    Sep 27, 2012
    Posts:
    27
    Why you would inflict Unity upon your MMO dev team is beyond me. Are you a particularly masochistic project manager? Could you imagine the horror of syncing projects with a dev team large enough to facilitate the development of an MMO with Unity? I can see it now; the missing script errors, the superfluous "importing assets" messages, the doubling of the size of the number of files in your folders because of the hideous, HIDEOUS meta data system. And there will always be one dev who wants to change their Unity skin to a high contrast look to help their damaged eyes. I believe the going rate for saving your eyes from the ugly UI is $1500 with Unity.

    In seriousness, Unity would be a rubbish choice to build an MMO. MMOs are a highly specialised area of game development that practically demand your own custom client-server solution. If you were to build an MMO with Unity, you would forever be working around the quirks of the IDE. Unity is great for building third person indie games, but anything else, even 2D games will showcase its weaknesses. This is of course expected; when you're targeting as many platforms as Unity does and encouraging people to program with a scripting language eerily reminiscent of Javascript, you're going to make some...

    ...trade-offs.
     
  37. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,816
    Judging by your forum name, you sound like a Unity hater, and probably only around these forums to bad mouth it.

    An MMO team doesn't need to be huge. One full time programmer can get something playable in a few months using Unity and some of the 3rd party tools I've mentioned above. Sure Unity has some flaws, so does every engine. But I bet you'll be able to push out an MMO faster than any of the mainstream engines (aside from the ones specialised for quick MMO creation)
     
  38. whyunoworkunity

    whyunoworkunity

    Joined:
    Sep 27, 2012
    Posts:
    27
    Let's not confuse MMO with a standard multiplayer game with a persistent world. An MMO means Massively Multiplayer, as in hundreds of players playing concurrently in the same area. (e.g. world vs world in Guild Wars 2). To produce something on that scale you absolutely need a big dev team with an extremely capable and streamlined game engine. You need to consider things like rapidly streaming textures/models/sounds/animation from your HDD into memory as players near each other, level of detail, massive streamable world environments and terrain and an optimised messaging system between the client and server. Unity is simply not capable of this. You cannot hope to achieve the sort of performance required by an MMO when the language you're programming in is so far removed from what actually executes on your machine when the game runs. One full time programmer might be able to get something up and running in a few months, but they sure as heck won't have a stable engine that scales well with player load for a very, very long time, if at all.

    Don't get me wrong, Unity is great for what it is - a quick and easy way to create simplistic games / proof of concepts for devices with low computing power (e.g. hand helds) and distribute those games on a variety of platforms, but trying to make a game as big as an MMO on it would be like taking your 10 year old pickup truck to a Formula 1 race and expecting to qualify.

    As for hating Unity; I don't outright hate it, but I do think the UI designer needs to have a good talking to, and the meta data system simply needs to be taken out back and shot. It also performs extremely poorly on devices with low fillrates without specific optimisations, such as never using the 2D GUI, ever.
     
  39. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,816
    uLink/Pikko MMO Server for Unity takes care of a lot of this for you. Sure, MMO's are a lot of work, but realistically you could get something playable in a few months. There are good 3rd party tools out there which can make Unity a lot more powerful.

    To say Unity is 'not capable' is jumping to conclusions, unless you've done it yourself and tried all the 3rd party tech out there available for the product.
     
  40. spectre1989

    spectre1989

    Joined:
    Oct 6, 2009
    Posts:
    125
    The Missing Ink is made in Unity. As Mr Helgason says, it'll work great for an MMO client, DON'T use it for your server, and DON'T use built-in networking unless you're insane. Use regular sockets, and build your servers in something other than Unity or they'll probably fall over. If you want to make an action game or a shooter or something where competitive multiplayer is essential, just use UDK.
     
  41. Ashkan_gc

    Ashkan_gc

    Joined:
    Aug 12, 2009
    Posts:
    1,117
    @spectre1989
    Please do provide reasons, If you want to do X do it Y way can be great if you justify it but otherwise it will not make sense for people to follow. Don't want to be rude or rush on you but use UDK for X and don't use unity on the server are bold statements which should be provided with reasons. Something like this
    1- Use UDK because of it's visual fidelity and lots of ready FPS features for those kinds of games. Then one can accept it or counter argue that he doesn't want to pay royaltee or the workflow is not as good as he wants or ...
    2- Use socket servers and build server logic yourself because unity seems heavy weight for that on the server. Then I'll argue that chances are high that your own library of collision detection and logic stuff on the server (If you are doing a real game and not using server only as message relay), is less performant compared to unity. If you are doing it in pure C++ and really know what you are doing then (i know you are not here reading this in that case because i'm a novice compared to you) it's ok but that requires a big team and lots of time and skill to become true and at the end might not pay the difference in server costs.
    Lots of commercial games used alikes of their client engines on the server. APB for example uses Unreal on the server AFAIK and one of their developers wrote on a blog post (developers of David jones's first team not the new one).
     
  42. Maewyn

    Maewyn

    Joined:
    Oct 3, 2012
    Posts:
    11
    Since this thread oddly still seems to be alive, has anyone tried the Photon Server?

    There seems to be a lot of support for it in the Asset Store. I've downloaded the non-expiring free version (100 concurrent) from Exit Games's web site (they are based in Germany). I haven't tried it out yet, but their Indie pricing ($99/unlimited/1 server) makes them a much better option from a financial standpoint (over the other two listed on the Unity website).

    I'm fairly new to Unity (again). I've used it a little in the past but never got into heavy development with this engine in particular. Current resources have changed things so that I have the option to use Unity along with a server option (I'll be checking out some of the others listed).

    Anyway, if anyone has used the Photon Server, I'd be interested in your feedback.
     
    Last edited: Oct 3, 2012
  43. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,816
    This.
    Please can we have your detailed reasoning for your assumptions Spectre.
     
  44. spectre1989

    spectre1989

    Joined:
    Oct 6, 2009
    Posts:
    125
    Hey guys, sorry I didn't really elaborate, I wrote that last night before bed and didn't want to keep my other half awake with my tapping away at the keyboard!
    Don't build your server in Unity because an MMO server needs to be as streamlined as you can make it. You make the point about collisions and so on, the availability of Bullet, Physx, Havok etc means you could have collision detection on a par with Unity's performance, but having the client and server agree on collisions and physics at a detailed level is tricky, and best avoided if you can. Granted there are MMO's nowadays that do this, but they've got a good number of excellent experienced people on those projects.
    Even if you were using Unity for an MMO server, you'd want to use sockets so that you could be as economical as possible with the data you send to clients, and that therefore means your clients will need to reply in a similar fashion.
    This statement was perhaps a little harsh, but I've spent quite a long time working on creating a source-engine-style networking model in Unity, with proper client-side prediction, rewind and replay, and lag compensation. Unfortunately because of how locked down the physics system is, this makes rewind and replay (and therefore client-side prediction) a bit of a bitch. Also if you plan to support a large number of networked entities you'll need a priority updating system. With the exception of lag compensation (which can be added surprisingly easily), all of this stuff already exists in UDK. It also comes with a whole lot of FPS code out of the box, but it does mean getting up to speed with Unrealscript and all of their tools etc. However, if you're making a coop game, or you're not hugely bothered by cheating, then totally go ahead and use Unity. I do find the built-in networking inadequate for anything other than prototyping, I had to make my own protocol with sockets to get it to feel responsive, but maybe it's better these days.

    All that said, I could very well be completely wrong on everything I've said, I'm absolutely not a server expert, and I've only been working in the industry professionally for a few years. I have no commercial FPS experience, but we have successfully made MMO games, The Missing Ink being our first Unity client which plugs into our own proprietary back-end. It's very easy for me to say "build your own server back-end, we've done it with a small team", but that's with 1 or 2 very talented server guys continuously working on it and updating it over the years.
     
  45. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,816
    You seem to suggest that Unity's built-in networking is the only solution for networking/server operations.
    We are not talking about the built-in networking, nor would we recommend it. We are discussing Unity and whether it's possible using 3rd party libraries if needed if it's possible to make an MMO, which it surely is.

    Regarding the physics on the server/client.. in this case an authoritative physics server that handles all the physics calculations is often the best option, with the resulting transforms being pushed to the client. Of course there are some tricks to hand over some of the physics to the clients to decrease server load which can also be developed.

    The 3rd party libraries such as uLink/Photon are way more efficient than Unity's built-in networking when it comes to performance and optimisation, and have been very well written by expert network programmers.

    Making an MMO with Unity is very possible. The client is more than capable, and with some of the powerful 3rd party libraries/server tech available, there's no reason why it can't be done.
     
  46. spectre1989

    spectre1989

    Joined:
    Oct 6, 2009
    Posts:
    125
    I agree, that's why we made one, we just didn't use it for our server, and I'd advise others to do the same if poss ;)
     
  47. Maewyn

    Maewyn

    Joined:
    Oct 3, 2012
    Posts:
    11
    @ Meltdown - thanks for sneaking that in there. I'll probably test a few different servers, but I think Photon will end up being the one I use.

    As for whether or not Unity is good for creating an MMO...Of course it is! Many game engines are. They just don't have the best networking/server technologies.

    I also have a few comments about whether you can make a good MMO with a small team:

    1) Planning - It's required for any game. For an MMO it can significantly speed up the process. Also, MMORPG's don't have to be built in a day. They continually grow. Finally, don't post everyday with screenshots - look what I've done! I'm sure people enjoy seeing it, but it's a time killer for you.

    2) Skill - Like anything, the more skilled your team is the more efficient they will be.

    3) Resources - This is not as simple as it sounds but it is very important. It's not enough to know of a good tool if you don't know it well enough to use it. Also, there are plenty of sources for prefab assets, either free or for purchase. You may not wish to use them "as is" but they are an excellent starting point and time saver.

    I'm not trying to tell anyone what to do. Just letting you all know that these concepts have worked for me in the past when working on an MMO with a small team. You'd be surprised how quickly it comes together.
     
    Last edited: Oct 3, 2012
  48. Ashkan_gc

    Ashkan_gc

    Joined:
    Aug 12, 2009
    Posts:
    1,117
    Guys
    Due to existance of asset store and also more importantly cloud computing services and generally price of operating games lower and lower and existance of scalable systems which can use many normal PCs instead of IBM servers for games, the biggest issue which was ipeations is solved but still Doing it would require lots of time and resources if you really want to do something with godd quality. If you are a bounch of developers and artists which know what you are doing and have agood game design as well. Do it.

    And choose your technologies with lots of studdy. For something 2D maybe html5 and node'js on server are answers for your team which has a background in web development.