Understanding game engines...a little help?
A game engine is the core programming code of a game, more or less. Instead of having to code everything from scratch every time you want to add something, you use shortcuts provided by the game engine to make it happen. This is a very simple way of looking at it, it's a lot more complicated than that, but it's the basic idea.
The standard features of a game engine is, well, the stuff you need to make a game. It handles levels, lighting, physics, character models, texturing, shaders, sound, network connectivity, controls, and anything else I might have forgotten. It's part of why the Unreal Engine is popular, it pretty much has it all in a fairly simple to use way.
As for if artstyle and game engine are locked, the answer is no, with a but. Using the Unreal Engine, again, I'm sure you know the bulky, shaved, kind of shiny space marine type. Part of the reason that's popular with Unreal is that it's very good at making that look. The Unreal Engine is not great at making flowing hair, so if you want that, you have to make it yourself. It's very good at making metals and skin due to its wide variety of shader options. So you get armored bald guys, because the engine lets you do that with less efforts.
As for upgrading the engine, it's not easy. If you just want to add a feature, like the mentioned flowing hair, it's "simply" a matter of adding that piece of code to the library. If you want to change anything fundamental of the engine, though, you're in for a lot of work. You will more or less have to rewrite that part of the engine. City of Heroes getting ragdolls and Ultra Mode is an okay example of changing a game engine. Power Customization was also added at a fairly low level, as the powers part of the CoH engine had colors baked into powers, so that part had to be changed. At least that's what the devs said when they did it.
I hope this clears it up a bit.
Aegis Rose, Forcefield/Energy Defender - Freedom
"Bubble up for safety!"
Shield Charge and Spring Attack don't affect the environment any more than Footstomp does. (And actually, Shield Charge doesn't even look like it affects the environment, so I'm not sure what you mean by that.) All that's happening (best guess anyway) is that the power is placing a graphical effect at the central point of where the ability was cast. The actual texture of the ground isn't changed at all.
"You don't lose levels. You don't have equipment to wear out, repair, or lose, or that anyone can steal from you. About the only thing lighter than debt they could do is have an NPC walk by, point and laugh before you can go to the hospital or base." -Memphis_Bill
We will honor the past, and fight to the last, it will be a good way to die...
Certain Game Engines will have certain advantages.
The Source Engine, for example, is apparently easy to work with and still provides some of the best easily used physics.
The Frostbite engine is for easily destructible cover and buildings.
The Crytek engine is usually focused on all out graphical impressiveness.
Unreal Engine 3 is used by soooo many people that there's a massive base to draw experience from but, as mentioned, it has problems with things like hair.
The problem with our current Engine is that it was made at a time when there were two competing APIs, OpenGL and Direct X. Now much like Betamax and VHS, one of them lost, nobody uses OpenGL anymore but CoH does. <ost modern graphics cards will have to emulate OpenGL because the don't actually support it properly meanwhile Direct X has taken over as the industry standard and all modern graphics cards support Direct X (This is another reason why it's a pain in the backside to get old games to run because the majority of them use OpenGL).
This is why there either needs to be a huge game engine rewrite (so huge it might as well be a whole new engine) so that CoX doesn't use OpenGL anymore and instead Direct X or they might as well make CoH 2.
The game engine is aging, badly, it's basically held together with duct tape, spit and hope at this point, they have no documentation on the Engine, all the old people who actually worked on the game and knew how it worked have actually left (BaB was the last one who really knew the guts of the engine IIRC).
So they're left with those poorly optimised, barely held together engine which nobody really knows how everything works and because they're still using this engine also means they have to pay Cryptic royalties (hence why Cryptics name is still on the loading screen) because it was their engine.
A whole new engine would solve a crapton of problems, bases could be done properly, full power customisation (as in APP/PPPs) could be done without any hastle, they could even add in things currently impossible like Swinging travel powers, running up the side of buildings etc.
Hence why there are a lot of rumours that the secret project is CoH 2 because, well, the Game Engine is in such a state there kind of has to be a CoH 2 in order to make any great strides.
Badge Earned: Wing Clipper
A real showstopper!
The problem with our current Engine is that it was made at a time when there were two competing APIs, OpenGL and Direct X. Now much like Betamax and VHS, one of them lost, nobody uses OpenGL anymore but CoH does. |
Father Xmas - Level 50 Ice/Ice Tanker - Victory
$725 and $1350 parts lists --- My guide to computer components
Tempus unum hominem manet
To be fair, between Xbox and Windows, there is a lot of incentive for people to make games DirectX, and they have.
Orc&Pie No.53230 There is an orc, and somehow, he got a pie. And you are hungry.
www.repeat-offenders.net
Negaduck: I see you found the crumb. I knew you'd never notice the huge flag.
Ok my bad, people may still use open GL...but Graphics cards themselves don't really support it anymore which would be the problem, a lot of the higher end ones have to emulate it rather than actually support it.
Which as I said, is the problem with CoH since graphics cards which do support Open GL normally in the PC market are being phased out.
Badge Earned: Wing Clipper
A real showstopper!
This is why there either needs to be a huge game engine rewrite (so huge it might as well be a whole new engine) so that CoX doesn't use OpenGL anymore and instead Direct X or they might as well make CoH 2.
|
Remember that City of Heroes runs on Macintosh computers, too, and any decision about what game engine to use has to include the requirement that it be available for both Windows and Macintosh computers. There are many more considerations that go into decisions about a game engine than "what gives the best graphics?" -- particularly with a game that's already released.
"But in our enthusiasm, we could not resist a radical overhaul of the system, in which all of its major weaknesses have been exposed, analyzed, and replaced with new weaknesses."
-- Bruce Leverett, Register Allocation in Optimizing Compilers
So if I'm following things correctly, there's only a finite lifespan left graphically speaking to this or any other game using the OpenGL code? I know that's what drove the switch to CoH using Raedon video cards over Nvidia, and now I'm wondering if that's a short to medium term move only, if there's only so much life left for the overall code.
Dr_Mechano, seeing as you're currently the most knowledgable so far in the thread, what would be an optimal game engine to run with for a potential CoH 2? Or is it more of a case that Paragon Studios would have to custom one of the newer engines for their needs? I seem to recall that the engine for Age of Conan was entirely their own design, but I don't know how accurate that is. Presumably the most wanted features would be physics stuff along with a lot more customisation with hair and so on, so would it be a hybrid sort of system? Lot to work out, I'm sure.
S.
Part of Sister Flame's Clickey-Clack Posse
Hi all. This is part wish list, part thoughts on what I loosely term 'game engines'. I really don't pretend to know what a 'game engine' is, other than that I know that console games that I own have them and that MMO's often make their own custom ones that let them do....well...stuff.
|
When you think about it, if you can use someone else's library of code to handle fundamentals like display, animation calls, network communication, etc, you're free to focus more time on the aspects that distinguish your product from the others. You just have to make sure that the engine you choose will fit your design goals. IIRC, before Cryptic decided to make their own engines, they surveyed quite a few out there and were impressed by some, but at the time, none of them could give the "mapspace" size they thought was necessary to make a city zone that really felt large. Newer engine licenses have since overcome that limitation, so its entirely feasible that any successor to CoH would jettison the CoH engine entirely.
Another advantage of using a common licensed engine is that nobody's going to know your proprietary engine until they start working for you. That's another thing they gotta learn on the job, whereas, you can essentially list "unreal 3" or "gamebryo" or "hero engine" on your job listing and expect users with experience in them right off the bat. This is partially offset when a publisher maintains their own engine and uses it across several studios' games (like Funcom's Dreamworld engine).
Finally, note that game engines are increasingly modular. An engine license may not come with the physics engine you like, so you add that license and ignore the built-in one. Some packages may include "speedtree" license discounts in the package, some may not. Some may have an "ai package" and some may just let you pick any middleware AI you want to drop in there. There's an "engine" out there that animates lips somewhat-realistically based on the accompanying logfile, saving potentially thousands of hours of animator time if they tried to do it by hand. There are ones specializing in managing auctionhouses, chat, ingame mail, bug reporting and tracking, crowd behavior, and managing RMT stores.
Realistically, while we still discuss this as one large "engine," and many modern "engine" licenses are very vast packages, a good part of developing a modern online PC game is gathering several dozen different engines together, licensing them, writing the code that gets them all communicating nicely, then building the game mechanics and world within them that you want the players to experience.
Ok my bad, people may still use open GL...but Graphics cards themselves don't really support it anymore which would be the problem, a lot of the higher end ones have to emulate it rather than actually support it.
Which as I said, is the problem with CoH since graphics cards which do support Open GL normally in the PC market are being phased out. |
I think the problem with OpenGL arose in the earlier versions of it, where there was nothing to stop a graphics card manufacturer from releasing *their own* versions of OpenGL generic libraries, that could cause problems with some other openGL games, which were written "optimised" for the other manufacturer.
Nowadays, the "plays best on" X/Y/Z is more of a saying. Years ago, it was obvious that it was "plays best on"
*edit* Would also like to point out that OpenGL is still *very widely* used. DirectX is limited to Windows/Xbox platforms. OpenGL is everywhere (Android, iOS, Linux, Windows etc etc).
Since Vista OpenGL is now done through Direct X, massivly impacting on the performance. A pretty sneaky way for Microsoft to scupper people who won't use Direct X.
You just have to look at all the QQing done when games like Brink come out to see its effects.
Brawling Cactus from a distant planet.
Since Vista OpenGL is now done through Direct X, massivly impacting on the performance. A pretty sneaky way for Microsoft to scupper people who won't use Direct X.
You just have to look at all the QQing done when games like Brink come out to see its effects. |
DirectX though *does* open up other areas to ease things through (controller/sound support etc etc).
Brink was one of the 1st OpenGL 3.1 titles though... so it isn't all that surprising that there were problems with it (not to mention as well that you needed a driver update for the 8xxx range of Nvidia cards and up to get proper OpenGL 3.1 support).
*Note* I would like to point out that DirectX is actually the *complete* suite of API's from Microsoft. Some parts of which are "Direct3D", "DirectPLay" and so on. It is actually up to you which parts you which to use (if any).
The advantage of DirectX *suite* is that you can add nice controllers/keyboards etc and at least have the *basic* functionality of them working (remapping of keys/macro recording/stupidly high number of mouse buttons requires more driver support as well) without having to reinvent the whell each time you which to do something.
If an openGL game *didnt* use this advantage then it is making it harder for them to do it.
You *CAN* use OpenGL for rendering, and have DirectSound and DirectInput (and others) running the rest of the stuff necessary to make the game worthwhile (or you can use OpenAL or something else for Sound rendering... etc etc)
((Remember, CoX is OpenGL, so why did i get the same, if not better performance swapping from XP to Vista with the same hardware and driver setup?)).
To add even more confusion to it, a game engine suite can support both openGL and Direct3D rendering (the Unreal Engine is an example of this)
Dr_Mechano, seeing as you're currently the most knowledgable so far in the thread, what would be an optimal game engine to run with for a potential CoH 2? Or is it more of a case that Paragon Studios would have to custom one of the newer engines for their needs? I seem to recall that the engine for Age of Conan was entirely their own design, but I don't know how accurate that is. Presumably the most wanted features would be physics stuff along with a lot more customisation with hair and so on, so would it be a hybrid sort of system? Lot to work out, I'm sure.
S. |
Badge Earned: Wing Clipper
A real showstopper!
The thing with character customization and FX stuff is really up to each company. I'm sure there are some engines more optimized for certain things, but two games using the same engine can vary quite a bit. Take Aion for example (keeping it in the NCSoft family to avoid thread shuttering maybe). It uses the same engine that the game Far Cry used. Aion is a standard fantasy MMO with (IMO) quite nice character customization features in addition to the usual MMO glut of flashy power FX. Far Cry is a first person shooter that takes place on a tropical island.
Both use the same engine, but the two are completely different games, in genre and gameplay, in art style, and in major features such as customization.
Another notable example is the Unreal Engine, which is used by a LOT of games, as mentioned earlier in the thread. From first-person and third-person shooters, to RPGs, action games, racing games, puzzle games, and even side-scrolling platformers. And guess what? It's also used by several MMOs, including one fantasy-action-MMO that very recently came out, along with the Distinguished Competition.
So really, it's not about what engine is best suited for a particular set of features - you can add in any features you want yourself. That's really what game engines are for. They provide a framework for things like displaying graphics and manipulating characters(collision boxes and/or AI, that kind of thing). The very basic gaming systems that are needed are provided so that you don't have to code that stuff from scratch. You worry about coding all the extra features in on top of that, in addition to making all the art (textures and character models).
There is nothing to say that DirectX *cannot* use OpenGL for 3d outputting... infact, that is an advantage. Direct3D though does not render OpenGL stuff.
DirectX though *does* open up other areas to ease things through (controller/sound support etc etc). Brink was one of the 1st OpenGL 3.1 titles though... so it isn't all that surprising that there were problems with it (not to mention as well that you needed a driver update for the 8xxx range of Nvidia cards and up to get proper OpenGL 3.1 support). *Note* I would like to point out that DirectX is actually the *complete* suite of API's from Microsoft. Some parts of which are "Direct3D", "DirectPLay" and so on. It is actually up to you which parts you which to use (if any). The advantage of DirectX *suite* is that you can add nice controllers/keyboards etc and at least have the *basic* functionality of them working (remapping of keys/macro recording/stupidly high number of mouse buttons requires more driver support as well) without having to reinvent the whell each time you which to do something. If an openGL game *didnt* use this advantage then it is making it harder for them to do it. You *CAN* use OpenGL for rendering, and have DirectSound and DirectInput (and others) running the rest of the stuff necessary to make the game worthwhile (or you can use OpenAL or something else for Sound rendering... etc etc) ((Remember, CoX is OpenGL, so why did i get the same, if not better performance swapping from XP to Vista with the same hardware and driver setup?)). To add even more confusion to it, a game engine suite can support both openGL and Direct3D rendering (the Unreal Engine is an example of this) |
http://www.freelists.org/post/gamepr...a-and-OpenGL,3
http://slashdot.org/story/05/08/06/1...degrade-opengl
Long link, but...
http://www.google.co.uk/search?q=vis...w=1280&bih=930
--------
Personal fave engine for MMO's? Unreal engine (3) even if it does suffer from its own little hiccup of texture pops, it tends to run fairly well and look good on low end systems, while still looking eye poppingly nice on the higher spec systems.
Brawling Cactus from a distant planet.
There are some good explanations earlier in the thread.
A game engine can almost be thought of as a partially written game. Its often more a matter of marketing than of an agreed-upon notion of what an "engine" is--basically its just pre-written code that the next team doesn't have to write. Are familiar with the concept of "plug-ins"? In some ways that is similar.
Basically, the developers of the engine create a bunch of code that does some complicated things, then create user-facing functions that provide easy access to this code. So, for example, there might be a piece of code that available that says doRocketLaunch() that causes any projectile graphic to arc through the air. The team using the engine never needs to know how it works, just that it does work.
In the case of MMOs specifically, its helpful to know that the graphics and the "database actions" are seperated. Essentially all of the important calculations take place on the server, and the graphics stuff happens only on the client's computer.
Now, on top of "graphics" engines there are often "physics" engines, which may or may not be integrated. While graphics engines normally are most applicable to the client-side (that is, they only really come into play on the player's computer) physics engines might need to run on a server. For example, if an enemy gets knocked backward, where does it land? The physics engine needs to calculate this, or else cheat-y players could mod their game clients to trick the game into doing stuff it shouldn't.
It's oversimplifying a bit, but there actually isn't a whole lot of difference between a MMO and a traditional website. The major distinction is that the MMO screen autorefreshes itself without you having to hit a Submit button or whateer. The purpose of the MMO graphics are to display stuff from the server and supply buttons for you to click on.
Like I said though, the concept of "engines" is a bit nebulous and mainly a matter of marketing. In my own coding, I am known to refer to many closed systems as "engines." For example, the "Combat Engine" class I use for defining all combat features. In one small strategy game I started but never finished writing, the "CombatMechanics" referred to a class that defined various functions like doDamage, doHealing, checkAccuracy, checkIsDead, etc. Then each map the player played on had a reference to an instance of either CombatMechanics itself or a derivative class that overwrote certain features (so that I could modify how core combat mechanics worked based on the map the player was currently on). The core class and its derivaties all taken together are what constitutes for me the "Combat Engine."
Since Vista OpenGL is now done through Direct X, massivly impacting on the performance. A pretty sneaky way for Microsoft to scupper people who won't use Direct X.
You just have to look at all the QQing done when games like Brink come out to see its effects. |
Here is a MS blog post about Vista OpenGL support from 2006.
Father Xmas - Level 50 Ice/Ice Tanker - Victory
$725 and $1350 parts lists --- My guide to computer components
Tempus unum hominem manet
*City of Heroes w/ a CryTek engine*
want...
Thanks for asking this, Oz! It is something I have wondered about in the past as well, and now I can say that I learned something today.
|
Keep in mind I'm getting most of this knowledge second hand so I'm not sure which engine would allow what we have at the moment, the huge customisation on player characters (that look good, while our two nearest competitors have more customisation and better looking cityscapes their characters themselves tend to look fairly meh), the large expanses of cityscape, the showy special effects and still be able to run on a decently affordable computer (one of the downfalls of Conan was that you had to have a fairly beastly PC to make it look decent, there's a reason the big gorilla is still popular which is because anyone with a PC bought within the last 5 years can run it).
|
I enjoy that visceral feeling I have in other games lately, and I suspect it's due to those mechanics that give me the feeling I'm directly influencing things around me (ala Arkham City) and it feels like that's the one major element that at least for my personal experience that isn't being met right now. I always felt that as far as console games went, it was ones like Incredible Hulk: Engine of Destruction, Spiderman 2, and even Superman Returns were games that had that City of Heroes feel (a large expansive city to play in) and one that you could see what you did in it. Would a mix of certain engines suffice here, or are there some standouts (like the often mentioned Unreal 3) that would do the job? I suppose in a way this goes back to my wish list comments before....
S.
Part of Sister Flame's Clickey-Clack Posse
I'm one of those enquiring minds... I'm smart enough to grasp a concept, but not enough to work it out entirely on my own.
This is very true for Age of Conan; I suppose the question then becomes what supports the needs for City of Heroes best out of these engines? I know when I saw Aion, I fell in love with how it looked graphically, but I have no idea if that translated into a robust gaming experience. I feel like I'm at a point of frustration in wanting to continue playing City of Heroes whilst not, if that makes any sense. By that, I mean playing CoH in its current form. I enjoy that visceral feeling I have in other games lately, and I suspect it's due to those mechanics that give me the feeling I'm directly influencing things around me (ala Arkham City) and it feels like that's the one major element that at least for my personal experience that isn't being met right now. I always felt that as far as console games went, it was ones like Incredible Hulk: Engine of Destruction, Spiderman 2, and even Superman Returns were games that had that City of Heroes feel (a large expansive city to play in) and one that you could see what you did in it. Would a mix of certain engines suffice here, or are there some standouts (like the often mentioned Unreal 3) that would do the job? I suppose in a way this goes back to my wish list comments before.... S. |
The problem with having the sense of effecting the world around you is that 100K other players want the same experience. Really, console games are not a fair comparison to make against MMOs. Everything you do here has to be applied to all players.
"Samual_Tow - Be disappointed all you want, people. You just don't appreciate the miracles that are taking place here."
The problem with having the sense of effecting the world around you is that 100K other players want the same experience. Really, console games are not a fair comparison to make against MMOs. Everything you do here has to be applied to all players.
|
Is there a better engine than what we have currently for CoX that would allow similar levels of customisation?
Yes/No... Yes in that a major limiting factor is "how much artwork would we have to redo to transfer them over". No, because changing the graphics engine can also change the "look/feel" of the game. Do we want to change the look/feel of the game just so that we could have better lighting effects?
Some graphic engines are brilliant for using lots of lights/effects within their rendering. They can however have a performance decrease (deferred lighting is in CryENGINE 3.0... allows lots of lighting to be used with minimal performance decrease, however AA/Transparency does have issues).
Aion uses CryENGINE 1.0 (although it did receive a graphics upgrade in its 2.5 release... not sure if it is just CryENGINE 1.0 with better settings or an actual version upgrade)
It is something that i do miss in CoX, and that is lighting effects from abilities/powers. Sure we have "twilight/nighttime" ingame but that is the limit of it. The pretty much look the same in daytime/night time/Inside/outside.
Would it look better? More than likely. Would it change the feel of how the game is currently? Most definitely.
CoH3! Comming this Fall!
Orc&Pie No.53230 There is an orc, and somehow, he got a pie. And you are hungry.
www.repeat-offenders.net
Negaduck: I see you found the crumb. I knew you'd never notice the huge flag.
Hi all. This is part wish list, part thoughts on what I loosely term 'game engines'. I really don't pretend to know what a 'game engine' is, other than that I know that console games that I own have them and that MMO's often make their own custom ones that let them do....well...stuff. Like ride horses or let you wear shiny gear and so on. So I guess I have three areas that I'd like help understanding.
1)What does a current 'game engine' let you do and what are their limitations? I understand that the Unreal 3 game engine lets you do a lot of stuff and I think something like Arkham City uses it, though I could well be wrong. I associate this stuff a lot with physics and grabbing and breaking stuff, but I don't really know that for sure. I was told that the Hero Engine for the Star Wars game has a limitation built into it in that if you play through a specific instanced area for your character, you can never go in there again in the lifespan of that character. How does that work?
2) Are 'game engines' and character design bound together or are they mutually exclusive? By that I mean are the ways characters built an influence on what a game can do or is it the other way around? I guess I also think about this in the sense of costume/gear design as well, as customisation is the byword I seem to hear more and more in games.
3) How much work is there involved in 'upgrading' a game engine? I heard Age of Conan did this, but I don't know what was there before to be upgraded. Does this radically change how a game plays? Is it something that redefines the end user experience? I've had in my personal wish list the ability for CoH to have the ability to damage or affect the environment in some way or directly engage enemies, but I don't know precisely what that takes to make happen. For me, seeing powers like Shield Charge or the new Super Jump tier attack seem to be that sort of thing in action, so I naturally think 'oh, everything else can be like that, right?'
This stuff has rattled around in my head for a while, so I'm just hoping people more knowledgeable than I can help me understand the more technical side of games that I like so much.
S.
Part of Sister Flame's Clickey-Clack Posse