Saturday, June 22, 2013

Ever wanted to make mobile games for free? Contribute and learn how!

Here is my video for my Indiegogo videogame production education campaign! Please contribute by clicking this link: http://bit.ly/11vxpo9 or go to Indiegogo.com to check it out! If you have ever wanted to make games for free take a look! Thank you so much for your support!

Sunday, June 2, 2013

Unity Mobile License are free! That is totally awesome!

Unity Mobile License are free! That is totally awesome!

If you haven't noticed already ready that Unity3D licenses are free. This means so many awesome things! This means you can take the free version of Unity3D and make a game for android or iOS or OUYA! The game industry has come a long way. I am very happy to announce this. You can also subscribe to Unity3D Pro for $75 a month for at least 12 months. This is great if you can't post up $1500 right now. Anyways, please check out Unity3D at http://unity3d.com/ now!

Thursday, April 25, 2013

Avatar Trials: Ninja Uprising Moving Forward

Now that Avatar Trials: Ninja Uprising will be published on Xbox Live, we have to think about the future of Avatar Trials. Depending on how well it does we might take it to the next level. Windows has come out with Windows 8, Surface, RT, and a phone. What if Avatar Trials was ported to those systems, then...wait for it...we port Avatar Trials to the new Xbox 720/Durango! The exposure would be amazing. Windows has been shifting to the growing market and becoming more mobile friendly. This is believe is the best way to stay in business. I would think that we would add more levels, work with the art, and animations to make a better game for the port. In the meantime we need to think how are we going to make this port happen. This is a very exciting idea and I hope we move forward with it.

Avatar Trials: Ninja Uprising PASSED!

Avatar Trials: Ninja Uprising PASSED the XBLIG reivew process! We get to publish! This means that 4/26/2013 is the day of the Avatar Trials! This has been a long journey of iteration and hard work. I am very excited to see how the game is received. During the EAE demo day that was followed by 3 local news stations: See the #1 game program on the news! Fox 13:, KSL:, DesNews:, we had many people play our game and there were pretty impressed! They liked the use of the Avatar, ninja abilities, levels, and the platforming. We had people play our game and beat the first level. They would then leave. However, they would come back for more! They had to beat the other 2 levels. It was exciting to see how much people liked our game.

XBLIG Review Process

Getting a game to pass through XBLIG is not always an easy task. There are an incredible number of ways to crash your game. Using xbox profiles, purchasing, demos, storage, etc. can make it very difficult to get your game published. We have gone through 2 review processes and failed. There were some interesting bugs and great comments. Things like game crashes here, camera clipping here, or even art suggestions that help the game flow better. I really think this is a great way to test your game. There is a great community of developers on XBLIG that for free will test your game and give you feedback. The catch is that they hope that you will test their game too. I hope that Microsoft does something similar to this and XNA in the future. Indie devs are the future!

Saturday, April 6, 2013

Dragon Taunt

     To charm up our game I had to think of something silly that would make me laugh. Sometimes game production isn't as much fun as it should be. When I start feeling down I try to think of silly things to put in my game to make me laugh. This is when I thought it would be fun to have our normal mapping dragon reference become the antagonist. This dragon taunts you when you die. He has a list of scripted things he says to make fun of you. There are humorous and sarcastic. I found that it was a nice way of adding some charm to the game. It is also a nice little easter egg for those who know what the XNA Normal Mapping dragon is.

Music and Sound Effects

Music and sound effects are now in the game. We have a musical track, character noises, ambient/nature sounds, and UI sounds. I got most of my sounds from Freesounds.org. I then edited a lot of my sounds in Audacity(great free program). Finding a female grunt/jump noise is more difficult than I thought. Most of them were inappropriate(lol). There are lots of male noises out there, but we need more female sounds! Making the UI sounds were the most fun. I would find a weird sound and edit it in Audacity to make it sound more clear. Sound editing is totally fun!

This game has really started to come together as we near the deadline. I can't wait for our release!

New Level Screenshots

Here are some great new screenshots. I removed the player and its components to take screenshots. I only kept the player shadow so I knew where I was while I took screenshots.





Saturday, March 23, 2013

Avatar Trials: Level Evolution


In my last blog I mentioned that iteration is key. I am posting the evolution of the Avatar Trials level design.

The earliest levels I have are below. Level design is a lot more complicating than it sounds. It seems like you can just throw a bunch of assets in and be done. That works if you want a level that feels like poo. The pictures below may look very lame, but they could be a fun level to play on. The reverse is that you could have a beautiful level, but could play like crap. This post is about how iteration makes your game fun!





The pictures above were some concept art done by Derek Young. This was to show how the level layout of our main level and how the player gets around. This idea was mostly scrapped. This concept centered more about stealth and parkour. We instead evolved into a time trial game with floating platforms.





This was the first level created. It was on an island and this island would contain the player. They would have to run around the island to complete tasks and parkour.

This concept art was to show instead of being trapped on one island, the islands instead float in the sky. This creates tension with the player since if they fall, they die. We took the floating idea to the next level. In the current levels we use floating platforms and floating islands.

Photo

This concept art was to show instead of being trapped on one island, the islands instead float in the sky. This creates tension with the player since if they fall, they die. We took the floating idea to the next level. In the current levels we use floating platforms and floating islands.

                                         Photo

Level design is all about iteration and play testing. Don't be afraid to throw everything out and start over, but learn from what you did. Also, don't make your game a secret. Let everyone play your game. Even people you know that don't play games. If they can't pick up and learn to play it then something is wrong.

Avatar Trials Level Pictures:

Avatar Trials Level Pictures:

Photo

Photo

Photo

Photo


Challenges with Avatar Trials

     Avatar Trials has been a great experience. We are able to make a game at the top school in the nation for making games and instantly export our title to Xbox 360 for testing. We have a great team of 12 and two semesters to do it. However, there are great challenges in video game production.

    Unless you are a giant prodigy, making games is difficult from early concept to pre-production to marketing. As the art director for Avatar Trials: Ninja Uprising, I had some tough challenges to help get this game to the Xbox Live. Project management is one of the tougher parts of this project. When I work alone it is easy for me to get in a groove and create cool stuff, but in the groove I make things only a certain way. It is tough for me to hear criticism from eleven other people and make the change. The other way around I have to make decisions and tell people things need to be changed. Artists can get a bit emotional, but that makes artists great. I tried to change my style and help others too.
     Another problem is iteration. Iterations are huge in video game design. Avatar Trials went through revision after revision until we decided how we could make our game fun in the amount of time we had. I could not be attached to an idea that I liked if it was not fun. Video games should be at least entertaining. Iteration is key.
     I also had issues with staying to a rigid schedule. When school, life, and work gets in the way of my video game it was important to keep everyone on task. This is harder than it sounds. Everyone is busy and no one has time. Make Time!
    Finally, when managing a team communication is key. Making sure that everyone is on task and communicating with each other is vital. After 3 game projects I still have a hard time communicating and keeping everyone on the team talking to together.
    To wrap up: Be ready to throw out everything and start over. Work in a team. Iterate over your game. Create a schedule you can stick to, but don't burn out. Communicate! 

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

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.

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();
    }
}

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.