Thursday, November 22, 2012

Trying to Learn GameSalad

We had a choice to choose between learning another 3D gaming engine called CryENGINE, which had beautiful graphics or learn a 2D gaming engine.  I have always been curious to learn a bit more about 2D gaming so I choose to try out GameSalad.

Here is what I was able to do before we continued to our last project.

GameSalad has a drag and drop workflow feel to it.  You create actors (players, scenery, etc.), drag and drop behaviors(movement, speed, physics, etc.) onto them, and then drag and drop the actor into your initial scene(the blank black box with the red cross hair). 


I decided to try to learn as much as possible about GameSalad by making the game itself simple.  I only used cubes.  I wanted to make something like a Super Mario Bros platformer.  I was able to make three sections.  It was made into a template where you could make the game into a touch screen app.

 By clicking on the yellow(left) and red(right) boxes you could move your player(blue cube) left and right.


By pressing the space bar you could get your cube to jump.


I also was able to make a killbox.  A killbox is just an invisible barrier placed anywhere in the level that is there just in case you fall off the cliff.  When you touch the killbox you die and respond at the beginning of the level.


I also was able add a sound effect for jumping and a sound effect for falling off the cliff.


In addition to a killbox(an invisible barrier that kills you), you can also create other invisible objects to fulfill various functions in your scene.


For example, if you don't want your player to be able to accidentally leave the scene, you have to create a barrier to stop them.  I wanted my player to move from left to right so I created an invisible wall(on the left) to prevent them from moving left.


Another example, would be creating an invisible barrier that takes you to the next section of the level.  I was able to use another box, make it invisible, and program it to change the scene when the player came into contact with it.


A problem that you may come across, when transitioning from one scene to another, is where your player will appear in the next scene.  You need to attach a behavior to invisible (change scene) barrier telling it where to place you where you would naturally be placed when moving into the next scene.



Once a player jumped to the top of the platforms, I placed another invisible(change scene) barrier at the top to take them to the next section of the level.  In this section I wanted to make an enemy AI (whitish gray cube) who could move around and hurt the player, but I wanted to make it so you could kill the enemy by jumping on its head.  I found a tutorial that helped you to accomplish this, but by this time we were already moving on to our final project.


Now this may seem incredibly simple, and in some ways it is, but it can get quite confusing when you are trying to figure out what behaviors make the actors in your scenes act the way you want them to.  Here is an example of just the player actor.




There are even more behaviors, attached to the player than these, but I decided just to show you a portion of it in these 3 screenshots.

I would like to continue to mess around with GameSalad some day.  It is, for the most part, fairly simple to get the hang of and fun to play around with.  For our last project though, we have decided to form teams and pick one game engine to try to make a game with.  5 others and I have decided to make a game using Unity.  You should be able to find out about the progress I've been making by following my "Quest for GDA" blog.

I made a quick video showing you the working game play that I was able to make, when I was working with Gamesalad.


Friday, September 28, 2012

Starting Unity

Hello everybody!  Our class has now moved on to a new (free) game engine called Unity.  I feel like it is more programmer oriented than UDK, but I like it so far.

We have to do some Digital Tutors' tutorials to start out with.  I have started doing the "Introduction to Unity" course and so far it's pretty fun.  =]

Here is what I have been building and learning:

     How to put together models in a 3D space,



     making a hallway,



     finishing the hallway,



     installing doorways into the scene,



     finding out the importance of "modular level design" or building a complex scene with a few of the same objects (walls, doors, props, etc.),



     finishing the rooms,


     creating a first person controller and generating colliders (so your mesh is solid),


     adding lights to the scene,



     baking lights into the scene, deleting the lights, and saving game memory,



     adding textures,



     bringing in prefabs,



     adding more prefabs with textures (paper piles and ammo crates),


     sometimes you can bring in simple objects (capsules) and use them as colliders for your geometry,



     bringing in particle systems (FIRE!  UDK all over again eh?  ;) ),

 
     adding sound to the fire,
 

     making glow animation to make the fire appear more realistic and alive,


     creating physics, 
 

     (Like flaming cryotanks rolling towards the player)


     adding pipes and textures,


     putting in more props,


     (Like a room full-o-barrels!)


     refining the hierarchy (it can get messy when you start to accumulate hundreds of objects in your scene) and putting in sliding doors,


     and learning about how to script portions of your game (like the OnGUI Function).


     The rest of the videos continued with going over scripting.  I thought that this tutorial was actually really fun.  =]  Unity is a really cool program.  Here is a video showing a little bit about what you can do with Unity.
 

Friday, September 21, 2012

Personal Project.

Hello everyone,

I decided that one way that I can relax, have fun, and still get work done is to start building my own level using UDK without having to follow any tutorials to make it.  Here is what I have so far:

I starting sculpting some terrain.


I then added a skydome and some grass texture.


I started sculpting a hill.


I made a large cylinder builder brush and tried to texture it like a stone wall (had trouble).


I made it look a little better.


Then I used the subtraction tool and UDK's static meshes to start building an inside to the tower.


I was having trouble with the lighting so I made a LightMassImportance box around the tower.


I then was able to get better lighting effects.


Here is what the inside of my tower looks like so far.


Don't worry.....there will be more later.  ;)

Wednesday, September 19, 2012

Maya to Zbrush to UDK

Hello everyone.  The next tutorial that we have been working on was on YouTube and was called, "Maya to ZBrush to UDK".  The Australian dude does teach you some things, but be prepared for long long videos and lots of "ums".

First I made a plane,


used the bend tool,


measured my geometry,


masking portions of it,


used the inflate tool,


molded some geometry inwards,


started adding details to it,


used different brushes for textures,


and more geometry,


and then started painting my model.


I got stuck in trying to make the texture map because the instructor is using an older version of ZBrush. I am not quite sure how to make it at the moment.  I will try to find out tomorrow.
 
Yay!  With Jeff's help I was finally able to get the texture map off of ZBrush.  I also used Crazy Bump and Photoshop to help me get and modify my texture's normal and displacement maps.
 
Here is my simple mesh from Maya.
 
 
I started learning that UDK can be used to texture simple meshes using super detailed texture/displacement maps from ZBrush. 
 
 
Here it is with its texture maps.
 
 
And here is what it looks like when I tried to make a cave with the mesh, haha.  

 
 I think I will try to see if I can get a kinematic animation going on in there (if I have time).
 
This video looks a little bit different because I had to quickly redo the steps that the youtube instructor was teaching.  Here is a short video of me running around in the cave of doom.