Friday, 24 February 2012

Location, Location, Location

The past few days I have been working on the "Location" object class and a generator that assigns a bunch of random stuff to it. A print out of a randomly generated bare room looks like this,

Location: Asylum.
Inside: true
Size: 4
Darkness: 0
Fatigue: false
Balance: 11
Sight: 0
Water: 0
Submerged: false
Density: 15
Text: You enter a deteriorated asylum. A large root system has broken through the wall, tearing up cobble stone and making footing unsafe.

Location will define the name of the location and text tip that pops up when you hover your mouse above its icon.

Inside is a boolean(true/flase) that sets whether the room is an inside location or not.

Size is representative of how many objects may possibly be found in the location.

Darkness is whether or not their are any lighting problems in the location. Darkness will apply a negative modifier to hit. Dwarves and Orcs etc will not need to worry about this as they will have dark vision.

Fatigue is whether or not the environment is draining on the character such hazardous weather conditions. Fatigue affects a characters hp, mana, and energy recovery rate forcing them to make camp.

Balance indicates that footing may be unsafe at times, as was generated in the above example.

Sight indicates sight limitation such as fog, in which dark vision will be rendered useless.

Water indicates water levels within a location if it is flooded and Submerged is a boolean that indicates a room is completely flooded and the player must go underwater to pass through.

Density indicates the solidity of the dirt in the location if a player wishes to dig there.

Finally text is a representation of the basic features of the room.


If these rooms are going to be any interesting at all I need to fill them with stuff! This can be anything from enemies to tapestries. The items in a room will fill out a room and to its descriptive text. I will also be adding "situations" to the items within a room. e.g. monsters that are sleeping, an NPC that is a slave etc. I will also be adding enemies that favor certain environments, bats in rooms that are pitch black for instance, or water serpents in the flooded areas.

So to recap these are the key factors,
LOCATION -The key features of the location
CONDITION - The special parameters of the location
CONTENT - The objects / enemies within a location
SITUATION - Any special behavior objects in the room may have

Anyway time to go and make some objects to fill these rooms. I might start with something exciting, like a chair... or a bookshelf...


Tuesday, 21 February 2012

Finishing off Character Creation

I am now 90% finished with the character creation and will more than likely come back to the last 10% when I have the correct art to fill it out with. Something that I was truly stuck on for days was the name input for your character.

Once i finally got keyboard feedback in the text field i found that the delete key was not responding. So unless I wanted to force my players not to make a mistake when typing their name I knew I would have to sort this out. After MUCH headache pain I found that the ASCII keycode's for mac and pc are slightly different, so my delete key on my macbook bro was sending a signal unrecognized by the input. Anyway fixed now.

I also created an image cycler with left and right buttons so you can easily choose the display portrait for your character. One day I will fill this with glorious images!

There is also a large number of unused icons with question marks on them (No mushrooms dont come out of them). These will be place holders for the classes and races I will add in the future. For now lets just get the thing working!

Im now moving into the territory of basic town functionality so the character can actually do something rather than just sit around existing. First I will be working on the tavern which will have random patrons (and some regulars) just like a normal pub for your character to interact with. This will function as the main quest hub (surprise, surprise). So it will be randomly generated NPC's handing out randomly generated quests, therefore ensuring no gaming session is ever the same.

Sunday, 19 February 2012

Character Creation

I have been working away on the character creation screen and adding functionality to all the buttons I am creating. My end goal is to have 20 races and 30 classes but for now I am keeping things basic and will be using the following to start with.

Factions - order, balance, war, chaos
Races - human, elf, dwarf, halfling, orc, goblin, ogre, vermin
Classes - warrior, rogue, mage


Followers of the order hold the memory of Sanctum close to their heart. They believe in the restoration of their once great empire. They serve to rid the world of the wicked and reclaim what was once the pinnacle of enlightenment.


Those who walk the path of balance walk in the garden of life. They seek to free the world from its turmoil so the land itself may heal her scars. The guardians of balance share a mutual desire with those of the Order to rid the land of evil. This alliance is uneasy at best as their views on the once great empire of Sanctum are less than favourable.


Followers of chaos are the true destroyers of Sanctum. They despise the Order and their love for their once great empire. They would see all the races of the world fall into bloodshed and misery. In chaos there are no innocent, only the weak.


The children of war were once the protectors of the great empire. Born and bred for combat these races were a ticking time bomb waiting to explode into a flurry of steel. The races of war share a tense alliance with Chaos faction based on slavery and oppression. It is only a matter of time before their visions of liberation boil through.


It was a human king who envisioned the creation of Sanctum and united the races of the Old World. It is for this very reason they are either respected or despised by the other races. A human’s life is fleeting when compared to that of the elder races whom can live for centuries. They are however quick learners and have a stubborn determination that allows them to succeed where other would see only failure.

+5 attribute points
+5 to any skill from favoured skill tree


Elves are the wisest and most ancient of the races. Elves are immortal unless slain by the sword, which leads them to be very reserved and never hasty in their decisions. Elves spend their life perfecting and honing their chosen craft. Their devotion and precision makes them dangerous adversaries.

+2 Dexterity
+2 Intelligence
+5 Keen Senses checks


Dwarves are a subterranean race that prefers the dimly lit mines to the blinding sun. They are the finest smiths in the world and are always searching for new materials from which to forge new weaponry. In combat they are stout warriors with a strong distaste for the use of magic.

Dwarves may not be mages.

+2 Strength
+5 Dig checks
+5 resist Magic & Poison


Halflings are a peaceful race that dwell in the hillsides of Haven. About half the size of an adult human they make up for their size with courage and ambition. Halflings are particularly fond of food and are known to have recipes with supernatural properties. A Halflings size makes them ideal rogues and scouts though others are stubborn enough to go toe to toe with the enemy.

-2 Strength
+2 Dexterity 
+2 Keen senses checks
+5 Cooking checks


Orcs are a ferocious warrior race bred into conflict and slavery. They believe in the trials and honour of combat. As a result, all conflicts within orc society are settled by a fight to the death. “Gurshu Gunda” or, If you can take it, it is yours, is a saying amongst the orcs.

+4 Strength
-2 Charisma


Goblins are a racial offshoot from the orcs. While the orcs were created as bodyguards and warriors the goblins were created as servants and slaves. When the factions became split the goblins sided with the orcs for their brute protection. Goblins for the most part are still a servant race to the orcs but every once in a while one rises from the ranks that is cunning and dangerous enough to forge a name for himself.

-2 Strength
+2 Dexterity
-1 Charisma


The ogres were created as an elite bodyguard for the nobles of Sanctum. They were also bred to be incredibly stupid so as to not question the orders they were given. Ogres are incredibly strong and are capable of delivering devastating blows at close range. Despite their racial hindrance however a few ogres have learnt to wield the power of magic.

+5 Strength
-3 Intelligence
-2 Charisma
10% extra Hit Points


Vermin are an evil race of rat like humanoids. They never had a place in the society of Sanctum and went to great lengths to reduce it to ruins, attacking from the depths of the sewers. They have a love for poison, disease and spreading sickness wherever they go.

+2 Dexterity
+2 Intelligence
+5 Keen Senses checks

Tuesday, 14 February 2012

Creating a RPG in Java

As some of you may know I have graduated from my degree in music, allowing me a lot of free time to get back in to programming. I am working with the java language to write a RPG not really like any other.

This project is in fact over 10 years old finding its origins in tabletop gaming. Once upon a time I used to play a lot of dice RPG's such as Dungeons and Dragons, Warhammer Quest and Talisman. It was from this that a passion for creating my own games began to grow. After writing numerous tabletop systems that were successful amongst my local gaming community I looked to create something larger.

I have a strong memory of my very first role playing experience. I was with my dad when I was around 8 and we were rummaging through a used bookstore. In a pile of books I produced one named "The Citadel of Chaos". This book was a choose your own adventure but would also have you create a characer and roll dice to battle monsters through out the text. As a young kid my mind was blown.

It is from this fond memory that the basis of the RPG I am working on is formed. However, what if the story was randomly generated? What if all the enemies you encounter and alliances you forge were with randomly generated NPC's dropping randomly generated items.

What I am talking about is the ability to generate a compelling story of which all facets are random. This is not a light concept and some may think I am crazy for trying. This is the core of the "Empire in Ashes" experience and what I try to base everything else around.

  • Gui frames and layout established (placeholder art only)
  • Main menu with selectable options
  • Tabs in game play state switch between the various windows
  • Character object created
  • Save and load from text file
  • Characters various statistics display to screen in real time