MMORPG Utilizing Valve's Source Rendering Engine

Started by
25 comments, last by JJacobo 18 years, 11 months ago
Because none of my threads can be an easy read, I am going to offer some information on our plans for our Medieval/Fantasy-based MMORPG project and humbly request any feedback. =P Please note that I am not a professional coder, and am trying to understand our technical goals from a developers standpoint. We have just finished liscencing Valve's Source rendering engine for our project and our goal is to convert it to a fully functioning, dynamic and persistent game world. Now, I mentioned that we will be utilizing a voice system in my last thread, but I would like to bring up a small sample of some of the more technical features: - Powerful Character Customization Players will be able to edit their face shape, hair/skin color, nose width, etc.. Additionally, there will be several layers of clothing/armor that can be customized as well. - Innovative Combat System Since the Source Engine can offer dynamic action, players will be able to swing, duck, and doge blows in real-time, fire bows from 1st Person, or aim a ranged spell at a target. - Interactive Spacialized Voice System Players can approach one another and speak over the microphone, to be packaged with the retail copy. - Speaking NPCs and Voice Recognition NPCs will regonize certain key words, such as a name of a key character or the command to buy or sell. Also, spells will be casted by speaking aloud incantations into the microphone. - Fully Rendered and Interactive Items Items can be held and manipulated, offered, traded, used, even played upon (in the case of instruments), and will be rendered instead of the traditional MMORPG gump system. - Innovative War Campaigns Like a strategy game, different nations/races will be able to build up their forces to wage war upon their enemies' territories. Armies will consist of players, in-game actors (for larger less frequent events) and NPCs which will follow the orders of commanding officers in battle such as: push catapult, fire catapult, advance on location, defend the line, heal, pillage, and retreat. - Large Populated Worlds There will be relatively few servers with large and spread out countries amonst the vast in-game world. If your heads are hurting you should see our coders! Anyway, I would like any feedback on ideas on how to realize some of the following features. We are a little Art-Heavy on the team at present as we have more Developers and Artists (2D/3D/Animators) than we do programmers. Please try to keep the feed-back constructive, as we realize the scope of the project. I would really like to hear what our talented devs here, have to say. =] (shameless flattery) [Edited by - JJacobo on May 14, 2005 5:36:13 PM]
Advertisement
Wow. How are you planning on handling all the clients though? I thought that the source engine had limitations on the amount of clients you can have connected to a single map.
Well, more than any other programming difficulty, this is our paramount issue. The network side of the software architecture will have to be reworked to accommodate potentially, hundereds of players on screen at the same time. Additionally we do not have the luxory of a single-player game where we can load each small area, as needed nor that of a contained multiplayer game. The challenge will be to create a zoning (or map) system that can provide information to our players and databases dynamically.
Rofl how much did it cost? It sounds like you guys are trying to make one hell of a game.

The problem i see with using the Source Engine for an MMO is that a lot of that stuff would probably cause very high latency (physics, voice, NPC's if they can recognize voices and commands, and dynamic action). Your gunna be sending tons of stuff over the wire and that's probably going to be a problem.

Personally, if i were going to use the Source Engine for an MMO i would probably only use the graphics. Most of the other stuff would probably only cause problems.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                                          
Looking for video game music? Check out some of my samples at http://www.youtube.c...ser/cminortunes            
                                                          
I'm currently looking to create music for a project, if you are interested e-mail me at cminortunes@gmail.com    
                                                          
Please only message me for hobby projects, I am not looking to create music for anything serious.
Well, of course certain limitations will have to be put into place, but the physics engine will be important for creating realistic combat interactions. Some spells in Kinetic Magic, for example might send an enemy flailing like a ragdoll. As for the latency, we will be limiting and balancing what is processed by our server versus what is processed by the individual clients. For example when speaking to an NPC your client will recognize the keyword and a simple command will be sent to the server so that the NPC will respond with a scripted reply already on the client machine. The Source Engine allows for streaming technology though for voice communication, but that's a topic for another thread (which it has been). We're not pretending that it is not gonna be a lot of work. =P
From what you've written, it sounds terrifingly like you don't have anyone who's highly experienced with building distributed systems or high performance network servers. Without at least one person (in charge of the team!) with that background, you are doomed. I have consulted for several MMO's and I speak from experience: I've even seen a perfectly competent (but not great) guy in this role fail to save the project because he wasn't senior enough, and there were people with the power to overrule him.

So, I have just one piece of advice: go hire some real ****-hot network programmers who really understand this stuff. Without it, you're dead. Valve, Unreal, etc are all useless for MMO work, and they know it - you *have* to do all the hard MMO-stuff yourself.

Shrug. Just MHO. But I do do this stuff professionally (currently building a new system for circa 1 billion hits per day).

redmilamber
How did you get the several hundred thousand $ to license? Did someone invent a money tree and not tell me about it? :)
Quote:Original post by Anonymous Poster
From what you've written, it sounds terrifingly like you don't have anyone who's highly experienced with building distributed systems or high performance network servers. Without at least one person (in charge of the team!) with that background, you are doomed. I have consulted for several MMO's and I speak from experience: I've even seen a perfectly competent (but not great) guy in this role fail to save the project because he wasn't senior enough, and there were people with the power to overrule him.

So, I have just one piece of advice: go hire some real ****-hot network programmers who really understand this stuff. Without it, you're dead. Valve, Unreal, etc are all useless for MMO work, and they know it - you *have* to do all the hard MMO-stuff yourself.

Shrug. Just MHO. But I do do this stuff professionally (currently building a new system for circa 1 billion hits per day).

redmilamber

Well I do agree with you that IF we're unable to secure more professional network programmers, we WOULD be doomed, but rest assured that we do have a working idea of what will be required and we are still currently in pre-production. One thing we do have are producers who understand business, and the details are partially the team's job to supply to them.

We understand the risks involved with the high production costs (though the lisence itself is nowhere near one hundred thousand, DrEvil =]) and long development cycle and are prepared to pay (in dollars as well as hours) what is necessary for professional talent and a sound system.

Regarding our current team, we have two professionals with extensive experience in "high performance network servers" yet none as yet with specific MMORPG "high performance network servers". Your criticism is well, received though, as we will not enter production (i.e. start depleting our funds) until our publisher feels confident that our team is capable of seeing the project through. My purpose for sharing the information on developer sites such as these is two-fold: as I've stated gaining community insight is for us an essential aspect to our production. We have found thusfar, that professionals on sites like this have been extremely, helpful and several have offered their specialized talents and abilities to aid our project. Additionally, more than a few ideas raised over PMs, emails, and threads regarding our project have resulted in a reevaluation, and new direction taken.(not on a whim mind you =P)

I apologize if I have represented our project as a volunteer's hobby or as an ill-planned piece of vaporware, but my lack of complete disclosure has been in part a protection of our assests. Plus, as I have stated I am not a programmer and don't want to sound exceedingly ammateur! =P

"Valve, Unreal, etc are all useless for MMO work, and they know it - you *have* to do all the hard MMO-stuff yourself." We agree that the software architecture (especially on the networking side) will need a complete redesign but the engine is far from useless. NPC interactions (speech included), combat physics, graphics rendering (culling and LODs were a huge plus), scenes, even wave streaming are all beautifully performed by Source, and hopefully our end product will be the result. I understand that these are indeed tools, and not a prepackaged solution as I suspect you're getting at.

"So, I have just one piece of advice: go hire some real ****-hot network programmers who really understand this stuff. Without it, you're dead." I agree 100% .
If any of you "****-hot network programmers who really understand this stuff" are interested contact me or keep an eye out for classified in several online (Gamasutra included) and industry journals (L.A. circulation). =]

I appreciate the feed-back btw, everyone.
Just FYI you could actually build a custom MMOG engine and game faster than building one on the Source engine. You basically have to scrap almost every single feature of Source and the way it works in order to support that game genre.

Obviously you are not sure what you are doing either, as you said you would have to change the 'networking' to handle all of those players.. where that is the smallest problem compared to the rendering, physics, logic, etc. Source is made to handle a certain problem space and an MMOG is so far off the radar it isn't funny. This is probably the worst actual engine choice to make in this case, honestly.

EDIT:
Quote:
We understand the risks involved with the high production costs (though the lisence itself is nowhere near one hundred thousand, DrEvil =])

You obviously have no idea what you are talking about now.

Quote:
We agree that the software architecture (especially on the networking side) will need a complete redesign but the engine is far from useless. NPC interactions (speech included), combat physics, graphics rendering (culling and LODs were a huge plus), scenes, even wave streaming are all beautifully performed by Source, and hopefully our end product will be the result.

Just FYI none of the aspects you mentioned are actually usable in an MMOG setting, sorry to burst your bubble. You will have to redo the majority of the core rendering system, the scenegraph and world system, the physics, and obviously a complete network rewrite. To top it off you'll have to redo the majority of sound as you obviously don't want 100 different sounds trying to play at once.

Find the right tool for the job seriously, you chose probably the worst possible engine to work on a project like this with.
Quote:we have two professionals with extensive experience in "high performance network servers" yet none as yet with specific MMORPG "high performance network servers"


Note that writing, say, a high-performance web server has almost nothing at all to do with writing a high-performance MMO server. In fact, some techniques that make web servers fast would actually hurt an MMO server. High-performance database server technology is useful on the back end, but has almost nothing to do with the simulation and networking front-end. So the KIND of networking experience you have is really the most important part.

Regarding using Source: their shader and PVS and basic infrastructure stuff can work just fine for an MMO, as can their art pipeline. Getting a fully working art pipeline is a great boon to get started. Just make sure that you model your characters with lower poly and bone counts than typical Half-Life 2 models, because you'll be drawing a lot more of them. Trying to get the number of draw calls down per character would also be beneficial -- ideally, one per character.

Also, if you want to have a "seamless" world, you'll be in for more trouble than it's worth (IMO). I'd recommend designing for a zoned world (a la City of Heroes, EverQuest, etc).
enum Bool { True, False, FileNotFound };

This topic is closed to new replies.

Advertisement