Epsylon is a game project based on the good old detective stories but taking it a step forward mixing it with an unconventional cast and a new game engine technology. Detective stories are in general static narratives with limited set of interaction and little replay value once the story is done. The player has next to no influence on the way the story unfolds. Here the Epsylon project hooks in and expands the game mechanics to allow the player to conduct investigation his own way. How the player conducts the investigation influences the world and people around him. An AI in the background reacts to the moves of the player potentially altering the course of actions. Besides the basic detective moves the player has access to some "characters" providing some special abilities that can be of help.
You are Georgo Valentino, a private eye. On your way looking to solve one of your longest standing unresolved cases you end up with a hunch leading to the parallel world Alpha-10. In this universe multiple worlds exist next to each other. Very little people know about this though. One of your friends, a scientist, does know. and he most certainly knows more than that. He has a special "friend" himself that he met while researching what is called the "Xendron", the multidimensional space. Arriving at Alpha-10 Georgo is quite surprised finding his "friend" having dropped off his little girl at his side as he has "own business" to take care off. You should learn soon that this little girl (Sean) has some special abilities that can be of help to you. And if that is not enough the organisation you end up with has two special "agents" (Odjin and Bahatos) at their disposal that have their own set of abilities to bring to the table. The interesting part? The little girl and these two special agents are dragons of different kinds. As it looks like they play an important role in the case to unfold.
Will you be able to solve the biggest case you ever had?
All your actions have large influence on the events in the world. It is better to conduct your investigation without force if possible. As you are a stranger in this world people tend to not tell you all they know so you have to find your own ways to gather the informations you need to crack the case. There are multiple ways to solve the case depending on how you approach the investigation and with whom. Be careful though with whome you talk and what you do. The underworld is watching you and will react to your snooping around. Counter measures can range from making "vanish" information you seek all the way to trying to silence you or people you got in contact with. Various features can help you on your way:
One of the key points is that the story is part of the game mechanics. It is not told to the player by hitting NPCs. The story is the main case in the investigation. So to learn the story solve the investigation. Depending on how you solve it you can learn more or less about the story. It is therefore useful to look sometimes deeper than requested. And who knows what influence your choices have on the outcome... or members in your team.
In the last news post AniCator asked for ambient occlusion for the cloudy day system. First things first the Drag[en]gine knows already texture defined ambient occlusion using the ambient.occlusion texture property. You can generate these using Blender3D for example. Since he asked though if dynamic ambient occlusion would be possible I took a little side-step to plug this into the engine.
Dynamic ambient occlusion is something game developers like to use since some time. You can plug those in as a post-processing effect and get done with it. Unfortunately most implementations found so far in games are crappy. I do not wanted to have crappy SSAO in the game. Better no SSAO than crappy one. So I dug around recent implementations evaluating their usefullness (and/or crapiness) with my own modification idea in mind. As it turns out somebody else had a similar idea just recently which is usually a good sign if two minds come up with the same idea. The implementation sails under the name of Scalable Ambient Occlusion or SAO for short. The basic implementation is nice and is screen resolution and depth resistent with constant cost but suffers from some math which likes to produce the dark halos as mentioned in the article above. Altering the math a bit though with a more "sane" mathematical background helps to reduce the problem. Removing black halos though tends to introduce white halos but these should be less problematic.
Cheap implementations plug SSAO in as a post-processing effect messing with all lighting. This is utterly wrong and is another source of bad results. In the Drag[en]gine the ambient occlusion (both texture and dynamic) affects only the ambient lighting. The direct lighting is not "directly" affected but more about this later.
So here first some images of the SAO in action. The shadow areas receive subtle occlusion effects. Over-done SSAO looks crap so the goal has been to have physically plausible ambient oclcusion instead.
And here a test video showing first the pure ambient occlusion texture and then some sample location s with SSAO enbled and disabled. At the end you can also see how the effect does not affect geometry in plain sun light but only in shadows.
With a little extra line of code in the shader the ambient occlusion can be used also to provide a form of limited self-shadow casting. The Drag[en]gine limits this to texture ambient occlusion only since this AO is of higher quality and of smaller scale. This shows the result.
And here a video with a turning light source. The self-shadowed version is a subtle enhancement of the shape perception with the advantage of having no additional cost (no cone-stepping required). As such though the method has it's limits.
There's room for improvements with this entire SSAO stuff but right now it is more important to work off more of the remaining tickets for the first release.