"MMOs.Not Enabled Yet."

hi
I'm new here in the forum because I've just begun to explore Unity. If I am a little bit blunt here, it's not my intention to stand on someones toes. I'm just a little frustrated and here is why:

I'm a bit sensitive when I comes to big words with very questionable "facts" behind. If you go to www.unity3d.com the very first sentence that welcomes you goes:

"Unity 2.1 - Browser based MMOs [...].Enabled".

I interpret this in way that you (Unity) provides me (Customer) with a solution to create a MMO.

MMO - From Wikipedia: "A massively multiplayer online game (also called MMOG or simply MMO) is a video game which is capable of supporting hundreds or thousands of players simultaneously."

I think it's not too hazardous to assume that in a scenario where thousand of actors interact with eachother and the game itself you need a backend that hold some sort of representation of the entirety of all those sections and all those actors. Between receiving and processing events from the different clients, those clients have to synchronized in return.

This server has therefor to deal with a serious amount of concurrent events in order to arbitrate between the clients to make sure that the players can share the approximately same gaming experience.

From what I've red in the forum, and also from questions in the networking presentation of Unite 2007 there is quite a confusion about the question what facilities Unity provide to help you running a game server. Almost everytime someone asks a question about multiplayer capabilities, there is the mention of "the master server" or "raknet". There is chance that I get it wrong, but I understand the "master server" as system get you over NAT problems and "raknet" as the network layer of the Unity client. These are solutions for network problems. It doesn't help you to manage and control all the transactions between your gamestory, the actors and the objects .

After reading the network documentation, asking and reading in forum I come to the following conclusion:

"Unity - Browser based MMO.Not Enabled Yet."

I know - you can run an instance of a Unity game on Mac or Windows and give it the role of the server. But I don't think this is a MMO ready solution and apparently I'm not the only one.

"davidhelgason", Unity HQ,25, 2008:
http://forum.unity3d.com/viewtopic.php?t=12943&highlight=server
[quote]
"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.
[...]
And as a client, it beats anything else hands down."
[/quote]
David, Unity is indeed a great client. But your statement confirms my insight that it isn't Unity that enables MMOs for me.

(Btw: Electroserver isn't helping either, check their api / if I could afford BigWorld I think I wouldn't belong to Unitys segment / I ignore your mention of Ogoglio in your benefit)

Sorry if I sound a little cranky, but it really took me a lot of time to read about all the stuff just to assure myself that you (Unity) are definitely not enabling MMO for me. I have to enable it my self. Therefore please scratch the mentioned sentence from your frontpage, or show me how it can be done.

ben[/quote]

Hi Ben,

first of all: Welcome!!! :-)

My approach on this (as I've already stated it in other threads like this one) is that I'm looking for technology that doesn't limit my possibilities. A lot of technology does. With Unity 2.0 (the previous version), there were quite a few limitations that you'd have to deal with when developing an MMO, basically to the point where I would have said: "MMO disabled". It simply was not possible for many reasons. Not because I lack the skill (even though that doesn't mean I have it ;-) ), but because the technology simply was not "ready".

After all, 2.0 was the first version to support "native networking" at all (you could still do sockets - as .NET provides them - but that was about it).

As far as I can tell, almost all of these limitations have been removed for 2.1; and this includes things that have to do with professional workflows you simply can't do without in larger-scale projects. So that's what I would call: "enabled". It is now possible. And besides: That's "enabled" with an engine that can run your games in the browser.

Read the full sentence - it starts with "Browser based", that's the really big news because that simply wasn't possible before, at least by far not in the quality it is possible now (as a note: there are browser-based MMOs which run fully in HTML - no graphics involved).

That said: If you think Unity will develop any game for you - you're out of luck. It is just a tool. You'll have to fill the empty canvas Unity provides with life. So, from that perspective, if you understand "enabled" as "it does the hard work for me", Unity doesn't even enable you to develop the most simple kind of game.

As far as I can see, the whole "backend stuff" of MMOs is still a field of research. There are some solutions out there, but I think there's still quite a lot of evolution going on. How many of the "big ones" just used some middleware, plugged it in and there it was?

In my opinion, one significant part of the Art of developing an MMO is getting that right. I think there's still a lot of room for creativity in exactly that area: MMO middleware. It's not the only one, but it is a significant one.

It's not just an idea. Ideas are really cheap (most people have a lot of ideas, and many of them are very good - that's not special at all).

It's putting it to life and making it work smoothly.

So, just as you will need a lot of art assets, a lot of sounds, music, textures; and quite a bit of coding for a single player game - you'll need to add "a lot of distributed game systems logic for massive amounts of players" if you want an MMO. You can buy some models, textures, sound and music today and put it into Unity - just like you might plug in some middleware that you've bought. Only that obviously, plugging in middleware for an MMO is more complex. But the principle is the same (and "just using" 3D models is also not trivial).

That's just my perspective... To me, that headline makes perfect sense and is truthful (and I care a lot about that), because the limitations were removed. I don't understand "enabled" as "it has been done for me", but as "it's now ready for me to use it to do it!"

And I think that's pretty cool ;-)

It's interesting to see that this can be understood in different ways, though...

Sunny regards,
Jashan

With Unity 2.1 we certainly did enable browser based MMOs, which is proven by the fact that two major ones are announced to be in development (and there's more in the woodwork, both funded and non-funded).

As I wrote on the forums recently, we don't provide an MMO-enabled back-end at this time. But as I also wrote there's something for everyone. And of course the work towards integrating or building a back-end will in almost any case be dwarfed by content production.

What kind of project are you working on?

d.

Hi Jashan
I think you're wrong but I have to admit that it's a bit hard for me to hit the nail and make my point entirely clear. This may come from a lack of technical knowledge and experience of developing multiplayer systems. But I don't see a primary obligation in that regard. Primarly I see myself as a customer looking for a specific solution. So I'll try again to specify my requirements regarding the "mmo feature". Hopefully without any redundancy to my initial post.

You compare the latest release with its predecessors and come to conclusion that there is basically no reason to complain because the limitations apparently are gone. This argumentation is false for several reasons. First of all it's wrong from a business point of view. It's Unitys own philosophy to (quote) "Taking the pain out of game development". This promise stands in a more less direct relation to the price of their solution. I think if we talk about commercial software we can expect "the higher the price the less the pain" Just develop a simple game with and for OGRE and then do the same with Unity. If there wouldn't be much of a difference, what about Unitys promise and their business model? Mission not accomplished we would probably say.

But honestly I don't care about Unitys business model, this was just a mind game. I think the second point is more important:

Removing limitations is never the same as as it is to enable something. Freedom is not the absence of prison. Live is not the absence of death. A solution is not the absence of a problem. It may sound philosophical but its a utterly practical matter. If I were a .net guy I could build a company webshop because of the asp.net framework and visual studio, not because there is something like Microsoft.Http.*. To sell the introduction of the http connectivity with a slogan like "Building a Webshop.Enabled" would be unfair because a developer would never accomplish that goal in reasonable amount of time. Building a decent MMO for the indy developper or for a small team is therefor not possible in the moment. It just isn't. That's not a problem per se. It just mismatches with Unity's frontpage.

What would I expect? It's simple. A "headless" Unity service, that provides
- some facilities to handle and monitor scaling issues
- a messaging system
- most importantly a object architecture

I think its not far from the current solution where you install a Unity game on a machine in call it a server. But other than a simple client it should be able to deal with a big amount of concurrent actions (mmo).

ben

If you are doing an MMO, you probably need your own server solution anyway. Not all MMOs are created equal. Running a headless Unity client may make sense if you want server calculated physics, but if you want to support thousands of users on a single server, that is out. If you want an optimized server, you want a customized one.

David is right - compared to everything else, coding your own custom server is a drop in the bucket - with the added benefit of having complete control over what goes on.

Would some sample server code be nice, sure. Do we have server bugs that drive us crazy, of course. These are the realities of making an MMO, vs modding another engine.

At this point, Unity is probably the best browser based MMO solution, period.

Hi Ben,

Where on the frontpage do you find "Indie developer" and "small team"? I see "browser-based" ;-)

Just because UT offers a nice-price license of their software for Indies doesn't mean that an Indie can do the same things with Unity that someone with appropriate budget, team and talent could do with the same piece of software (using the pro-license, of course, which is still very reasonably priced).

Look at the frontpage again and then look at the page that's linked directly from the frontpage. The very first sentence says:

[quote]
Unity has evolved to be the perfect MMO and virtual world client, both in the browser and stand-alone.
[/quote]

They don't say "Unity is now your ├╝ber-cool MMO backend middleware", it speaks explicitely about the client. And then look again: A significant part of the features is "Unity Pro-only features". They talk about Funcom as the developers of Anarchy Online and Age of Conan. That's not "indie business" at all!

So, I think that's very clear, truthful and transparent communication.

Sunny regards,
Jashan

sosauce.com/mesa

Ridiculously small team.

Though it doesn't say MMO for the Indie, it would be a correct statement.

Yeah - that does look pretty impressive!!!

I am a registered user and I like the game too. It would be great if you could find the time to share some experiences made during the creation. I guess because it's in an early state you doesn't have that much concurrent users yet and it wouldn't be easy to test a heavy load scenario. But still if you make some experiences with scalability it would be interesting to hear about that (numbers, etc.)

The other point I'd like to learn more about is your business model. I use and review quite a lot of places that could be categorized somewhere in between 'social network' and 'social media'. Visiting your site I have the same familiar feeling of a slight irritation wether this service is for fun AND profit or fun only. I'm just curious since your obviously looking for people but as far as I can see you dont charge for any of your services. Maybe I'm just too stupid to get it...

Anyway I wish you good luck with the project and I'm definitely going to login again later.

ben

What is an MMO-enabled backend? I thought MMO were big a monsters that you seriously want to have control over this part as it will be highly game specific and critical to the performance of the game. I fear the MMO-backend buzz will run into the same wall as game engines did. Ton of engines exsist that was developed for a specific genre FPS, RTS etc. Then they figured hey we can make this support all games, but the platform still had roots in the genre they developed the core on/for leading to all sorts of pain when implementing a new genre. I tried to do a point of click kinda 3d person adventure game in Source and that was no walk in the park.

Back to the MMO's - NCSoft seem to spit out MMO, but they all share the third person RPG-like genre, which i think they have to as they are all build on the same core.

Question is how do you make an MMO backend that is not genre specific, that does not kill game performance?

What Unity is, is a sweet editor for front end development. On to MMO. Well, Unity is MMO capable. RakNet is the back end they modeled with. v3.01 actually, and this is proven to support solid player base at about 500 players per small server, which actually is around the same as EQ2. Clustering the servers you can have a transparent mass.

Tons of people are jumping onto the MMO bandwagon and looking for a quick fix to a business stressed environment. Now, if you want to 'plug in' your own back end, well, Unity is also very viable to 'plug into' using Unity Pro. Simply put, do you have a quarter million dollars?

Have a look at this link:
http://www.heroengine.com

I have a buddy of mine that works for them, I have seen this thing in action, it STARTS at $250,000 and let me tell you this, you don't own squat. That price is for the basic proffit sharing model.

Unity is less than $2k for pro, and actually just as capable, that one I just linked is DX10 based only, running custom HeroEngine script similar to C# script. Only thing it has over Unity at this moment is its AI model for characters, it is BUILT for MMORPG games. Heck even the editor itself is collaborative. All of the modelers, the script-ors and coders work on the same game without restarting the server.

They lack a MAC client, period. They are not cross platform, and start up without proffit from anything is 250k like I mentioned.

Unity on the other hand, I have solidly compared it against many competitive engines out there, you can plug any back end network into this baby with little to no effort if you know XCode and Cocoa. Networking is actually the least of your issues when it comes to MMO. It is the easiest thing to get up and running if you know what you are doing. Networking the game on a scale of 1-10 is only about a 4, creating all the zones, creating the interactions, doing the storyline, working on the game financials (aka in game design for currency), leveling details, models (oui models I can't count the cash I spent on this area), animation, the list goes on, all of those take up to about a 9 on the scale of issues.

Unity is a truely unique and needed tool if you want to get started on even a regular RPG. If you can write a single player RPG, networking it is cake. You have to write the RPG first.

I'd agree to zumwalts posting almost completely. Except for one thing: In my experience so far (with "small-scale multiplayer with a very simple game logic), networking simply squares the complexity of any game logic you have. So if you have "complexity 4" in single-player, you'll have "complexity 16" in multiplayer, using the same game logic. At least ;-)

But I don't see any "plug and play" solution to this. Using Unity, ALL of the complexity I had to cope with so far had to do with my specific game design. None of the challenges in this area could have been solved by anybody else trying to offer me some "cool middleware" - unless that middleware would have been for exactly the kind of game that I'm currently developing...

But I'd agree that "game logic", even if complexified through networking, is probably not the biggest issue in an MMO. I just think one shouldn't underestimate the complexity that networking adds to even a simple kind of game.

It so certainly does! Know that from experience... :wink:

Cheers.