Homework Questions!

Its been a while since I have posted about anything to do with this class.  This is because of the shotgun of work being blown my way recently. 3rd year game dev = hardest year yet.  Its hard in the sense that there are not enough hours in a day that allow me to accomplish everything required of me.  So its gotten to the point where some work gets prioritized over others and the rest falls through the cracks.

Ogre

Anyways moving onto Ogre.  Its an amazing engine from what I have seen of it.  The only issue is that it requires a higher level of programming skill to debug.  Last year the errors were solvable through simple debugging methods (stepping through, print statements, etc.).  This year you really have to have a good handle of how your code gets compiled and what it is asking the engine to do.  Which involves using the call stack.  I don’t really know how to use the call stack that well, so this is an EXCELLENT learning opportunity.

Homework Questions

So the easy question deadline got pushed to Monday.  I managed to finish 4 easy questions (1-2. 4-5).

Easy_1 was easy.  The key was understanding how Ogre worked.  Create a Scene node pointer for your entity to attach to.  Create a entity pointer that you attach to a prefab cube and all thats left are the two lights.

Easy_2 was a bit more work.  This question was mostly about understanding the hierarchy of the parent-child relationship of scene nodes.  We know that we have to create 10 separate cubes for the robot arm.  Right away you should think about 10 scene nodes and 1 entities.  But it would be stupid to make them all children of the scene manager.  So you would just make them all children of whatever entity they would be rotating around.  The only problem about only having 10 scene nodes is that the rotations look fairly wonkey.  You need to have rotation joints halfway in between each entity.

Easy_4 was probably the most ‘difficult’.  Since it involved dealing with .material files.  They are still simple however.  Once you figure out how to edit the resource.cfg file to load resources into your game, the next step is the .material file.  Its pretty much a plaintext structure that is easily readable. You just need like 5 lines of code to create your textured material for your ingame object.

scene_blend alpha_blend
lighting off

This goes after pass.  scene_blend does something with the alpha values, and I had to turn the lighting off because I was having an issue with the object turning black for some odd reason (Thanks Kevin! @Iceninja77).

texture leaf.png
filtering trilinear
colour_op_ex source1

This goes after texture_unit.  This pretty much textures your object.

The rest of the code involves making 4 planes rotated at 90, 180, 270 increments textured to look like an imposter and calling the createBillboardSet command to create your billboard.

Easy_5 was probably the one I finished the fastest.  TwoLoc has an interesting dynamic texture class and a base example called BlitTexture something that is a huge help for this.  If you use this as your base project and solve a small error you are worthy to use it!  There is a function randCol(x,y) that can access the data of a pixel on the plane/billboard that you would like your texture to be put on.  You can modify the RGBA values given a row and column point.  So be creative and make something cool!  I was lazy so i just made a few designs using a for loop.  Some people made mini-games, drawing tools and even an etch-sketch!

 

Week 6 Objectives and Game Construction: Character Customization

Hello!

Quick update of what happened last week and other shader-related stuff.

So the homework questions got a base XP!  This really made my weekend happy, I can now attempt more questions and be motivated to complete them other then the normal intrinsic psychological motivators the added XP gives me that extrinsic motivator I needed to drive me to complete those questions.

I put a slight hold on the future reading of the CG book to get a few easy questions complete for class or the tutorial so that will fill my shader appetite for this week.  Aside from that I will try to finish the CG text over the reading week in between my preparation for the 3 mid terms.  I am extremely thankful that we do not have mid terms for Game Design and Intermediate Computer Graphics.  That would have been brutal.

 

Game Construction: Character Customization

Last week I said I would blog about Procedural Animation, however I did not get a chance to get any example’s to share to help my blog.  In any case my short attention span found something more interesting, this awesome video of character customization from EVE online! (watch in HD)

Goal

  • It seems like the player hovers their mouse over control points to modify the mesh
  • The player is able to drag, pinch and pull vertices to effect the mesh
  • The hair seems to be another model on its own while having its own physical properties in terms of adjustments and colour
  • The body customization is pretty amazing, being able to adjust so many human proportions so easily.  This is the best character customization I have seen in a game yet.
  • The clothes also seem to be an object on its own

Here is another example that I would like to breakdown from Skyrim

  • The part that we care about starts around 2:20
  • In comparison to EVE’s customization, Skyrim’s system uses sliders for pre-sets.  It seems like they just load new models for each physical change to the model and modify the texture map on other sliders
  • The Skin tone slider adjusts the texture map while the weight slider makes the mesh look bigger and scales it up
  • When the player adjusts more physical features of the face, it seems like he just applies a transformation to control points on the face mesh that are saved to a default state when playing the game
  • Skyrim’s customization is mainly on the face of the avatar as opposed to the entire body

Breakdown

EVE’s character customization is similar to a terrain editor or a modelling program where users can physically edit the mesh of an model.  However the user interface is much less complicated then a modelling program but still has several tools like SPORE’s creature creator tool.

 The developers would place control points in areas and have a minimum and maximum of edits the player can do to each control point.  While this is similar to a slider, it works well only on PC’s because of the mouse input and not so well on console because of the analog sticks and d-pad.

In terms of how they did it, for areas where they wanted to pull geometry closer together, the control point would push vertices closer together or farther apart depending on the user input.  The more complicated thing is how they managed to get the texture map to edit with the model.  When the user edited the lips and eyes, the texture moved along very well with the model.  I think that the same control points were mapped to the texture map to produce these results.

Closing Statements

As we can see, a simple tool like a mesh editor can be used as a tool for character customization.  If someone were to get a skeletal animation system working, all they would have to do is create a joint system for editing the mesh and make those joints the control points for the user.

Another way to do this using morphing between OBJ files is to use a slider like in Skyrim and have a combination of models to use as a canvas.  Buy adding more adjustments to that model the user can save them and export that model to to used for the main player avatar.

 

Thank you for reading

-Moose

Week 4 Objectives + Global Game Jam

Heyoo!

Looking back on my Week 3 Objectives, I realize that I really didn’t do anything.  It is a bit sad considering we .  BUT!  I spent the weekend at the Global Game Jam and my team and I made a disco zombie game.

Prior Objectives

  • Start CG programming and tutorials to finish homework questions
  • Learn how to do cel-shading/toon shading
  • Figure out how to properly do mesh skinning
  • See if I can export the weighting of the joint structure from maya to our game engine
  • Work on inverse kinematics to reduce foot skating

Aside from reading the first chapter in the CG tutorial book I have not really found the time to do the other objectives.  However tonight I plan on working through the second chapter of that book so that I can begin cutting away at a few homework questions.

Week 4: Objectives

Our modelling professor (Derek F.) said “Whatever you think you can do, take that time and multiply it by three and that is how long it will take you.”  Clearly I overestimated what I could do in one week, but nonetheless I have a set few goals for the next three weeks.

As of now my priority is learning shaders.  The mesh skinning, IK and toon shading will soon follow.

Global Game Jam

My GDW team and two other guys (Mike A. and David Y.) created the game Zombie Fever!  I learned a lot, more about scope and how fast I can create pixel art.  We decided to use GameMaker for our basic game engine and Branden and Kevin took the reigns on that while David, Tyler and I created lots of pixel art.  Mike A. tried converting himself from pictures to pixel art and the other Mike found awesome disco music to use while he post processed them in Soundbooth.

Timmy The Zombie

This is the zombie I made, he is supposed to be moonwalking in the game.

The game started out from us looking at this years theme, the ouroboros, we started talking about infinite loops and the circle of life.  My idea was we create a game about zombies that follows the concept: Human turns into zombie, Zombie eats human, zombie turns back into human.  Then we got thinking more and we wanted a bright colour palette and somehow disco dance dance revolution made it into our game.  By the end our concept was one main character (the pixelated version of Mike) turned into a zombie and dances his way back to humanity.

HERE is the final build of the game if you choose to play it.
HERE is just the .exe.

Till next week
– Moose