World Building: The Gallian Empire

Your empire is now like a tyranny: It may have been wrong to take it; it is certainly dangerous to let it go

Pericles

The last couple of weeks I have been doing some world building for the fantasy setting I intend to use for a series of gamebooks (published with the SKALD game engine). Starting with the fundamentals, I have been spending a lot of time thinking about the feel and flavor of the setting. I recently wrote a post concerning magic and world building and I intend to use the outline laid down in that post as a jumping-off point.

To begin with, I want to work with a human-centric, low-magic setting of slightly dark fantasy. That’s not to say I don’t want fantasy elements –           I would just prefer to have the fantastic remain fantastic and rare.

World Building Venn Diagram
The Venn diagram of doom!

Personally, I find that starting by describing the big picture first, provides scaffolding for the rest of the campaign. For this world building project, I’ll start by establishing a center of political power in my world: A large, human empire ruled by wizards.

I’m a huge history buff and, in particular, I am fascinated by Roman history. As historical drama goes, there are few things more dramatic than the rise and fall of empires. I, for one, am partial to the falling. No wonder then, that I use the late Roman empire for inspiration. Furthermore I adore Frank Herbert’s “Dune” so I’ll probably add a dash of that as well.

Thomas Cole: The Fall of Rome
Thomas Cole: The Fall of Rome

As a starting point for my setting I envisione: “The Gallian Empire”.

A Waning Giant

Founded millennia ago by the mythical first emperor “Gallian the Great”, the empire subjugated and conquered all who stood before it and, at the peak of its power, it spanned continents. Ruling from the imperial capital of Vaul, Gallian founded the lineage of wizards that rule the empire to this day.

After ruling for just short of 100 years, emperor Gallian simply disappeared. After him, a short line of wizard-emperors followed. Some were good – others cruel, and all had unnaturally long reigns. The Gallian Empire is now under the reign of its seventh and most long-lived emperor to date: Arrion the Gray.

The Gallian magocracy has grown increasingly obsessed with discovering the secrets of immortality and as a result Arrion the Gray has now ruled for nearly five centuries. Longevity, as all magic, comes at a price however: the Emperor and his ruling council of elder wizards (resentfully called “the husk lords”) has become mere shadows of men – caring less and less for the lives of ordinary people.

As a result, for the last two decades the Gallian Empire has been waning. Along its vast borders, once servile neighbors now challenge Imperial dominance. Internally, alienation by the wizard-class and ruthless taxation by decadent nobles, has caused strife and civil unrest to grow among the imperial citizens.

An Empire of Magic

Magic had always existed in the world but it was primitive, volatile and difficult to control. Gallian’s genius was that he shaped magic into a tool of political and martial power and created social structures for the teaching, refinement and control of magic.

The source of Gallian the Great’s understanding of magic has long since become the stuff of legends. It is, however, believed that he gained his knowledge from the studies of arcane texts so ancient that their origin lies in pre-history.

Since its founding days, magic in the empire has been esoteric, mystical and wrapped in secrecy. The reality portrayed to the citizens of the empire has been that of wizards being god-like and omnipotent. The reality however, is far from it: The use of magic comes at a terrible cost to both mind and body and long-term use turn all but the most powerful wizards, into dried-out shells. As a result magic is a far more limited resource then anyone outside the magocracy realizes and much of the wizards political power come from maintaining an outwards appearance of being all-powerful, combined with the martial strength of their fiercely loyal knightly orders.

Furthermore, there has always been a sense that the wizards from the age of Gallian himself have yet to be matched in power. In fact, one of the most fiercely guarded secrets of the magocracy is that the wizard’s powers seem to be slowly, but certainly, fading. Those in the know have speculated as to the cause and suggestions range from astrological phenomenon to the effect of years of moral corruption and decadence.

As the wizard’s powers fade another, equally strange phenomenon is beginning to appear: All over the Empire, the number of children born with so-called “wild magic” has risen sharply. Wild magic typically manifests in the early teens as very limited and volatile, yet often powerful, magic abilities that the user may find hard to control. Fearing their power-monopoly is being shaken, the wizards zealously persecute wild magic user, thus adding to the feeling of fear, oppression and xenophobia that has begun to permeate the Empire.


By using the Gallian Empire as a starting point I, hopefully, have a lens with which to view the rest of the campaign setting. I’m quite pleased with having created an empire so shaped by magic while still not making magic seem mundane or common. I also like the dark undertones and moral ambiguity that comes with the overly authoritarian regime of the magocracy that, despite its failings, is still relied upon by millions of citizens.

We’ll see where it goes from here. Next up in world building is probably the role of demi-humans in the setting. But you’ll have to wait a couple of weeks for that. I’m currently working on a review for Tanya X. Short and Tarn Adams’ book: “Procedural Generation in Game Development” and hope to get that out first!

In the meantime, please follow Scape-IT and SKALD on Twitter for all things RPG and geeky!

Have a great week!

World Building: Magic

Spanning the entire breadth of the fantasy genre, from literature to movies and games, magic is nearly ubiquitous. Magic adds mystery, convenient plot devices and the fantastic and, is such a staple of the genre that it can be hard to imagine fantasy without it. That being said, magic is also exactly that: Magic! Used carelessly, it becomes an endless “deus ex machina” and unravels any internal consistency in the setting at the speed of a “magic missile”.

So, how can you write magic into your fantasy world in an awesome way?

I have no idea, but I have been pondering this for some time and I would like to share the reflections I have made thus far for my own world building project.

First of all, when I say “magic” I’m not just thinking about magic in the narrow sense of “what a wizard does”. Instead, I’m considering it in a broader sense that contains most (or all) of the supernatural tropes found in fantasy.

So why even start with magic this early in the world building process? Magic (in the extended sense of “all supernatural phenomena”) is where so much of the “fantasy” in a fantasy setting comes from. In other words, magic should influence every part of the game world and is a great way to lay the foundation for your fantasy world building.

In general, I find that there are different challenges for different fantasy mediums. Specifically between literature and movies on one side and games on the other.

The first category is much more vulnerable to having its internal consistency broken by poorly written magic with no suspension of disbelief as a result. How many times have you heard “why didn’t just Gandalf use more magic” or “why couldn’t just the eagles take Frodo all the way”? Don’t get me wrong – I love Lord of the Rings, but they do kind of have a point.

For games, on the other hand, there seems to be a tendency for magic to be much more prevalent and nearly always accessible to the player(s). I assume this stems from the notion that it is very poor game design to have players see cool things without being able to DO cool things. In other words, the need for player agency very quickly outweighs the need to have the game world be internally consistent.

The result is often a world that is so saturated with magic, that the game world simply stops making sense. How does the Forgotten Realms still look like late medieval Europe despite magic being so prevalent?

So, what does it even mean to have the game world be internally consistent in regards to magic? Well for me, this means that the world-builder addresses the socio-economic-political implications of magic’s existence.

Consider something as simple as a “create water” spell. In an early agrarian civilization the consequences of this would be monumental. Consider how much effort has been spent (even to this day) to provide water for crops in the form of irrigation systems. The result would be dramatically more effective agriculture, which in turn, means that more citizens can perform specialized labor, become soldiers, scientists, artists etc. This would accelerate the development of the civilization by centuries. Just from a “create water” spell.

Game Master meme

Currently I am doing world building for a fantasy setting in which I intend to set several gamebooks (using the SKALD game engine). I’m basing the setting partially on an old pen-and-paper RPG campaign I ran years ago and one important characteristic of this setting is that it’s a human-centric world where magic exists, but is rare, poorly understood and powerful but unprecdictable.

As a starting point I’m picking some of the following fundamental design tenets of magic:

  • Magic is rare but powerful and is recognized as such in in the world.
  • Magic is poorly understood, esoteric and shrouded in mystery.
  • Because of its perceived power, magic attracts either political power OR paranoid persecution.
  • Therefore, magic is a fundamental force in shaping history. Think the role of religion in medieval Europe. Now imagine in the Catholic Church had fireballs.
  • Magic comes at a personal cost to the user. It corrupts both the mind and the body.
  • The use of magic in the world is restricted and reserved only for the very rich and powerful.

So far, I can see myself building a setting around this somewhat restrictive view of magic. I especially feel the “magic corrupts” part adds some checks and balances. Also, I find the view of magic being restricted and unsanctioned magic being persecuted to be interesting. I feel I’m beginning to see the outline of a central political entity in my campaign setting: Perhaps somewhat like a magic-infused, late period Roman Empire.

This starting point might be somewhat on the path of magic being so esoteric that it’s effectively inaccessible to the player characters. Thus falling in the trap of letting the player see, but not do, cool things. However: Since I intend to use this setting primarily within the scope of gamebook-style RPGs, I suspect that the tolerance for inconsistent magic is lower than in most games (more akin to books and movies). This means that at this point I would prefer to err on the side of making magic a bit too scarce whilst maintaining an internally consistent game world.

I’ll start scribbling away and try to translate this into a workable setting of sorts. We’ll see how it goes, and I’ll be posting the result here shortly! Stay tuned and feel free to get in touch (with Scape-IT and SKALD on Twitter) if you have questions or comments!

 

The SKALD Markup Language

The Basics

SKALD is a game engine specifically written for digital gamebooks and interactive novels. The design vision for SKALD has been to create an engine that allows for a strong narrative to be built upon a foundation of classic RPG features (character development, tactical combat, loot etc.) as well as certain rouge-like features (procedural generation). The game engine is designed with a strong separation between data and logic in mind. The reasoning being that it must be possible for a designer with minimal technical expertise to add content. Also keeping all data separate from the logic will allow multiple gamebooks to be published using SKALD without making changes to the engine itself.

A mage
The mark-up language is where the magic happens

The SKALD markup language has three main components:

  • The XML that encases all the data
  • A simple string markup used to create procedural content and to set the order of resolution for any embedded dynamic code.
  • The formatting for embedding dynamic code.

The XML

SKALD uses ordinary XML to store data about all its game objects (scenes, items, NPCs). I briefly considered using JSON. However, after doing some research I arrived at the conclusion that the advantages of using JSON over XML were nil for this application. JSON would perhaps have been more relevant if I had a stronger emphasis on developing for a web-based service (as JavaScript loves JSON).

XML

 

The String Markup

All the data in the XML files are parsed to strings. Those strings are then run through a processString() function that performs any action prescribed by the string markup, resolves any embedded code and returns a copy of the processed string.

One of the first things I found that I wanted was a short-hand for returning random strings from the XML. My solution was simply to use the ‘/’ character. Adding ‘/’ to any string will cause the processString() function to return the result on either the left or right side of the ‘/’. For example:

processString(“I like hamburgers/I like sushi/I like ramen”)

returns either “I like hamburgers”, “I like ramen” or “I like sushi”.

Right of the bat you can see that this can get verbose. The solution was to add parenthesis. Now the previous string can be shortened like so:

processString(“I like (hamburgers/sushi/ramen)”).

By nesting parenthesis (resolves from inner, to outer) you can make complex string such as:

processString(“I like ((cheese-burgers/bacon-burgers/BBQburgers)/sushi/ramen)”)

The applications for this is to create variety in the text (especially for scenes that the player keeps returning to) or to provide randomized output from certain XML tags.

For instance, each scene has one or more exits that lead to the next scene. That exit contains a tag called <tar> (target) which is basically the id of the next scene to load. Since the value of <tar> is stored as a string and ran through the processString() function, you can write an exit with a target like this:

<tar>2/3/4</tar>

The result is an exit that randomly sends you to scene 2, 3 or 4. Pretty neat for making things like random encounters.

Dynamic Code

So far, the system is completely stateless. Processing the string

processString(“I like (hamburgers/sushi/ramen)”)

will return a random output every time. The next logical step was to add a system for storing and modifying variables at run-time. The solution is for implemented by using “Reflection” in C# to access functions in the code via strings passed from the XML. For instance I have a function addVariable(key, value) that creates a variable (named key) and sets it to value. So

addVariable(“food”,”hamburgers”)

will set the variable “food” to “hamburgers” and

getVariable(“food”)

now returns “hamburgers”. Using my own notation to embed functions in the xml datafiles the functions must be wrapped in curly braces like this:

{addVariable|food;hamburgers}

It is now possible to write:

processString(“I like {addVariable|food;(hamburgers/sushi/ramen)}”)

This line of code will return for instance, “I like sushi”. And then

processString(“My favorite food is still {getVariable|food}”)

Will utilize the value stored above and return “My favorite food is still sushi”. Note that the “processString” function will substitute everything wrapped in curly brackets for the return value of the function wrapped in the curly brackets. 

The SKALD system contains about a dozen functions that can be called dynamically. In large part these are used to manipulate and perform logical operations on variables (allowing for conditional branching etc.). The result is that the number of scenes that need to be written can be reduced drastically. It also allows procedural content to be added by the designer, working only through the XML file.

Overall, I’m pleased with the functionality of the SKALD markup language, as it exists today. It’s expressive enough tell any kind of story and to give a direct binding between the story elements and the underlying RPG mechanics. It also supports the concept of separating data and logic and it greatly reduces duplication of data by cutting down on the number of scenes that need to be written. At the same time, it’s still possible to write an entire module by using only XML and entirely forgoing the use of the string markup and dynamic.

Now, off to write some adventures!

Design Goals for the SKALD Engine

The SKALD Roleplaying System consists of three components:

  • A set of RPG rules usable for pen-and-paper as well computer RPGs.
  • A game engine for making gamebooks, interactive fiction and text-heavy roleplaying games.
  • The games published using the SKALD engine.

The current focus of the project is to finish the game engine. This post will attempt to summarize the design goals for the engine. For more information about the project in general, see the welcome post.

NOTE: I’m writing this post as much for myself as anyone else. As such, this post will be highly prone to edits as i update and change the design goals.

SKALD is a Storytelling Tool

First and foremost, I want to create something that will allow me to tell stories. I was a pen-and-paper RPG game master for years but as I grew older, holding together a gaming group became near impossible. I began to miss the creative outlet that GMing represented. This was been a big driving force in deciding to develop a game engine for text based roleplaying games and gamebooks.

Specifically, I chose text-heavy games because I feel comfortable with using text as a narrative device. Text is easy to add (if you don’t consider the hardships of writing prose) and very flexible. Flexibility was another important point as it gives me the option of choosing between an infinite variety of settings: From sci-fi and fantasy to historical and educational. This was an important rational for beginning this project by creating a setting-agnostic game engine.

SKALD is a roleplaying game

In addition to creating a system for writing choose-your-own-adventure style gamebooks I also want SKALD to be rooted in a proper RPG system. At a minimum the SKALD game engine must allow for the following game mechanics:

  • a character creation and advancement system complete with skills and feats
  • skill checks
  • tactical combat (in one way or another)
  • looting, buying and selling items
  • magic and / or psionics

An important part of implementing the RPG features is that the system must be modular enough that it should be fully possible to choose away any and all parts of the RPG system at the design level and without changing the source code. In other words: Using the same game engine, it must be possible to make a vanilla gamebook with no features beyond one paragraph leading to the next, as well as gamebooks with full RPG game mechanics.

SKALD has rogue-like features

In addition to the rpg game-mechanics it’s also important for me that the SKALD game engine allows for certain rogue-like features. In particular I want to have the ability to add procedurally generated content to the game. This, combined with an underlying RPG system will make it possible to essentially write a text based rogue-like. At the same time, just as with the RPG system, it must be fully possible to write a gamebook without using a single rogue-like feature.

Why add rogue-like features? Well, my reasoning thus far is that this will make it a lot easier to add to the runtime of the game. I have a vision of the narrative of the gamebooks being superimposed on relatively open worlds and thus adding a lot more replay value to the game beyond just going through the main plot over and over.

Again: This is an optional feature I’ll add to give myself the full breadth tools to tell the kinds of stories I would like.

Engineered with Sustainability in Mind

Not only is SKALD a labor of love, but it will also serve as a tool I could potentially be relying on for years to come. In the long term, it might even be adopted by other game developers interested in working within the gamebook genre.

As with all code that sees long-term use, there’s a lot to be gained by “measuring twice and cutting once“. In other words I intend to take my time and keep the source code architecturally sound, compact and well documented.

The notion of strictly separating the logic from the data and making all aspects of the game itself modifiable via the data is the prime tenet I’m currently building the engine around.

SKALD as a Brand

Lastly, it would be pretty neat if the SKALD system and the game engine in particular becomes a recognizable brand. It would be awesome to see “Powered by the SKALD engine” and “SKALD Roleplaying System presents:”  on games!

 

That’s it so far. Thanks for reading and be sure to keep following the SKALD devlog! In the meantime, follow Scape-IT and SKALD on Twitter for all things RPG!

Welcome to the SKALD Roleplaying System

Welcome to the devlog of the SKALD Roleplaying System!

What is the SKALD Roleplaying System you ask? Well, it’s essentially three things:

  • A set of RPG rules usable for pen-and-paper as well computer RPGs.
  • A game engine for making gamebooks, interactive fiction and text-heavy roleplaying games.
  • The games published using the SKALD engine.

The system is being developed by Scape-IT and is a passion project born out of a long standing love for all things roleplaying.

So what is a skald?

The skald was a norse warrior poet during the scandinavian viking- and middle ages. Skalds would serve at the courts of viking chieftains where they composed and performed epic poems retelleing the heroic deeds of their patron.

A Skald

In other words, a skald tells epic stories about heroic deeds. Not a bad name for a RPG system if you ask me!

The Current State of the Project

At this stage, the first order of business is to complete the SKALD game engine. Currently the engine is is in pre-alpha but I hope to have a beta of the engine and a playable gamebook ready during the spring of 2018. The SKALD engine is being developed in Unity-3d.

Code sample
Pretty much the state of SKALD at the moment.

This website will serve as the devlog for the SKALD project and I’ll try to post once a week on subjects related to the delopment process of the game engine, the rules system, world building and gamebooks themselves.

Be sure to check back as more content gets added to the devlog. In the meantime, follow Scape-IT and SKALD on Twitter for all things RPG!

Have any questions or comments? Get in touch!

See you around!