I had a couple other “gotchas:” my football field actually was terrain, just with very small height variability and not too much decay. However, this technique really needs a flat plane to place the shadow on, so for this submission I flattened my terrain to a plane. Second, my shadow was starting in front of my goal posts, then finishing normally behind them. Chris reminded me that my goal posts were actually starting below my terrain, so the whole shadow was being drawn above where it would actually start, and that’s why it was showing up in front of the goal post. To fix this, I moved my goal posts to be just on top of my field. They are a bit taller than realistic goal posts, but they are still cool. Finally, the shadows were too tall to stay on the field terrain, so they were floating in the air. To fix this, I added a plane surrounding the field and colored it cornflower blue upon Chris’s request. Below are a couple pictures of shadows, and then a video for the win! Peace out.


]]>
Scene without fog:

Then scene with fog:

Video of my foggy field:
]]>With my water, I had to think of a reasonable way to add it to my football field scene. Chris suggested a pool of blood. I heavily considered it (I thought about it day and night for several minutes), but I decided to keep my scene PG. As such, I brainstormed a little while longer and realized that football players take ice baths after practice! So I decided to add my water in a kitty pool on the side of the field, which is really an ice bath for the players. Here are some pictures of my water from a couple different angles, and my video is below.


Here is my video demonstrating my water. It is pretty funny if I do say so myself.
]]>When I first tried to implement this functionality, I wanted to try and make it so that the terrain file only had to be read once. I did this by building up a two-dimensional array of heights as I read in the object information in the get mesh method. But then I was passing this array into my camera class and saving it there to use when I moved around my scene. However, something in that design didn’t work properly, and it wasn’t the best design because it doesn’t make all that much sense for the camera to have a heightmap of terrain that may be contained in it’s depiction. Therefore, I ended up practically duplicating my image class and turning it into a terrain class with a float array of heights. I also used bi-linear interpolation when getting the height out of my terrain. Whenever I advance or strafe in my scene, I get my new height from the terrain class and set it in the camera class. I also made my terrain bumpy for the purpose of demonstrating this new functionality. Screenshots and video follow:



]]>
Here are a few images of my scene with a sky:


And here is a video of me swirling around on my scene with my sky:
]]>
Here is the shader code:

Here is a comparison of the goal post in my scene from before it was specularly-highlighted to being specularly-highlighted:

Finally, here is the video (I actually talk in this one!):
]]>
I did add a second goal post and fiddled with orienting them. It turned out that I hadn’t actually implemented my GetRotateAroundX and Y methods, so I had to reference the Rotation Matrix page by Wikipedia to get those matrices. And voila! I had goal posts.
Here is the shader code for the terrain with the texture:

Here is a picture of my football field:

Finally, here is my video of me running around on my football field!
]]>1) I didn’t realize I needed to set the size to be one greater than a power of two, so I was getting extremely large numbers and NANs as results :/

2) The terrain wasn’t oriented correctly in the lecture, so I needed to apply the heights to the y axis instead of the z axis and reverse the ordering of the vertices.

Now I have a nice terrain! I don’t want a very rough terrain, so I set the height range to be within 3. Here is a picture of the scene, including my goal post model:

Finally, here is a video of me running around on my terrain:
]]>
Once I got this code working, I modeled a goal post in Blender to read in as my object. However, even though I had joined all of the components in Blender before I exported, the goal post still shaded strangely in my scene. Chris’s most recent lecture revealed my fix: the normals weren’t calculating correctly due to shared vertices, so all I needed to do was add the “Edge Split” modifier to my model. When I re-exported with the applied modifier, it shaded much better:

Here is a very short video showing my model in my scene: (Sorry, it’s shaky because I did it on my camera, and I don’t talk because I was in the lab and there was other people in there too!)
http://www.youtube.com/watch?v=ZHxk-2N9apI
]]>
The main mechanics we will use to make the game fun and interesting are riddles and problem solving. We will have several riddles/problems to solve throughout the game, and they will keep the player challenged and intrigued to continue and find the next one. We also have this concept of aging, which is unique compared to other games. It almost creates this racing concept, where the player is racing against his/her own time to try and escape. This leads into potential truth-based themes for our game, such as “The mind is ageless” since the player will have to use his/her mind to play through the game regardless of the fact that he/she is “aging.” But in general the game has a dark, almost eerie feel to fit the mood of the game.
Building our game will be heavily model-based, as we will have to model every room and everything in the rooms. Therefore, we all realize that we will need to improve our modeling skills. We also know that our Unity skills will have to be proficient, so we all intend on improving our Unity skills as well.
]]>