The progress on the paper is going great, with the introduction, background review and methodology completed. I'm working on the results part (creating graphs from the data collected from the survey).
Thursday, December 15, 2011
Progress Update 12/15/2011
The thesis presentation was today and due to the sharing of the screen the application runs extremely slow. That why I decided to create a couple of youtube videos demonstrating the application. The first one shows a full run of the game with the player recovering health through a potion, rescuing the prisoner and escaping. The second one show the player dying for standing to long on the earthquake zones and the third one from getting to much damage from the lava pits.
The progress on the paper is going great, with the introduction, background review and methodology completed. I'm working on the results part (creating graphs from the data collected from the survey).
The progress on the paper is going great, with the introduction, background review and methodology completed. I'm working on the results part (creating graphs from the data collected from the survey).
Wednesday, November 30, 2011
Progress Update 11/30/2011
The blog has gone a little bit silent since the programming of the application was put on hold in favor of the paper, but this past weekend I programmed several new features into the game.
The earthquake mechanic is on place now, once the player leaved the designated gameplay area, the camera shakes and a countdown start form him to return to a safe zone. If he stays there, the part of the level along with the player, fall down.
I created a model for the lava pits, since I didn't have any success on finding one pre-made. I'm integrating this one to the level layout that I have defined at the moment. They already affect the players health and the character changes animation according to it.
As for the custom characters and NPC, I already have some rigged models that I downloaded from Trubosquid and I'm just testing different animations with them, to see which one exports better. The recollection of the sounds effect is taking place at the moment too!
As it can be seen, all the mechanics are implements I'm just adding my custom effects and models in order to test it.
As for the paper, Introduction and Literature Review are done (with the references and images). At the moment I'm finalizing the methodology!
The earthquake mechanic is on place now, once the player leaved the designated gameplay area, the camera shakes and a countdown start form him to return to a safe zone. If he stays there, the part of the level along with the player, fall down.
I created a model for the lava pits, since I didn't have any success on finding one pre-made. I'm integrating this one to the level layout that I have defined at the moment. They already affect the players health and the character changes animation according to it.
As for the custom characters and NPC, I already have some rigged models that I downloaded from Trubosquid and I'm just testing different animations with them, to see which one exports better. The recollection of the sounds effect is taking place at the moment too!
As it can be seen, all the mechanics are implements I'm just adding my custom effects and models in order to test it.
As for the paper, Introduction and Literature Review are done (with the references and images). At the moment I'm finalizing the methodology!
Monday, November 7, 2011
Progress Update 11/07/2011
This is a post that contains two week of updates, since last week I didn't get to much time to work on the project.
This weeks the level implementation has been taking most of my time. The specific mechanics for it have been already programmed, for example: position detection for the character, checking if he is on top of a lava crater or an earthquake area. Also his health is affected according to this factors.
The feature that I'm currently working on right now, is the earthquake simulation (with the sacking of the camera) and the actual game-ending conditions for the game. I'm still deciding if the game should just end when touching the NPC who is in need of help or if the player should actually escape with him.
Defining and implementing the definitive level layout is the task that I'll be preforming this week, looking also into the custom models and textures needed for the level (this last activity would probably be performed the following week).
I did some changes to the schedule for in order to reflect this changes, which mostly consist on reducing the time to elaborate the survey an actually doing it. Here's the updated schedule for this week:
Donwload Thesis Schedule Update 11/7/2011
This weeks the level implementation has been taking most of my time. The specific mechanics for it have been already programmed, for example: position detection for the character, checking if he is on top of a lava crater or an earthquake area. Also his health is affected according to this factors.
The feature that I'm currently working on right now, is the earthquake simulation (with the sacking of the camera) and the actual game-ending conditions for the game. I'm still deciding if the game should just end when touching the NPC who is in need of help or if the player should actually escape with him.
Defining and implementing the definitive level layout is the task that I'll be preforming this week, looking also into the custom models and textures needed for the level (this last activity would probably be performed the following week).
I did some changes to the schedule for in order to reflect this changes, which mostly consist on reducing the time to elaborate the survey an actually doing it. Here's the updated schedule for this week:
Donwload Thesis Schedule Update 11/7/2011
Wednesday, October 26, 2011
Progress Update 10/26/2011
This week update concentrates a little bit on what I want to accomplish with the test scenario that is beign created. Each one of the testers should be able to understand the mechanics and the goal of the level through the animation, sound and level scripting inlcuded. I'm alredy thinking on the questions for the survey in order to be sure that each one of them will be undestandable and applicable on the test level, according to each one of the mechanics included.
I have also done some research on how these methods are used in today games, in order to start gathering background information for the actual paper. There are tons of games that actually use this kind of hudless approach but each one of them has their own way of implementing it. Some first person shooters for example, choose to show all the gun information directly on the gun model, adding little indicators to it. Old Resident Evil Games used the animation on the character to show the health of the player.
As far as the technical aspect, the .X files can now be included in the level and the sound is alredy in the project, but I'm still looking to include sounds according to events in the game.
This week I'll start the actual implementation of the scenario and also will look around for some 3d models or props for the level online.
Here is the update schedule for this week:
Donwload Thesis Schedule Update 10/26/2011
I have also done some research on how these methods are used in today games, in order to start gathering background information for the actual paper. There are tons of games that actually use this kind of hudless approach but each one of them has their own way of implementing it. Some first person shooters for example, choose to show all the gun information directly on the gun model, adding little indicators to it. Old Resident Evil Games used the animation on the character to show the health of the player.
As far as the technical aspect, the .X files can now be included in the level and the sound is alredy in the project, but I'm still looking to include sounds according to events in the game.
This week I'll start the actual implementation of the scenario and also will look around for some 3d models or props for the level online.
Here is the update schedule for this week:
Donwload Thesis Schedule Update 10/26/2011
Monday, October 17, 2011
Progress Update 10/17/2011
The work on the lighting framework has been finished. I managed to separate the lighting system from the framework, since it was inside the main function, in order to be able to include as much point or directional lights as required by the final scenario.
I have attached my code to load .X files, and it is working; but it is giving some problems with loading the textures. I won't mark the activity finished until it is completed, which will be on Wednesday at the latest. Also the work to integrate the sound library that I used on the previous project will start this week.
As I mentioned last week, I already have an idea for a scenario that will utilize animation and level scripting to guide the player through it. The main idea is a character (the player) trying to rescue an NPC in an environment that is divided in different tiles or areas, which can cause damage or heal the player. Also certain zones in the level will cause instant death, previously warning the player about the danger.
The animation will be used in the following way:
I have attached my code to load .X files, and it is working; but it is giving some problems with loading the textures. I won't mark the activity finished until it is completed, which will be on Wednesday at the latest. Also the work to integrate the sound library that I used on the previous project will start this week.
As I mentioned last week, I already have an idea for a scenario that will utilize animation and level scripting to guide the player through it. The main idea is a character (the player) trying to rescue an NPC in an environment that is divided in different tiles or areas, which can cause damage or heal the player. Also certain zones in the level will cause instant death, previously warning the player about the danger.
The animation will be used in the following way:
- The walking and standing animations will reflect the health of the player.
- Animation of the NPC will reflect its need for help.
- The tiles in the ground will reflect in some way that they are bad or good for the player (For example fire effect or Health kits).
- NPC's sound cues will vary depending on how close is the player to him.
- Location of the player will trigger events reflecting danger in the instant death areas (falling rocks for example).
At the moment this is the very simple scenario idea that I have. I'm pretty sure that more ideas will come out as I'm working on it but as for now, I think is better to keep it simple and doable. I'll see how the time constrains work at the end.
Here is the update schedule for this week:
Wednesday, October 12, 2011
Progress Update 10/12/2011
The update for this week was done a little bit later than usual, due Thanksgiving weekend. My apologies for the delay!
The two activities for this pass week, according to the schedule, were character and camera movement and placement. Character movement is done, allowing the default rigged character to move around the plane while playing the walking animation.
Also after several attempts to actually use the camera class that came with the source code to create a 3rd person perspective, I decided to switch back to my camera code that I created for my previous project, which will follow the character for a 3/4 perspective. My camera code is now integrated with the project.
The activities for this week, inclusion of static meshes and level creation are under way. The integration of my code to include .X files has begun. As for the creation of basic level, I decided to start working at the same time on the definition of the scenarios, so I can design the final one, instead of wasting time of creating a test one (the basic plane that I have right now, will do).
As for the scenarios, I'm planning on including location based level scripting, in which certain events will trigger according the location of the player. I already have a good idea in which I will be able to integrate animation and level scripting as way to transmit infromation to the player. I'll finish defining it this weekend and post it in the next upgrade so we can discuss having a big scenario instead of two small ones.
I'm uploading the schedule with the status of the activities as today, including changes to the conception of the scenarios. Their actual implementation of them will be changed in accordance to what we decide next week.
Download Thesis Schedule Update 10/12/2011
The two activities for this pass week, according to the schedule, were character and camera movement and placement. Character movement is done, allowing the default rigged character to move around the plane while playing the walking animation.
Also after several attempts to actually use the camera class that came with the source code to create a 3rd person perspective, I decided to switch back to my camera code that I created for my previous project, which will follow the character for a 3/4 perspective. My camera code is now integrated with the project.
The activities for this week, inclusion of static meshes and level creation are under way. The integration of my code to include .X files has begun. As for the creation of basic level, I decided to start working at the same time on the definition of the scenarios, so I can design the final one, instead of wasting time of creating a test one (the basic plane that I have right now, will do).
As for the scenarios, I'm planning on including location based level scripting, in which certain events will trigger according the location of the player. I already have a good idea in which I will be able to integrate animation and level scripting as way to transmit infromation to the player. I'll finish defining it this weekend and post it in the next upgrade so we can discuss having a big scenario instead of two small ones.
I'm uploading the schedule with the status of the activities as today, including changes to the conception of the scenarios. Their actual implementation of them will be changed in accordance to what we decide next week.
Download Thesis Schedule Update 10/12/2011
Monday, October 3, 2011
Progress Update 10/03/2011
Each Monday an update will be made, reporting in the actual progress of the project based on the final draft of the schedule at that time. Since this is the first one done, I will address the advance done until the date specified in the title from the beginning of the project.
The research on animation methods on DirectX lead me to Keith Ditchburn's website (Toymaker.info) and the two options explained on it to run animations on DirectX. For more detail on this, please check older posts. The source code for the "animation player" was selected as the best option, since it would allow to actually read the code and learn about its implementation. Several modifications has been made to it that would make the additions of extra elements to it easier.
Character movement is being implemented right now. The default model that came with the source code has now moves forward or back in accordance to the inputs of the keyboard, while displaying the corresponding animation for walking and standing still. The camera has been set to a position that actually allows the player to see the character movement. The goal at the end is to allow the camera to move along with the player and allow turning / free-roaming movement around the default base plane placed in the scene right now. By the next post, these two features should be finish.
The schedule has been update with colours over the names of the tasks, reflecting its progress:
Blue = "Finished"
Green = "On Time"
Yellow = "Possible Delay"
Red = " Behind Schedule"
The updated schedule for this week can be downloaded form the link below.
Schedule Update 03/10/2011
The research on animation methods on DirectX lead me to Keith Ditchburn's website (Toymaker.info) and the two options explained on it to run animations on DirectX. For more detail on this, please check older posts. The source code for the "animation player" was selected as the best option, since it would allow to actually read the code and learn about its implementation. Several modifications has been made to it that would make the additions of extra elements to it easier.
Character movement is being implemented right now. The default model that came with the source code has now moves forward or back in accordance to the inputs of the keyboard, while displaying the corresponding animation for walking and standing still. The camera has been set to a position that actually allows the player to see the character movement. The goal at the end is to allow the camera to move along with the player and allow turning / free-roaming movement around the default base plane placed in the scene right now. By the next post, these two features should be finish.
The schedule has been update with colours over the names of the tasks, reflecting its progress:
Blue = "Finished"
Green = "On Time"
Yellow = "Possible Delay"
Red = " Behind Schedule"
The updated schedule for this week can be downloaded form the link below.
Schedule Update 03/10/2011
Thesis Schedule (Ver. 1.0)
The first
draft for the thesis schedule is done and can be downloaded from the
link provided below. New versions of it will be created and
uploaded as needed in accordance to the
project progression.
Each one of
the task has been assigned a priority in accordance to their
importance of the final result in the research.
The
schedule has been created in a way that would allow the application
to be done by the first days of November, allowing the remaining time
until December to run some test and write the actual results in the
paper.
Download Thesis Schedule Ver. 1.0
Thursday, September 15, 2011
DirectX Animation Using The .X File Format
During the month of August, I've been doing research on how the
animation works in DirectX, since I think this part will be the most difficult
of the project.
Ditchburn, Keith (2004 - 2010), "X File Hierarchy Loading", Toymaker.info
The first thing that I researched was the .X file. This is the
format that is used by DirectX in order to use meshes in the scene and stores
all kind of information about it, like the specifications of the material and
the textures used and the animation information.
While doing some research online, I found Keith Ditchburn's
website (Toymaker.info). Here I found an example of the source code needed in
order to implement an animated .X file and also a library that could be added
to the project in order to use that functionality. Since I wanted to learn
how the process is actually done, I downloaded the source
code and started looking into it and doing modifications, in order to use it
with my DirectX code from previous projects. Here are some important notes
on how the process works:
Everything in the .X file is stored in hierarchical method. This
hierarchy consists of frames containing matrix and mesh data for different
parts of the model. For example: If we have a model, the body will be the
top frame and each one of the parts of the body below it; each one with its own
matrix and mesh data.
In order to preserve this hierarchy when loading the mesh, the D3DXLoadMeshHierarchyFromX function has to be used. Before it is called,
we have to create functions that would allow us to create/destroy frames and
mesh containers. We do this in a separate class, which will be in charge
on handling the memory allocations for these elements.
When we render the hierarchy, we start by the top frame using
the created DrawFrame function
that would be recursively called for each one of the sibling and child frames.
The animations can be created by altering the matrices of the
frames, which will alter the other ones in the hierarchy. The animation
controller determines the position for each one the the frame matrices
according to provided time. The frame controller will alter the frame matrices
and then the hierarchy of the frame is updated, using these
new matrices to create the new combined frame matrix. Since switching from
one animation to the other one abruptly can look bad, we use tracks in order to
make it look like a normal transition. These tracks will fade out the playing
animation and fade in the new one.
When Skinning (for which each one of the matrices associated to the frames are called bones) geometry bending is used between the mesh and skeleton hierarchy in order to transform the mesh vertices. Every time a bone is altered, it will modify the vertices from the mesh dependent on it. Each one of this bones has a matrix that rotates or translates it according to the father (this is known as "bone space"). In order to transform this matrix to "character space" we use the combined matrix of the parent. Finally, in order to connect the bones to the mesh we use the bone offset matrix.
When Skinning (for which each one of the matrices associated to the frames are called bones) geometry bending is used between the mesh and skeleton hierarchy in order to transform the mesh vertices. Every time a bone is altered, it will modify the vertices from the mesh dependent on it. Each one of this bones has a matrix that rotates or translates it according to the father (this is known as "bone space"). In order to transform this matrix to "character space" we use the combined matrix of the parent. Finally, in order to connect the bones to the mesh we use the bone offset matrix.
Final Bone Matrix = Bone
Offset Matrix * Bone Combined Matrix
The DirectX function UpdateSkinnedMesh will update the mesh
according to this matrix and the provided set of weights for the bones (which
define the vertices affected by the bones).
At the moment I am running test with this concepts and
transforming this source code in order to merge it with my previous projects. I
will post updates for these tests and modifications.
References:
Ditchburn, Keith (2004 - 2010), "X File Hierarchy Loading", Toymaker.info
[Accessed August - September 2011]
Ditchburn, Keith (2004 - 2010), "XAnimator - X File
Animation Loader - Player", Toymaker.info
[Accessed August - September 2011]
Monday, August 1, 2011
Getting Started!
This blog will show the progress of my thesis project created for the MS in computer Games Technology, allowing easy review from the University of Aberday Dundee and an organized storage of the information and resources gathered during the project.
The subject of the thesis project is "“Evaluation of Non-Traditional Methods for Displaying Character and Gameplay Information to the Player”, researching on how alternative methods like animations or level scripting, can transmit information to the player, without the use of a HUD.
The first steps will be looking into the animation systems on DirectX (at the moment, this will be the platform where the test will be performed) and the creation of the animation parser.
Each week, a new update will be posted.
Subscribe to:
Posts (Atom)