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.
Audio systems in games are notoriously static in nature. A buzz word is "sound shaders" but this is more parametrize play parameters than really dynamic sound. For this game project I need a sound system which supports dynamic sound and this is what I've cooked up in the last month.
At the core of the dynamic sound systems sit the Synthesizers. The link points to the wiki page which contains in-detail information I'm going to leave out here. In a nut-shell synthesizers allow to generate sound at run-time using sound production rules (or sources). Synthesizers are assigned to speakers and played back like regular sound files just that they are dynamic not static. Controllers can be defined to manipulate the generated sound at run-time, and live while playing back! The important feature here is that the synthesizers are generic in nature like the rest of the game engine. All of their actual use cases are implemented inside game scripts using/driving synthesizers instead of being hard-coded into the game engine. This provides much more flexibility to me and do you if you work later on with this game engine. For this the new synthesizer editor has been added so synthesizers can be easily created and tested.
Two example implementations of synthesizer driving scripts are included in the game engine distribution: Dynamic music and announcers. Both use a simple synthesizer with a single chain source and are ready to use.
Dynamic music allows to modify music playing by transitioning through music parts using switches. As a test example I used the dynamic music files from Stalker Clear-Sky since they are well suited for this test-case. The included scripts load the dynamic music from an XML file created by hand. The file contains the music parts (sound files), switches used by the game and transitions between music parts depending on switch states. All is implemented in simple game scripts so it can be altered and extended without limits.
Announcers allow to produce in a simple way announcement systems like automated train announcement systems using a list of recorded words. As a test example I used the VOX files from half-life 1 since they are well suited for this test-case. The included scripts load the announcer from an XML file created by hand. The file defines where the word sound files are located. Once loaded a sentence can be given to the script and it plays back the announcement.
The video below shows these two scripts in action from inside the test project. This is a project included in the game engine distribution and is a sort of demo-project to learn the ropes. Copyrighted material as used for my implementation tests are obviously not included.
These are only two small examples which the game will build upon. Since these are scripts it is simple to extend and improve. And now to something different.
The game project uses reusable world geometry a lot. For this reason material sounds are not as simple as assiging a sound type to an object. Especially material-material impact sounds require usually a lot of work with recording tons of sound samples. Since I don't have a sound engineer and not this level of equipment I decided to cut down the number of sounds by using combined collision sounds. Instead of playing one sound for each individual material combination impacts play now a **sound for each material involved**. This reduces work a lot while allowing for more combinations. **Material types** support now a range of different sound events from impacts to actor movement sounds. Sounds are either pre-recorded sound samples or possibly synthesizers. Former is used right now for easier use but later can be used for special tricks.
To improve this the physics system has been also improved to properly handle kinematic and dynamic collisions in a similar way. Collision shape properties are now used on all elements to link collision shapes to object materials. The world editor supports now properties on component textures as seen in the screenshot below.
This allows to assign arbitrary properties to textures while re-defining them in the editor. The game scripts use this to re-define per-texture material type in addition to those defined in element classes. The video below is work in progress on adding more material sounds as well as getting all objects their appropriate sounds assigned.
With the synthesizer system in place I can now do this nifty little surprise I'm twiddling around in my head for a long time. I'm not going to say more for the time being :D .
This project is always in need of helping hands on the content production side. If you are a model artist (skilled in world props, buildings or humanoids) or texture artist you are welcome to get in contact with me. If you have other skills and want to help don't be shy and send me a PM too.
No articles were found matching the criteria specified. We suggest you try the article list with no filter applied, to browse all available. Join now to share your own content, we welcome creators and consumers alike and look forward to your comments.