Saturday, 24 September 2011


Well, that's a function for rendering _Enochian_ on the fly using Libtcod.NET completed. I'm using Enonchian as a general purpose magical language to add atmosphere and mystique.

Sunday, 18 September 2011

Welcome Kharne v3

So, I've decided to take my existing 7DRL, Stygia (which is a complete game) and use it as a framework to commence an in-parallel (and much less ambitious) rewrite of Kharne, using C# and Libtcod.NET. This one will have a slightly darker, less generic theme (with a magical system based entirely on Goetic magick) and will focus more on atmosphere and personal horror.

No doubt there will be extra-dimensional tentacles involved somewhere.

Don't worry, there will be another release of the existing Kharne (Alpha 24) shortly.

And this mysterious text below? Why the big bad himself, that you will have to defeat. Kudos and a hug to the first person to recognise the language.

Saturday, 17 September 2011

Friday, 9 September 2011

Magic Systems based upon the Goetia.

So today I'm thinking about magic systems, or more importantly implementable magic systems for roguelikes. I haven't yet got around to implementing magic in Kharne, and I want to make sure the system I do choose works.

I'm tempted to implement a magic system modelled upon the Goetia:

The interaction between the magician and the summoned spirits in Goetic magick is quite unique. Whereas in some traditions, spirits are prayed to or asked for guidance and wisdom, the spirits and demons of Goetia are bound and commanded by the magician to act as his servants. In such an interaction, it is highly important for the magician to be aware that he is calling upon these spirits to perform an action, rather than do it himself, because many of these beings are more powerful than him. Therefore, compelling the spirits to obey is a major concern. For protection, the magician employs elaborate circles and
rotes to confine the spirit. Once confined, the spirit must be forced to act in accordance with the will of the magician. Many different methods are employed to compel the spirits; lesser spirits can often be coerced, threatened or fooled into compliance, whereas more powerful spirits can be more difficult to control.

Common methods of control include threats, particularly in the form of the vibration of divine names, which tells the demon or spirit that the magician speaks with the authority and power of the god whose name he intoning. Some magicians will try to persuade the spirit, sometimes resorting to begging and bootlicking. In many cases, the magician may try to bargain with the spirit, to which it will most likely happily agree, exchanging service for sacrifice of some kind.

The various Goetic demons and beings are often very specialized. Grimoires list long catalogues of spirits, their specific powers, and how they may be summoned by the use of different seals, incantations, sacrifices and incenses. Before conjuration, the magician must carefully consult these catalogues and select the single spirit best suited for the task.

The Goetic spirits are not well suited to conversation, as are the Enochian angels. The lesser spirits are often stupid and are not known for their honesty. Summoning of the demons for the purpose of gaining information is generally a waste of time, unless perhaps the being is specifically ordered to spy or seek out information for the magician.

i..e magic is essentially summoning creatures to do your will, and which creature you summon and bind depends on what effect you wish to create; also, summoning will have a cost.

In other words, instead of _yet another fireball spell_, you summon a creature of fire at a specific location for a certain period of time. The effectiveness of this (how long the spirit stays, how effective it is and so on) could depend on your reputation with the bosses/factions of the fire spirits/how much you've sacrificed.

It seems sufficiently orthogonal to conventional DnD-based magic systems that it may make for an interesting twist on roguelike gameplay.


Wednesday, 7 September 2011

Multiple Light Sources

So I'm wondering just how one handles multiple light sources? The alpha-blending of the various light-intensity values for a particular map cell is easily understandable, but how does one store (potentially near-infinite) multiple-overlapping light sources and their separate light intensities?