Organizational Designs
HegemonKhan
24 Nov 2014, 22:58keep 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)
enjoy
(and please post your own methods~designs~ideas for organization too (especially the code pros here, if you're willing, 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
(and please post your own methods~designs~ideas for organization too (especially the code pros here, if you're willing, hehe).