An Epic next-gen adventure
The men behind Unreal discuss id, Valve and MMOs...
In the concluding part of our interview with Epic, Messrs Rein, Sweeney and Willard discuss how cross platform development is very much at the forefront of their plans for Unreal Engine 3, and that its scalability has been vital in providing an engine that could "last many years to come". In a refreshingly candid discussion, the Epic main hit back over suggestions of becoming "an engine company", how they rate themselves alongside ID and Valve, the expansive possibilities of the technology and massively multiplayer games...
Oh, and because we like you and we fancied digging out the video camera again, we've made the full interview available for download via Eurofiles here.
It's PC focused because PCs are known and announced. There's only an amount we can say about next generation consoles but we've really put a tremendous amount of thought into how to be able to scale to different levels of memory, how to load textures and all sorts of gameplay resources - dynamically - so we can make the most of a system that has a relatively low amount of memory compared to a high end PC, and all the other various trade offs. It's really been a big consideration for us from the very beginning. Epic's next major Unreal Engine 3-based game is going to ship on a next generation console...
Wait! Is it Microsoft? [Scratches chin]
No points for guessing which platform we're going to ship on! [Laughs]
That's so true! [more cackling]. Yeah, so you hear J Allard talking very vocally about XNA, which is really Microsoft's cross platform strategy that says 'Hey, you know we have some great tools on Xbox like XACT [an audio authoring system], that haven't previously been available - even though they're DirectX oriented - to PC developers, but we're going to polish them up and ship them on Windows', because they feel like they want both of their platforms have great games. To us, we're in the same camp. We're firm believers in that policy - obviously Tim was on the video for XNA. We're very much of the belief that we want this to be cross platform. This particular engine, Unreal Engine 3, the third generation, the minimum consoles are going to be the next generation consoles. You wouldn't make an Xbox 1 game with this technology - you'd use Unreal Engine 2x for that.
Yeah, there are still people signing up to do new games using Unreal Engine 2. I think if you're making a game and you need a really wide audience for, like really mass market oriented game and you want to have Xbox and PS2 and even the GameCube for example, you really do need to stick with Unreal Engine 2, and there's lots of those. There's the Harry Potter PC game that I mentioned earlier, that's Unreal Engine 2; the next Splinter Cell game is still Unreal Engine 2-based.
Noooooo! We hear that as a kind of criticism 'Oh, they're just going to be an engine company', but that's not true. You makes so much more money from a hit game than you can make in a year or two from engine licensing. Games are what drive that.
It is good, but more importantly we pour back a lot of the money that we make from licensing into making better tools. I mean you saw earlier in our demo, our tools are fantastic, they are best of breed tools. Our physics tool is as good a tool as you could buy from a physics vendor. Our Matinee [Unreal Engine camera system] is as good as maybe what Adobe uses - though not for real time movie creation of course. So we put a lot of that in and that investment pays off by having licences using that technology and us being more productive - we make our own games faster. Everything you see that we're developing for the engine is primarily so we can make our game.
It's great to be mentioned against those guys.
Oh yeah, that's a compliment! If you look at what's been developed by the companies that are shipping games this year, 2004, they are current generation engines that are designed to support DirectX 7, all the way up through to DirectX 9. They make a lot of trade offs to support the lowest common denominator feature set, and that's absolutely the right thing to do for a game shipping this year. You'd be crazy to ship a DirectX 9-only game in 2004. We're really designing Unreal Engine 3 for the generation beyond that, for 2006 PCs and next generation consoles, so we're really looking at a window that's two years out from that time frame and the technology ends up being a generation beyond that. With a renderer that's completely focused on DirectX 9 as the minimum feature set and a whole set of tools from physics to gameplay scripting to shader creation... it just wouldn't be possibly translatable to the previous generation of hardware. There's just a lot you can do in terms of creating better content and creating more cohesive games with it. The toolset is designed just with all these new assumptions in mind with a backwards-compatible engine that goes back and runs on hardware shipped four years ago.
And I'm sure that those companies as they finish up their games and start looking at the future will probably take the same approach - I think that just makes sense. They wouldn't just develop another DX 8/9 game.
What's the Doom 4 technology and what's the Half Life 3 technology going to be... Rein: They should license our technology!
Oh yeah. For our next projects - not just the one we're working on now but the ones that may follow later - we certainly want to have the largest worlds we can and still keep the experience fun for the player, so yeah, we definitely plans to have as large...
We're even going to have some technology in the engine so that some of the things in your view directly can be loaded in the background, and I guess that's mostly textures, right?
Oh yeah, textures, animation data, some geometry data. Being able to stream the content for a very large environment is critical to us, including large outdoor environments, large indoor environments and anything that's a combination of the two. It's going to be important to our next game and lots of other team's games. We look at what teams have done using the second generation Unreal engine for developing massively multiplayer games. We've learned a lot from what other teams have done with Unreal engine and that's influenced our feature set for UE3.
The other thing is if you look carefully at the detail that we're showing on the screen, it's 2,000 times more detailed than the last generation, so that's a lot of data. So, we have to be more intelligent. If we get four times more memory in the next console, or eight times more memory, we're not going to get 2,000 times more memory! So we definitely have to be very careful and efficient about loading things in from the disk.
Lots of coping with assets that you don't currently need, careful management, good compression.
The new engine is very much designed for multi-threading, so I assume one of the threads going to be compressing and uncompressing stuff almost all of the time.
We're looking at the next generation PCs and consoles as an incredible and astonishing increase in computing power, but you're not necessarily going to see a similar increase in memory, so we've put a lot of emphasis into running computing power and GPU power to improve the visuals without requiring extra memory. That's influenced our lighting algorhythms, for example, instead of pre-computing shadowing, some parts of the environments and characters we actually do that dynamically using shadow buffering techniques and other techniques. Things that sounded completely ridiculous and impractical a few years ago, things that we used for offline rendering and non real-time packages just a few years ago are now completely practical in real time. Those techniques are great because they don't require huge increases in memory but they increase the visual quality of the game dramatically.
You hear Sony talking about their Cell processor, and we've heard leaked rumours that the next Xbox will have multiple processors, and Intel and AMD have both announced dual core and beyond, and so it won't just be consoles, it'll be PCs. In the time frame that we ship, I imagine most of the chips Intel and AMD ship will have at least two cores built into each processor, and in the case of Intel's hyper threading, well, that runs multiple threads. That's definitely an important thing. Again, you asked earlier about the current engines that other people have, and it's an exact divide: you either have multi-threading or you don't. It certainly wasn't practical in the last generation where people still ran the game on Windows 98 where multi-threading is not practical at all. We're really rolling with the times in terms of where hardware's going to be, and delivering the absolute maximum experience we can. The other thing is that the engine is extremely scaleable. I mean there's no limit the number - memory and CPU and loading speed are really our biggest limitations - the engine can scale to massive numbers of polygons and textures and detail, and if you've got the system to run it, this engine could last for many years.
Again, the limits that you have are just the practical limits of the hardware and the internet connection.
It's all performance. If a machine comes along that has the bandwidth and the memory to support 128 players then we'll support 128 players, if it's 32, then 32.
The Unreal 3 engine has been designed for fast action games with a quick response time, so we can support really fast action gameplay on a broadband or better net connection, but with significant amounts of lag. That's always been a design factor that's on our minds. If you're going to build a massively multiplayer game, what you probably want is a less responsive network and one that supports far more players. A lot of Unreal Tournament 2004 servers are running 64 players, whereas a massively multiplayer game will typically support thousands of players per server, so the teams that use Unreal for massively multiplayer games wrote their own backend server framework. If you look at a massively multiplayer game versus Unreal there are a lot of design differences; the persistent data you're keeping track of.
No, because that's not the game we're making.
Unreal isn't inherently a massive multiplayer engine, and a lot of teams have taken Unreal as a starting point and developed massively multiplayer games with it. I think Unreal provides about 70 per cent of what you need for a massively multiplayer game. You've got the content creation tools, the rendering, the sound, the physics - all of the gameplay subsystems except for the massively multiplayer server, and the completely seamless framework. So, teams have licensed and added those features.
The best developers in the MMO have used our technology; Electronic Arts for the Ultima X: Odyssey game [actually canned this week by EA], Lineage 2 from NCsoft, again sequel to the leading massively multiplayer game, Sigil Group, who were the original creators of EverQuest, are creating a game called Vanguard using that tech.
Yeah, and they face hard problems doing that, but it's no different than what they would have to develop if they chose another engine. I don't think there really is a true massively multiplayer 'engine', because the requirements vary drastically from one style of game to another. The Sims Online is has a totally different kind of footprint from Lineage, which has a different footprint from Planetside, for example.
We make ourselves available, so for example if someone needs to know how the framework works. As a licensee they can email and ask Tim. Part of our engine licensing business is that we also give really good support, both through mailing lists and personal help and things like that.
If you missed the first part of the interview, head here to see what the Epic main men had to say, or alternatively, head to Eurofiles and download the whole thing and watch it. Just make sure you've got a 6800 installed first so you can see the dynamic lighting on Mark Rein's face and the physics on Tim Sweeney's eyebrows. Just as the developers intended...