Talking nasty with Tim Sweeney
Overview
Date: Dec 14, 2004
Original URL: http://www.gaminggroove.com/article.php?id=27
Synopsis: Tim Sweeney going deep into language and 3D technology territory
Tim 'The Man' Sweeney should require no introduction around here, but in case you didn't know and were afraid to ask, Tim is of course our favorite Founder and President of Epic Games, and he's been known to toss the old C++ compiler around for a spin, every now and then :) Today Tim goes deep into language and 3D technology territory:
Questions
Billy "Wicked" Wilson:
With hardware rendering speed growing at a rapid pace, how much of an extra
strain is this putting on the art developers to keep up? Are there any unique
custom tools that the latest Unreal Engine comes with that you are especially
proud of?
Tim Sweeney:
Art requirements are going up dramatically with the coming generation. The
content we're building in Unreal Engine 3 looks perhaps 10 times better than in
the previous generation, but it's taking 3-4 times longer to model such
high-polygon objects. Our art requirements are approaching what you see in
movies; they are perhaps a factor of 4 lower right now, but in the two previous
generations our detail was tens and hundreds of times lower!
Most development studios already have a 2-to-1 ratio of artists to programmers.
I expect this ratio to continue to grow.
Billy "Wicked" Wilson:
Do you see these new demands on artists pushing a lot of smaller gaming
companies out of business?
Tim Sweeney:
The great thing about game development is that there are a broad spectrum of
opportunities available for developers, from 1-3 person teams creating Nintendo
GBA games, 5-10 person teams developing budget PC games, 10-20 person teams
creating smaller PC and console games, and then the big leagues of 25-60 person
teams creating triple-A games for PC and console. Arguably, the massive
multiplayer games are a step above that. In addition, there are mod teams
aspiring to "go commercial", and numerous startups looking for initial
opportunities like add-on packs and contract development while building their
teams.
The key to survival now is for developers to either do the right kind of
project for their size and experience. If you're frustrated that you can't find
a publisher to fund a 40-person startup you're trying to assemble, you're not
being very realistic.
But from what we've seen among the early-adopter teams we've been working with
as early Unreal Engine 3 licensees and evaluators, it's clear that a broad set
of opportunities are out there for teams that are eager and realistic in their
expectations.
Billy "Wicked" Wilson:
Are there any good "3D capture" technologies available, e.g. a camera that can
take a photo and triangulate it and upload it to 3D studio, for example? Do you
envision such products ever (next decade or so) make a major impact in the game
development world?
Tim Sweeney:
We looked into several off-the-shelf 3D capture solutions, and didn't find
anything that was worth using. The polygon data they output is so rough that it
typically requires more effort to clean-up the data than to create similar data
from scratch using a modeling program. However, we just looked at the $5K-$20K
solutions. There are $100K 3D laser scanners that might be better, but that's
not necessarily a better solution that a modeling program.
Here, I ought to mention ZBrush, a modeling program that is truly a godsend in
the new era of high-polygon modeling and normal-maping. If that didn't exist, we
might bite the bullet and work more with the 3D capture tools.
Billy "Wicked" Wilson:
The same thing for software in general. Software complexity has been Growing
exponentially over the past decade or so but we are still using essentially the
same programming language to develop most performance software. Do you see an
end in sight or are there any new specialized languages or language features
(other than DX9 obviously) which will dramatically reduce the code complexity of
future projects?
Tim Sweeney:
Most major software today is developed in C++, with some tools often built in
Java and C#. These languages have fairly poor complexity-scaling curves, and
don't do anything to ease the use of multithreading, which will be critical
shortly as Intel and AMD release dual-core CPU's in 2005.
While C++ certainly remains viable -- and, is realistically, the "least bad"
solution available today -- I feel that we're approaching the same sort of
diminishing returns that caused early developers to switch from Assembly
Language to C, and then from C to C++. For the coming generation, we can and
well get by just fine with C++, but I feel a consensus will emerge around the
end of the decade that current development approaches are broken and need to be
rethought.
Unfortunately, there isn't a clear successor to C++ lined up. Java and C# had
their chance and it became clear that, while they simplify some aspects of
development, they don't put us on the wholly new effort/reward curve the
industry needs to be on, especially as relates to graphics and other forms of
parallel processing, and multithreading. So the next transition could be very
interesting.
Billy "Wicked" Wilson:
Pixel Shaders seem to be the all the rage at the moment. What do you see as the
next "big leap" in the 3D hardware world? Do you see CPUs becoming so powerful
in the next 10 - 15 years that specialized 3D hardware will no longer become
necessary?
Tim Sweeney:
Unreal Engine 1's software renderer is the programming project I'm the most
proud of, so I have a special appreciation for this question. In an interview in
1999 (http://archive.gamespy.com/legacy/interviews/sweeney.shtm),
I predicted that CPU's and 3D accelerators were on a collision course that would
be apparent by 2007.
But that was before programmable shaders, high-level shading languages, and
floating-point pixel processing existed! So, I don't think many people would
take that prediction seriously today. But from time to time, developers do need
to evaluate the question of whether to implement a given algorithm on either a
CPU or GPU. Because as GPU's increase in generality, they are more capable of
doing things beyond ordinary texture mapping, while CPU's have unparalleled
performance for random-access, branch-intensive operations.
Billy "Wicked" Wilson:
Do you think the differences in the approaches ATI and NVIDIA use for AA and
anisotropic filtering are of any consequence in actual gameplay?
