Messiah: What You May or May Not Believe

David Perry

Game Developers Conference, 1998 David spoke at the 1998 Game Developers Conference of Shiny's experiences in moving from a 2D company to a 3D company and investing very heavily into 3D engine technology.

(Editor's Note: You can order this speech on Audio Tape from the Game Developers Conference 1998 by calling: (858) 483 4300 and ask to buy Tape #43, or purchase it online at


Here today to talk about a new 3D engine technology, we have David Perry.

David was born in Northern Ireland and sold his first game about 16 years ago. To date, he has written books and has programmed about 37 published games so far. They include ‘Aladdin’, ‘Earthworm Jim’ & ‘Teenage Mutant Ninja Turtles’ to name a few. Now he is the President of Shiny Entertainment, who are based by the Ocean in Sunny Laguna Beach, California.

Last year at C.G.D.C., he shared his experiences as Shiny invested into the field of character licensing, by explaining how to exploit your games to get Television shows, comic books and toylines from your video game characters.

This year he will share some interesting experiences in moving from a 2D company to a 3D company and investing very heavily into 3D engine technology.

Also on the stage is "Saxs", he is the lead programmer of Messiah and will explain in great detail how he has overcome the major hurdles in getting this exciting new technology working at Shiny. We welcome David Perry & "Saxs".


Hi everyone!

Last year I spoke about character licensing. I talked about how to milk your characters for all they are worth. I explained how to close difficult deals that sometimes seem impossible. My goal was to save you money and more importantly, to help you spend as little time as possible with attorneys. I did not try to sell anything, I just provided information. That is why they have invited me back again.

Today, we will show you some of our work. But I can promise you, this in no way will become a sales pitch.

As everyone here is not a low level 3D Engine programmer, I will attempt to explain the concepts behind what we are up to. Then Saxs here, is going to give a very detailed, very technical demonstration of the Messiah technology. Then at the end we will answer any questions you have. So hopefully this speech will have something for everyone here.

There are teams here today that are working on similar projects right now. The good thing is that we all seem to be identifying the same problems. The funny thing is, that seems like we are all finding very different solutions to those problems. So to be clear, this is not a discussion on the BEST or the ONLY way to do things, we are just willing to reveal OUR solutions.

So my goal is to share ideas that might save you some time or frustration. My other goal is to draw your attention to characters. I care passionately about characters. Yet, like most other developers we found ourselves focused on backgrounds and lighting.

Then we realized how little attention our character technology was actually getting.

The Messiah engine created that attention.


The reason is simple. I did private demonstrations to worldwide magazine editors during the 1997 E3 show. After my demo, I challenged them to find any better technology. They could not. This created hype in the press.

Now at the same time, I happened to mention that I was thinking about PATENTING this technology. The word spread like wildfire. And PATENTS amongst programmers are like SWEARWORDS.

So the result was that I got flamed left and right. I had programmers saying "That Dave Perry, he’s gonna Patent FARTING next and then we won’t be able to fart anymore."

Just for the record… I did NOT file a Patent. I have been telling people this every chance I get. But today, I still hear about companies telling the press, "We can’t have infinite levels of detail in our game because that bastard Dave Perry patented it."

So just to be clear, I did not apply for a PATENT!

That said, I did learn a lot about Patents in the process. I also learned that Patents should not be ignored. It can be very worrying when you see some guy patent concepts like "Shadows in 3D worlds." As a result of all this, I wrote an article in this month’s Game Developer magazine to share my experiences on this subject too.



We picked the name MESSIAH because in the Oxford English dictionary it means the "Expected Saviour of the Oppressed".

In the Messiah game, you control a little overweight cherub Angel called Bob. He was been sent down from heaven to clean up the disgusting world of the future.

Being a baby, he is kinda chubby and delicate, just about everything hurts him.

But he has two neat abilities:

  1. He can fly and glide around with his stubby little wings.
  2. He can dive into the souls of his enemies or even animals in the game.

This means that you can actually play anyone in the game. Every time you play, you can choose a different route through the bodies.

Giving people choices means that the strategy evolves for free. When Bob is inside their souls he can use and ABUSE their bodies as armor or as camouflage. However if they die whilst he is still inside, then he dies!


Here is an example: if Bob needs to get past a huge raging fire, he can jump into someone’s body, by entering through their back, and then just walk on through the fire, dumping their screaming, burning body on the other side. If Bob needs to disable a guard, he could jump into his body, walk up onto a high catwalk, then step off into space. The guard would fall and break his legs when he hits the ground. Bob would jump out and just leave him there rolling around the floor in agony.

Imagine disabling a guy by blinding him, and then continuing to play in that room whilst he is staggering around the room trying to find a door.

So basically, our goal was to get away from games where the place is empty when you shoot everyone. Instead, we want to make a game that feels really chilling.

So basically the concept for Messiah is DISABLING some of your enemies… Not just shooting everything and clearing out a map.


  1. You get VERY close to characters. In certain parts of the game you actually hide in groups of people as you pretend to be one of them.
  2. A common technical hurdle in game design today is trying to stop the gamer from shooting everyone on the same spot.

If the game keeps bodies laying around, the pile of bodies would quickly bring an engine to its knees. That’s the main reason shooter games make the enemy explode and disappear. Or in some games like Turok, they melt into the floor and disappear.

Our problem is that we need characters in groups, some might be burning and some might be crawling around the floor. We also want you to be able to drag these bodies around so that you can hide them. We even want the police in the game to carry these bodies away from crime scenes.

So basically for this Messiah game to exist, and by forcing all these problems, a new engine just HAD to be created.


Our overall strategy for the Messiah engine was to bridge the gap between slow and very fast machines. Shiny has many European staff and as a company goal, we absolutely focus on the world market. Our first PC and also our first 3D game, MDK was a good example, as it hit No. 1 in ten different foreign countries.

That said, when I travel to some countries I hear some very scary conversations. Things like, "I’m thinking of upgrading my Sega Master System ... I am going to buy a Sega Genesis." Or, "I am thinking of upgrading my PC ... by getting a CD-ROM drive." Some of these countries are very behind in hardware.

Then recently, I was totally convinced that a problem existed when Shiny ran some focus tests. When asked what machines they had, the response would be "133… 166…" And only 1 in 8, even in high income areas actually had a 3D card in their PC.

It sounds kinda funny until you realize that some teams here today have publicly stated that the games they are working on now, will only run on machines that are 200Mhz or faster, WITH an installed 3D accelerator card.

This decision tends to be based as a response to the incredible PR from 3D Chip manufacturers, and from microprocessor companies.

Because, after all, they need your games to sell their new hardware.

The problem is, that in America, we hear their hype so often, and because they are so aggressive in advertising, we naturally start to believe it.

So until all countries have 3D cards, and all laptops have 3D cards, and all companies cannot buy their employees machines without 3D cards, Shiny will continue to support 3D engines in software also.


The answer is NO as the core structure of the Messiah engine is 100% SCALEABLE.

The word SCALEABLE is something you are gonna hear a lot of in the next few years. When the microprocessor companies saw our demo, they all revealed that this was the holy grail for them. Same for the 3D card companies.

Now the funny thing is, that all veteran game programmers have been writing scaleable code for years. Back then they did it because they had so little horsepower to work with. A good example would be if an explosion occurred, the number of fragments they would generate would be based on how stressed the processor is at that time. This is still a good procedure, but the biggest savings today can come from handling every polygon in the game, using exactly that same principle.

This scaleable changing of polygon detail is called Tessellation.

Today, most games store just a few different versions of each character in the game. Each version is much less detailed than the one before so if the character is far away, the game will use the least detailed version.

The perfect solution would be to make these adjustments in real-time. Then as characters move in and out of the screen, they would do it perfectly smoothly by adding one or two polygons each time they step towards you. This would stop that "graphical pop" that currently happens as the more detailed versions suddenly get used. Smooth scaling also means, that at any instant, the game is only doing the minimum amount of work, to make a character look its best.

This method also means, that you would just have to make, and store, ONE version of each character.

Now here’s the problem. It's easy to divide polygons into two to make more. But to actually improve the shape of the person as you divide up the polygons is very complicated. The same problem occurs going the other way.


First thing is to stop storing characters as polygons.

The engine must come up with real-time generated geometry, but also caring about the person’s anatomy. This is not a mathematical equation, this is a realistic solution. We really do have to worry about someone’s body structure.

Imagine if the equation suddenly decides to lop off a shoulder or the person’s nose. The ‘damage control’ tweaking you would have to do to your equation would NEVER end. So to be more clear -- the first hurdle is not to dive to equations, it’s to know that equations will NEVER get it right.

You need a REAL solution. And that means a storage format where you describe how important every part of the body is.

Basically, you need anatomy rules and regulations. The final engine has to fight to save that nose by stealing polygons from under arms, behind the back, until the last possible instant. When you don’t worry about anatomy, the result of these equations tends to be a character that seems to boil as they move in and out of the screen.

Using our method, each of the characters in Messiah are modelled in about 500,000 polygons in 3D Studio Max 2 before they are anatomically compressed.

The exciting thing is that the Messiah compressed format regenerates the number of polygons that the game requests each frame. So if you were to suddenly produce some drop dead PC with a drop dead 3D card combo, Messiah would immediately push it at 100%.

This means that you would be playing with new polygons that we at Shiny have never seen during gameplay. Actually, we will be proving this point later on today, as Intel actually have put a liquid-cooled 650Mhz Pentium machine on their booth.

Frankly, pushing the hardware always at its limit, really is a beautiful concept. If the machine thinks it could handle another 50 polygons this frame, the engine will generate them.

The reality is that most old video games, are tuned to run at a decent rate, taking into account the worst case scenario. For example, in an old game when a BIG explosion happens after maybe, two minutes into the game, the designer is forced to cut everything back to anticipate it.

That means that during a lot of gameplay the machine is not pushed to it’s limit until that big explosion occurs. Even then when it does occur, often the game actually slows down.

The concept of the Messiah engine is that it is monitoring it’s progress all of the time. It’s always trying to squeeze that last polygon out of the hardware. This is a really nice thing to know. It also works on other machines. Messiah on the Sony Playstation always has the maximum possible hardware output on the screen, every frame of the game also.

If it needs more work to do, the engine serves up more polys. If the big explosion happens, it steals polygons from all the characters, but does not slow the game down.

That NO SLOW-DOWN translates to a great "Feeling" game, and "Feel" is a very important aspect that this engine gives back.


If you install a new video driver that has been optimized maybe for MMX or K6, then again that extra bandwith is instantly taken advantage of by the Messiah Engine.

What else?

Well, the good news is, that the day you stop storing your characters as polygons… You give your animators new toys to play with.

Because every polygon in the character is being re-generated every frame, they can be stretched & modified, with little overhead.

So what can you do with that???

You can make skin move, muscles bulge, faces distort, cloth stretch, objects morph.

You can EVEN make similar characters have different anatomical characteristics, like a taller body or bigger nose than the other guy. This dynamic re-generation every frame is called Real-Time Deformation. I can tell you, It’s a lot more work for the animators, but it really breathes life into characters.

We couple this with real time interpolation, this means that the game can make up new animation frames whenever it wants to. This is important because polygon characters tend to look an awful lot better when they are moving. In real life, people are always twitching, moving or at least swaying. So do plants and animals. That is why subtle interpolation can also generate a lot of life at little animation costs.

A good example in Messiah, is that when the baby notices somebody he will look at them. This head turn is done by the interpolation. It has actually improved the game because it somehow opened up the field of view. By turning his head he lets you know that somebody is out there without needing a super widescreen monitor. So this is another freebie that you get when you move to real-time deformation.

Something else. In the storage format, as Saxs will show you, the body is stored in parts. This allows you to control and interpolate the separate parts. It also makes tearing an enemy’s body to pieces very easy. So basically, one part of a character can be doing one thing whilst another part is doing another thing. A good example is the wings on Bob. We don’t have to store Bob’s wings animating along with every frame of his other moves. It’s all done in software.

Now before the animators in the audience vomit because they hate the concept of software messing up their animation, don’t worry. We key-frame very heavily and keep it very controlled. Animators will NEVER be out of a job. But that’s a separate topic.


Volumetric Lighting. Here we do not just have model lighting, but true volumetric lighting. For example, if you stick your hand into a beam of light, just your hand becomes lit. We also have projected lights so you can cast symbols on walls, etc. The exciting thing about true lighting is that you can drag bodies around and hide them in dark corners, or you can hide in dark corners and then ambush your opponent.

We also have Texture video streaming. This means that we can change textures in real time using the hard drive as storage memory. The first thing we have done with this unlimited texture memory is to show movies playing in real-time within the 3D worlds.


The big problem is that once you walk down this road, there are no tools to help you. It makes you realize that with a technology like this, the tools become the bottleneck. They are so important. Saxs will show you the tools we are using today. As you will see, they are already quite complex. Another problem is that as our typical game model has gone from 700 to half a million polygons.

Sure, we have happy artists, but our equipment purchasing staff had heart palpitations as one day we had to replace half the machines at Shiny.

Then, worse than that, all of a sudden, some low polygon artists did not have the artistic ability to take such a great step. Which meant we needed some new staff also! Our standard artist’s machine is now a Dual 400Mhz Pentium with a FireGL 4000 card and 512 megs of RAM.

The in-house custom tools are also built from scaleable technology. This real-time simplification allows the editing of these extremely high polygon characters.


We are not showing gameplay until E3. But the engine is pretty solid now. I am going to run an overview video first. Then Saxs can get technical.


So basically, we are just touching on the beginning of scaleable technology. Shiny is currently investing heavily into this future. I also urge you all to consider the world market as you code. And I urge you to share your solutions to these problems with us all next year at CGDC.

On behalf of Saxs and myself, thank you.


Post a comment

Thanks for signing in, . Now you can comment. (sign out)

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Remember me?

David Perry's Game Industry Map Game Design Book