Prototypes
Graphics
Diffusion 2D
This prototype implements our basic concept of the diffusion on a 2D grid. It allows one to add/subtract energy, which will already have some energy effects (flow for water). We learned that its not that easy to keep the water stable, so we had to include some damping. We also learned, that having one byte per energy channel might be fast to compute, but is limited due to its discrete nature. We will maybe have to change to a float representation.
Camera
This prototype implements a camera, first-person as well as a third person.Diffusion 3D
This prototype implements the 2D diffusion into the 3D environment. Already Texture blending and Terraforming is implemented. The 4 blended texture mapping proofed to be easy for a start, but has difficulties at sharp energy discontinuities. So we might have to do it completely on gpu (per pixel energy lookup) or introduce 8 texture blending.
Particle System
This prototype ports and adapts various particle systems found on the www.Static Camera LOD
This prototype tests a circular buffer with multiple levels of detail... a lot of problems with aliasing.Quadtree
This prototype ports a quadtree and fixes some issues.TextureTests
This prototype tests animated textures based on tileable perlin noise. Water and Lava are such examples. Also bumpmapping is implemented. (tb, 8-9.3) Bumpmapping proved hard and is kind of an unsolved problem. We do not want to save the whole frenet frame for every vertex, since it is so dynamic. But the terrain is also highly regularly triangulated, so we try to approximate binormal and tangential vectors on the gpu. Also the water is not an easy issue, since we do not have one advection direction but it could flow to everywhere. We experimented with temporal aliasing and it works.FireTests
Fire is especially challenging. We tried particle systems, but the performance was poor. We then implemented various fires, also the version of Nvidia (Yury Uralsky) with thanks to Mauro Gentile, who provided the flame.png... We must say, that we are really happy with the fire. Now the next challenge is to produce a really BIG inferno!TestLOD
This prototype implements a working continuous LOD system with geomorph based on quadtree partitioning.Supersampling
This prototype demonstrate our ideas how to refine a mesh based on some simple calculations including the normals of the sourrounding points. Even though its not fully correct, it refines our terrain nicely. The Normals are color coded. The normals proved to be hard and once we got them right, it didnt look that much better, so we decided to stick to a simple averaging scheme.Render to texture
This prototype was build to find a workflow from 3dsmaxs render to texture function to xna. It shows a model of which the lightning was baked onto its texture in 3dsmax. What did we learn form this?How to actually load a 3dsmax texture into our game. What was harder easier than expected?
This was fairly easy and didn’t make a lot of truble What did we change due to the Prototype?
We didn’t change anything but we became sure that all the shading and light effects should be done in post processing.
Animation prototype
This prototype was build to port the Animation Component Library to Game Studio 2.0, and to find a workflow for applying motion capture data onto a 3d character using 3dsmax (biped, skin modifier, fine-tuning vertex weights, load mocap data). What did we learn form this?We found out how we could load a model and its animations into xna. We were so happy to see the drizzle character moving his feet in the game:-) What was harder easier than expected?
The hardest part was to make the character disappear after ending the game, and to have a decent drawing order with the character and the terrain. What did we change due to the Prototype?
We didn’t change a lot but we became aware that we should use mocap data for our game
Sound
Soundtext
I created a Sound test prototype to get to know how to play sounds and stuff in xna. Background and foreground sounds are possible. I need to find out though why 3d sound is not working properly for me. What did we learn form this?I found out how sound works in xna. What was harder easier than expected?
I didn’t get 3d sound to run eventough it should be pretty easy according to the internet sources. What did we change due to the Prototype?
There was no explicit changes from this prototype to the project it’s selfe.
Networking
Lan Tests
Since our game is supposed to be a multiplyer game we needed some tests with lan. Therefore I got myselfe a crappy Lan sample from the net that was totaly wrong corrected it and got out of it what I needed for the game:What did we learn form this?
I found out that it can be a pain to work with examples from the internet, this one was totally wrong, so I had a lot of time until I found out that this fellow did not understand the basics of network communication from the xna library. I found out how to use life and how to connect multiple players together. What was harder easier than expected?
Moreover we found out that it’s going to be easy to implement more than 2 players. What did we change due to the Prototype?
Due to this test we found out that we need to implement our own protocol for the exchange of data.
Gameplay
First Tests
I tried to find out what I needed to do to add basic 3d models into xna, and how I could scale the 3d models. I therefore used this nice balloon that I stole from the net to test it.:What did we learn form this?
How models are put into the xna environment. And how hard it is to set the matrices (projection, view, world) to the right values. What was harder easier than expected?
It was very hard to get to know the view, projection and world matrix. This was a lot harder than I expected I needed at least 2 days until I got this one running. What did we change due to the Prototype?
This had no effect impact on the changes of the project.
First shooting character
After Scale testing I went on and wanted some shots in the game for the basic gameplay testing, since it was the goal to shoot at each other. Therefore I added some bullets to a 3d model I found on the net. It was a pain to scale the point sprites.:What did we learn form this? How I can draw 2 d sprites into a 3d environment, how effect files work. How basic Shaders need to be set up, I had a look at hlsl and understood that it is also checked and compiled by visual studio. Event has a nice error support. What was harder easier than expected?
It was very hard to find out how the code and the fx files work together, and moreover I was not aware of the fact that point sprites have a defined maximum size. What did we change due to the Prototype?
We did not change a lot, but we got aware that it is crucial that the player has some sort of creation poison of the shot, such that it looks like he conjures the shoot in his hands. Otherwise it looks quite strange if there are shoots coming out of a 3d model.
Point sprites as Energy Bolts
Since point sprites seamed a big problem I tested the max size of them, and they have one unfortunately.:What did we learn form this?
I found out how particle systems use point sprites to do their effects. I learned how Alpha blending works with these images and some more details about effect files. What was harder easier than expected?
It was not hard to understand it, as soon as I had understood the concept of point sprites this was very easy I mainly did this to get to know how big you can make point sprites and what the limit is. What did we change due to the Prototype?
We decided to use some more of these basic effects in the final game since they are pretty easy to use and look nice.
The initial Menu
Since we wanted to play the game after entering some information like which game we wanted to connect to we needed a menu, this is what I got out of a sample and improved it.:What did we learn form this?
I learned how a Stack Oriented window display manager works. The example that is on the web, is pretty easy to implement into the game. I had no problem to take this example and integrate it into the basic game play test prototype explained next. What was harder easier than expected?
The structure of the example used was so good that It could be taken with hardly any changes into our project. This is normally not the case with examples. But this one was very nicely structured and the class hierarchy was written in a way that it supports reuse. What did we change due to the Prototype?
I could very fast integrate the menu that I decided to make the network connection menu early on in the game.
The first Play mode: Fragging
This is the first screen if you start the Frag mode of our game. The host is waiting for players to connect.:What did we learn form this? How I can dynamcly load in menu screens dependant on the gameplay mode. What was harder easier than expected?
It was exactly as I expected it What did we change due to the Prototype?
No big changes did arise from this.
All combined to a first playable game
So I did a lot of work at the initial 3d Terraforming prototype. This is where all the gamplay testing happened on.:The Ugly ogre is Alive, the 3d model made by Mario, looks damn cool, just the lightening and the colors horrible (colors chosen by Hauri:-P): What did we learn form this?
How you can make a character move around in an environment
How the diffusion should be created from user interaction.
What textures are making a good impression as energy representer.
How the gmaeplay actually shall look like as we described it in the following document:
How hard it is to integrate all the other prototypes to one prototype.
How hard it is to work with 3 people on the same code segments.
How tricky SVN can be.
How to put our project to the X-Box
Here the gameplay explained from the view of our main character some more screenshots of the gamplay prototype to get the feeling of it What was harder easier than expected?
The most time we where held up by very small problems, such as the draw order of the objects, this was horrible for us. But all in all we did progress very fast such that we are at the moment ahead of schedule, but we don’t want to get too confident so we think there will be some problems that we will encounter later on for sure. What did we change due to the Prototype?
We changed the whole gamplay, this was the idea of this prototype and we plan to make some game events with our Playskilled friends and family to check weather the gameplay works out for us.
Moreover we decided to introduce gamemodes such as Frag Mode and Capture the Flag. Since this adds to the fun of the game. But we don’t want get them in to early and want the basic environment player and palyer player interation to be good before we start with new modes.
- Ogre posed rendered with ambient occlusion:
I | Attachment | History | Action | Size | Date | Who | Comment |
---|---|---|---|---|---|---|---|
jpg | AnimationPrototype.JPG | r1 | manage | 36.3 K | 2008-03-13 - 22:54 | UnknownUser | |
jpg | Basicgameplay.JPG | r1 | manage | 35.3 K | 2008-03-14 - 15:08 | UnknownUser | This is the first screen if you start the Frag mode of our game. The host is waitng for players to connect. |
png | Diffusion2D.png | r1 | manage | 46.2 K | 2008-03-10 - 11:27 | ThaboBeeler | |
png | Diffusion3D_1.png | r1 | manage | 285.0 K | 2008-03-10 - 11:27 | ThaboBeeler | |
png | LOD1.png | r1 | manage | 113.5 K | 2008-03-10 - 11:17 | ThaboBeeler | LOD 1 |
png | LOD2.png | r1 | manage | 181.3 K | 2008-03-10 - 11:17 | ThaboBeeler | LOD 2 |
jpg | LanSendingSample.jpg | r1 | manage | 19.5 K | 2008-03-14 - 15:02 | UnknownUser | Since our game is supposed to be a multiplyer game we needed some tests with lan. Therefore I got myselfe a crappy Lan sample from the net that was totaly wrong corrected it and got out of it what I needed for the game. |
png | Lava.png | r1 | manage | 499.2 K | 2008-03-10 - 11:45 | ThaboBeeler | Lava Bump Mapped |
jpg | Menutest.JPG | r1 | manage | 56.5 K | 2008-03-14 - 15:07 | UnknownUser | Since we wanted to play the game after entering some informations like which game we wanted to connect to we needed a menu, this is what I got out of a sample and improved it. |
png | Perlin.png | r1 | manage | 106.2 K | 2008-03-10 - 11:45 | ThaboBeeler | Perlin |
png | Refine0.png | r1 | manage | 93.1 K | 2008-03-12 - 16:39 | ThaboBeeler | Refine 0 |
png | Refine1.png | r1 | manage | 97.9 K | 2008-03-12 - 16:39 | ThaboBeeler | Refine 1 |
png | Refine2.png | r1 | manage | 99.3 K | 2008-03-12 - 16:39 | ThaboBeeler | Refine 2 |
png | RefineGrid0.png | r1 | manage | 25.1 K | 2008-03-12 - 16:40 | ThaboBeeler | Refine Grid 0 |
png | RefineGrid1.png | r1 | manage | 35.7 K | 2008-03-12 - 16:40 | ThaboBeeler | Refine Grid 1 |
png | RefineGrid2.png | r1 | manage | 50.9 K | 2008-03-12 - 16:40 | ThaboBeeler | Refine Grid 2 |
png | RefineGrid3.png | r1 | manage | 71.9 K | 2008-03-12 - 16:40 | ThaboBeeler | Refine Grid 3 |
png | Water.png | r1 | manage | 346.3 K | 2008-03-10 - 11:45 | ThaboBeeler | Water |
png | fire.PNG | r1 | manage | 189.0 K | 2008-03-27 - 15:26 | ThaboBeeler | Hot Hot Hot! |
jpg | ogreAmbOcc.jpg | r1 | manage | 114.3 K | 2008-03-21 - 18:21 | UnknownUser | |
jpg | playing_the_lan.JPG | r1 | manage | 63.1 K | 2008-03-14 - 15:09 | UnknownUser | So I did a lot of work at the initial 3d Terraforming prototype. This is where all the gamplay testing happend on. |
jpg | renderToTexturePrototype.JPG | r1 | manage | 35.9 K | 2008-03-13 - 22:44 | UnknownUser | Render to texture |
jpg | scaleABasicModel.JPG | r1 | manage | 20.2 K | 2008-03-14 - 15:04 | UnknownUser | I tried to find out what I needed to do to add basic 3d modells into xna, and how I could scale the 3d modells. I therefore used this nice ballon that I stole from the net to test it. |
jpg | shootingball.JPG | r1 | manage | 24.2 K | 2008-03-14 - 15:05 | UnknownUser | After Scale testing I went on and wanted some shots in the game for the basic gameplay testing. Since it was the goal to shoot at each other. Therefore I added some bullets to a 3d moddel I found on the ned. It was a pain to scale the point sprites. |
jpg | ugly_point_sprite.JPG | r1 | manage | 20.4 K | 2008-03-14 - 15:06 | UnknownUser | Since point sprites seamed a big problem I testet the max sitze of them, and they have one unfortunatly. |