Archive for November 4th, 2006

November 4, 2006

* Defines

#define CHARACTERDATA_WEIGHT_ALLOWED (0.50) //50% before it becomes an issue
#define CHARACTERDATA_WEIGHT_CRITICAL (0.75) //75% before it becomes an problematic



* Structures
// Should hold information that is unique
// Stats: Level, Exp
// Information that does not change very often
typedef struct CharacterCore
// Detailed Characteristics
int nExperience;
int nLevel;

// Proficentcies
float nSkillWithMelee; // Fists, Claws, Kicks
float nSkillWithSwords; // 1h Sword, 2h Sword, Katanas, etc...
float nSkillWithShields; // Shields!
float nSkillWithSpears; // Spears
float nSkillWithDaggers; // Daggers
float nSkillWithStaves; // Melee Staff, Casting Staff, etc...
float nSkillWithBows; // Bow and Arrow
float nSkillWithGuns; // Guns
float nSkillWithAxes; // 1h Axe, 2h Axe
float nSkillWithBooks; // Large Books, Combat Books, Spell Books?

float nSkillWithEarth; // Spell Efficiency Grounds Lighting
float nSkillWithLighting; // Spell Efficiency Vaporizes Water
float nSkillWithWater; // Spell Efficiency Smothers Fire
float nSkillWithFire; // Spell Efficiency Disrupts Wind
float nSkillWithWind; // Spell Efficiency Cuts Earth
float nSkillWithLight; // Spell Efficiency Opposes Dark
float nSkillWithDark; // Spell Efficiency Opposes Light
} CharacterCore;

// Should hold fixed information.
// Stats: Str, Dex, Agi, etc...
// Information that does not change very often
typedef struct CharacterStats
// Base Values
float nMovement; //(Movement after stance and weight)
float nJumpHeight; //(Jump after stance and weight)

int nMaxTarget; //(Client driven target proposal system, max number

// Base Stats
int nStrength;
int nAgility;
int nVitality;
int nDexterity;
int nFocus;
int nSpirit;
int nMind;

// Computed Damage Ratios (from base stats and stance)
float nDamageRatioDefend; //(StanceMod, Damage ratio used when defending)
float nDamageRatioNormal; //(StanceMod, Damage ratio used when normal)
float nDamageRatioDash; //(StanceMod, Damage ratio used when dashing)
float nDamageRatioSkill; //(StanceMod, Damage ratio used when performing a skill)

// Computed Values (equipment, stance, and stats)
int nAttackSlash; //(Mostly bladed weapons, Dex.5, Str1)
int nAttackStab; //(Mostly pointed weapons, Dex.5, Str1)
int nAttackStrike; //(Mostly blunt weapons, Dex.5, Str1)

int nAttackEarth; // Weapon Elemental Damage
int nAttackLighting; // Weapon Elemental Damage
int nAttackWater; // Weapon Elemental Damage
int nAttackFire; // Weapon Elemental Damage
int nAttackWind; // Weapon Elemental Damage
int nAttackLight; // Weapon Elemental Damage
int nAttackDark; // Weapon Elemental Damage

int nAttackMagic; //(Raw magic attack power before elemental property,
int nEvade; //(Evades magic and physical, agility, weight)
int nDefence; //(Defence points from armor and stance modification)
int nHit; //(Accuracy based off dexterity mostly)
int nCriticalRate; //(Dex, Agility, Focus)

int nResistanceEarth; // Spell Efficiency Grounds Lighting
int nResistanceLighting; // Spell Efficiency Vaporizes Water
int nResistanceWater; // Spell Efficiency Smothers Fire
int nResistanceFire; // Spell Efficiency Disrupts Wind
int nResistanceWind; // Spell Efficiency Cuts Earth
int nResistanceLight; // Spell Efficiency Opposes Dark
int nResistanceDark; // Spell Efficiency Opposes Light

// Computed Values (from base stats)
int nMaxHealth; //(Max health)
int nMaxEnergy; //(Max energy)
int nMaxWeight; //(Maximum amount of weight the character can carry)
} CharacterStats;

// Should hold information that is changing
// and can be broadcasted to other client applications
// Should try to keep this information minimal to
// keep bandwidth usage down
typedef struct CharacterDetails
// Detailed Characteristics
int nStance; //(current stance)
int nStanceMod; //(active stance modifier)

// Computed Values (from base stats)
int nCurHealth; //(Just counted)
int nCurEnergy; //(Just counted)
int nCurWeight; //(Computed from equipment and items carried)
} CharacterDetails;


No one to boast too.

November 4, 2006

Sadly, even though I have just finished a nice accomplishment. I find myself stuck in the corner of my room hacking away at an code IDE alone and silent. I don’t even have music playing!

It’s times like this that I really which I could keep up more with the social aspects of life. Makes me think a lot anyways.

I truly do long for more human contact. I feel like a hermit. Although, I am doing something I want to do.

For the sacrafice of social life, I’m a coding hermit stuck in a lonely existance. But I am repaid by education; a learning experiance that will deferenciate me from the rest.

It is not enough to be a Technical Project Manager. I must be more. I need to be more.

Rebuilt an 3ds Max ASE Exporter

November 4, 2006

So like, due to the way I built my game engine it require independant MPF files. Which are converted from ASE files. Problem was that the ASE exportor can only export one file at a time. Thus there was quite a lot of manual work!

So I finally decided to play with the 3ds MAX SDK. Played with the sample exporter and actually compiled it! Next step was modifying it to exactly what I wanted.

Sadly I went in there and hacked the crap out of it and made the code extremely dirty, but for the most part it accomplishes what I need it to do. It will be much more interesting from now on!

I can’t wait! I want to get this project even further down the line!

Building something yourself with our own two hands really makes a difference. You also begin to grow a might fine apprecation for all the people that have been there and done it before me.

I wonder how far behind the race I truly am. I hope to reach the top!