advertisement


Diaries

[diary twenty four]

New team members often produce spectacular results in a very short space of time. We've added another two graphics programmers to our graphics engine team and they've both added some really cool stuff already. Dom Penfold comes to us from Cambridge University and Alan Murta joins us from Manchester University, where he was a Lecturer in the Computer Science department. Over the next few diaries I'm going to introduce other members of the team and let them discuss aspects of their job to give a better insight into the different roles at Elixir. Here Dom talks about his work on the Totality Engine:

"My first job has been to work on the sky for the Republic: The Revolution. The sky is one of the most complicated parts of the effects for a number of reasons. Firstly each day in Republic: The Revolution is going to move from black at midnight, to sunrise around 6AM, to midday sun at 12PM, followed by sunset around 9PM and back to black for midnight. The sky has to move between these different states in a smooth way so that the games player hardly notices they're happening.

As if this isn't difficult enough the sky also has to support different types of weather, from full blue sky, to wispy cirrus clouds, to completely overcast conditions. The weather will also be changing gradually from day to day, and once again the sky has to react smoothly to the changes. It's no good having blue sky at 12:00, and an overcast sky at 12:01. To further complicate matters I'm only allowed to use around 20-40% of the processor and graphics resources, and everything is meant to look good as well.

To start with I separated the sky into a number of basic components, namely the background sky gradient, the clouds, the sun, the moon and the stars. The sky gradient was first on my list and proved to be quite a tricky job. The basic blue sky is not that difficult, white at the horizon, blue above and a bit of glow around the sun. However sunsets complicate things quite a bit. Firstly the sky has to appear redder at the horizon and this redness also has to be brighter near the sun. And on the opposite side of the sky the horizon will be a much darker colour, almost brown. Once the sun has set, things go pretty much black, although a full moon will sometimes introduce blueness to the sky.

To achieve these effects I've programmed a physically accurate model of the sky. This means that the colour gradients at sunset and sunrise are calculated using Rayleigh scattering. A few corners have been cut but on the whole the model produces fairly accurate colour gradients.

Next on the list was the sun and this is a relatively simple part of the sky. The sun is basically a disc with a slight lens flare. I've tried to stick away from the traditional "lots of circles" approach although I may go back to that over the next couple of months. Because the sun has to be visible as a disc at sunset the flare increases as the sun becomes higher in the sky.

One of the coolest features comes from the fact that I'm using a piece of code written by Alan (Murta) that positions all the major astronomical bodies correctly. It really is quite magical because it means that the sun will travel along exactly the correct path as it would were you in Azerbaijan, the country closest to where the fictional country of Novistrana would be were it located in the real world. When you look at the sky, the stars will be rotating round the Pole Star exactly as if you were standing in Baku staring at the night's sky.

The remaining parts of the sky are the clouds and these have to change in real-time so the code to calculate them has been fairly heavily optimized. As you can see from the screenshots they look quite good although they're a little flat.

The majority of the programming is now complete for the sky and for the last few weeks I've been working on the materials model for Republic: The Revolution . We're aiming at supporting some pretty realistic materials for the game. They'll support features like bump-maps, reflection, specular highlights, specular bump-maps, blended textures, transparent textures, and on and on. It's a fun area of the game to work on and once Alan's lighting is fully implemented we should start getting some very pretty results."

Elsewhere in the company the focus has been on achieving an important milestone for Republic: The Revolution called 1st Playable. As the name suggests, 1st Playable is the point at which you've proved that the game works and to do this you need a game level that demonstrates working technology and game play. Usually you aim to achieve this stage eight to ten months before release. To help us achieve this target we've recruited an Internal Producer, Adrian Bolton. His job is to tie together the three disparate and occasionally warring strands of games production (design, programming and art). The Producer has two weapons of choice: the schedule and the large stick. Despite his role as office Governor, Adrian quickly established himself as firm office favourite by spending a thousand pounds on games for the games room, although I can't help but wonder whether we'd have been better off just buying a Dreamcast and a copy of Soul Calibur, which is an Elixir obsession. One o'clock is the cue for ecstatic wailings and violent squeals of delight that thunder through the sound-proofed games room door, so much so that I've taken to calling it the "Gimp Room". Whenever I poke my head inside the door, I'm amazed to find it's Elixir rather than several city slickers and a posse of banjo-playing hillbillies hard at work.

It appears to have been worthwhile though and I'm happy to report that their sweat and toil hasn't gone unrewarded, with Aamar officially crowned London Soul Calibur Champion at the recent regional championships. He went on to the national championships and came a very credible third. For those of you who care, the consensus is that Cervantes - a character I constantly expect to launch devastating renditions of YMCA at any moment - is by far the best character in the game.

© 1998-2000 Elixir Studios Ltd. All rights reserved.

Next