I just read through this entire thread about MMOs and UDK, and how it's impossible, or really highly improbable that anyone could ever possibly make an MMO with UDK.
I saw a bunch of reasons given to justify this position, and I found many of them lacking...
A little history here... My drive to create my own MMO started in 1998, when I was playing Ultima Online. I seriously started working on the actual game concepts in 1999. Back then, I barely knew how to do database work with MS Access and VBA. Since then, I have taught myself 7 different programming languages, and got to the point where I have taught programming at the college level.
I want to make this very clear... I'm not some 16 year old that wants to "make millions with a wow clone" or anything like that. I'm a 35 year old professional, so please treat me as such in replies.
I am determined to make my game... it's not about making millions, it's about realizing a dream. That said, I fully realize just how much work and effort it will take, and even if it takes another 10 to 15 years to complete, I intend on doing it... with or without UDK.
The question, to me, is not "should I bother making an MMO or not". This question is already answered, so trying to dissuade me from doing it is pointless... and to be honest, would be rather insulting.
Yes, I realize that most MMO projects fail. I know WHY they fail, too... It's not because of a lack of experience or knowledge (you can always learn and grow). It's because most MMO developers are trying to make an MMO for the sake of ... well... making an MMO... to make huge money. They have no original ideas (hello "wow clones"). They have no concept of overall game design... they don't understand the full scope of the project, and focus instead on very narrow or shallow aspects of their design, without integrating it all in to the larger picture.
Most MMO projects don't take the time to DESIGN an actual game before jumping in and trying to make one (hello "WOW clone").
In the years I've been doing research and trying to get a firm grasp on everything I need to make my dream a reality, I have realized a lot of pieces need to be in place for any single solution... You have client-side needs, and server-side needs, and of course, the networking between them.
The thing that frustrates me the most is when people start nay-saying the creation of an MMO and in doing so, cite WOW-like qualities that would make it prohibitive to do so.
"You need to make thousands of quests!"
... Uh... what if I don't have a quest system in my game's design?
"You still need thousands of NPCs!"
... Uh... no you don't... quit assuming my game has things in it just because it's an MMO, and you're used to WOW clones.
Ask yourself this... What kind of assets do you need to create for a single player RPG?
You need the trees, and rocks, and terrain, and water, and physics, and monsters, and inventory system, and pathfinding, and character models, and items, etc, etc... all of the very same graphical assets you'd need for a small multi-player (like 2-16 users) RPG.
Now ask yourself this...
What GRAPHICAL ASSET needs are added by going from a limited number of players, to the whole "massively" multiplayer game?
NONE! The very same "huge amount of work" that needs to be done for an MMO, on the client side, is the same "huge amount of work" that needs to be done for a single, or small multiplayer, RPG.
The only real difference is the scale of the world. Instead of a single "adventure island" (that would likely require many levels), you need maybe an entire continent (maybe 10-50x bigger?)... still requiring... many levels.
If I wanted to have a large SEAMLESS world... and could make it so my small "adventure island" with 10 different levels, could stream together so there's no loading screens... gee, that very same solution is used for the 150 different zones in my large continent! Amazing, eh?
So when I come here asking "is it possible to do seamless level loading?" The LAST thing I want to hear is "ZOMG, you're making an MMO? Give it up dude, it's a pipe dream!" No! Answer my ******* question rather than making assumptions and presuming to know anything about what I know, or what I'm capable of doing, k? Or, if you don't know the answer to the question... just don't reply. It's simple like that!
I realize there are a lot of people coming on here asking "is it possible to use UDK to make an MMO?" I realize that it gets annoying to reply to them... and most of the time, your first instinct is to try to "open their eyes" as to how difficult it would be to do so... Trust me, my eyes are wide open.
I just want answers to my questions about THIS TECHNOLOGY.
I have worked with Ogre3D, Truevision3D, Axiom (ogre .NET port), Auran Jet (most of you don't even know what that is, I'm sure...) I've investigated Big World Tech, RealmForge (when it first started), and Visual3D engine (what Realmforge turned in to more recently)...
I've realized the need for middleware to help build the world... I've built my own middleware. I developed a GUI system for TrueVision, I was part of the OgreDotNet development team...
I've been there, done that, and have the scars to prove it.
MOST of the past 10 years has been trying to find the right fricking solution to making my game... bouncing from place to place, hearing the same tired old lines from naysayers about how impossible it is to make an MMO.
I know it's very hard to make an MMO... and ya know what? The HARDEST part seems to be getting people to give straight answers to TECHNOLOGY questions about whatever engine I happen to be looking in to, without hearing about how "Making an MMO is a ton of work, so you're really just wasting your time".
Now, I've been looking in to UDK for about 2 weeks... working with it, watching tutorial videos, reading documentation, etc. I'm VERY impressed with the rendering technology, the middleware (especially the materials editor believe it or not), and UnrealEd in general.
What I am NOT impressed with, is the documentation and the community here...
-- Source Control documentation says NOTHING about Preforce being required, doesn't link to it, etc... I had to figure it out via forum searches.
-- Most of the documentation assumes a lot of base knowledge before it makes any sense.
-- I ask about the UI stuff... I get mixed messages about UIScene being phased out, Scaleform becoming the new standard, etc... I mention I don't like flash, and in the back of my mind I'm thinking "this is not the optimal solution for an MMO-type UI"... and I get snarky remarks about not liking flash, and preferring not to use it.
I read threads on this forum, with people being ******** (to be quite honest), because people ask a question that "could be found with a 'simple search' of the forums and documentation." I'm sorry, but while this may be true, and it may be annoying to have someone ask about something YOU think is simple to find... doesn't mean they were able to find it so easily. It's a classic case of projecting your own experience on to the other person, and expecting them to be as good as you at finding information. Most people don't even KNOW that maybe the "easily found document" that you linked to was already found, read, and understood by the person asking the question... but it didn't answer their question fully, or was not the real question they needed answered.
BUT... people presume to know what the other person MEANT to ask... so they give a snarky "google it" type of response, and in general just make the whole experience of learning this technology much more frustrating.
Now, I haven't asked many questions here in the forums... mainly because I actually am quite good at finding information myself (even though it's frustrating to find some stuff... I'd rather find it myself right now, than post a question and wait 12-48 hours for responses.) However, I have also found myself reluctant to ask questions BECAUSE of the snarky "holier than thou" attitude I've seen here, and am used to seeing on ALL of the various rendering engine message boards.
Anyway...
THIS IS WHAT I NEED TO KNOW (so far) about UDK, in so far as my needs are concerned, to make my game.
1) I just learned of this 64 player limit on the server side.
I have already programmed my own server, complete with MySQL database and custom-built networking code... I'm fully capable of doing it myself... but I don't want to miss out on the Unreal Server's handling of other aspects of the game. I've heard of this DLLBind thing, but I need to know how it works, and if ultimately this 64 player limit is able to be avoided completely.
2) I need world persistence... thus, I need a server-side database.
As I mentioned above, I have already made my own server-side database, fully accessible through my own game server app... but if Unreal's Server allows for world persistence of not only character data, but world data as well (like... the world WILL have dynamic trees, which grow, and can be cut down)... objects in the game world itself (someone drops an item, others can see it an pick it up), etc... will I have to roll my own, or is that do-able via Unreal Server?
3) Client-side level streaming to support a (virtually) limitless world space...
If you can stream 2 levels together, without a loading screen, you can have 200 on disk and stream them as needed... or 2000.
Before you go in to the difficulties of creating so many of these levels...
L3DT (it's a lot like Terragen or world machine) supports tiled heighmap creation... so I can create an entire continent, and split it in to 512x512 tiles (or 256x256, etc)... each of which I can use as the foundation for each "level" in the Unreal engine.
Imagine a user is in one level, and crosses over some imaginary threshold on the level, and that triggers the level on the nearest edge to start loading...
I need to know:
- Is it possible to have multiple levels loaded at once.
- If so: How many levels can be loaded at once (At least 4 would be the minimum I require, potentially as many as 6 or even 9.)
--- Don't tell me about how beastly a client computer would need to be to handle it... I just need to know if the engine supports such functionality, and I will work out the system limitations myself.
- Where can I go to find out how to stream in another level and position it in the world?
4) As far as UI is concerned... I am VERY concerned about having to use Scaleform. RPG game-play is a TON of interaction with the UI. I would estimate as much as 90% of the gameplay relies on the UI overlay, and not actual interaction with the game world. It's mainly the UI screens that the player interacts with to tell the server what he's doing... the only thing the 3D scene does is act as a presentation layer. The only thing I need to do in the 3D world as far as the user interacting with the world is mouse-picking and movement. Almost all actual commands given to the game are going to be via mouse clicks on a UI screen. Then there's inventory management, etc... all done via the UI. Scaleform seems geared more towards the "informational display hud", than the dynamic UI system required for most RPGs.
I've already worked with UIScene, and find that I like how it operates... I've been told that UIScene is going away... I want to see the official release from Epic regarding this... I need verification from an official source that Scaleform is going to be the ONLY UI system available in UDK...
That's all from me for now...
Serious replies only please?
I saw a bunch of reasons given to justify this position, and I found many of them lacking...
A little history here... My drive to create my own MMO started in 1998, when I was playing Ultima Online. I seriously started working on the actual game concepts in 1999. Back then, I barely knew how to do database work with MS Access and VBA. Since then, I have taught myself 7 different programming languages, and got to the point where I have taught programming at the college level.
I want to make this very clear... I'm not some 16 year old that wants to "make millions with a wow clone" or anything like that. I'm a 35 year old professional, so please treat me as such in replies.
I am determined to make my game... it's not about making millions, it's about realizing a dream. That said, I fully realize just how much work and effort it will take, and even if it takes another 10 to 15 years to complete, I intend on doing it... with or without UDK.
The question, to me, is not "should I bother making an MMO or not". This question is already answered, so trying to dissuade me from doing it is pointless... and to be honest, would be rather insulting.
Yes, I realize that most MMO projects fail. I know WHY they fail, too... It's not because of a lack of experience or knowledge (you can always learn and grow). It's because most MMO developers are trying to make an MMO for the sake of ... well... making an MMO... to make huge money. They have no original ideas (hello "wow clones"). They have no concept of overall game design... they don't understand the full scope of the project, and focus instead on very narrow or shallow aspects of their design, without integrating it all in to the larger picture.
Most MMO projects don't take the time to DESIGN an actual game before jumping in and trying to make one (hello "WOW clone").
In the years I've been doing research and trying to get a firm grasp on everything I need to make my dream a reality, I have realized a lot of pieces need to be in place for any single solution... You have client-side needs, and server-side needs, and of course, the networking between them.
The thing that frustrates me the most is when people start nay-saying the creation of an MMO and in doing so, cite WOW-like qualities that would make it prohibitive to do so.
"You need to make thousands of quests!"
... Uh... what if I don't have a quest system in my game's design?
"You still need thousands of NPCs!"
... Uh... no you don't... quit assuming my game has things in it just because it's an MMO, and you're used to WOW clones.
Ask yourself this... What kind of assets do you need to create for a single player RPG?
You need the trees, and rocks, and terrain, and water, and physics, and monsters, and inventory system, and pathfinding, and character models, and items, etc, etc... all of the very same graphical assets you'd need for a small multi-player (like 2-16 users) RPG.
Now ask yourself this...
What GRAPHICAL ASSET needs are added by going from a limited number of players, to the whole "massively" multiplayer game?
NONE! The very same "huge amount of work" that needs to be done for an MMO, on the client side, is the same "huge amount of work" that needs to be done for a single, or small multiplayer, RPG.
The only real difference is the scale of the world. Instead of a single "adventure island" (that would likely require many levels), you need maybe an entire continent (maybe 10-50x bigger?)... still requiring... many levels.
If I wanted to have a large SEAMLESS world... and could make it so my small "adventure island" with 10 different levels, could stream together so there's no loading screens... gee, that very same solution is used for the 150 different zones in my large continent! Amazing, eh?
So when I come here asking "is it possible to do seamless level loading?" The LAST thing I want to hear is "ZOMG, you're making an MMO? Give it up dude, it's a pipe dream!" No! Answer my ******* question rather than making assumptions and presuming to know anything about what I know, or what I'm capable of doing, k? Or, if you don't know the answer to the question... just don't reply. It's simple like that!
I realize there are a lot of people coming on here asking "is it possible to use UDK to make an MMO?" I realize that it gets annoying to reply to them... and most of the time, your first instinct is to try to "open their eyes" as to how difficult it would be to do so... Trust me, my eyes are wide open.
I just want answers to my questions about THIS TECHNOLOGY.
I have worked with Ogre3D, Truevision3D, Axiom (ogre .NET port), Auran Jet (most of you don't even know what that is, I'm sure...) I've investigated Big World Tech, RealmForge (when it first started), and Visual3D engine (what Realmforge turned in to more recently)...
I've realized the need for middleware to help build the world... I've built my own middleware. I developed a GUI system for TrueVision, I was part of the OgreDotNet development team...
I've been there, done that, and have the scars to prove it.
MOST of the past 10 years has been trying to find the right fricking solution to making my game... bouncing from place to place, hearing the same tired old lines from naysayers about how impossible it is to make an MMO.
I know it's very hard to make an MMO... and ya know what? The HARDEST part seems to be getting people to give straight answers to TECHNOLOGY questions about whatever engine I happen to be looking in to, without hearing about how "Making an MMO is a ton of work, so you're really just wasting your time".
Now, I've been looking in to UDK for about 2 weeks... working with it, watching tutorial videos, reading documentation, etc. I'm VERY impressed with the rendering technology, the middleware (especially the materials editor believe it or not), and UnrealEd in general.
What I am NOT impressed with, is the documentation and the community here...
-- Source Control documentation says NOTHING about Preforce being required, doesn't link to it, etc... I had to figure it out via forum searches.
-- Most of the documentation assumes a lot of base knowledge before it makes any sense.
-- I ask about the UI stuff... I get mixed messages about UIScene being phased out, Scaleform becoming the new standard, etc... I mention I don't like flash, and in the back of my mind I'm thinking "this is not the optimal solution for an MMO-type UI"... and I get snarky remarks about not liking flash, and preferring not to use it.
I read threads on this forum, with people being ******** (to be quite honest), because people ask a question that "could be found with a 'simple search' of the forums and documentation." I'm sorry, but while this may be true, and it may be annoying to have someone ask about something YOU think is simple to find... doesn't mean they were able to find it so easily. It's a classic case of projecting your own experience on to the other person, and expecting them to be as good as you at finding information. Most people don't even KNOW that maybe the "easily found document" that you linked to was already found, read, and understood by the person asking the question... but it didn't answer their question fully, or was not the real question they needed answered.
BUT... people presume to know what the other person MEANT to ask... so they give a snarky "google it" type of response, and in general just make the whole experience of learning this technology much more frustrating.
Now, I haven't asked many questions here in the forums... mainly because I actually am quite good at finding information myself (even though it's frustrating to find some stuff... I'd rather find it myself right now, than post a question and wait 12-48 hours for responses.) However, I have also found myself reluctant to ask questions BECAUSE of the snarky "holier than thou" attitude I've seen here, and am used to seeing on ALL of the various rendering engine message boards.
Anyway...
THIS IS WHAT I NEED TO KNOW (so far) about UDK, in so far as my needs are concerned, to make my game.
1) I just learned of this 64 player limit on the server side.
I have already programmed my own server, complete with MySQL database and custom-built networking code... I'm fully capable of doing it myself... but I don't want to miss out on the Unreal Server's handling of other aspects of the game. I've heard of this DLLBind thing, but I need to know how it works, and if ultimately this 64 player limit is able to be avoided completely.
2) I need world persistence... thus, I need a server-side database.
As I mentioned above, I have already made my own server-side database, fully accessible through my own game server app... but if Unreal's Server allows for world persistence of not only character data, but world data as well (like... the world WILL have dynamic trees, which grow, and can be cut down)... objects in the game world itself (someone drops an item, others can see it an pick it up), etc... will I have to roll my own, or is that do-able via Unreal Server?
3) Client-side level streaming to support a (virtually) limitless world space...
If you can stream 2 levels together, without a loading screen, you can have 200 on disk and stream them as needed... or 2000.
Before you go in to the difficulties of creating so many of these levels...
L3DT (it's a lot like Terragen or world machine) supports tiled heighmap creation... so I can create an entire continent, and split it in to 512x512 tiles (or 256x256, etc)... each of which I can use as the foundation for each "level" in the Unreal engine.
Imagine a user is in one level, and crosses over some imaginary threshold on the level, and that triggers the level on the nearest edge to start loading...
I need to know:
- Is it possible to have multiple levels loaded at once.
- If so: How many levels can be loaded at once (At least 4 would be the minimum I require, potentially as many as 6 or even 9.)
--- Don't tell me about how beastly a client computer would need to be to handle it... I just need to know if the engine supports such functionality, and I will work out the system limitations myself.
- Where can I go to find out how to stream in another level and position it in the world?
4) As far as UI is concerned... I am VERY concerned about having to use Scaleform. RPG game-play is a TON of interaction with the UI. I would estimate as much as 90% of the gameplay relies on the UI overlay, and not actual interaction with the game world. It's mainly the UI screens that the player interacts with to tell the server what he's doing... the only thing the 3D scene does is act as a presentation layer. The only thing I need to do in the 3D world as far as the user interacting with the world is mouse-picking and movement. Almost all actual commands given to the game are going to be via mouse clicks on a UI screen. Then there's inventory management, etc... all done via the UI. Scaleform seems geared more towards the "informational display hud", than the dynamic UI system required for most RPGs.
I've already worked with UIScene, and find that I like how it operates... I've been told that UIScene is going away... I want to see the official release from Epic regarding this... I need verification from an official source that Scaleform is going to be the ONLY UI system available in UDK...
That's all from me for now...
Serious replies only please?
Comment