Friday, March 22, 2013
U of U #1
Did I mention that the video game design degree I am getting at the U is now rated numero uno? That seriously means #1. In the year that I will graduate I can say that the program I went through got rated #1! That is really awesome. I would like to thank Roger Altizer and Bob Kessler and EAE staff for making this possible. When I started at the U this program was only a few years old. It is amazing how far and fast this happened. It has been a wonderful ride making games. Thank you Thank you!
Saturday, March 16, 2013
Avatar Trials: Ninja Uprising Progress
We are really starting to nail things down and it has been a fun path. The level design and game design has dramatically changed ideas. It has been a rollercoaster. The level design once started out as one big island, then a bunch of small islands. Then, it became a coastal area with a mountain. Finally, we have reached this idea of sky islands and floating platforms. They are floating over water(with sharks!no...) and you will die if you fall into it. You are an incredible ninja that can't swim. Level 1 starts you out with all of your abilities. You will find scrolls that remind you want you can do while the level forces you to use certain abilities. This way we are directing the player down the path of learning the ninja's moves. We give the player "nets" that catch you if you fall, but you have to walk back up and try again. At the end of the level the player should know all of their moves. In Level 2 it is similar to the first, but without nets. The level is also more difficult. Level 3 is very hard and without nets. The player is told that they have no chance to defeat this level.
Normal Mapping
Dear world,
I really like normal mapping. It's like cheating. You create a low-poly model that looks high poly for cheap. I mean initially you may have to create a high-poly mesh first, but that is fun too! Some of the cool tools I use for this are photoshop, xnormal, crazybump, and the nvidia normal map filter. Xnormal is free and the nvidia filter are free. I highly recommend them both. Photoshop is obviously not free, but you could use gimp for the of the post effects. Crazybump has a free beta for mac users and a short demo for windows users. It is quite the program and you can purchase it for under $100 bucks for personal use. This takes a photograph and converts it to a normal map, specular map, AO, and displacement map with settings! However, I am finding that I like to use the xnormal and nvidia filters in Photoshop. That way I can fine tune my map the way I would like it to be. Overall normal mapping is cool and everyone should look into it. Thank you.
-Max
I really like normal mapping. It's like cheating. You create a low-poly model that looks high poly for cheap. I mean initially you may have to create a high-poly mesh first, but that is fun too! Some of the cool tools I use for this are photoshop, xnormal, crazybump, and the nvidia normal map filter. Xnormal is free and the nvidia filter are free. I highly recommend them both. Photoshop is obviously not free, but you could use gimp for the of the post effects. Crazybump has a free beta for mac users and a short demo for windows users. It is quite the program and you can purchase it for under $100 bucks for personal use. This takes a photograph and converts it to a normal map, specular map, AO, and displacement map with settings! However, I am finding that I like to use the xnormal and nvidia filters in Photoshop. That way I can fine tune my map the way I would like it to be. Overall normal mapping is cool and everyone should look into it. Thank you.
-Max
Tuesday, February 12, 2013
Avatar Ninja Publicity!
Avatar Ninja got some publicity by some master's students at the University of Utah! They created a podcast about the undergraduate games. Here is a link to listen to a great podcast:
http://www.spencerbuchanan. com/confessions-of-a-gamedev- podcast-episode-17-u-of-u- game-review
Here they talk about Attraction, Avatar Ninja, and Heroes of Rock.
http://www.spencerbuchanan.
Here they talk about Attraction, Avatar Ninja, and Heroes of Rock.
Tuesday, January 29, 2013
Transparency Shader
Transparency Shader
Thank you to RB Whitaker his fabulous blog I wrote a transparency shader for XNA:
I am going to use this in a game I am working for XBLIG called Ninja Avatar: The Trials. We want to give the player the ability to look through buildings and find something. I will use this shader two-fold. I will give the unwanted buildings a regular transparency, then I will give the object that the player wants a pinkish glow. I am very excited!
float4x4 World;
float4x4 View;
float4x4 Projection;
float4x4 WorldInverseTranspose;
float4 AmbientColor = float4(1, 1, 1, 1);
float AmbientIntensity = 0.5;
float3 DiffuseLightDirection = float3(1, 0, 0);
float4 DiffuseColor = float4(6, 1, 1, 1);
float DiffuseIntensity = 1.0;
float Shininess = 100;
float4 SpecularColor = float4(1, 1, 1, 1);
float SpecularIntensity = .1;
float3 ViewVector = float3(1, 0, 0);
float Transparency = 0.5;
texture ModelTexture;
sampler2D textureSampler = sampler_state {
Texture = (ModelTexture);
MinFilter = Linear;
MagFilter = Linear;
AddressU = Wrap;
AddressV = Wrap;
};
struct VertexShaderInput
{
float4 Position : POSITION0;
float4 Normal : NORMAL0;
float2 TextureCoordinate : TEXCOORD0;
};
struct VertexShaderOutput
{
float4 Position : POSITION0;
float4 Color : COLOR0;
float3 Normal : TEXCOORD0;
float2 TextureCoordinate : TEXCOORD1;
};
VertexShaderOutput VertexShaderFunction(VertexShaderInput input)
{
VertexShaderOutput output;
float4 worldPosition = mul(input.Position, World);
float4 viewPosition = mul(worldPosition, View);
output.Position = mul(viewPosition, Projection);
float4 normal = normalize(mul(input.Normal, WorldInverseTranspose));
float lightIntensity = dot(normal, DiffuseLightDirection);
output.Color = saturate(DiffuseColor * DiffuseIntensity * lightIntensity);
output.Normal = normal;
output.TextureCoordinate = input.TextureCoordinate;
return output;
}
float4 PixelShaderFunction(VertexShaderOutput input) : COLOR0
{
float3 light = normalize(DiffuseLightDirection);
float3 normal = normalize(input.Normal);
float3 r = normalize(2 * dot(light, normal) * normal - light);
float3 v = normalize(mul(normalize(ViewVector), World));
float dotProduct = dot(r, v);
float4 specular = SpecularIntensity * SpecularColor * max(pow(dotProduct, Shininess), 0) * length(input.Color);
float4 textureColor = tex2D(textureSampler, input.TextureCoordinate);
textureColor.a = 1;
float4 color = saturate(textureColor * (input.Color) + AmbientColor * AmbientIntensity + specular);
color.a = Transparency;
return color;
}
technique Textured
{
pass Pass1
{
AlphaBlendEnable = TRUE;
DestBlend = INVSRCALPHA;
SrcBlend = SRCALPHA;
VertexShader = compile vs_2_0 VertexShaderFunction();
PixelShader = compile ps_2_0 PixelShaderFunction();
}
}
I am going to use this in a game I am working for XBLIG called Ninja Avatar: The Trials. We want to give the player the ability to look through buildings and find something. I will use this shader two-fold. I will give the unwanted buildings a regular transparency, then I will give the object that the player wants a pinkish glow. I am very excited!
float4x4 World;
float4x4 View;
float4x4 Projection;
float4x4 WorldInverseTranspose;
float4 AmbientColor = float4(1, 1, 1, 1);
float AmbientIntensity = 0.5;
float3 DiffuseLightDirection = float3(1, 0, 0);
float4 DiffuseColor = float4(6, 1, 1, 1);
float DiffuseIntensity = 1.0;
float Shininess = 100;
float4 SpecularColor = float4(1, 1, 1, 1);
float SpecularIntensity = .1;
float3 ViewVector = float3(1, 0, 0);
float Transparency = 0.5;
texture ModelTexture;
sampler2D textureSampler = sampler_state {
Texture = (ModelTexture);
MinFilter = Linear;
MagFilter = Linear;
AddressU = Wrap;
AddressV = Wrap;
};
struct VertexShaderInput
{
float4 Position : POSITION0;
float4 Normal : NORMAL0;
float2 TextureCoordinate : TEXCOORD0;
};
struct VertexShaderOutput
{
float4 Position : POSITION0;
float4 Color : COLOR0;
float3 Normal : TEXCOORD0;
float2 TextureCoordinate : TEXCOORD1;
};
VertexShaderOutput VertexShaderFunction(VertexShaderInput input)
{
VertexShaderOutput output;
float4 worldPosition = mul(input.Position, World);
float4 viewPosition = mul(worldPosition, View);
output.Position = mul(viewPosition, Projection);
float4 normal = normalize(mul(input.Normal, WorldInverseTranspose));
float lightIntensity = dot(normal, DiffuseLightDirection);
output.Color = saturate(DiffuseColor * DiffuseIntensity * lightIntensity);
output.Normal = normal;
output.TextureCoordinate = input.TextureCoordinate;
return output;
}
float4 PixelShaderFunction(VertexShaderOutput input) : COLOR0
{
float3 light = normalize(DiffuseLightDirection);
float3 normal = normalize(input.Normal);
float3 r = normalize(2 * dot(light, normal) * normal - light);
float3 v = normalize(mul(normalize(ViewVector), World));
float dotProduct = dot(r, v);
float4 specular = SpecularIntensity * SpecularColor * max(pow(dotProduct, Shininess), 0) * length(input.Color);
float4 textureColor = tex2D(textureSampler, input.TextureCoordinate);
textureColor.a = 1;
float4 color = saturate(textureColor * (input.Color) + AmbientColor * AmbientIntensity + specular);
color.a = Transparency;
return color;
}
technique Textured
{
pass Pass1
{
AlphaBlendEnable = TRUE;
DestBlend = INVSRCALPHA;
SrcBlend = SRCALPHA;
VertexShader = compile vs_2_0 VertexShaderFunction();
PixelShader = compile ps_2_0 PixelShaderFunction();
}
}
Po
Better Late Than Never!
I am finally posting after a cold winter break. I spent a lot of time playing Dota2, steam sales, building my portfolio, looking for an intership, writing shaders, and particle systems. I have found over the break that companies are really looking for strong skills. I have skills with a variety of things from computer science to film to shaders to animations, but they really wanted to see what I was good at. I am taking that advice and working sharders and special effects for this semester. I was able to use programs like FX composer and visual studio to help write shaders and special effects.
Currently I have an ambient, diffuse, normal map, specular, and transparent shaders. I have also made a cool cartoon like fire effect. I am also working on directing the art team with animations, sounds, and level design. This is going to be an exciting semester.
I recently went to Disneyland for my wife's half marathon. It was a lot of fun! It is such a refreshing experience for an artist or animator to walk around the park and see all the time put it into to make you feel immersed in the experience.
Currently I have an ambient, diffuse, normal map, specular, and transparent shaders. I have also made a cool cartoon like fire effect. I am also working on directing the art team with animations, sounds, and level design. This is going to be an exciting semester.
I recently went to Disneyland for my wife's half marathon. It was a lot of fun! It is such a refreshing experience for an artist or animator to walk around the park and see all the time put it into to make you feel immersed in the experience.
Saturday, November 3, 2012
Nexus Tablet Sketches
Here are a few quick sketches for the island level. I expected them to have a bit better quality, but these are from my Google Nexus Tablet. I will have to double check if I missed some settings or something.
Update: I can save my sketches from Sketchbook Pro as a PSD. I sent them to photoshop and saved them as png's and they look better. Not sure what the deal is.
The first illustration is supposed to be a crater with a body of water in it followed by a close up of three islands. This was a quick demo as I am still getting used to drawing with a tablet.
Subscribe to:
Posts (Atom)


