Advertisement

Best game engine for MMORPG?

Started by October 18, 2012 11:12 PM
18 comments, last by UNREALFREAK 12 years, 1 month ago

Regarding GameBryo there is a reason that Trion and Bethesda use a heavily modified version of GameBryo. I know that Trion only uses some of the tools (which were to get them up and going while building their own engine) and Zenimax Online is not using it for their MMO. The architecture of this engine is old and stale and the main reason Bethesda stayed on it for single player games is because they built on it over many years and games. GameBryo is very similar to the Wild Magic engine in architecture although it has evolved slightly over the years.


Actually, from what I've heard Bethesda did not significantly modify Gamebryo until they created "their own" engine for Skyrim, which highly resembles Gamebryo. Trion has stated multiple times that RIFT was built using Gamebryo engine. I wouldn't imagine them lying about not having their own engine for the game. I don't know where you get your information from, but I'm suspicious considering the only way you could actually KNOW they were using a heavily modified version of Gamebryo is if you worked with them or had seen the source code yourself. Your definition of "highly modified" also probably is different from mine. Of course they're going to modify it or add wrappers over some classes to better suit their needs. The ability to do so fairly directly is a big advantage Gamebryo has over other game engines such as Unity.

As for the architecture being "old and stale", this is an opinion. If I were investing millions into a game, I'd definitely prefer a traditional and proven approach rather than a radical and risky one especially for a game engine. If the company wants to take more risks, they should develop their own engine in favor of unproven solutions.


Regarding UE2.5/3 it has been used by numerous companies in the past but you *need* a source license and a lot of work in order to get anything up and running for a massive online game. Also I really don't see any benefit to using UE3 over something tailored directly to the genre.


I'll agree that it would definitely take a lot of work to get it running with an MMO, and you're right that UE3 isn't the best solution if you want to have support for population condensed into a small area. However, I've seen some MMORPGs that are more instanced and could be developed without support for more than 64 players in one area. This isn't an ideal solution, but certainly a possibility.



Star Wars TOR (heavily instanced / story based), The Repopulation (complete open world sandbox), Faxion Online (traditional type MMO) have all been built on HeroEngine and as I mentioned in brackets they are extremely different types of games. I'm not sure what you mean by "too managed"? The tools are extremely in-depth and give you everything to build, run, and manage an online game. Also note that Zenimax Online licensed HeroEngine for The Elder Scrolls Online just for the use of the toolset so they could get started on world building, design iterations, etc while they build their own custom engine.


I apologize for being unclear. By "too managed", I mean the scripting language seems like very high level code in contrast to a much lower level language like C++. The reason I said "seems", was because I haven't played around with it much, but I have played SWTOR for awhile and in my opinion the controls and overall gameplay is quite clunky compared to games like WoW or RIFT. I indeed have not played The Repopulation or Faxion Online. I'm simply stating my opinion based on having played SWTOR and having worked a bit with the engine in the past.



Another great choice is to use a combination of Unity and a socket server like Photon (definitely the best to pair with Unity). You can download the free version of Unity and Photon and get started right away... plus they even give you a small sample to get you started quickly before you have to dig into the docs. Unity has been used for MMO games such as Battlestar Gallactica, FusionFall, etc... so I don't see why there is an issue there either.


Unity is a good engine for browser clients. That's about as far as it goes from what I've seen. Both examples you cited only use Unity for their browser client. In my opinion, if you're going to have 64+ players visible in one area, you're heavily limiting your performance by forcing players to use a web browser. That being said, it may be a good idea to use Unity for a web client, then use another or your own for other platforms. The web client shouldn't be the main platform for a MMORPG in my opinion though.


Actually HeroEngine and Big World have a massive number of AAA MMO games built using their technology and the above you listed really only have a couple (being a few that use a modified UE3... the only MMO I count for using GameBryo is Dark Age of Camelot as the others use a version that isn't even recognizable. Meanwhile UE3 hasn't powered that many either and the ones that did used it had to heavily modify and add to it as well.


Your definition of AAA is very different from mine. The only MMORPGs I've seen Big World's engine produce are Asian(mostly Chinese it appears). I've tried a couple of these said games, and they seem clunky with poor production values typical of Chinese MMORPGs. I'd like to see some proof that RIFT doesn't use Gamebryo heavily. There have also been successful Korean MMORPGs (definitely) using Gamebryo, but I wouldn't count these as AAA. You're right about UE3, but I would still prefer it over Big World or Unity for developing non-browser clients due to the quality of the engine coupled with the successes of RPG games using it.

You seem bias against enterprise-level solutions in this discussion. No development company with a large enough budget to make a decent MMORPG is going to use Unity for an MMO as anything other than a browser port. Unity is great for many genres of games, but MMORPGs doesn't seem to be one of them. I'm not implying that it's impossible to make a multi-platform MMORPG in Unity, but it's definitely unreasonable.


You should consider the amount of work you'll have to do if you start from a more basic engine rather than a more complete solution. An MMORPG is not normally a suitable project if you're just doing it as a hobby that you aren't willing to commit any money to -- do you have any prior development experience?

I have development experience, but (almost) no game development experience. I am not totally unwilling to extend a basic engine, but don't want to reinvent the wheel (and will not do as good a job as experienced game developers in any case). So I will want as complete a solution as I can get (for free at this stage). I assumed that I would need to do quite a bit of coding to implement the game rules in any case, since I don't think anything like what we plan, exists at this stage. But I would like to be able to get to the game logic and story ASAP without working too much on the graphics at this stage (we will probably want to upgrade the graphics etc. later on, but by then will hopefully have a bigger development team - e.g. if we make it open-source).
Advertisement
I'm not going to get sucked into an internet argument but I'll respond to a few points generally and it will be my final response.


Trion has stated multiple times that RIFT was built using Gamebryo engine. I wouldn't imagine them lying about not having their own engine for the game.

Certain engine core components being rewritten due to horrendous performance issues in various subsystems were done.


The ability to do so fairly directly is a big advantage Gamebryo has over other game engines such as Unity.

I agree that not having source access to the client is a big disadvantage to using Unity for a game like this.


As for the architecture being "old and stale", this is an opinion. If I were investing millions into a game, I'd definitely prefer a traditional and proven approach rather than a radical and risky one especially for a game engine. If the company wants to take more risks, they should develop their own engine in favor of unproven solutions.

No it isn't an opinion in the least. The core renderer is nearly replaced in every game using it, the scene graph is cache miss heaven and the old way of doing things which doesn't scale with hardware, there is virtually no multithreading due to not having a job proper system. Also note that as I mentioned BigWorld and Hero Engine are proven solutions.. just because you don't like the gameplay or design decisions it rarely has to do with the engine.


By "too managed", I mean the scripting language seems like very high level code in contrast to a much lower level language like C++. The reason I said "seems", was because I haven't played around with it much, but I have played SWTOR for awhile and in my opinion the controls and overall gameplay is quite clunky compared to games like WoW or RIFT.

You can also write extensions in C++ without a source license if you run into scripting performance issues. Also controls and gameplay in SWTOR are design decisions you could easily clone WoW or RIFT with it if you chose to do so.


Unity is a good engine for browser clients. That's about as far as it goes from what I've seen. Both examples you cited only use Unity for their browser client. In my opinion, if you're going to have 64+ players visible in one area, you're heavily limiting your performance by forcing players to use a web browser.

You could just as easily cross-compile a native desktop application if you wanted to. Not to mention there is no 64 player limit unless you are going to use the default Unity networking subsystem... which they will even recommend you not to use and to go with Photon, Smartfox, etc.


Your definition of AAA is very different from mine.

AAA is commonly known as big budget titles and has nothing to do with whether you like the game or it was a flop commercially.


You're right about UE3, but I would still prefer it over Big World or Unity for developing non-browser clients due to the quality of the engine coupled with the successes of RPG games using it.

Then you've never looked at the source... the amount of work needed to modify the networking subsystem is extremely substantial. Ask anyone who has worked with UE3 how fun it would be decoupling the networking and building a new system. Sure it definitely has been done before but the amount of work is staggering. At the same time the OP isn't asking for a 6-7 figure engine... which you would need since you couldn't do it with UDK alone.


You seem bias against enterprise-level solutions in this discussion.

Not at all, Big World and Hero Engine are the enterprise level solutions that come boxed and ready to go without extremely heavy modifications.


No development company with a large enough budget to make a decent MMORPG is going to use Unity for an MMO as anything other than a browser port.

Completely your own opinion once again. Companies like BigPoint, EA, Cartoon Network, etc have large budgets and have put together some great games using Unity. None of them are "browser ports" but that is their target. If they wanted to they could have distributed Windows and Mac binaries by cross compiling.


Unity is great for many genres of games, but MMORPGs doesn't seem to be one of them. I'm not implying that it's impossible to make a multi-platform MMORPG in Unity, but it's definitely unreasonable.

It's already been done multiple times.

Also for the record I've actually worked with GameBryo, UE3, Unity, Reality, and have worked on more than a few custom engines.

I'd like to see some proof that RIFT doesn't use Gamebryo heavily.



Heroes of Telara runs on a heavily modified version of the Gamebryo engine - source
A heavily modified version of Gamebryo 3, indeed, with extra bells and whistles added on by us. - source
[/quote]


No development company with a large enough budget to make a decent MMORPG is going to use Unity for an MMO as anything other than a browser port.

Not relevant -- we're advising a beginning developer who has little to no budget.

- Jason Astle-Adams


I'm not going to get sucked into an internet argument but I'll respond to a few points generally and it will be my final response.


All right, then I'll make this my final response as well.



Certain engine core components being rewritten due to horrendous performance issues in various subsystems were done.

I'll give you this, although I have doubts on how you would have obtained this info. I've only used a demo of Gamebryo, so it's hard for me to be certain that it would require any major rewrites. However, poor performance on certain components is far from breaking the engine. The source code license is relatively cheap compared to MMORPG development costs, so I wouldn't say having to rewrite certain components would be a big reason to rule out the engine. It's far from ideal, but I'd definitely rather be able to rewrite certain components than being forced to make work-arounds without source code.


No it isn't an opinion in the least. The core renderer is nearly replaced in every game using it, the scene graph is cache miss heaven and the old way of doing things which doesn't scale with hardware, there is virtually no multithreading due to not having a job proper system. Also note that as I mentioned BigWorld and Hero Engine are proven solutions.. just because you don't like the gameplay or design decisions it rarely has to do with the engine.

Have you ever played SWTOR? I can't say that the engine is at fault, but there are many reasons why SWTOR flopped after the first couple months of release, and why RIFT is still going relatively strong(especially if you compare the initial player base).


You can also write extensions in C++ without a source license if you run into scripting performance issues. Also controls and gameplay in SWTOR are design decisions you could easily clone WoW or RIFT with it if you chose to do so.

I'd definitely prefer native control over the game executable in such a big project. Extensions are far from ideal for core components in most cases. I would argue you could not clone WoW or RIFT with either BigWorld engine or HeroEngine without source modifications or major hooks to the engine. It might be possible, but certainly wouldn't be easy to get that same level of performance.


You could just as easily cross-compile a native desktop application if you wanted to. Not to mention there is no 64 player limit unless you are going to use the default Unity networking subsystem... which they will even recommend you not to use and to go with Photon, Smartfox, etc.

Of course you can cross compile it to desktop, but the question is why are they marketing it as a web game. I haven't played any of these Unity MMOs, but I may give one a try soon to see what they have achieved in terms of performance.


Then you've never looked at the source... the amount of work needed to modify the networking subsystem is extremely substantial. Ask anyone who has worked with UE3 how fun it would be decoupling the networking and building a new system. Sure it definitely has been done before but the amount of work is staggering. At the same time the OP isn't asking for a 6-7 figure engine... which you would need since you couldn't do it with UDK alone.

Yes, it's a huge job to redo the networking. However, if you're looking to go big(which any MMORPG should be in my opinion), it's certainly worth considering the proven power of the UE core.


Not at all, Big World and Hero Engine are the enterprise level solutions that come boxed and ready to go without extremely heavy modifications.

I would be curious as to how many modifications Bioware had to make with HeroEngine for SWTOR's development, but I'd wager a lot. A ready-to-go solution is nice, but can be very misleading.


Also for the record I've actually worked with GameBryo, UE3, Unity, Reality, and have worked on more than a few custom engines.

I'm envious of your experience. You may be right that using Unity would be a great solution for an MMORPG, but I'd just prefer a more controllable environment for such a large and expensive project.




[quote name='xLethal' timestamp='1350727218' post='4992091']
I'd like to see some proof that RIFT doesn't use Gamebryo heavily.


Heroes of Telara runs on a heavily modified version of the Gamebryo engine - source
A heavily modified version of Gamebryo 3, indeed, with extra bells and whistles added on by us. - source
[/quote]
[/quote]
I never said anything about Heroes of Telara, but that could be relevant. Remember that heavily modifying an engine is still usually easier and cheaper than building your own.


[quote name='xLethal' timestamp='1350727218' post='4992091']
No development company with a large enough budget to make a decent MMORPG is going to use Unity for an MMO as anything other than a browser port.

Not relevant -- we're advising a beginning developer who has little to no budget.
[/quote]
True, but the topic clearly asks what the best engine for an MMORPG is. I don't like going around to topics saying, "Well don't even bother asking this because you aren't anywhere near experienced enough to make <X>." Although that may also be an appropriate response, I prefer to answer the question without judging the person's motives for asking the question. He never asked if a beginner can make an MMORPG(like Mass Effect as he stated). If you tell him to use a free/cheap solution like Unity, he may put a lot of work into it in hopes that it will end up like Mass Effect, which would likely lead to disappointment.

My advice to OP: Use a free/cheap engine to learn only. Start with small projects, a MMORPG is a huge project in almost all cases. Once you're more familiar with the world of development, then decide what you want to do.

I never said anything about Heroes of Telara, but that could be relevant.

Actually you did :) That was the name for Rift all through development and even to initial marketing stages until they changed it to Rift: Planes of Telera.
Advertisement
What about Torque3D, which recently went open-source? It was originally made for the FPS-MMO Tribes, and it seems to be what you are looking for in an engine.
It's coded in C++ and uses TorqueScript (very similar to C-syntax) for scripting.

What about Torque3D, which recently went open-source? It was originally made for the FPS-MMO Tribes, and it seems to be what you are looking for in an engine.
It's coded in C++ and uses TorqueScript (very similar to C-syntax) for scripting.


Tribes is not an MMO, (Tribes2 capped out at 128 players per server, the original had an even lower cap) and Torque3D is capped at 255 players, it requires quite heavy modifications to be suitable for an MMO.
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

Tribes is not an MMO, (Tribes2 capped out at 128 players per server, the original had an even lower cap) and Torque3D is capped at 255 players, it requires quite heavy modifications to be suitable for an MMO.


You are right. There have been MMOs created with it though. I still argue that a more robust, free, engine (and focused on multiplayer) is difficult to find.
Hey I am new at this site. I really love this I am finding so much info about games and stuff. After reading this post I remember a full framework i once found for creating your own mmorpg. Its so cool you even have character costumization a client and a server you can extend. WTH its all opensource i remember. I found it in Wikipedia. It really great if you would like to build up from scratch. You can import heightmaps and alot of things. It wass a while back i used it its probably updated now.

http://www.multiversemmo.com/

Its awsome.

This topic is closed to new replies.

Advertisement