Organizational Designs

HegemonKhan
keep a folder of files of code (and even better if that code is also implemented as being a playable~testable game) that works (your own code, all the library files on this site ~ hehe, and code given in the forum's posts by people ~ hehe)

USE A LOT of comments (the: ' // your comments ' ) in your Scripting code blocks, as you'd be surprise how easy it is to forget (how to do) things over time... ~ "a pinch of prevention is worth a pound of treatment~cure" (or however the saying goes, lol) ...

[HK Edit: went off on big tangent, bad when you get social ~ when your mind wanders off, laughs, as it is off-topic content for the post that you get social in, when the post's thread is not a social thread. so I removed it]

also, you may want to use library files (*.aslx) to organize all your game code aspects:

(sometimes it's good to split stuff up as multiple files, such as 'how to guides', and sometimes it's good to have stuff in a single place, aka as a single file for quick reference)

(and you can just copy and paste whatever code from this 'master' library file of yours, into your game file that you're working on)

<library>

// you can always do more (or less) sub-cateogries as you want for better organization

<!-- new (default) tree -->

// the default new game tree:
<!--
Objects
Game
Verbs
Commands
Room
Player
Functions
Timers
Walkthrough
Advanced
Included Libraries
English.aslx
Core.aslx
Templates
Dynamic Templates
Object Types
Javascript
Filter -> show Library Elements
-->

<!-- new (default) game code -->

<asl version="550">
<include ref="English.aslx" />
<include ref="Core.aslx" />
<game name="xxx">
<gameid>xxx</gameid>
<version>1.0</version>
<firstpublished>2014</firstpublished>
</game>
<object name="room">
<inherit name="editor_room" />
<object name="player">
<inherit name="editor_object" />
<inherit name="editor_player" />
</object>
</object>
</asl>

<!-- Libraries -->

// base~general syntax code for libraries, example: <include ref="xxx.aslx" />
// the default libraries: 'English.aslx' and 'Core.aslx'
// your library code~tag lines, such as: Pixie's Spell Library, Pixie's Simple Combat Library, Pixie's Clock Library, Pertex' Combat Library, Chase's Wearables Library, Sora's Stackable Library, etc etc etc

<!-- Templates -->

<!-- Normal Templates -->

// base~general syntax for a normal template
// your normal template code lines

<!--Dynamic Templates -->

// base~general syntax for a dynamic template
// your dynamic template code lines

<!-- Verb Templates -->

// base~general syntax for a verb template
// your dynamic template code lines

<!-- Commands -->

// base~general syntax for a command
// your commands

<!-- Functions -->

// base~general syntax for a function

<!-- Character Functions (example of optional sub-category usage) -->

// your character functions

<!-- Equipment Functions (example of optional sub-category usage) -->

// your equipment functions

<!-- Turnscripts -->

// base~general syntax for a turnscript
// your turnscripts

<!-- Timers -->

// base~general syntax for a timer
// your timers

<!-- Object Types (Types) -->

// base~general syntax for an Object Type
// your Object Types

<!-- Attributes -->

<!-- String Attributes -->

// base~general syntax for a string attribute
// your string attributes

<!-- Boolean Attributes -->

// base~general syntax for a boolean attribute
// your boolean attributes

<!-- Integer Attributes -->

// base~general syntax for an integer attribute
// your integer attributes

<!-- Double Attributes -->

// base~general syntax for a double attribute
// your double attributes

<!-- Object Attributes -->

// base~general syntax for an object attribute
// your object attributes

<!-- Script Attributes -->

// base~general syntax for a script attribute
// your script attributes

<!-- the special 'changed' Script Attributes -->

// base~general syntax for a special 'changed' script attribute
// your 'changed' script attributes

<!-- List Attributes -->

<!-- Stringlist Attributes -->

// base~general syntax for a stringlist attribute
// your stringlist attributes

<!-- Objectlist Attributes -->

// base~general syntax for an objectlist attribute
// your objectlist attributes

<!-- Dictionary Attributes -->

<!-- Stringdictionary Attributes -->

// base~general syntax for a stringdictionary attribute
// your stringdictionary attributes

<!-- Objectdictionary Attributes -->

// base~general syntax for an objectdictionary attribute
// your objectdictionary attributes

<!-- Scriptdictionary Attributes -->

// base~general syntax for a scriptlist attribute
// your scriptlist attributes

<!-- Inherited (Object Types) Attributes -->

// base~general syntax for an inherited attribute
// your inherited attributes

<!-- Objects -->

<!-- Game Object -->

// base~general syntax for the Game Object
// your Game Object code~tag block

<!-- Player Objects -->

// base~general syntax for a Player Object
// your Player Objects code~tag blocks

<!-- Room Objects -->

// base~general syntax for a Room Object
// your Room Objects code~tag blocks

<!-- Other-Object (non-player non-room) Objects -->

// base~general syntax for an Other-Object Object
// your other-object Objects code~tag blocks

<!-- 'Data' Objects -->

// base~general syntax for a 'Data' Object
// your 'data' Objects code~tag blocks

<!-- Tabs (for creating in the GUI~Editor) -->

// base~general syntax for each type of tab
// your tab code~tag blocks

<!-- Combat System -->

// mass of code

<!-- Equipment System -->

// mass of code

<!-- Magic System -->

// mass of code

<!-- Dialogue System -->

// mass of code

<!-- Journal System -->

// mass of code

<!-- Storage System -->

// mass of code

<!-- Character System -->

// mass of code

<!-- 'Pedia' System -->

// mass of code

<!-- 'Help' System -->

// mass of code

<!-- Event System -->

// mass of code

<!-- Item System -->

// mass of code

<!-- (Treasure Chest ~ Item Drop) System -->

// mass of code

<!-- Game Mechanics (equations, formulas, etc) -->

// mass of code
// an example:
<function name="leveling_function"><![CDATA[
if (player.experience >= player.level * 100 + 100) {
player.experience = player.experience - player.level * 100 + 100
player.level = player.level + 1
leveling_function
}
]]></function>
// another example:
player.physical_damage = critical_function (player) * defending_function (player) * player.weapon.physical_damage + player.weapon.physical_damage * player.strength / 100 - defending_function (enemy) * enemy.armor.physical_defense + enemy.armor.physical_defense * enemy.endurance / 100


<!-- Game Design Notes -->

// mass of notes

</library>


enjoy :D

(and please post your own methods~designs~ideas for organization too (especially the code pros here, if you're willing, hehe).

This topic is now closed. Topics are closed after 60 days of inactivity.

Support

Forums