Sunday, July 29, 2007

Wednesday, July 18, 2007

Tuesday, July 10, 2007

Week 13: Camera & Picking

How it is done

[Zooming]
- Change the value from the fov in gluPerspective(fov, ratio, .....). This happens in our
defined function called setPerspectiveView(). This function is called in the normal
keyboard function.

[Picking]
- Copy the necessary variables and functions from "picking project", and paste them
in our main project (space simulation).
- Create a boolean global variable called start.
- Check if there is a hit/screen being clicked, thus *ptr has value/name.
- If *ptr is 0 or 1(name of our spaceships), then set 'start' to true, thus rotates the
spaceships. If click on them again, 'start' is set to false, thus spaceships stop rotating.

Completed: Qn 2 & 3
Download

Sunday, May 20, 2007



Ciao, Samuel here are your coordinates =) Have fun!

Wednesday, May 16, 2007

Thursday, May 3, 2007

Apologies (For Ms Dioselin)

I had sent the zip file on abstract class and virtual function before. However, I found out recently that the my mail has failed to send the file to your gmail. I apologise for not sending the zip file to you from previous week. :(

You can get the file from the post under "Concept of Abstract Class and Virtual function".

Hope to have your understanding.

File Loading: Monster Data

This is our interactive file loading program! Have fun!
http://www.geocities.com/pikagaming/XTech.zip

Tuesday, April 24, 2007

Gamasutra article summary

A two paragraph summary of the article• A list of two things that the author recommends doing in Object-OrientedGame Development, and two things the author recommends not doing
- The author reccomends to prioritise work before anything. Like any crticial
coding or critical-path code are usually discovered at the very end of the
project. This critical error will cause most of the other stable system to
suddenly de-stabilized' and most of the errors in the critical code will cause
most of the other system to have errors and this sudden huge amount of workload to
correct other systems just days before the product relase date will cause plenty
of stress to the whole team.
- The author also reccommends to build and collect every stable build back and
then. This is to ensure every stable build will be collected and saved at and
whenever the management wants to see every stable build of the game, they will be
able to see what have happened. The author also reccommends to show the management
every previous builds to the management and provide eye candy and any latest
development are able to take more time to develop and save. This way allow the
management to feel the programmers are doing work and the programmers can take
this extended time to repair some other bugs and flaws in the programs.
- The author do not reccommend to only do top-down anaylsis to do programming.
Top-down programming is equated to break down harder more complicated stuff into
simpler easier and more mangaeable stuff and most of time this is what most
management are doing. This is very good management and the management adds up the
time for each stuff to do and often neglect the most important thing is that
integration, code learning, code integration, code revision are also part and
parcel of the whole top-down anaylsis. The author agrees that top-down programming
is a good practice and is often essential to break down all the stuff and starts
the whole planning cycle but also gets them to include task times, code
integration, risk-analysis and buffering as part and parcel of the whole
programming and let this time be accounted for. this is what the author meant to
be time-saving contingency plan for the iterative development project.
- The author also do not reccomend to write similar and same coding as this waste
timing. the author agrees though that these codes does help in the programming
part but putting these reusable codes into a library and a basic class
implementation will allow the programmer use this codes and implement into his
three programme. This will help save time for the programmer will allow this
reusable class implementation to put in other part of the codees if needed. It is
the author's experience that is harder to tranpose nominal implementations and
more difficult still to move optimal code in this fashion. The whole idea is to
get a placeholder functionality in as quickly as possible

Concept of virtual function and abstract class

Virtual Function


There are two types of binding. They are static and dynamics binding. Static binding is a function call matches with the correct function definition at compile time, thus use the base class function, and not the derived class ones.

However, for virtual function, the compiler matches a function call with the correct function definition at run time, which is dynamic binding. The keyword "virtual" is declared before the name of a member function. Therefore, if the function in the derived class is the same as the virtual function of the base class, and is being called, it overrrides the virtual function.

Take note, if the derived class has a function with the same name as the virtual function in the base class, BUT has different number of parameters in the paretheses, THEN it cannot overrides the virtual function.

In additional, virtual functions can be a friend to another class, but cannot be global or static, because it must be a member function of a base class, which relies on a specific object to determine which implementation of the function is called.

Lastly about virtual function, it must be one of the following:
(1) Defined
(2) Declared pure
(3) Defined and declared pure

A base class containing one or more pure virtual member functions is called an abstract class.....



Abstract Class


Normally, an abstract class is used as a base class. It must have at least one pure virtual function using a pure specifier (= 0) in the declaration of a virtual member function. In additional, there is no such thing as pure virtual function declaration in class, having both the pure specifier and its definition.

An abstract class cannot be used as a parameter type and a function return type. For example, virtual void test() is correct. You can, however, declare pointers and references to an abstract class.

Lastly, since virtual member functions are meant to be inherited, a class derived from an abstract base class will also be abstract, not until you override each pure virtual function in the derived class. This means we cannot instantiate an abstract class, unless the virtual functions are being overriden by the derived class.


File

http://www.geocities.com/pikagaming/Monster_Class.zip

Prince of Persia

~Prince of Persia~
Programmer's Responsibilities:
-------------------------------
-Taking inspiration from various cities across the globe to redraw put differentcolours to feature different outdoor and indoor asthestics.

- E.g. Decrepit and low living areas of the poor not so lighted and darker color platte.

-The highest tower feature the if a tree and the exterior of the tower will enable the player to climb the tower.-Recreate the old arabic building sense.

-Animators to create movement and fighting scenes for the dark prince and prince.

Summary:
----------
-Prince will be come back home of babylon and find himself hunted.

-He will be hunted by some unkown strong antagonist.

-Also got dark prince -infected with sand of the time

-Vile devil cruel and draw sadistic pleasure from violence

- Want to kill the prince and get the throne from him.

-Prince and girl come back and find city is under siege

-Girl becomes narrator-Animation will focus the dark dynamic animations of 100 each for the prince and dark prince will cause it feature for the fantastic speed-kill animation

-AI will able to create more reinforcement if the players fail to speed-kill-Acrobatic movement to prevent for the eneimes to find him.

-Strategic movement to move around the city.

-Dark prince use chain to take down his enemies(able to completed finishing moves).

-Free form of movement