PC Review


Reply
Thread Tools Rate Thread

The Elder Scrolls IV: Oblivion - Technology Interview (X360, PC)

 
 
Air Raid
Guest
Posts: n/a
 
      10th Jan 2006
http://www.beyond3d.com/interviews/oblivion/

Bethesda's Morrowind was one of the "big three" computer roleplaying
games released in 2002, along with Dungeon Siege and Neverwinter
Nights. Sporting an advanced engine many high end systems buckled under
the pressure and gamers delighted at what they saw. The game went on to
win multiple awards and warranted two expansions and re-releases.
Bethesda is close to finishing the latest in the Elder Scrolls series:
Oblivion and its renderer looks to be no push over either even for
today's monster cards if you choose to pump up the detail settings.
Being released for the PC and the Xbox 360 we asked the developers what
was under the hood graphically as well as some of the inroad they have
been doing with regards to artificial intelligence and physics. Gavin
Carter was kind enough to answer our questions for the Beyond3D
readership.


--------------------------------------------------------------------------------

Could you discuss the dynamic shadow technique you're using? They
appear to be a form of shadow maps.

They are a form of shadow maps, though the technique we're using
currently differs from the one we showed at E3. Our initial shadow
tests were done using cube maps on every surface, but after extensive
testing we found them to be too slow overall to use as a general
solution. We have switched to doing single shadow maps directed at
characters. The system supports full self-shadowing and we do multiple
samples and depth comparisons to provide a soft-shadowing effect. The
net effect we've achieved is a system general enough to handle
Oblivion's diverse environments while still providing great visuals
and good performance.




Are your dynamic shadow implementation a feature across all supported
systems, perhaps scaling the detail on low-end machines, or are they a
high-end only checkbox? How would you describe the qualitative jump
from Morrowind?

They will be supported across all systems. We will have options to
toggle features like self-shadowing and the softening effect, as well
as to adjust the number of characters receiving shadows to improve
performance for lower end machines. The jump from Morrowind is
significant. Since we aren't doing stencil shadows anymore, our
current system is more accurate while using less fill cost. Also,
shadows use world space coordinates instead of Morrowind's screen
space coordinates, allowing us to do more dramatic effects like fading
out and softening the shadows over distances.


Are you using any kind of pre-computed shadow technique for static
shadows? If so, how well will they blend with the dynamic shadows?

We are not using any pre-computed techniques. The main reasons are that
pre-computed shadow maps don't mesh well with our dynamic time-of-day
system. Also, relying on a completely dynamic solution allows much more
flexibility for the artists to create whatever environment they want in
an entirely WYSIWYG work environment.

In a recent interview you have revealed Oblivion's engine is capable of
sophisticated lighting across surfaces (normal mapping and parallax
mapping, for instance). How would you characterise your experience with
parallax mapping and its junction and texture warping problems?

We avoid texture warping on high-end cards by doing the eye vector
calculation per-pixel instead of per-vertex. Some amount of texture
warping is inherent to the system no matter what card you're using,
but overall we find it to be virtually a non-issue in game unless
you've got the camera mashed up against the textures. The artists
quickly learned the limits of range in the displacement for what looks
good and what looks bad. T-junctions are a problem for just about any
lighting calculation, so these are mostly avoided in the art creation
stage by being smart about how we construct objects.

--

Oblivion will probably be one of the first games with integrated HDR
lighting at release time. Could you describe to us the specific
solution used? Will it use fp blending or will there be an option to
blend in the pixel shader? Does Oblivion make use of floating point
textures?

Oblivion's HDR solution does make use of floating point textures to
give greater accuracy and precision for the effect and uses floating
point buffer blending. Blending in the pixel shader would end up being
prohibitively expensive given the complexity of our scenes.

Could you tell us what Shader Model range you're aiming for? In a
recent interview you mentioned that you make use of SM 3.0; is this
shader model used for a performance increase only or do you make use of
SM 3.0-specific features like texture fetches in the vertex shader?

Shader model 2.0 to 3.0 is the targeted range. For shader model 3.0
effects, we do take advantage of some looping and branching, but mostly
we use it for performance increases. In 3.0 we are able to do all
lighting in a single pass, as well as full lighting on blended objects.

Related to the above, how would you describe your experience in having
to write the same effect across different Shader Model versions?

For the most part, our shaders were initially written with the 2.0 spec
in mind. So rewriting them for shader model 3.0 was more fun than a
chore, since we were able to speed things up and combine passes. Going
the opposite direction would have been more of a pain, but luckily we
were able to avoid that in most cases.

Click Image to Enlarge



With a world as detailed as the one shown in screenshots, determining
visibility must be an important focus for you. Could you shed some
light in this matter? Are you using any advanced portal culling
technique?

We rely heavily on LOD models to scale down lighting, geometry, and
shaders once objects drop below certain thresholds of distance or
visibility. We also do a simple, fast occlusion culling technique for
interiors. Again, we try to optimize our systems in ways that don't
impede artist freedoms.

In previous interviews you've mentioned using multi-threading to help
speed up streaming new areas. How important are you finding the other,
less visible, system parts like memory speeds, CPU L2 cache, AGP/PCIe
speeds, etc. in this regard?

We've found it's definitely a total picture situation as far as
optimization goes. For instance, we've spent some time optimizing our
code to prevent L2 cache misses and made some gains there. We try and
take optimal advantage of every hardware component, so any extra speed
we can get out of any part factors into the overall picture.

We're also curious about any figures you care to divulge about average
triangle and vertex loads per scene. Approximately how many pixel
shaders will the game have, and if you can answer how many instructions
on average do your pixel and vertex shaders have?

Suffice to say that our triangle and vertex counts are on the high
side, but in line with what Microsoft and the major video card
companies recommend for next-gen development. For pixel shaders, if you
take into account all the different configurations that result from
compiling for different cards, there are hundreds. However, there are
probably about 25 major shader effects that are utilized in general
situations. The instruction count scales with shader model, so our
lower-end 2.0 shaders are kept pretty compact while the 3.0 lighting
shaders are quite long and will appreciate a fast video card.

Could you briefly touch upon what changes will there be for Oblivion
modders compared to Morrowind?

The editor has received a host of changes ranging from small to large.
Many are brand new tools such as the heightfield generation tool, and
the region generation tool to populate a large area with objects
quickly. The dialogue and quest system has been redone to improve the
workflow and tools have been added to better allow Havok objects to be
manipulated in the editor. Modders will also have access to the entire
range of AI functionality that we have at our disposal.

--

As a PC and Xbox 360 developer how have you been finding Microsoft's
XNA? Other developers praise its profiling tools and impressive
multi-platform integration. What do you like best?

XNA Studio still isn't released, but the tools they have provided for
development and profiling on the Xbox 360 are outstanding. The PIX tool
for performance profiling is particularly fantastic and it's
something we use on a daily basis around here.


How different is developing for the PC and Xbox 360 now compared to the
PC and original Xbox when you were creating Morrowind?

It's quite a bit different considering that the original Xbox was
fundamentally very similar to PC architecture. The 360 is much more
like a traditional game console, in that it is tuned first and foremost
for gaming. The differences in things like the multicore architecture
and unified memory systems do create some technical challenges, but
that is the nature of cross-platform development. The support we've
received from Microsoft has been tremendous, even better than it was
for the original Xbox.

Physics is the new buzzword and with such a rich environment how have
you been balancing that with other high CPU utilization subsystems
(like A.I. or even the renderer)? Do you think nowadays developers
treat physics as a first-class citizen? Should they?

We've worked closely with Havok to make sure our implementation of
physics is as optimal as possible. I think anyone who's played
Half-Life 2 realizes that physics can add a ton of great gameplay to a
game. Developers have definitely taken notice of the importance of
physics in games and it's pretty rare that you see a game without
them anymore. I look forward to the advances in gameplay that they'll
bring.


While we're on the subject, although you've mentioned you're quite
happy with Havok, is a PhysX/Novodex path later on as a patch a
possible expectation for Oblivion?

We certainly always have our eye on new technology that might make good
additions to our games. As far as physics goes, Havok is the market
leader and for good reason. It's proven itself in well over 100 games
and the amount of support they've provided us in implementing and
optimizing their system for Oblivion has been invaluable. Either way, I
think adding support for an entirely new physics system is far beyond
the scope of a patch.

One of Oblivion's great features is the A.I. How are you scaling the
complexity of the A.I. routines? Is it tied to visibility (i.e. scale
down when actor is not in view, distance-based, etc.)?

It's mostly based on visibility and the relative location of NPCs to
the player. We engage a whole host of optimizations for characters that
aren't being rendered.

Could you reveal your secret on how you can have A.I. actors with 24
hour schedules and a huge world and not have the whole engine halt in
its tracks? Are you doing snapshot updates at zone/cell boundaries?

As above, we mostly leverage the amount of processing time based on
distance. We have multiple processing levels that control the range and
amount of activity an NPC will engage in. Characters far away from the
player will engage in less complex behaviours and update themselves
less often than characters that a player is likely to encounter in the
near term.


--------------------------------------------------------------------------------

We'd like to thank Gavin Carter for answering our questions as well
as Pete Hines for helping make this interview happen. Elder Scrolls IV:
Oblivion is expected to be released in early 2006 for PC and Xbox 360.

 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Elder Scrolls IV: Oblivion and F.E.A.R muplayer2000 Gaming 15 1st Aug 2006 05:47 PM
Elder Scrolls IV: Oblivion Stat Problem Reefsmoka Gaming 6 25th Jun 2006 05:08 PM
Elder Scrolls IV: Oblivion =?Utf-8?B?TWFya2xpa2Vzcm9ja3M=?= Windows XP Games 12 15th Apr 2006 04:59 AM
scrolls scrolls scrolls scrolls scrolls ............... =?Utf-8?B?ZG90bmV0a3VtYXI=?= Microsoft ASP .NET 0 4th Aug 2005 09:55 AM
Elder Scrolls IV: Oblivion screen shots Alf Gaming 13 25th Jul 2005 06:21 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 05:11 PM.