View Single Post
Old 05-25-2006, 03:01 PM   #47 (permalink)
Oloh
Registered User
 
Join Date: Oct 2005
Posts: 298
-1 Internets
Quote:
Originally Posted by Utnayan
Maybe someone can answer this for me, because I will admit I know nothing about programming. If Oblivion...runs fantastic on my setup, why does a game like EQ2 or Vanguard...run so shitty?
The way it has been explained to me (I am not a programmer either) is because of cacheing everything. When designers and artists make a single player game, they can control everything on the screen at one time. So, when you play a board or a scene, they know exactly what animations to keep in memory and which textures should be available. They know what spells you can cast at that point and what items you have gotten or are available.

If, during testing, something cuts FPS below X amount, they can redistribute art assets or lower texture resolution or remove an item or whatever from the game to get FPS back up.

In a MMOG, that level of control is not possible. A guy may run his high end horse through a newbie zone, or a guy may /dance in a raid zone. The best you can do is load all the stuff you *know* the player will see (terrain textures and mobs in the immediate vicinity), load as much of the stuff as you are *likely* to see (combat animations, armor/pet textures) as you can, and have a means to swap out the rest as fast as possible relative to the graphical fidelity you want to keep.

A game like WoW or Lineage 2 uses a lot of subtle tricks and cheats (not in a bad way) to make the game "overachieve" with less resources. And, this is one of the often overlooked benefits of instancing. If you have an instance, you can be guaranteed to load only stuff into the instance that is needed. So, technically, you can look at the player's inventories, load all of that stuff and all of the stuff available in the instance, and only those things, which can allow for good performance, etc.

EverQuest's "zones" were another example. Remember how hard it was to get SOE to change anything in the "global" texture file? That is because that stuff was loaded to memory across all zones. The other stuff was only loaded based on what was possilbe to have in the zone.

At least that is how I understand it. If you have more control over what will be seen (either in a single player game, or an instanced or zoned multiplayer game), you can better benchmark your graphics to ensure they are always at a targetted FPS.

Also, quite frankly, I think it is also a prioritization thing. Some gaming companies place a higher value on maintaining FPS rates than others. Even in a totally open MMOG, it is possible to keep a targetted FPS in most settings (WoW overland and popular areas come to mind) by picking a FPS range, allowing standard deviation from that range to cover up for "most" circumstances and hoping for the best. If you find an area that is not performing at your targeted FPS under certain circumstances, you revise the area until it is. Taking that approach generally requires that you sacrifice graphical fidelity for performance. Note, graphical fidelity is not the same as artistic style, and style can make a huge difference as to whether something looks "good."

I think that is the basic answer. There are a lot of tricks that you can do to help correct different issues, such as portals and level of detail (rendering the stuff immediately available at a greater fidelity than the stuff further away), but I really don't understand exactly how it all works.

Last edited by Oloh : 05-25-2006 at 03:05 PM.
Oloh is offline   Reply With Quote

 
Uberguilds Network