A simple Ruby library for role playing games.
-
Character class with name and basic attributes (aka “traits”) like :strength, :agility, :charisma, :intelligence, :constitution
-
Yaml Serialization
-
Inventory for keeping tracks of items
-
Dice rolling, e.g. 1.d6.roll => 1-6
-
Weapons with random damage, e.g. 1d6+1 (like Dungeons & Dragons or The Dark Eye)
-
Events (e.g. successful evade, hit, death)
In order to do a successful attack or evade the character rolls a D20. The action is successful if the result is lower or equal to it’s associated attribute value (e.g. “attack” or “evade”). That means low dice rolls are actually a good thing, in fact if you roll a 1 you get a perfect bonus (e.g. double damage for attack rolls). On the other side rolling a 20 is an epic fail for any action roll and has various bad consequences (e.g. chance to drop weapon).
Have a name, inventory, can equip items (weapons and armor for example). Every character has 5 base attributes that influences the probability to success in various areas:
-
Strength (influences base damage and chance to hit)
-
Agility (influences chance to hit and to evade for example)
-
Charisma (will be used for e.g. NPC interaction later)
-
Intelligence (also influences chance to hit for now and will be the basis for magic)
-
Constitution (influences total health and evade chance, probably more later)
There are other sub-attributes (TODO: find better term) like:
-
Attack (chance to hit the target)
-
Evade (chance to not get hit)
-
more to come
-
Fighting (blocking, armor)
-
Specializations
-
Maps
-
Web Service interface (e.g. creating characters, starting fights)
-
much more
-
Use URLs as levels: parse the resources and convert them to maps somehow with <a> links being doors to other maps
-
IRC interface