Titor's Equilibrium
It’s a dream, isn’t it?
The matter is clustered in a nebular structure, a rarefied cloud which deflects the light coming from the outer space. A tiny layer of yellow fog lies upon your eyes. You are a ghost, a spiritual work, energy in a condensed form.
Three concentric halos of the size of a small moon take up the space around you. They keep still, waiting. In comparison you are nothing more than a grain of sand, but somehow you feel as if they were expecting you. Suddenly, a green planar structure, a glowing regular lattice, pops up. It’s relatively small, but you know that the three halos generated it. You admire it’s perfection; that pulsing grid is alive and breathing. A compound of planar section grows around you; an hole spectrum of geometrical elements hack the space in a dynamic composition, building a fascinating framework.
Inside it, the "hosts" appear. They are simple geometrical objects, of the size of a man, and seams pretty solid and heavy. Their surface is smooth, and clean, as if it were made of some sort of metallic stoneware . Rectangular engravings form some sort of picture on it. The veins of the leaves filled with black lymph; those bodies are alive too. They rest, like the ibernated element of a timeless photograph.
Then the sound comes. A low frequency, so deep that it seems to come from the matter itself. The halos are moving! Rotating, around you, around the framework. And everything wakes up...
Deliverables
This section covers the deliverables for the game class.
Part 1: Project Proposal
Project Critics
Part 2: Design Specification
Part 3: Interim Report
In this session we discuss how the game development has gone on, so far.
We consider the three fields Physics, Graphics and Gameplay separately.
Physics
The first milestone we have reached, was to convert the C++ code to C#. The process was somehow heavy, in the sense that most of the workaround feasible in C++ didn’t find a one to one mapping toward C#, so things had to be tweaked.
At that point we simply tried to run a scene similar to the
ChuckBox one, and we immediately saw that the performances were drastically lower, even worse than what we had expected at the beginning. Talking with the other groups, and googling around, we decided to bring everything from classes to structures, to gain advantage of the stack and use the heap the least possible. Actually this step improved the performances almost twice, bringing the physical engine to a “feasible” state.
physics test video
The physics is basically composed by two C# Library. One handles Matrices and Vectors, the other handles the physical engine itself, from the Rigid Bodies to the LCP solver. The current structure is quite final, and no drastic changes are in plan.
An other thing we managed to implement are the joints, which work quite well.
joint screenshot
Graphics
Several things were achieved in this field.
First of all we tested some animated texture, which we are going to use for the veins of the objects. The current implementation might be changed if we have additional time in the future. It’s not too bad the way it is, but there is space for improvement.
After that it was a matter of building a complete emissive + diffusive + specular + normal shader. The current implementation makes use of object space normal maps, which make it faster than the tangent space, with the slight disadvantage that the normal maps are more complex to be built.
boxes/spheres shader video
One field we also went far in are the particles. We planned to use particles for the ghosts, and since we wanted to have them like in the concept art at the top of the page, we had to find the right effects combination. At the current point the ghost are created by a double pass, one additive for the aura, and one subtractive for the black body. The particle related classes were rewritten a couple of time, and are now in a semi final structure. It’s a bit dirty, but hey, it’s a game, not a software engineering sculpture.
basic particle video
The last milestone we mention is the post processing tests. In order to display all the gravity related powers of the game we wanted to make use of post processing distortion of the space.
The scene is at the moment rendered into an image which is then distorted. We are now improving it so that the depth information contained in the Z-Buffer is used and only the right part of the scene is distorted. We expect it to work fine, and we are excited about it.
gravity point video
gravity line video
Gameplay
As soon as the physics was in place, we started doing test about the powers. This was a way actually to test both the correctness of the physics (we spotted some bugs thanks to this phase) and the fun component related to gravity fields in a deeper way than what we did in the past with
ChuckBox.
After the first point we discussed several things. One big topic was the camera system; we are still wondering about it and we need to do some testing to really understand what is good for the game.
An other big milestone was to define the Gameplay structure in detail. We did implement a first structure for the gameplay, and the matter was simply to get the game mode running.
But, actually, the hole structure of the game was, at that point, a God class featuring spaghetti code and a blind oarsman, who was beating with his paddle anyone who wanted to change something. Said in an other way, we started rewriting almost everything, but this time with a clear idea in mind about what we wanted.
At the moment we are fighting against the god of the programming, to achieve a playable demo before the deadline.
Layered Development Status
Physics: We are in the desirable target, and we have dropped the space coherence goal. We are in time as planned, and we are now concentrating on else.
Graphics: We are between desired and high target. The plan has been reached and surpassed.
Gameplay: Although most of the goals from the minimal to the desired target have been tested separately, we lack a “all together” solution. We are late with respect to the plan, but we expect to close the gap.
Sound: We discussed it, but there is nothing working at the moment. Once the gameplay is more solid, this aspect will be taken in account seriously.
Part 4: Alpha Release
To follow.
Part 5: Playtesting and Final Paper
Project Status
Done.
Attachments
- Arena with some special volumes:
- particle test for ghosts:
- Cube sketch
- Test Area for physics experiments 8]
- cubes_sphere.png:
- ghost4.avi: ghost with additive and subtractive particles
- (post processing) image blur:
- torus_arena.png:
- aura.PNG:
- news.png:
Trying to get the space less claustrophobic...