Is Unity really right for MMOs?

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.

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 :slight_smile:

d.

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.

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

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? :smile:

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” :wink: ).

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 :wink: ). 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 coquitosalonzo … 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!?

Jashan…I concur.

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!

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.

I agree with Jashan completely.
There is no “one fits all” with MMOs.

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

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:

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.

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. :wink:

This topic seems to be brought back from the dead.

Haha, that quote made the card in my mind.

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

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.

Looks interesting.

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