Procrastination

The first idea of the game was to make a clicker stat-builder, e.g. you click on a button and gain experience which results in leveling up and getting higher stats. After one "release" (as in a somewhat working program) I changed the idea to be an automatically running builder where the player choosing between different attack options.


Hard work often pays off after time, but laziness always pays off now.

Irresponsibility

My new project is a single player strategy RPG where you control up to 15 characters at the same time and battle monsters on, to start with, gridded map.

No single raindrop believes it is to blame for the flood.

Friday, November 27, 2009

Developoment tools

This is something I’ve been very reluctant to start with but it has to be done eventually; I need to create a tool to create and change all my attribute files. The basic idea is rather simple but the actual structure gets rather complicated and the whole program is a project in itself, also it is a lot of GUI work which I personally hate to do.

For starters there will be one main window which will be the whole workspace for the development program, under this there is not really any need for menus so the next part will be folders; kind of like the new Word 2007 where you have folders for each set of tools you can use in the program. The folders are the different types of files I need to manipulate, namely; characters, weapons, shields, armors and enemies. The window you get will have some similarities; the main one is the file list where you get all the files that are included in the set you are currently watching, for this there will also be an add and remove button. Another similarity will be that there attributes and that you can change these attributes and add new attributes.

Attributes themselves will come in a tree structure, where branches are usually a true or false and leaves usually have a value, this is to narrow down the size of each file and remove the need to have all values in all files. Attributes can furthermore be shown as radio buttons (for limited string or integer options), tick boxes (for Booleans) or fields that accept either strings (for example names) or normally only integers (for values). When a new attribute is added a popup window will show to ask if it is a branch or a leaf; branches will generally be true or false with default value false, leaves will generally be integers with suggested default value 1 (0 can be dangerous to use as it might result in divisions by 0 by mistake). After something is added the program will go through all files that are included in the list for that type and add the new attribute, one special file will save all default values. When a file changes a branch from false to true the attributes and their default values under that branch will be fetched from the save file.

Example structure for a weapon:

•Item_type : (fixed)
•Name : (String field)
•Type : (radio buttons)
•Damage_type* : (radio buttons)
oDamage_subtype : (radio buttons)
•Hands : (radio buttons)
•Min_damage : (integer)
•Max_damage : (integer)
•Range : (integer)
•Speed : (integer)
•Primary_attributes : (box)
oAttribute* : (box)
*Attribute** : (integer)
•Secondary_attributes : (box)
oAttribute*** : (box)
*Attribute : (integer)

* Damage_type will be devided into: Physical, Magical and Elemental, with sub types being for Physical: Slashing, Piercing and Blunt, for Magical: Dark (Black), Light (White), Arcane and Gravity, and for Elemental: Fire, Earth, Water and Wind.
** Primary attributes are: Strength, Agility, Intelligence, Endurance and Vitality (I might not include these attributes in items at all).
*** Secondary attributes are: Block, Parry, Dodge, Accuracy, Critical_strike, Armor, Resistance and Power.

No comments: