Wednesday, December 26, 2007

Computer Graphic Assignment 2



This is the 'space' that I am going to draw out using openGL. This JPEC picture is supposed to be wrapped around a cube, thus it is not how it suppose to look like.


I am planning to model a chair(which will replace the 2 chairs outside the balcony), the bed as well as a hi-fi set table.

The following chair is used to replace the chair at the balcony as I could not see it properly:




Thursday, December 13, 2007

Computer Graphic Assignment 1

The following picture is my final product for Computer Graphic assignment 1:





FUNCTIONS

'1' - Move Forward
'2' - Move backward
'3' - Shoot bullet and move forward
'4' - Rotate the camera view to right
'5' - Rotate the camera view to left
'6' - Move the cannon upwards
'7' - Move the cannon downwards


DESCRIPTION
I had being using a lot of cylinders draw out the cannon, and a lot of quads to draw the body, Body patterns, as well as my tyre.
DRAW-BACKS
1) I am unable to make it move by its own, where the user suppose to press a key to start animation and press that key again to stop animation.
2) Cannon unable to move on its own axis.

Computer Graphic Practical 7

Monday, December 3, 2007

Computer Graphic Practical 6

We are allowed to start our assignment 1 in week 6 practical, thus I searched through the internet and found the following picture of a toy. I am thinking of drawing the model using 3D glut.





I had began the drawing but it is all in cylinders and cubes. if there is any other way to improve it I would update it. It is not completed though...


Thursday, November 15, 2007

Computer Graphic Practical 5

Question 1 -
How did it arrive with the transformed coordinates?


Answer:

(2 3 1 1) is the transformation and it is alined vertically at the right side of the vertex.

First column:
(4 0 0 2) = (X 0 0 2)

Second column:
(0 4 0 3) = (0 Y 0 3)

Third column:
(0 0 4 1) = (0 0 Z 1)


glBegin();
glVertex3f(0,0,0); ----> [(0 * 4 + 2), (0 * 4 + 3), (0 * 4 + 1) ] ----> (2, 3, 1)
glVertex3f(0,1,0); ----> [(0 * 4 + 2), (1 * 4 + 3), (0 * 4 + 1) ] ----> (2, 7, 1)
glVertex3f(1,1,0); ----> [(1 * 4 + 2), (1 * 4 + 3), (0 * 4 + 1) ] ----> (6, 7, 1)
glVertex3f(1,0,0); ----> [(1 * 4 + 2), (0 * 4 + 3), (0 * 4 + 1) ] ----> (6, 3, 1)
glEnd();

Question 2 -
What is/are the transformation(s) applied?


Answer:

Translation and scaling.

Question 3 -
OpenGL keeps track of only 1 matrix for transformation.
It will be tedious to do transformation for more than 1 mesh/
polygon/objects to different locations.
Why?


Answer:

When having more than 1 transformation, the previous transformation matrix will be overwritten by the others as OpenGL will run the transformation one at a time.

Question 4 -
(a) What is the current operation matrix after this function?

Answer:

Translation and Scaling.

(5 0 0 10)
(0 5 0 2 )
(0 0 5 4 )
(0 0 0 1 )

(b) What is the current operation matrix after this function?

Answer:

Rotation.

(5 0 0 10) * (0 0 5 1) (0 0 5 10)
(0 5 0 2 ) * (0 5 0 1 ) = (0 5 0 2)
(0 0 5 4 ) * (5 0 0 1)
(-5 0 0 4)
(0 0 0 1 ) * (0 0 0 1) (0 0 0 1)

(c) What is the current operation matrix after this function?

Answer:

translation.

(0 0 5 10) (0 0 0 2) (0 0 5 12)
(0 5 0 2) + (0 0 0 2) = (0 5 0 4)
(-5 0 0 4) (0 0 0 2) (-5 0 0 6)
(0 0 0 1) (0 0 0 1) (0 0 0 1)

(d) What is the current operation matrix after this function?

Answer:

scaling of (2, 1, 1)

(0 0 5 10) (2 0 0 1) (0 0 5 10)
(0 5 0 2) * (0 1 0 1) = (0 5 0 2)
(-5 0 0 4) (0 0 1 1) (-5 0 0 4)
(0 0 0 1) (0 0 0 1) (0 0 0 1)

(e) What is the current operation matrix after this function?

Answer:

(1 0 0 0) (0 0 0 0) (1 0 0 0)
(0 1 0 0) + (0 0 0 5) = (0 1 0 5)

(0 0 1 0) (0 0 0 0) (0 0 1 0)
(0 0 0 1) (0 0 0 1) (0 0 0 1)

(f) What is the current operation matrix after this function?

Answer:

(0 0 5 12)
(0 5 0 4 ) * =
(-5 0 0 6)
(0 0 0 1)


Exercise 3


Q5) What did you see? Screen shot it and explain why is the 2nd cube appeared at
(0,0,0)?

Answer:

Since the cube had being translated by (5, 0, 0), everything will start at that point. So when
glTranslatef(-5,0,0) is applied, it goes back to (0, 0, 0).
In order to make the 2nd cube to be at the position of (-5, 0, 0), I used the following code:

glPushMatrix();
glTranslatef(5,0,0);
DrawCube();
glPopMatrix();
glTranslatef(-5,0,0);
DrawCube();

glPushMatrix() will allow (0, 0, 0) to be saved. After the translation and a DrawCube() function been called, glPopMatrix() will go back to (0, 0, 0) and carry out another translation of (-5, 0, 0) and call another DrawCube().

I drew the following cube using a function called "drawCube()", and used 4 "glBegin(GL_POLYGON);" for individual sides, and after the translations. I am still unable to back everything starts from (0, 0, 0) and i'm looking into it.




#include "glut.h"


void DrawCube()
{
glColor3ub(255,0,0); // red, back-side
glBegin(GL_POLYGON);
glVertex3f(-2.0f, -2.0f, -2.0);
glVertex3f(2.0f, -2.0f, -2.0);
glVertex3f(2.0f, 2.0f, -2.0);
glVertex3f(-2.0f, 2.0f, -2.0);
glEnd();


glColor3ub(0,255,255); // green, back
glBegin(GL_POLYGON);
glVertex3f(-2.0f, -2.0f, 2.0);
glVertex3f(2.0f, -2.0f, 2.0);
glVertex3f(2.0f, 2.0f, 2.0);
glVertex3f(-2.0f, 2.0f, 2.0);
glEnd();


glColor3ub(0,100,100); // dark-green, top
glBegin(GL_POLYGON);
glVertex3f(-2.0f, 2.0f, 2.0);
glVertex3f(2.0f, 2.0f, 2.0);
glVertex3f(2.0f, 2.0f, -2.0);
glVertex3f(-2.0f, 2.0f, -2.0);
glEnd();


glColor3ub(255,255,0); // yellow, bottom
glBegin(GL_POLYGON);
glVertex3f(-2.0f, -2.0f, 2.0);
glVertex3f(2.0f, -2.0f, 2.0);
glVertex3f(2.0f, -2.0f, -2.0);
glVertex3f(-2.0f, -2.0f, -2.0);
glEnd();


glColor3ub(0,0,255); // blue, front
glBegin(GL_POLYGON);
glVertex3f(2.0f, 2.0f, 2.0);
glVertex3f(2.0f, 2.0f, -2.0);
glVertex3f(2.0f, -2.0f, -2.0);
glVertex3f(2.0f, -2.0f, 2.0);
glEnd();


glColor3ub(255, 100, 0); //orange, front-side
glBegin(GL_POLYGON);
glVertex3f(-2.0f, 2.0f, 2.0);
glVertex3f(2.0f, 2.0f, 2.0);
glVertex3f(2.0f, -2.0f, 2.0);
glVertex3f(-2.0f, -2.0f, 2.0);
glEnd();
}


void MyDisplay()
{
glClear(GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT);
glColor3ub(255,255,255);
glBegin(GL_LINES);
glVertex3f(0.0f, 0.0f, 100.0);
glVertex3f(0.0f, 0.0f, -10.0);
glVertex3f(100.0f, 0.0f, 0.0);
glVertex3f(-10.0f, 0.0f, 0.0);
glVertex3f(0.0f, 100.0f, 0.0);
glVertex3f(0.0f, -10.0f, 0.0);
glEnd();


glPushMatrix();
glTranslatef(5,0,0);
DrawCube();
glPopMatrix();
glTranslatef(-5,0,0);
DrawCube();
glutSwapBuffers();
}


void Rescale(GLsizei w, GLsizei h)
{
glViewport(0, 0, w, h);
}


void SetupRC()
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-64, 64, -48, 48, 1, 100);
gluLookAt(30.0, 30.0, 30.0, 0, 1.0, 0.0, 0.0, 1.0, 0.0);
}


void main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE GLUT_RGB GLUT_DEPTH);
glutInitWindowSize(640, 480);
glutCreateWindow("My Practical 5");
glutDisplayFunc(MyDisplay);
glutReshapeFunc(Rescale);
SetupRC();
glutMainLoop();
}


Exercise 5


1) Yes.


2) Yes.


3) Yes.

Exercise 6

I am still unable to move the cubes, but I still looking into it.


#include "glut.h"


void DrawCube()
{
glColor3ub(255,0,0); // red, back-side
glBegin(GL_POLYGON);
glVertex3f(-2.0f, -2.0f, -2.0);
glVertex3f(2.0f, -2.0f, -2.0);
glVertex3f(2.0f, 2.0f, -2.0);
glVertex3f(-2.0f, 2.0f, -2.0);
glEnd();


glColor3ub(0,255,255); // green, back
glBegin(GL_POLYGON);
glVertex3f(-2.0f, -2.0f, 2.0);
glVertex3f(2.0f, -2.0f, 2.0);
glVertex3f(2.0f, 2.0f, 2.0);
glVertex3f(-2.0f, 2.0f, 2.0);
glEnd();


glColor3ub(0,100,100); // dark-green, top
glBegin(GL_POLYGON);
glVertex3f(-2.0f, 2.0f, 2.0);
glVertex3f(2.0f, 2.0f, 2.0);
glVertex3f(2.0f, 2.0f, -2.0);
glVertex3f(-2.0f, 2.0f, -2.0);
glEnd();


glColor3ub(255,255,0); // yellow, bottom
glBegin(GL_POLYGON);
glVertex3f(-2.0f, -2.0f, 2.0);
glVertex3f(2.0f, -2.0f, 2.0);
glVertex3f(2.0f, -2.0f, -2.0);
glVertex3f(-2.0f, -2.0f, -2.0);
glEnd();


glColor3ub(0,0,255); // blue, front
glBegin(GL_POLYGON);
glVertex3f(2.0f, 2.0f, 2.0);
glVertex3f(2.0f, 2.0f, -2.0);
glVertex3f(2.0f, -2.0f, -2.0);
glVertex3f(2.0f, -2.0f, 2.0);
glEnd();


glColor3ub(255, 100, 0); //orange, front-side
glBegin(GL_POLYGON);
glVertex3f(-2.0f, 2.0f, 2.0);
glVertex3f(2.0f, 2.0f, 2.0);
glVertex3f(2.0f, -2.0f, 2.0);
glVertex3f(-2.0f, -2.0f, 2.0);
glEnd();
}


void MyDisplay()
{
glClear(GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT);


glColor3ub(255,255,255);
glBegin(GL_LINES);
glVertex3f(0.0f, 0.0f, 100.0);
glVertex3f(0.0f, 0.0f, -10.0);
glVertex3f(100.0f, 0.0f, 0.0);
glVertex3f(-10.0f, 0.0f, 0.0);
glVertex3f(0.0f, 100.0f, 0.0);
glVertex3f(0.0f, -10.0f, 0.0);
glEnd();


glPushMatrix();
glTranslatef(5,0,0);
DrawCube();
glPopMatrix();
glTranslatef(-5,0,0);
DrawCube();
glutSwapBuffers();
}


void keyboard(unsigned char key, int x, int y)
{
switch(key)
{
case 'w':
y++;
break;
case 's':
y--;
break;
case 'a':
x--;
break;
case 'd':
x--;
break;
}


}
void Rescale(GLsizei w, GLsizei h)
{
glViewport(0, 0, w, h);
}


void SetupRC()
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-64, 64, -48, 48, 1, 100);
gluLookAt(30.0, 30.0, 30.0, 0, 1.0, 0.0, 0.0, 1.0, 0.0);
}


void main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE GLUT_RGB GLUT_DEPTH);
glutInitWindowSize(640, 480);
glutCreateWindow("My Practical 5");
glutDisplayFunc(MyDisplay);
glutReshapeFunc(Rescale);
glutKeyboardFunc(keyboard);
SetupRC();
glutMainLoop();
}

Sunday, November 11, 2007

Computer Graphic Practical 4

In computer graphic this week, we tried setting up 3D viewing and learn how to draw premitives using openGL.




Firstly, we drew some axes so that it will guild us to draw 3D diagram easier in XYZ directions.




glBegin(GL_LINES); glColor3ub(255,255,255);
glVertex3f(0.0f, 0.0f, 100.0);
glVertex3f(0.0f, 0.0f, -10.0);
glVertex3f(100.0f, 0.0f, 0.0);
glVertex3f(-10.0f, 0.0f, 0.0);
glVertex3f(0.0f, 100.0f, 0.0);
glVertex3f(0.0f, -10.0f, 0.0);
glEnd();


We proceeded to draw the sphere, with 1 triangle behind it as well as one triangle in front of it.




glColor3ub(255,0,0);
glBegin(GL_TRIANGLES);
glVertex3f(0.0, 0.0, -10.0);
glVertex3f(10.0, 15.0, -30.0);
glVertex3f(10.0, -15.0, -30.0);
glEnd();
glColor3ub(0,255,255);
glutWireSphere(15,50,50);
glColor3ub(0,255,0);
glBegin(GL_TRIANGLES);
glVertex3f(20.0, 0.0, 20.0);
glVertex3f(-10.0, 15.0, 15.0);
glVertex3f(-10.0, 15.0, 30.0);
glEnd();


And finally, the final exercise which require us to make 4 different quads and collapse each other.





glColor3ub(255,0,0);
glBegin(GL_QUADS);
glVertex3f(-40,20,12);
glVertex3f(-40,25,12);
glVertex3f(40,25,12);
glVertex3f(40,20,12);
glEnd( );

glColor3ub(0,255,0);
glBegin(GL_QUADS);
glVertex3f(-35,-30,11);
glVertex3f(-35,30,11);
glVertex3f(-30,30,11);
glVertex3f(-30,-30,11);
glEnd( );

glColor3ub(255,255,0);
glBegin(GL_QUADS);
glVertex3f(30,-30,13);
glVertex3f(30,30,13);
glVertex3f(35,30,13);
glVertex3f(35,-30,13);
glEnd( );

glColor3ub(0,0,255);
glBegin(GL_QUADS);
glVertex3f(-40,-10,10);
glVertex3f(-40,-10,10);
glVertex3f(40,-10,14);
glVertex3f(40,10,14);
glEnd( );

glColor3ub(255,255,255);
glBegin(GL_LINES);
glVertex3f(0.0f, 0.0f, 100.0);
glVertex3f(0.0f, 0.0f, -10.0);
glVertex3f(100.0f, 0.0f, 0.0);
glVertex3f(-10.0f, 0.0f, 0.0);
glVertex3f(0.0f, 100.0f, 0.0);
glVertex3f(0.0f, -10.0f, 0.0);
glEnd();

PRACTICAL QUESTIONS
Exercise 1

2) Fill in the empty space in ( ).
Answer:

3) What is the possible window size?
Answer:
A possible window size varies, however 800 x 600 is the best i think, since we always use it.
Exercise 2

1) Find u, v and n.
Answer:
n = eye - look
= (4, 4, 4) - (0, 1, 0)
= (4, 3, 4)
u = up x n
= (0, 1, 0) x (4, 3, 4)
= (4, 0, -4)
v = u x n
= (4, 0, 4) x (4, 3, 4)
= (-12, 32, -12)

2) Repeat for up = (2,1,0).
Answer:
u = up x n
=(2, 1, 0) x (4, 3, 4)
= (-4, 8, -2)

v = u x n
= (-4, 8, -2) x (4, 3, 4)
= (38,-8,-44)
Exercise 3

1) OpenGL stores drawing information in the form of matrices. on the. Can
you briefly describe what does MODEL VIEW matrix and the PROJECTION
matrix does?
Answer:
Modelview matrix is a kind of transformation which include translation, rotation, and scaling of objects, 3D viewing transformation.
Projection matrix is to adjust the position of the "viewing spot" like perspective or orthographic.

2) We can reset the matrix by loading an identity matrix on the top of the
stack. What command is used to reset a matrix?
Answer:
glLoadIdentity() is used.

3) Some parameters have to be set so that our eye can see in the 3D world.
The human eye has a field of view approximately 100°. It also has an
effectively infinite viewing distance. Which command is used to setup
such parameters for the virtual eye?
Answer:

4) The eye can be moved in the world by using the gluLookAt() command.
What do the parameters of the command do?
Answer:
glutLookAt() accepts 9 parameters which have the first 3 as 'eye', another 3 as 'look', and the last 3 as 'up'. Changing the digits will transfer the "eyepoint" to different positions. 'eye' will adjust the position of camera, 'look' is how the eye look at the object, lastly the 'up' is the normal of the object.
Exercise 4

1) What happened to the red triangle?
Answer:
The red triangle did not appear anymore, maybe it is covered by other thing.

2) What do you see now?
Answer:
THE RED TRIANGLE APPEAR AGAIN!!

Thursday, November 1, 2007

Computer Graphic Practical 3

COMPUTER GRAPHIC

In today's computer graphics, we used openGL to draw lines, triangles, quads and a final product. I did not really do a good job so I intended to go home and further improve.
LINES
The belowing codes is the one I added the function(GL_LINES) to draw the lines.

glVertex3f(0.0f, 0.0f, 0.0f);
glVertex3f(200.0f, 200.0f, 0.0f);
glVertex3f(0.0f, 0.0f, 0.0f);
glVertex3f(-200.0f, -200.0f, 0.0f);
glVertex3f(0.0f, 0.0f, 0.0f);
glVertex3f(-200.0f, 200.0f, 0.0f);
glVertex3f(0.0f, 0.0f, 0.0f);
glVertex3f(200.0f, -200.0f, 0.0f);

The product is the following:



TRIANGLES

The belowing codes is the one I added the function(GL_TRIANGLE) to draw the triangle.

glVertex3f(0.0f, 0.0f, 0.0f);
glVertex3f(200.0f, -200.0f, 0.0f);
glVertex3f(200.0f, 200.0f, 0.0f);


The product is the following:



QUADS


The belowing codes is the one I added the function(GL_QUADS) to draw the quad.

glVertex3f(-0.25,0.25,0);
glVertex3f(-0.25,-0.25,0.0);
glVertex3f(0.25,-0.25,0.0);
glVertex3f(0.25,0.25,0.0);

The product is the following:




FINAL WORK


This is just something that I created without an idea, but it is still SOMETHING alright?





The only thing that people need to take note is:

1) The colour varies from 0 - 1.
2) Positions of the pixel varies from -1 to 1, where the middle is considered 0.



Saturday, October 27, 2007

Week 2 Labs and Tuitorial

SOFTWARE ENGINEERING FUNDAMENTALS
In this week's Sofware Engineering Fundamemtals, other than 'Use Case' which is discussed inthe first week, 4 other UML diagrams as well. 'Class', 'Sequence', 'Activity' and lastly 'State Transition'.
USE CASE
Use case is:
  • Behaviours
  • Sequence of actions and interactions
  • Actors and Systems
  • Actor is entity that simulates the Systems
  • User, Event, Software created
The above are what is written in the SEG lecture slight. After some researches through the internet, use case also meant to be used to identify the primary elements(actors) and processes(use cases) that form the system. Use cases are meant to show "what" the system is, and not "how" the system will be designed or built.
Sometimes a person draw an UML for the first time may mix up between the "what" and "how". For example "Players must kill the monster in order to collect weapon" while it should be just "Collect weapon".
The below website talks about Use cases. It have all the informations about use case.
The website is very useful as it really able to let me understand MORE about use case.
CLASS
Class diagrams are mostly said to be describing the types of object in a system and their relationships.
Class:
  • Relationship
  • Aggregation
  • Association
  • Inhertance
  • Dependency

the below is the website used for Class.

http://atlas.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutorial/class.htm

SEQUENCE
ACTIVITY
STATE TRANSITION
PRODUCTION AND PROJECT MANAGEMENT
This week we learnt about game development companies, animation Studios, how do they make money and level-playing field. However we spent about half of the lesson doing our assignment PowerPoint slide.
GAME DEVELOPMENT
In Game development companies, it is divided into 3:
  • Publisher
  • Technology Developer
  • Content Developer

ANIMATION STUDIOS

Animation studio is also divided into 3 the same as game developement, but also different from it.

  • Team size ( I remember is bigger, I guess..)
  • budgets
  • Time
  • More related with movies
  • Due to the demand of advance in technology, animation studio need to pay more for the workstations and software, although there is a drop in the price.

OTHERS

Original IPs - The content of the game is created by the creator.

Licensed IPs - Took content from movies like Spiderman, Teenage Ninja turtle.

We need a publisher in order to publish our products to the residence.

ADVANCE C++ PROGRAMMING

During the last semester, we all learnt about 'Struct'. This week's in Advance C++ Programming was all about 'Class', the elder "brother" of 'Struct'.

Difference between struct and class:

  • Class makes its members as 'Private' unless requested by programmer to change to 'Public'. It is done by entering 'public:' above the class members. Struct is the opposite as class.
  • Functions can be written outside the class. As this is a late post (week 3), I learnt that it is better to place the 'Class' function in another header file, so that everything can look better.
  • I personally FEEL that 'Class' is better than 'Struct' as it has more functions.

COMPUTER GRAPHICS

This week's Computer Graphics was the first step on creating graphics.

DATA STRUCTURES AND ALGORITHMS

This week's Data Structures and Algorithms was all about pointers.

MATHEMATICS 2

This week's Mathematics 2 was all about Linear Combination & Independence.

LINEAR COMBINATION

Example, vectors a, b, and c is in the vector space of V, thus a, b and c are the linear combination of V.

V = (C1)a + (C2)b + (C3)c

Below is a website which is easy for us to learn more about Linear Combination.

http://www.mathnstuff.com/math/algebra/asystem.htm

LINEAR INDEPENDENCE

Example, vectors a, b, and c is in the vector space of V, if all of them add together make up 0, it is a Linear Independent.

(C1)a + (C2)b + (C3)c = 0

Below is another website which is easier for us to learn more about Linear Independence.

http://tutorial.math.lamar.edu/Classes/LinAlg/LinearIndependence.aspx

Saturday, October 20, 2007

DATA STRUCTURES AND ALGORITHMS

Today, I have attended Data Structures and Algorithtms practical. At the beginning of the lesson I do not really know what is it about, and thought that it is a part of C++ programming. However in this practical, I learnt more tools for debugging the codes in the Microsoft Visual Studio 2005.

In semester one, I always encounter problems where I do not know what the "error box" is trying to tell me. In the end I need to seek for help from tuitor, and he will do "step-by-step" checking, although I do not know what he is trying but TODAY, Mr. Anthony told us the mysteries.

They gave us a code with a few errors, and expected us to use the method they taught us to solve it. I did not bring my HDD that day so I will look out for it and update this entry here.

This practical helped me as I do not have unknown errors in future.

Thursday, October 18, 2007

Computer Graphic Practical 1 : GAME REVIEW

'The Legend Of Dragoon' is a game developed during 1999. It is a game which made me bought my PS1(spoilt), as well as my current PSP. It is the storyline and commitment during game play that attracted me. The following is the review of the game, 'The Legend Of Dragoon'.



GAME INFOMATION




Title Of The Game: The Legend of Dragoon

Platform Of Game: PS1 & PSP Game

Genre Of Game: RPG

Developer: Sony Computer Entertainment

Product Model Year: Release on 1999 in Japan

Game Requirement: PS1 or PSP

GAME DESCRIPTION


The Legend of Dragoon starts out the same way as many other RPGs. The spiky-haired Dart already has one vendetta against the mysterious Black Devil, who killed his father, but it's time he had another. For unknown reasons, the Sandora Empire burns down his village and imprisons his childhood friend, Shena. Infuriated, Dart impulsively storms out to rescue Shena. Shena's kidnapping is merely the tip of the iceberg of a much grander, more sinister motive. During his globe-spanning quest, Dart is transformed into a Dragoon, a warrior cloaked with the power of the Dragon of Fire. To defeat the Sandora Empire, Dart will have to find the other six Dragon Spirits and people to use them so the Legend of Dragoon may be fulfilled. Along the way, the magical septet will learn about one another, accrue additional vendettas, and save the world.
The Japanese have a word for stories and setups as predictable as this - sentai. The name was given to the expansive, formulaic Japanese Power Rangers genre, and the only thing that doesn't scream sentai here is that there are seven "rangers" instead of the more traditional five. Dart, for example, fits into the typical leader position, as he is clad in red. Before too long, you'll be able to easily predict who will join the party simply by the color of their outfit rather than whether they have a character portrait or not.
With a story so trite and borrowed, one would hope the gameplay was at least a little different. Arguably it is, but not at all in any of the right ways. You guide Dart, with the rest of the party cleverly concealed on his person, around prerendered backgrounds and get in random encounters with monsters, much like the recent offerings of the Final Fantasy series. Eschewing magic almost altogether, The Legend of Dragoon relies on its more mundane "Additional System" for spice. When attacking, you must tap the button as the character connects multiple times, allowing said character to perform a stronger attack. Only one such Additional may be used at a time, gradually gaining strength the more times it's successfully used. Every few levels the characters will get new Additionals that can be turned on from the submenu, but only one can be used at a time, forcing you to watch and tap out the same attack over and over again. Once your characters have the ability to transform into Dragoons, Additionals also charge the character's spirit meter. Once the meter is full, the character can transform into a Dragoon and remain that way for one turn for every time you fill the meter. As a Dragoon, you have two options - Dragoon Additional or Dragoon Magic. The former prompts you to tap a button four times consecutively to charge a meter, which results in a powerful aerial assault on the enemy. The latter fits the standard definition of magic, but on a grander, more time-consuming scale.Without general access to magic, how do you heal your party? Legend of Dragoon relies heavily on defending, a first for RPGs. Not only does defending halve all damage taken from enemies, but it also restores 10 percent of the character's max hit points. This fact, combined with a limited inventory and a short supply of money, means you're going to be spending a lot of time defending. In fact, defending for five or ten turns in a row when fighting a boss is not only common but also necessary. With so many steps required to fight bosses, heal, or use magic, Legend of Dragoon sports some of the longest and most tedious monster encounters in any RPG to date. Expect to get bored quickly with spells and attacks that you've already seen a thousand times before.
Legend of Dragoon lacks a visual style to make it interesting to look at - the character designs are missing personality and innovation, with characters often only describable by the color of their clothing. The world, too, follows the same line of thinking, resulting in a boring world rendered by some rather talented 3D artists. The large number of CG movies that fill the game's four discs are technically impressive, but they still lack that certain visual edge needed to really captivate you. The real-time 3D graphics, however, aren't as technically impressive as the prerendered stuff. Fraught with rendering errors that seemed to disappear long ago from most other PlayStation games and being low on textures, the game's real-time graphics fit somewhere in between the flat-shaded sameness of Final Fantasy VII's art and Final Fantasy VIII's textured wonders. The models themselves are blocky and heavily jointed. As Legend of Dragoon is generally devoid of magic, the minor spell effects aren't impressive in the least, and the Dragoon magic sequences are overdone and overlong. The game's sound is neither technically nor aurally impressive, relying on hackneyed instrument samples and uninteresting musical composition to push the game along. While token voices do appear in CG scenes or when characters call their moves, they don't particularly add to the experience.

GRAPHIC

There is a difference in graphics between during the game and movie.

The graphic during movie(top) and during the game(bottom).















SOUND QUALITY

The sound quality of this game is again, very different in the movie and during the game play. During the game play, there is only background music. communication among the characters are text-written. On the other hand, in the movie, there are also some background mosic, but with the addition of character's voice, and impact. The following are 2 links, consist of 1 movie and another short video during the game play of 'The Legend Of Dragoon'.


VIDEOS

These videos wills how both the graphic and sound quality between the movie as well as during the game play.

This is the Movie:

http://www.youtube.com/watch?v=3AIYALOxcvk


This is the short video during the game play:

http://www.youtube.com/watch?v=NeSNwD2D6YM


CONCLUSION

Overall, I think 'The Legend Of Dragoon' is a very well developed game as it is able to attract so many gamers to love it, whom request for a 2nd version.

If there is really a 2nd version, I would like it to have the following features:

1) Come as many form as possible. For example making it as a game for PS3 as well as for PSP?

2) It is the best to be a real-time game as people nowadays do not like games that take turns for users to attack monsters.

3) Graphic is very important for a game. During the game play of 'The Legend Of Dragoon', the graphic is really not acceptable for a 3rd generation game.

However, it is the best RPG game that I ever played.

Wednesday, October 17, 2007

Computer Graphic Practical 1 : Weekly Practical & Mathematics

This is the FIRST entry for the FIRST week. As we are suppose to creat a blog during this FIRST practical, I may learn how to blog =). As time goes by, I will be posting about the practical weekly. Postings will including ways to accomplish the practical, screenshots, download links, report etc.




Part 1, Weekly Practical

Production and Project Management, Advance C++ Programming are the modules of practical labs that I attended currently.

For Production and Project Management, I learnt that this module is to guild us on how to work together in a group, handle client, schedule time etc. We are also given a assignment, which requires us to imagine on starting a business, and must take the following into account:
  • Resources involved.
  • Tasks and how these are split
  • Costs involved
  • Objectives
  • Risks and problem areas


This module is something similar to the Communication skills, but they added how to managed the projects well.


For Advance C++ Programming, as Mr. Ng How Seng wanted to recap for the sake of those who forgot the basic C++ programming, thus what he told us are all about basic C++ programming. Other than that, the practical is also quite similar to the basic C++ programming. which requires the usage of the following:

  • Logical Operator
  • Loops
  • Arrays

I think this is a good starting for me as it made me have a better impression C++ more.

Part 2, Mathematics(I)

I am supposed to post about how much I can remember for Mathematics(I), which is Part 2 of the practical. In Mathematics (I), we learnt about Mathematics Foundation, Vector and Matrix. Those are actually what we learnt in secondary school, but it is harder as it is 3D. After flipping through the Mathematics (I) textbook, I found out that I forget more formulars and methods than i thought. The following are some of the thing that I need helps:


  • 3D Vector
  • Dot multiply
  • Some vector concept


I am quite sure that I understand on what is Matrix about, so I do not need anymore help for it.