Tuesday, May 18, 2010

Here are the Main Quests and SideQuests Aaron :D

Main Quests:
1. Gladiator Arena – the Gladiator Arena is the final challenge of the game, the player leave the island and travels to the Arena where their skills will finally be put to the test. The Arena is on an island where the terrain has consumed it.
Quest: the player enters the Arena where a crowd cheers the player on. The challenge will begin with waves of small and easy monsters to defeat. After 1 or 2 waves the monsters will become harder. By the 4th wave, the player will have to fight against a large and rather difficult boss, once the player has defeated this boss a small scene will appear and the player will have to fight their rival and this fight will be the final fight of the challenge, the winner will be granted with the wish (if you lose, obviously you get to redo the challenge)
Option: we can make the monsters hard or more monsters and place potions around the arena or make them appear every 5 minutes or something so that the player may wish to use them strategically.
Reason: the reason that this is a main priority is because the whole story is building up for this event, without it the game will make no sense.

2. Cliffy Shoreline – The Cliffy Shoreline is located near the mountains/caves. The Cliffy Shorelines are the nesting place during the mating season for dragons, this occurs once every 10,000 years. The dragons are gathered on top of the Cliffs, and they are very protective of their young, during this season the dragons are more aggressive than usual. It is difficult to reach the top and once their it is even more difficult to move as there isn’t much free space, falling off the cliffs will bring you to your death.
Quest: the player is require to climb to the top of the cliffs where the dragons are and capture a dragon egg, the player can choose how they want to capture an egg, whether this be by sneaking past the sleeping dragons or use magic to walk past them or to just go in with a bang and make as much noise as they want and destroy everything before grabbing an egg.
Reason: each class has their strength and weakness and it is unfair to have a wizard who relies on magic to fight in hand in hand combat with a dragon, this quest allows the players class to come in handy and have their own style in completing the quest.

3. Forest – the forest is a bright green and vibrant area that is full of life, there are also long lost items scattered around the area waiting to be found. The forest is one of the largest areas of the island and is the gateway to all of the other sections of the island.
Quest: an item that brings protections and power has been lost for centuries in the forest, many have sacrificed their lives in search of this artefact and never returned, enter the forest and return the once lost artefact to the campsite where it protects the island.
Reason: I feel that by having a basic quest where a character just travels into the forest to retrieve and item is fairly common and also allows the player to get used to their class and allows them to become familiar with the areas and the game.

4. East Beach – East beach is a large beach filled with treasure and gold, the island has recently been captured and become territory to the evil minions, these creatures have built a fortress as a solid base. These creatures desire nothing other than greed and power which is why they slowly plan to take over the whole island
Quest: your mission is to explore this fortress for an item that is placed at the highest point, this is no easy task as the fortress is guarded by many minions and they don’t plan on having any visitors. This item that they protect is the source of their power, once destroyed the minions will leave the island and never return
Reason: nothing too special, just a basic quest that has a few monsters and seeing as its going to be towards the end of the game the monsters will be fairly difficult. The importance of this challenge is if the player dies they do not have an opportunity to be rewarded with a unique item. (May vary)

5. Mountains/Cave – the great mountains have kept the lives of so many, the dark and confusing landscape will often have travellers going insane, many of the walls appear the same so it is easy to get lost.
Quest: travel through the repeated tunnels in the caves, there will be a time limit so make sure you search fast, and don’t forget “there is always a light at the end of the tunnel”. Be careful as there are plenty of traps and monsters that are waiting for some live prey.
Reason: I feel that by having a puzzle as a quest this will take the game away from just beating the crap out of monsters and it will give the player an opportunity to think strategically and to just use their brains more than just relying on their powers and stats.

Side Quests:
1. Helping the Blacksmith – the blacksmith is a rather lanky character, very dopey and always losing his items, he is however very smart and is able to forge together valuable weapons and armour.
Quest: the Blacksmith has lost his manthril hammer in the forest, he has plenty of work on his schedule and is unable to proceed without his strong hammer, he last saw it in the forest. Go into the forest and find the mathril hammer that belongs to the Blacksmith.
Reason: just a basic side quest which requires a player to search for an item, this quest will bring up your relationship with the Blacksmith; this will allow the player to buy items with a discount (given that the hammer is placed in a difficult area, possibly guarded by many monsters).

2. Helping the Wizard – the wizard is a very very old character, appears fragile and almost useless. Although looks can be deceiving, this old man was once the most dangerous wizard around, he posses powers of the black arts and has a fairly large price on his head.
Quest: there are some bounty hunters searching for the wizard and plan to collect the bounty for his head. But at this old age he often forgets that he is in trouble, go out and ease the wizards mind by taking care of these bounty hunters, byt approach with caution as they came prepared.
Reason: just another basic quest, brings up your relationship with the wizard, you reward will be either an awesome staff or an enchantment to a weapon or armour.

3. Helping the mercenary guy- A traveller who is well connected with powerful people, this little guy travels the world with nothing other than his music and his bag that is full of supplies.
Quest: the mercenary guy has lost one of his best sidekicks, in the mountains/cave. He doesn’t want to risk searching him and not returning, it would mean the world to him if you brought him back safely.
Reason: still basic, and bring up your relationship with this person. As a reward the mercenary guy will grant you with a mercenary, until they are dead.

4. Helping the Potions chick- this young lady has the cure for everything, she is bright and very curious. She has a range of different materials and spells.
Quest: this little lady wants to make a break though, she is trying to invent a potion that will cure any sickness. But she is missing a few materials. She requires certain plants that is far too dangerous for he, travel to these areas and grab the items she requires for her potion.
Reason: exactly like the rest, she will offer you a portion of this awesome potion or at least something else that is very useful.

5. Hit list – there has been a thief among the island and is stealing valuables from the campsite. He has been sneaking and stealing for the past few weeks. Even guards who have been on patrol cant catch this person.
Quest: guards have described what the person looks like, they are wearing a dark red top with large claws, find this thief and bring him to us for a nice reward.
Reason: no reason other than allowing the player to earn heaps of cash

6. Helping the Assassin– The Assassin is in danger and needs your help to survive, he is unaware that he is walking into a trap, you can save him by informing him which will raise your friendship or you may watch him suffer (if you choose to watch him suffer, he may fall down a ditch or walk into an area which causes him to lose his items).
Reason: this will give the player an opportunity to either save your friend and bring your relationship to a greater level or to let him suffer and die so that you don’t have as much competition.

6. Helping the Sorceress
– (setting in the forest) The Sorceress is in trouble and needs your help! She is caught in a vine and there are some passing creatures that will find her, would you like to lend her a hand to set her free or watch and see what they will do to her? (if the player chooses to watch her suffer, the creatures hurt her causing her to go down a level).

6. Helping the Aasimar – (setting in the cave) The Aasimar is walking in an area where there isn’t much light, he is grabbed by some creature that lives deep in the darkness, would you like to help him out or watch him perish? (if you watch him perish, he may lose some powers or his items)

6. Helping the Goblin – The goblin’s possession are being stolen and he is unaware of it, would you like to let him know or watch from the distance and be entertained? (If you are watching from he distance then the Goblin loses his items and possibly some money)

6. Helping the Teifling – The Tiefling is in trouble, she is becoming more and more aggressive with a group of bounty hunters, calm her down and take her away from the group before she becomes badly hurt (if you are watching from the distance, the tiefling becomes badly damaged and is unable to compete for a while or something like that).

6. helping the troll – the troll is being attacked by some swooping birds but due to his slow mobility he is unable to defend himself, help him out or watch him suffer (if you watch him suffer he gets too tired and falls down)

6. helping the orc - the Orc has been ambushed by a group or demons, help him out and keep him alive or watch his suffer (if you watch him suffer, they take all of his items)

Thursday, May 13, 2010

DOING STUFF

The Cliffy Shoreline is complete and so all the areas for the mod are complete. I am currently working in all the custom monsters (including various minions, leaders, mini bosses and bosses) And will have these and any other custom objects needed done by next week. Thats my update, enjoy.
-Candy

Saturday, May 8, 2010

.TLK Files and Custom Tokens

.TLK Files, How to use/create them and Why we should.

If you've tried opening my mod in the toolset without copying the stuff correctly, you might notice an error. That's because you're missing the .tlk file which should be in the tlk folder in the NWN2 folder along with the module folder where you put custom modules in. You need the tlk file because it's where my dynamic conversation lines are stored (the lines that give a custom name based on who's spawned in, and how they are feeling, etc..). If you run my mod without it you'll just get funny lines when you ask for a status update like "ranger" or "monk". That's because it defaults to the original NWN2 tlk file. 

So what is the .tlk file? Basically it's just a file that contains numbers, and a bunch of text associated with those numbers. It'll look funny if you try opening it in notepad. When you set your mod to use a .tlk file, you can then use the text in your conversations. Try it now (you don't have to have a custom tlk file set up), by creating a new conversation, then when creating a new line in your convo, click edit string ref then type a number in. If you type in say 125366 you might get the line "Don't question me, not now - this is more than any of us were expecting." If you play the original NWN2 campaign, somebody says this line somewhere.

Why should we use tlk files for conversations? Why not just type it out like we do in class?

Well, what if you use a standard line repeatedly? Maybe you want all the merchants to say "Thanks for buying from me!" after the player talks to them. Well you could copy and paste that line in every merchant convo, or you could set it up in a tlk file, then just add the string ref in the conversation and bob's your uncle. Later, say you want to change that line to "Thanks for buying from me, !", if you didn't set up a tlk file, you'll now have to copy and paste that line into every merchant convo, whereas you could just open up mr tlk file, edit that line directly and done!  Another good thing is, It will be easy to keep up to date with the latest conversation lines by just sharing the latest .tlk file, instead of having to export and import conversations just because you tweaked the line to make it in character. It's easy to merge different tlk files together when you use a good tlk file editor as well.

There are a few downsides: Because you're using the string refs, if you want to change lines completely you'll have to open up the conversation and set the new line. So when you merge tlk files, the string ref will most likely change so you'll have to go through your conversations and check to make sure they're referring to the right line, but once this has been done, you shouldn't have to change them again. You also can't change the tlk file from within the conversation editor in the toolset it self, so if you spot a mistake you'll have to do it in the tlk file. I think you lose the string ref or it doesn't save the changes if you edit the conversation from within the conversation editor.

So how do I create one? How to use it?

First download a tlk editor. I use this one located here. If you do use that one, remember to use TlkEdit2 and not TlkEdit otherwise you'll get a file that won't work with the mod. The editor itself is pretty self explanatory, just type in the boxes next to the line numbers.

Note: If you've got your mod open with the tlk file set, you won't be able to save your .tlk file in the editor. You'll have to get around that by either closing your toolset (not as desirable) or you could also do what I do which is just have two versions, say fit1.tlk and fit2.tlk, then just save to the other one that is not set in my module. So if my mod has fit1.tlk, I save to fit2.tlk. When i need to try it out, I set the mod to fit2.tlk then test. when I'm done, make any changes in the editor and save to fit1.tlk and repeat. It's annoying but better than closing and opening the toolset repeatedly (which we also know isn't the most stable of all creatures.)

So in conclusion, tlk files are awesome, and you should use them. (this is mainly directed at nick and estelle since they are doing the conversations but programmers should take note of this as well since you'll need to be able to look into talk files for custom token numbers).


A short note on Custom Tokens

If you look into my tlk file or mod, you'll notice things like . This is a custom token which can be scripted to contain strings, making them dynamic. NWN2 comes with pre-built ones like or which will return appropriate strings. We can set out own in scripts by using the SetCustomToken() function like so

SetCustomToken(201, "Magic"); After that script has been run, whenever a conversation has the tag it will display 'Magic' (without the quotes) in the game. 

Note that NWN2 uses the first 50 or so tokens so to be on the safe side, start at about 100 or so.

So for the folks doing conversations, consider using custom tokens to make your conversations more dynamic and varied.



Wednesday, May 5, 2010

TIMELINE!!!

Ok guys so this was originally meant to all be due in at the next meeting, which will be held THURSDAY 13TH MAY, 2.30-3.30 PM. However, all of you would have gotten Aaron's email, in which he stated that it is uneccessary to rush everything, so rather aim to have everything finished around 25th, 26th, in time for VIGOROUS testing.

Assignment 3 - due Friday 28th May.
Presentation - Tuesday 25th May.

Programmers
- challenge scripts completed first (priority)
- all important scripts completed second
*NOTE: see Aaron's email to understand which programmer is doing which set of scripts.

Nick
- quests done first (priority)
- rivals established
- list of items for Candy
- all conversations done (collaboration with Estelle)
- journals done

Candy
- all areas done first (priority)
- quest related items
- custom items completed

Estelle
- main characters - contestants - done first (priority)
- merchants done
- conversations (collaboration with Nick)

*PLEASE NOTE EVERYONE: I HAVE WRITTEN FIRST PRIORITY SO THAT YOU ALL KNOW WHAT NEEDS TO BE DONE FIRSTTTT, BECAUSE THESE PARTS ARE ESSENTIAL TO THE FUNCTIONING AND FOR THE PROGRAMMERS. By the next meeting all priorities should be completed. After the next meeting, I will rewrite/update this timeline with the next step of priorities.

Script list

List of Scripts

List of scripts for us programmers. Some are currently pending while we wait for areas/items/creatures

Camp Scene / Freeroam : PENDING

These script/s will run at the start or during the camp scenes/free roaming section:

NPC spawn scripts - While the merchants will always be present in the camp area, since contestants are semi-randomly eliminated, scripts will be required to spawn the correct contestants left into the Camp Area, as well as give them some actions so they are not just standing around.

SpawnContestants() - When you return to the camp scene after a challenge, this script will look through each contestant for a "IsEliminated" boolean, and if false, then assign them a random spawn point and spawn them in.

UnlockAreaTransition()

RandomAction() - This script will give the contestants are random action to perform when they spawn in so it looks as if they are not just standing around. Maybe make some of them pray, or sit down, or lie down. etc. Script will be attached to contestants, randomly generate a number and do the action assigned to that number. Not as Important

Forest Challenge: Find the hidden item and bring to Host (HALF PENDING) 

Timer Script - Hidden Timer (player unaware) that counts down from a certain time (undecided until actual challenge is built for balancing purposes). Checks to see if player has "won" the challenge. If not, then countsdown/up however your timer script works . If at the end, player does not have item, player has lost. If so, player has won. 

Maze Challenge: Navigate through the maze. Reach host on otherside

Timer Script - Hidden Timer that countsdown. Checks to see if player has reached the end. This one will need some collaboration with Candy to put in puzzles and stuff.

Beach Challenge - Destroy the orb at the top of the castle

Scripts to spawn monsters and to cease spawning scripts once orb is destroyed.

Swamp Challenge: Swamp Monster + minions (PENDING) 

Swamp Monster AI Behavior Scripts - A Collection of scripts to make the Swamp Monster fight dynamic, e.g by scripting it to summon minions that will regenerate the monster. The PC will need to kill those minions first before they can harm the Boss monster. After the Boss monster reaches a certain level of health, will summon more monsters. Details still need to be worked out.

Shoreline Challenge: Get item from Dragon at the top

Dragon scripts - Scripts to dictate Dragon behavior when you reach the top. If Dragon perceives player, then trigger Conversation. If Player sneak attacks Dragon, or Steals item, Set Dragon to hostile. These will all be done through triggers and maybe during the conversation with the dragon. Will also require skill checks during the conversation if PC tries to charm the item from Dragon (NWN2 should have scripts to cover this)

Final Challenge Gladiator: Defeat monsters.

This one will probably be an ongoing collaboration one because Martin I'll need you to do your influence magic on this. need to tie into final scenes.

SUBQUESTS (PENDING)

Script/Programmer Assignments:

Aaron: I'm claiming the Beach Challenge (destroy orb at the top) and I'll work on the Swamp challenge and Cliffy Mountain challenge with Candy. I should be able to write up working scripts, I'll just need to modify the creatures Candy creates or modify the scripts to point to the right creatures. I'll also be implementing elimination into my mini mod and converting those scripts so they can be used for large numbers (i.e ready for implementation into the main mod with the contestants)

Martin: Streamline your influence scripts if you need to and make them ready for implementation with the main mod. Areas I would like for you to do are the forest and maze. 

For the forest: Look into how you will hide the item. Maybe make a few placeables as usable (talk with Candy about this) and allow them to have an inventory to hold the item. Make it random of course. or could think about leaving clues or something. Although now that I think about it, this should be challenging, so to make it better than just a simple look for item quest, maybe make it so after you pick it up, a contestant spawns and attacks you for it. 

Maze: Might want to work with Candy in putting puzzles and traps in the area. You'll probably need to make some spawn scripts, maybe lock the door when they enter and they can't get out untill they kill all the monsters?

Jason: Until we have the talk next Tuesday with Stephen about what to do with you, I'm going to ask you to maybe keep working on implementing the timer script into the areas. Talk with Martin about this. We might need to you do something like converting conversations into .tlk files (I will talk about this in another post.)


Priorities

Priorities:
Main Quests:
1. Gladiator Arena – the Gladiator Arena is the final challenge of the game, the player leave the island and travels to the Arena where their skills will finally be put to the test. The Arena is on an island where the terrain has consumed it. Quest: the player enters the Arena where a crowd cheers the player on. The challenge will begin with waves of small and easy monsters to defeat. After 1 or 2 waves the monsters will become harder. By the 4th wave, the player will have to fight against a large and rather difficult boss, once the player has defeated this boss a small scene will appear and the player will have to fight their rival and this fight will be the final fight of the challenge, the winner will be granted with the wish (if you lose, obviously you get to redo the challenge) Option: we can make the monsters hard or more monsters and place potions around the arena or make them appear every 5 minutes or something so that the player may wish to use them strategically. Reason: the reason that this is a main priority is because the whole story is building up for this event, without it the game will make no sense.
2. Cliffy Shoreline – The Cliffy Shoreline is located near the mountains/caves. The Cliffy Shorelines are the nesting place during the mating season for dragons, this occurs once every 10,000 years. The dragons are gathered on top of the Cliffs, and they are very protective of their young, during this season the dragons are more aggressive than usual. It is difficult to reach the top and once their it is even more difficult to move as there isn’t much free space, falling off the cliffs will bring you to your death. Quest: the player is require to climb to the top of the cliffs where the dragons are and capture a dragon egg, the player can choose how they want to capture an egg, whether this be by sneaking past the sleeping dragons or use magic to walk past them or to just go in with a bang and make as much noise as they want and destroy everything before grabbing an egg. Reason: each class has their strength and weakness and it is unfair to have a wizard who relies on magic to fight in hand in hand combat with a dragon, this quest allows the players class to come in handy and have their own style in completing the quest.
3. Forest – the forest is a bright green and vibrant area that is full of life, there are also long lost items scattered around the area waiting to be found. The forest is one of the largest areas of the island and is the gateway to all of the other sections of the island. Quest: an item that brings protections and power has been lost for centuries in the forest, many have sacrificed their lives in search of this artefact and never returned, enter the forest and return the once lost artefact to the campsite where it protects the island. Reason: I feel that by having a basic quest where a character just travels into the forest to retrieve and item is fairly common and also allows the player to get used to their class and allows them to become familiar with the areas and the game.

4. East Beach – East beach is a large beach filled with treasure and gold, the island has recently been captured and become territory to the evil minions, these creatures have built a fortress as a solid base. These creatures desire nothing other than greed and power which is why they slowly plan to take over the whole island Quest: your mission is to explore this fortress for an item that is placed at the highest point, this is no easy task as the fortress is guarded by many minions and they don’t plan on having any visitors. This item that they protect is the source of their power, once destroyed the minions will leave the island and never return Reason, nothing too special, just a basic quest that has a few monsters and seeing as its going to be towards the end of the game the monsters will be fairly difficult. The importance of this challenge is if the player dies they do not have an opportunity to be rewarded with a unique item. (May vary)
5. Mountains/Cave – the great mountains have kept the lives of so many, the dark and confusing landscape will often have travellers going insane, many of the walls appear the same so it is easy to get lost. Quest: travel through the repeated tunnels in the caves, there will be a time limit so make sure you search fast, and don’t forget “there is always a light at the end of the tunnel”. Be careful as there are plenty of traps and monsters that are waiting for some live prey. Reason: I feel that by having a puzzle as a quest this will take the game away from just beating the crap out of monsters and it will give the player an opportunity to think strategically and to just use their brains more than just relying on their powers and stats. Side Quests:
1. Helping the Blacksmith – the blacksmith is a rather lanky character, very dopey and always losing his items, he is however very smart and is able to forge together valuable weapons and armour. Quest: the Blacksmith has lost his manthril hammer in the forest, he has plenty of work on his schedule and is unable to proceed without his strong hammer, he last saw it in the forest. Go into the forest and find the mathril hammer that belongs to the Blacksmith. Reason: just a basic side quest which requires a player to search for an item, this quest will bring up your relationship with the Blacksmith; this will allow the player to buy items with a discount (given that the hammer is placed in a difficult area, possibly guarded by many monsters).
2. Helping the Wizard – the wizard is a very very old character, appears fragile and almost useless. Although looks can be deceiving, this old man was once the most dangerous wizard around, he posses powers of the black arts and has a fairly large price on his head. Quest: there are some bounty hunters searching for the wizard and plan to collect the bounty for his head. But at this old age he often forgets that he is in trouble, go out and ease the wizards mind by taking care of these bounty hunters, byt approach with caution as they came prepared. Reason: just another basic quest, brings up your relationship with the wizard, you reward will be either an awesome staff or an enchantment to a weapon or armour.
3. Helping the mercenary guy- A traveller who is well connected with powerful people, this little guy travels the world with nothing other than his music and his bag that is full of supplies. Quest: the mercenary guy has lost one of his best sidekicks, in the mountains/cave. He doesn’t want to risk searching him and not returning, it would mean the world to him if you brought him back safely. Reason: still basic, and bring up your relationship with this person. As a reward the mercenary guy will grant you with a mercenary, until they are dead.
4. Helping the Potions chick- this young lady has the cure for everything, she is bright and very curious. She has a range of different materials and spells. Quest: this little lady wants to make a break though, she is trying to invent a potion that will cure any sickness. But she is missing a few materials. She requires certain plants that is far too dangerous for he, travel to these areas and grab the items she requires for her potion. Reason: exactly like the rest, she will offer you a portion of this awesome potion or at least something else that is very useful.
5. Hit list – there has been a thief among the island and is stealing valuables from the campsite. He has been sneaking and stealing for the past few weeks. Even guards who have been on patrol cant catch this person. Quest: guards have described what the person looks like, they are wearing a dark red top with large claws, find this thief and bring him to us for a nice reward. Reason: no reason other than allowing the player to earn heaps of cash
6. Help out your friend – your friend is in danger and requires your assistance. They are
being ambushed by some creatures of the island, find them in time before it’s too late. Quest: (pretty much what I said above) Reason: this will give the player an opportunity to either save your friend and bring your relationship to a greater level or to let him suffer and die so that you don’t have as much competition.

Programming Guidelines/Thoughts for Team Fusion

Some General Programming Guidelines for this Project.

USE CONSTANTS – If you are going to be using a certain number constantly like number of contestants, number of quest items, max number of monsters etc. and these will have a number that will not change throughout the module, set them to a global/local variable and change the name to ALL CAPS. Yes it might be a hassle having to go

int iNumContest = GetGlobalInt(“NUMCONTESTANTS”);

in every script you write but it means if we change anything it will be easier to change your NUMCONTESTANTS variable then go through every script you wrote and change the number itself.

IF YOU CREATE A GLOBAL, WRITE IT DOWN SOMEWHERE – This way when we consolidate our scripts we can look at which global variables we use. I don't know of any way the toolset allows you to track your global variables. If you do know, tell me. It also means if we use the same type of globals, we can easily combine them. We'll be able to initialise them all correctly as well.

Some Reserved globals to use:

Note: You may have to initialise these variables so do so in a TEMPORARY initialise script.

  • gIsMainChal – a boolean check for whether or not it's currently a main challenge – use on scripts/triggers that you want to fire at certain times. I.e if during the main challenge you want special monsters to spawn, check that if gIsMainChal is FALSE then return. Otherwise run the rest of your script.

More pending (if you've got some you need/think we should use let me know/edit this blog post.

NAMING OF VARIABLES – Use hungarian notation like they do in NWScript. Hungarian notation is naming things like object oPC or int iNumItems. Notice the first letter indicates what type it is. I don't like it but NWScript uses it so go with the flow. (Anna and Stephen use it as well).

Globals start with a g. locals don't start with an l, they are just standard type notation.

NAMING OF SCRIPTS – use something like grouping_nameofscript, When I say grouping I mean labeling it under a group of where/what the scripts does. So if I have a fitness related script I label it fit_whateverA, or fit_blahB. This way when I'm looking for scripts it makes it easier to find. And even easier when we combine our many scripts together. I'll leave it to your discretion how you name your scripts but please don't go overboard and have like forest_mainquest_end_startending.

It should be simple like forest_mq_startending. Or whatever.

LEARN TO REFACTOR YOUR CODE – Code refactoring is an important skill for programmers. What it means is if you find yourself doing a set of functions repeatedly, think about putting it in another method/function and calling it whenever you need it. Also consider doing this if you find your function/script getting too big.

E.g. I found myself doing this a lot:

object oObj = GetObjectByTag(sTag);

int j = GetLocalVariable(oObj, sVarName);  


so I wrote a function that does it for me

VarType getLocalVarFromTag(sTag, sVarName)

{

object oTarget = GetObjectByTag(sTag);

return GetLocalVariable(oTarget, sVarName);

}

then just import that script into the scripts I'm writing and whenever I need a variable and all I have is a tagname I can just go

int j = getLocalVarFromTag(sTag, sVarName);

If you read the GS board (which I doubt anyone does) I put up that list of functions along with instruction, so use it if you need it because the script is going to be in the final Module anyway.

COMMENT YOUR SCRIPTS - Do it just they teach us in Programming 1. Not too verbose and not stating the obvious. Also ADD A COMMENT HEADER TO THE TOP OF YOUR SCRIPTS. In it should be your name, student number and what this script does. If/When we modify each other's scripts, then add on your name, student number and what/how you modified the script.

Artists/Designer!!!

NAME YOUR TAGS APPROPRIATELY. - Don't make them too long/short, use _, Also if you're creating a series of objects, think about naming your tags in a format like magic_qItem_1, magic_qItem_2, magic_qItem_3 (q for quest) or whatever, cos it makes it easier for us programmers to use and iterate through your items.

Rather than going:

magic_qItem_sword, magic_qItem_hammer, magic_qItem_crystal.

Might want to think about doing this for the contestants as well.

Give us a lit of which number corresponds to which object etc.


WRITE DOWN A LIST OF TAGS – I think this is a given.

More if I think up any.

Also side note, I added my gmail account as an author of this blog only. Because everytime I logged into the team cake gmail all my google stuff disappeared to team cake google stuff. which is bad. Nick, if you have a gmail and you want access instead of having to log in as team cake, log in as team cake first then go to blog settings -> permissions then send an invite to your gmail. Log out and log into your own gmail and you should have received the email.


Google is awesome for shared stuff albeit evil everything else.

Tuesday, May 4, 2010

NEW BLOG

WE GOT A NEW BLOG! AWESOME! POST STUFF!