PDA

View Full Version : DDO Game Engine



Yaga_Nub
12-20-2007, 09:24 AM
Just a thought about the DDO game engine...

is it a V8?

a V12?

inline 6?

rotary?

2 hamsters on a wheel?

bandyman1
12-20-2007, 09:30 AM
3 HAMSTERS YOU NOOB!!!!!

Sheesh! Get it right !!!!

Aspenor
12-20-2007, 09:32 AM
It's bandyman with a crank.

bandyman1
12-20-2007, 09:34 AM
It's bandyman with a crank.

NO!!!!! THE SECRET IS OUT!!!!!! I'M GONNA GET FIRED!!!!!

DAMN YOU ASP!!!!!

Raithe
12-20-2007, 09:47 AM
If this is a serious question...

I believe DDO is built using the Havok (http://www.havok.com) (www.havok.com) 3D game engine.

I used to think that DDO was using a custom-built homemade game engine that had just been vastly improved and upgraded from Asheron's Call (though I had never played Asheron's Call - and didn't know what "engine," if any, had been used there).

Lord of the Rings probably uses the same engine, and you can see other titles that use the engine on the web site I linked.

Ron
12-20-2007, 10:26 AM
If I remember right (and take this with a grain of salt, because I have a memory like a steel sieve), DDO and LOTRO use custom engines designed by Turbine. They use Havok products for controlling the physics and/or AI.

VonBek
12-20-2007, 10:31 AM
3 HAMSTERS YOU NOOB!!!!!

Sheesh! Get it right !!!!

Space Hamsters, then :D

Raithe
12-20-2007, 10:59 AM
If I remember right (and take this with a grain of salt, because I have a memory like a steel sieve), DDO and LOTRO use custom engines designed by Turbine. They use Havok products for controlling the physics and/or AI.

Ya, ok, that makes sense. You are probably right.

Yaga_Nub
12-20-2007, 11:00 AM
If this is a serious question...

I believe DDO is built using the Havok (http://www.havok.com) (www.havok.com) 3D game engine.

I used to think that DDO was using a custom-built homemade game engine that had just been vastly improved and upgraded from Asheron's Call (though I had never played Asheron's Call - and didn't know what "engine," if any, had been used there).

Lord of the Rings probably uses the same engine, and you can see other titles that use the engine on the web site I linked.

This is actually supposed to be a tongue-in-cheek thread because I read so many people talking about the "game engine" that probably have zero clue about anything related to "game engines."

But it is nice to see someone (you and Ron) have some information for those of us that are interested in the mechanics of DDO.

Dane_McArdy
12-20-2007, 11:02 AM
They are albino Hymillaian hamsters. And they take forever to get here, and often die waiting for customs to clear, and it takes 8 months from conception till birth, but they only have a life span of 3 months. So the demand is higher then the output.

That's why there is so much server down time. The hampster shipment is late or stuck in customes. They would try breading the hampsters here, but they only mate at high altitudes and below zero tempatures.

Shamguard
12-20-2007, 11:07 AM
<snip> but they only mate at high altitudes and below zero tempatures.

Are we talking hamsters or Canadian's here?:confused::eek::cool::p

Borrigain
12-20-2007, 11:22 AM
Found a top secret Turbine photo of the power generation station for the server room.

http://i128.photobucket.com/albums/p170/Borrigain/skip13.jpg

Rumor is they have a bunch of these. And coupled with:


They are albino Hymillaian hamsters. And they take forever to get here, and often die waiting for customs to clear, and it takes 8 months from conception till birth, but they only have a life span of 3 months. So the demand is higher then the output.

That's why there is so much server down time. The hampster shipment is late or stuck in customes. They would try breading the hampsters here, but they only mate at high altitudes and below zero tempatures.


That's why we have to pay so much each month. :eek:

Yes, I'm aware that's not an Albino Hymillaian, but this photo leaked during the testing phase. The albino's were brought in later as they could produce more "hamster-power".

Hamsters.....meeting the energy needs of the future! :D
Borr.

BlueLightBandit
12-20-2007, 01:16 PM
Here's what I "know" about a game engine... and I have never actually seen the actual script for any of Turbines engines, but I have seen them for NWN, Asherons Call and some older games.

An "engine" is really just a computer program that controls the feedback given to the user based on the input the user gives. You can actually buy a license for these programs to play with yourself. Of course they are expensive, awfully detailed and complex, and often include contracts that say that you will never release any information about such engine to the public in any way shape sort or form... so I wouldn't expect anybody to readily acknowledge whether the two run off the same engine or not.

So here are a few basics. Object interactions work differently on different engines... and different engines have different default settings for such. Comparing the LotRO and DDO engines will work if you want. What is the default attack button on DDO, and what is the default attack button on LotRO? They're different, more importantly the two engines handle combat differently, in where one you control a single action at a single time (you click and your character swings), and the other you click once and the interaction continues until it receives a signal from the server that tells it to stop (generally associated with the mob being dead).

Different engines have different capabilities. The LotRO engine is capable of HUGE multiplayer areas with literally hundreds of people in the same area and does not use "instances" in the same manner. DDO, well lets just say we get lag if our instance is full. Also, we are the only ones where our quest areas areas are different areas than our public areas, and with that the two games handle buffs differently when going from public to "combat" areas.

Party types are different, grouping is different, powerleveling rules are different, combat is different... Character creation is different as well, while you can assign points to different statistics, there are no multiclasses and they don't really have the ability to get out of the cookie cutter builds there.

There are also programs that run on top of the "engine". In DDO, I believe the engine controls the shrines, the doors, the combat basics, the graphical feedback (you click the attack button, your character swings) and the instancing (if characterson instance> X then newcharacter enters goto instance+1). These are all things that aren't changed from one mod to the next. The things that can get changed in an update like monster types, items, spells and enhancements, are all programs that run "on top of" the engine. There are also some things in DDO that get kinda muddled between the two... Monster AI can reside on the engine for a more stable environment, or it can reside on the module for a more customizable and changable experience. Since shrines do the same thing each and every time, they're on the engine... casting enervation may do something different depending on the mob, or the caster level, or if it's a clickie or who knows what else, so casting would be part of the "add-ons" to the engine.

Then again... that's just what I "know"... each person is entitled to their own opinions and the fact of the matters is that very few people on the forums or even in the game have ever actually worked on the actual Turbine engines. I would suspect that a company with the name of Turbine would have some extremely customized engines, even if that was just based on the namesake.

But... if you want to stay tongue in cheek... that's fine too.

Yaga_Nub
12-20-2007, 02:48 PM
Here's what I "know" about a game engine... and I have never actually seen the actual script for any of Turbines engines, but I have seen them for NWN, Asherons Call and some older games.

An "engine" is really just a computer program that controls the feedback given to the user based on the input the user gives. You can actually buy a license for these programs to play with yourself. Of course they are expensive, awfully detailed and complex, and often include contracts that say that you will never release any information about such engine to the public in any way shape sort or form... so I wouldn't expect anybody to readily acknowledge whether the two run off the same engine or not.

So here are a few basics. Object interactions work differently on different engines... and different engines have different default settings for such. Comparing the LotRO and DDO engines will work if you want. What is the default attack button on DDO, and what is the default attack button on LotRO? They're different, more importantly the two engines handle combat differently, in where one you control a single action at a single time (you click and your character swings), and the other you click once and the interaction continues until it receives a signal from the server that tells it to stop (generally associated with the mob being dead).

Different engines have different capabilities. The LotRO engine is capable of HUGE multiplayer areas with literally hundreds of people in the same area and does not use "instances" in the same manner. DDO, well lets just say we get lag if our instance is full. Also, we are the only ones where our quest areas areas are different areas than our public areas, and with that the two games handle buffs differently when going from public to "combat" areas.

Party types are different, grouping is different, powerleveling rules are different, combat is different... Character creation is different as well, while you can assign points to different statistics, there are no multiclasses and they don't really have the ability to get out of the cookie cutter builds there.

There are also programs that run on top of the "engine". In DDO, I believe the engine controls the shrines, the doors, the combat basics, the graphical feedback (you click the attack button, your character swings) and the instancing (if characterson instance> X then newcharacter enters goto instance+1). These are all things that aren't changed from one mod to the next. The things that can get changed in an update like monster types, items, spells and enhancements, are all programs that run "on top of" the engine. There are also some things in DDO that get kinda muddled between the two... Monster AI can reside on the engine for a more stable environment, or it can reside on the module for a more customizable and changable experience. Since shrines do the same thing each and every time, they're on the engine... casting enervation may do something different depending on the mob, or the caster level, or if it's a clickie or who knows what else, so casting would be part of the "add-ons" to the engine.

Then again... that's just what I "know"... each person is entitled to their own opinions and the fact of the matters is that very few people on the forums or even in the game have ever actually worked on the actual Turbine engines. I would suspect that a company with the name of Turbine would have some extremely customized engines, even if that was just based on the namesake.

But... if you want to stay tongue in cheek... that's fine too.

Very good info.

But yes I'd like to stay stay tongue in cheek. It was getting funny. :)

Ironik
12-20-2007, 03:20 PM
Yeah, kinda.

An 'Engine' is more of a tool used to create a game. It's an API, or a application programming interface which is simply a set of tools that allow a developer to... well... develop more rapidly. See anyone can create an engine given the skill, time and effort. What an engine does is allow developers to produce 'content' rather then spending money coding up low level game physics, interactions and what not.

Here's the thing, 'everything' in the game is more then likely content. The engine didn't have a pre made 'door' model that they just simply add in. Somone had to go and use the engine to develop a door with the behaviors that they wanted. What the engine allowed was probably the movement of the door in certain ways, the doors physical properties (ie being able to stop players from moving through it) and the ways to shape the door and apply textures to the door. It is in this way that 'objects' are created and then used to populate the game.

This is how 2 completely different games (ie. world in conflict and DDO supposedly use havok) can use the same engine. I like to think of engines as being my pallet for building a game, much like a painter for pictures.


Oh and by the way, It is reported that the hamsters were cyberneticaly enhanced. *shrug*

BlueLightBandit
12-20-2007, 04:15 PM
Here's the thing, 'everything' in the game is more then likely content. The engine didn't have a pre made 'door' model that they just simply add in. Somone had to go and use the engine to develop a door with the behaviors that they wanted.


A very simple script involving doors would be something like this:
//when user clickson object123 (door) then action teleportuser to location123

That script would work for doors, npcs, chests, mob corpses, items laying on the ground, etc.
//when user clickson object456 (chest) then action givetreasure 456
//when user clickson object789 (npc) then action startconversation 789
//when user clickson objectABC (mob) then action docombat ABC

The engine itself is the code that determines what the "clickson", "teleportuser", "givetreasure", "startconversation" and "docombat" commands do, as these things will never change.

The engine itself also carries movement commands, and things like animation or combat commands which can be a bit more complicated.
//when user pushesbutton 39287 (up arrow) then get directionfacing locationinfo movementspeed then moveuser direcion392 to location287 atspeed LM (20&#37; striding, no haste, no barbarian faster movement, etc)
//when user pushesbutton 332911 (left mouse button) then get objectundercursor then
->//if objectundercursor objecttype=object then do clickson, else doattackswing

What the developers do later on down the road is to create graphics and "personalities" for object456 and treasure456 and make them different than object123 and object789. Those personalities can include the graphics of the armor you're using, whether the door looks like a door, like a teleporter machine, or like a hole in the ground. They also determine whether mob3729244 is a kobold or a beholder or a treasure chest or a Kargons Tasty Ham. Then writing team then determines features unique to THAT object: kobolds have 0AC and +2 tohit, beholders cast spells A, B, C and D, treasure chests function simply (doanimationY (open chest) and openwindowZ (give random treasure from table 234242)), while Kargons Tasty Ham has it's own separate wonderful tastiness. Then the art department makes it LOOK like a kobold or a beholder or a chest or a hunk of meat, and the coding team puts it all into code, then the QA team tests it on a test server to make sure you're not healed for 100hp and stunned for 14 seconds every time you open this chest, because that would be a "bug".

Modules or "mods" are simply huge database tables that assign graphics and functions and movement rates and spell animations and all of the other stuff involved in adding new "content". Mods also include new graphics and spell animations that simply don't exist beforehand. I have spoken with GMs and senior GMs in regards to bugs in the game, i.e. rest shrine not healing the user, picking up a few tidbits here and there. Since in DDO a rest shrine is a rest shrine is a rest shrine, the code to determine what a rest shrine does is in the "engine" aspect of it, and not in the "module" or "content" part of it. But because a every mob is different (kinda) those are things in the mods. It may get confusing, but every bit of content is added after the engine is in place... so while the aspects of the door (what it looks like and where it takes you) may be added on later, what that object (door) actually does is probably coded into the engine itself.

The code for a rest shrine would be in the module like this
//when user clickson object999 (rez shrine) then do rez
The code for the command "rez" would be in the engine and would read like this
//get livingstatus
-> if livingstatus=living then do nothing
-> if livingstatus=dead then do castspell974 (raise dead)

Turbine apparently owns all the "creation" aspects of DDO, so they may have purchased or written their own custom built engine. But the way this engine handles things like instances and combat, I would be surprised to learn that it was the same engine that handles the WoW style combat in LotRO, heck if it IS the same engine then I would be impressed that it is able to handle things in so many various ways (like combat or instancing).

But like I've said before... this is all just speculation and generalization.

Besides, the hamsters are prolly live off Cupcakes and Tasty Hams anyway, so the downtime comes when their insurance refuses to pay for the multiple bypass surgery.

Ron
12-20-2007, 04:41 PM
Turbine apparently owns all the "creation" aspects of DDO, so they may have purchased or written their own custom built engine. But the way this engine handles things like instances and combat, I would be surprised to learn that it was the same engine that handles the WoW style combat in LotRO, heck if it IS the same engine then I would be impressed that it is able to handle things in so many various ways (like combat or instancing).

If it's a well built engine that truly encapsulates the programming logic away from the world rules/content (and I imagine it probably is), then the scripts running on top of the engine should have no problem running both LOTRO and DDO. They are, after all, doing much the same things, engine-wise (animating models, handling instances, controlling contruction and destruction of items, handling incoming and outgonig communication packets, and so on).

I doubt they are exactly the same engine (I'm sure the underlying engine gets tweaked with each Mod just as much as the scripts themselves do, and similarly for the "books" of LOTRO), but I would suspect they began life from a common ancestor :)

Gratch
12-20-2007, 04:41 PM
Since we share so many things with LotRO... are we getting DX10 enhancements (which their engine just got) anytime soon?

Better said, are we getting our albino hamsters from Upper Hymillaian anytime soon?

Though if it's the same resources... I'd rather have smooth monk play instead.

BlueLightBandit
12-20-2007, 05:06 PM
Since we share so many things with LotRO... are we getting DX10 enhancements (which their engine just got) anytime soon?

Which is yet another reason I don't believe we're running the same beast as they are. If we had the same engine, the same scripts could be written for guild housing, crafting, mounts, etc. in DDO as they are for LotRO. The graphics and the items would have to be tweaked to keep our flavors separate, but we simply haven't gotten those things.

Then you have to take into consideration the major factors like instancing. LotRO has literally hundreds upon hundreds of people sharing the same enormous space, interacting with the same npcs, fighting the same mobs... With only a slight few exceptions, they don't even GET multiple instances. DDO has only a specific number of characters that can exist in a single instance before a new instance is created to better facilitate network resources.

I would think that would be an integral part of how an engine operates, dishing out network resources... and our two games do that quite differently.

But I've said my piece, stated my opinions and why I think them... I'm all for hearing what other people think about the subject though... or do most people really just not care?

Ron
12-20-2007, 05:09 PM
Sorry to take this on a serious path, since I know this was more of a funny thread, but if anyone is interested, you can glean some interesting information about the game from the Career section of Turbine's site. I'll paraphrase what I think are the interesting bits:

• Support development teams in the implementation of world-class MMOG titles using Turbine’s proprietary game engine including work on AI, character movement, animation, synchronization and code optimization.

This tells me the engine is their own, not a licensed engine. Interestingly, I would have though some of this (AI especially) was more the in realm of the scripts rather than the engine.

• Implement portions of game systems logic and advise game systems engineers on interfacing with the engine code.

This is what I was talking about with encapsulation. The job here is for a Game Engine Engineer, so they'd obviously be working on the game engine itself, while others (The game systems engineers) would be working on the scripts, in whatever language they happen to use.

• High proficiency with C++
• Familiarity with STL

This says the engine is written in C++ (which we all knew, right?). The STL is a container library (vectors, strings, maps, and so on, bascially just a lot of very useful data structures). The STL is now a part of the C++ standard, as I understand it, but it's a relatively recent addition, for a long time it was considered ancillery (although massively useful, which is why it got integrated into the standard). I suspect that's why it's mentioned seperately, because there are still undoubtedly C++ programmers out there that don't know much about the STL.

• Experience with source control processes

This tells you multiple people are working on the engine all at once, and they use a "sandbox" approach (to grab the most current version of the engine on any given day) and then use the source control program to merge all the changes together and prevent/resolve conflicts (i.e. two coders changing the same line of code to different things). If you've ever had anything on SourceForge, you probably know what I'm talking about.

This stuff is under "plusses"

• DirectX
• Havok
• Maya
• Perl
• SQL
• Working with level editors and scripting systems of other games


Pretty simple. DirectX we all know and love. Havok is their physics/AI part of the engine. Maya is a language related to 3D modelling. I've never personally used it myself (I'm not a modeller). Perl is a scripting language, so that's probably what all the scripts are written in. SQL is, of course, the database language (it's what you would use from the C++ program to say to the database, "Hey, give me all the equipment belonging to character "Rhaagh" on Sarlona"). And the last bit is always a plus (I suspect this job wouldn't be directly working with the level ediotrs or scripts, but it always helps to know how they work, since you'll be interacting closely with the guys who are).

So, interesting stuff. At least to me, anyway :)