Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by David Hunt, posted on August 20, 2001

Image Description, by David Hunt

Here are a couple of shots from our game which is in mid development.

The game is called Ghostmaster - the idea is you've got to scare people from their homes - the more you scare them the more energy you get the better the hauntings you can command.

Our company is Empire and our team is called Sick Puppies, we're based in Oxford England.

The game features fully photon mapped pre-lighting. What this means is that we generate our light maps by simulating photons flying about the scene from the various light sources. Each time a photon hits a surface it splats a bit of it's energy onto the surface and some of it is reflected. Eventually if you leave the compiler running long enough you get wonderfully warm, diffusely lit scenes which look unlike anything you've probably seen in games before. A level has to be lit over night to get good quality.

For more shots see - these are all in game shots, not pre-renders and the game is running at speed.

David Hunt

Image of the Day Gallery


Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.

August 20, 2001, 02:00 PM

Wow!! Very nice! Incredible lighting! I must say, I hope to be able to do something like this someday. So basically, you are doing true lighting, right?


August 20, 2001, 02:03 PM

I've already seen these pics. I was quite impressed a week ago though ;)


August 20, 2001, 02:05 PM

Just noticed something else, your level leaves shadows (because of your lighting methods), but your objects that move don't (like the people). So, how do you light the people? Just put a regular light at your light sources? I don't know much about lighting, but I'd put some kind of shadow on the ground for the people, because otherwise the illusion is destroyed somewhat.


August 20, 2001, 02:21 PM

This looks *really* nice! Both lighting and architecture of the buildings is great IMO. Better than any game I've seen before which did not use pre-rendered backgrounds :)


August 20, 2001, 02:24 PM

I do have one question about your engine though..
does your lighting account for transparent objects? like would part of the light reflect, part of it refract, and part of it "splat" as you would call it?

Pierre Mengal

August 20, 2001, 02:28 PM

I don't really like 3D stuff (in general, i prefer 2D :) Yes it's true)... But i really LOVE the concept of your game. Can you tell us a little bit more about the gameplay ?



August 20, 2001, 02:35 PM

LOL I prefer 1d, but more interesting is 2d. However, 3d is even more interesting.
The more dimensions, the better, but how do you imagine 4d ? Time belongs to different category, so do not mix it


August 20, 2001, 02:43 PM

two words:
chrono trigger ;)
best story concept ever!!


August 20, 2001, 02:43 PM

finally, good global illumination in a game! :)

i love these kinds of games, i remember something like this ages ago, "the haunting" i think it was called...


August 20, 2001, 02:46 PM

yes, you get ALL lighting effects with photon maps.


August 20, 2001, 02:46 PM

I'm not too sure about this one but I guess an hypercube can be considered as 4D

Java applet hypercube


August 20, 2001, 02:49 PM

btw your game looks REALLY cool. please don't spoil it by using lowres lightmaps, the lighting is everything in a game of atmosphere (like this one, and thief springs to mind)


August 20, 2001, 02:51 PM

mmmmmm good eyecandy!
combined with things like shaders and dynamic texture generation (realistic fire for example) this could be one hell of an engine.


August 20, 2001, 02:52 PM

And, returning to this iotd ...
I have a question.
Do you think that all game needs is true-lighting and more shadows, more bump-mapping, reflections, environment mapping ? Is that all we need ?
I say this because I see only that kind of thing. We are mimicking mechanics quake3, in fact, we mimicking it everytime.

I see the weakest part- the models, which are farther away with some reason...(I believe)

So do game needs a little bit more, or just perfect lit environments is enough ?


August 20, 2001, 02:57 PM

yes, you get ALL lighting effects with photon maps.

This depends very much on how you use them. The use which Henrik Wann Jensen originally described does indeed account for practically all lighting effects (including specular to diffuse light transport i.e. caustics). I have found however that very few people implement everything he proposes. For one, he differentiates accurate and approximate calculations and only really uses the photon map as an auxilliary structure (with the clear case of caustics which are directly rendered). For accurate diffuse-diffuse light transport he still uses some variant of path tracing (though obviously not the exact algorithm that Kayija originally proposed -- it is usually extended with splitting and Russian roulette) and shadow rays for visibility. Photon maps can also be used for approximate lighting effects. For instance, Jensen proposes a use of the photon map for shadowing for a surface point by finding the N closest photon hits and looking at the irradiance gradients and the irradiances. The reasoning is that if the surrounding photon hits are primarily indirect (i.e. they have been reflected more than once) we will assume that the point being considered is in shadow also. Anyway, has anyone toyed around with photon mapping for real-time dynamic lighting? It has some problems if you use it out of the box but it might be adaptable.


August 20, 2001, 03:03 PM

rephrase: "yes, you POTENTIALLY get ALL lighting effects with photon maps". i mean, you could always make photon maps and not use them ;)


August 20, 2001, 03:12 PM

rephrase: "yes, you POTENTIALLY get ALL lighting effects with photon maps". i mean, you could always make photon maps and not use them ;)

Sorry, it was not my intention to nitpick. I just wanted to point out that the majority of people use photon maps without implementing all types of light interactions. Doing this requires more than just photon maps. You need a path tracer or something that solves the rendering equation to a sufficient degree (e.g. pure radiosity does not do this). In fact, the only thing that photon maps makes easier (ignoring the obvious performance increases they provide) is (i) caustics and (ii) light interaction with participating media. Examples of the latter are fog and smoke. Basically anything that scatters light (e.g. a vacuum obviously does not do this). By the way, nice article on real-time ray tracing you wrote for HUGI.

Simon Veith Reinholt

August 20, 2001, 03:34 PM

Finally someone with taste ;) 2D games rule! heh

(Sure a few 3D games are fun....but nothing beats a good old isometric engine...or a platform scroller :) But try convincing game creators these days....soon there won't even be 2D RTS games availble anymore, and the rest will all be rendered in 3D with too many alphablended pixels in every colour available). :/

Though nothing personal, David :)


August 20, 2001, 03:36 PM

So you basically did a long ray trace?


August 20, 2001, 03:53 PM

now THIS looks really cool. great stuff. best IOTD i've seen in a long time :) (right after mine.. hehe :)) )


August 20, 2001, 04:00 PM

So you basically did a long ray trace?

There is more to it than that. Path tracing in itself is basically a long (in fact infinite unless modified--see below) ray trace. Instead of spawning multiple rays at intersections you always follow a single path unless probabilistic splitting is used. When a ray intersects a surface a reflection direction is chosen stochastically based on the BRDF of the surface. After each reflection, the power of the ray is reduced. Russian roulette is often used to terminate rays at random to end an otherwise infinite process. The probability of a path terminating is inversely proportional to its power. This basically solves the rendering equation.

Photon mapping is a set of algorithms that both speed up the typical path tracing process as well as make a lot of interesting effects much easier to model (primarily caustics and participating media). There are two phases in photon mapping. First we generate the photon map. Light emitters fire photons (light particles) into the scene. When a photon hits a surface the intersection point and the power of the photon at that point is stored in a kd-tree. We also store whether this was a caustics hit (specular-diffuse transport), a first hit (direct hit) or not (indirect/shadow hit). The caustics hits are often stored in a seperate kd-tree for easy access in the following phase. The photon power is reduced and it is reflected according to the BRDF of the surface. Again, Russian roulette is often used to terminate the photon tracing.

In the second phase, the photon map is used for direct rendering of caustics as well as accelleration of path tracing. In the case of caustics the caustics map is directly rendered, basically. Henrik Wann Jensen, the inventor of photon mapping, distinguishes between accurate and approximate lighting. Caustics aside, photon maps are primarily used for approximate lighting. As I mentioned above, it can be used for accellerating shadow testing by looking at the neighboring photon hits.

Another accelleration technique for path tracing is irradiance caching. This technique is quite simple. First we define a threshold radius which is directly related to the accuracy of the lighting process. We then set our path tracer into motion as usual. When a ray intersects a surface, we see if there are entries in the irradiance cache which are within the threshold radius. If not, the irradiance is computed using regular path tracing and an entry is inserted into the cache at that location. If there is, a weighted sum of the cached irradiances are used to compute the irradiance for the point in question.

I hope anyone found this interesting. You should go look in Jensen's and Ward's papers for more detailed discussion.

[1] Jensen. Global Illumination using Photon Maps
[2] Ward, et al. A Ray Tracing Solution to Diffuse Interreflection


August 20, 2001, 04:01 PM

I'm assuming that the fire is a potential light source and hopefully procedurally created. If this is so and since you are using photon mapping do you get the flickering light and shadows caused from the flames throughout the room?


August 20, 2001, 04:02 PM

Oh, great IOTD by the way =)


August 20, 2001, 04:04 PM

oops.. i forgot my question :).

who do you generate the artwork? with a package like 3ds or maya?


August 20, 2001, 04:16 PM

That is beautiful! Photon mapping ownzz! :P

zed zeek

August 20, 2001, 04:17 PM

those are a couple of nice looking screenshots, sweet as, question -does the firelight on the floor flicker or is it burded in?


August 20, 2001, 04:22 PM

Sounds like an interesting game and those visuals should compliment it really well - groovy work :)

erik robson

August 20, 2001, 04:44 PM

Stunning shots.

Are your lights point lights or area lights?

A couple of the shots on your page suggest the hard, distinct shadows that come from using point lights in an otherwise realistic lighting simulation. (Particularly "Image44.jpg" and "Image70.jpg".) It's a picky point, I know, but everything else about the shots is perfect.

The only other comment I'd have is that some of the interior shots seem to lack the high-contrast lighting that might contribute to the atmosphere of a horror (or ghost-based) game.

Absolutely beautiful. Finish it so we can buy it :)

Craig Rennie

August 20, 2001, 04:52 PM

How about a unique gaming concept? It's nice to see people trying something new, even if it is just a compilation of lots of already used ideas. The point is it's fresh.


August 20, 2001, 05:27 PM

Very nice atmosphere you got there, I saw the pictures on your website and they are quite good. Nice to see at last a game without a I-can't-see-a-thing style. I love the textures and the lighting is pretty good. But what is really the difference between photon mapping and radiosity lighting? well it seems to produce quite the same results. I know those methods are different but what is the advantage of photon mapping over radiosity lighting?

This thread contains 76 messages.
First Previous ( To view more messages, select a page: 0 1 2 ... out of 2) Next Last
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.