Saturday, July 31, 2010

From Bear to Phoenix - introduction to a planned new open-source CRPG

'From Bear To Phoenix', the new project I have begun working on, will be an open-source fantasy turn-based RPG, with two key features:

a) tactical combat centered on magic and co-operation between mages;
b) strategic planning and interacting with a dynamic world.

Magic

In particular, all the PCs in the party will be mages. This means that there's no need to balance mages with warriors or other classes, and end up handicapping the mages; the game can unapologetically be designed so that mages are awesome from the start. There will also be a wide range of possible types of mage, and hence a large number of possible combinations; indeed, experimenting with different ways to build a team, play off strengths and compensate for weaknesses will be an important part of the game (and should be fun :).

Here are the types of mage I'm currently planning to include:

  • Shapeshifter: can shift into Bear, Wolf or Phoenix forms for combat, but only for a short time; Cat, Mouse or possibly Hawk for stalking, hiding and searching; Tree or Rock for regeneration and defence.
  • Lifegiver: can provide physical and magical healing.
  • Proxima: skilled at martial arts and short-range elemental attacks (such as ice touch).
  • Scout: stealthy, quick, can turn invisible - possibly can teleport short distances.
  • Augmenter: Enhances magical power, improves (or degrades!) bodies and minds.
  • Enchanter: Improves equipment for limited periods or more permanently.
  • Elementalist: Long-range, area elemental attacks and shields.
  • Heartguard: Specialises in shields, counterspells and dispelling.
  • Seer: Counter to a Scout; provides intelligence on the enemy's location and movement.
Other possibilities are Disruptor; Weathermaker; Harpist; Balancer; Sleepweaver.

Typically a party would consist of 6 mages, and possibly some (mundane, non-magical) mercenaries.

Sample PC and monster icons

From Bear To Phoenix icons

Here the icons represent, clockwise from the top left, a Lifegiver (healer); an Elementalist; an Augmenter; the Bear form of a Shapeshifter; the Wolf form of a Shapeshifter; a Firebug; and a Giant Undead LadyBird (GULB).

Image credits: The Bear is taken from a photo by Alan Vernon, available at http://www.flickr.com/photos/alanvernon/3200782322/; the Wolf is taken from a photo by Drew Avery, available at http://www.flickr.com/photos/33590535@N06/3520737474/. Both are licensed under the CC Attribution 2.0 Generic license http://creativecommons.org/licenses/by/2.0/deed.en. All other images are originally from Danc's PlanetCute set at http://www.lostgarden.com/2007/05/dancs-miraculously-flexible-game.html, under the CC Attribution 3.0 License (see http://www.lostgarden.com/2007/03/lost-garden-license.html).

Multiplayer Battles

It will be possible to play out a one-off battle, selecting a group of mages and their opponents and fighting on a chosen battlefield, either playing against a human opponent or an AI; if you've played multiplayer Battle of Wesnoth, you know what I mean. These battles will provide input on balancing the mage types (and indeed calculating relative strengths of mages versus various monsters).

Dynamic World, Non-linear Storyline

As mentioned, the world will be dynamic; enemies will be modeled independently and will indeed capture villages and towns unless they are stopped. They may also capture and hold to ransom friends or family of the party. Events will happen whether the PCs get there in time or not; so resting enough to fully heal the party and replenish their spells will be a strategic choice, not a free lunch. All this implies a highly nonlinear storyline.

Another planned feature is splitting the party. The player should be able to hire mercenaries and send them off on quests, with as many mages as desired. This would again be a matter of judgement; any understrength party would have a greater chance of failing at a quest.

Setting
The world would probably include standard fantasy features such as elves, dwarves, goblins, trolls and undead, with a few twists. Dragons will be very rare and powerful. There may also be Titans and their allies, very powerful and magical survivors of an ancient war with the elves.

Influences

Influences of this game include Pool of Radiance (my favourite of the SSI D&D games I played), Wizardry games, in particular Bane of the Cosmic Forge and Crusaders of the Dark Savant, Final Fantasy X, Kingdom Hearts, and Battle of Wesnoth (as previously mentioned).

For More Details

If you're interested in helping design this game, or just in knowing when releases come out, contact me by leaving a comment on this blog or send me a message via my Twitter account. I'll post details of a forum and/or mailing list on this blog when I set them up.

Closing Thoughts
This all sounds ambitious, and it will be a slow process developing this game, but the end result will be awesome.

Monday, May 24, 2010

Ighalsk - release 0.1.15

I released v0.1.15 of Ighalsk some 2 weeks ago. It can be downloaded from its SourceForge project page here. These are the changes since v0.1.14:

* Fixed bug in Monster Editor where the resists weren't updated after changing the monster's family. (The new values were present, but the recalculation wasn't occurring in the correct place.)
* Switched to black background and white text, which is a more traditional roguelike design (and has more of an underground feel). Black monsters are now a dark grey colour.
* Can now add monsters to a level using the Level Editor (and delete them if they're in the wrong place!).
* Can now add circular rooms in the Level Editor. (This was something I wanted for the Tunnels of Lost Dreams in particular.)
* Now need to specify a width and height when creating a new level in the Level Editor. (Now tests can use small levels for speed.)
* Added initial (incomplete) version of the final level of the Tunnels of Lost Dreams - can't yet be entered in the game. A screenshot is here.

There was almost 3 months between v0.1.14 and v0.1.15, and there may well be a similar time until the next release, if not longer. I'd like to work on a game that inspires me more and that I'm more passionate about; I feel with Ighalsk like there's a lot of work to do before it achieves even close to the functionality that other roguelikes have. The next game will be an RPG, and will reuse a lot of Ighalsk's code, but will have a much more graphical interface. It will also be written in Python, and be open-source (GPL-licensed). If you'd like to know any more, there will be sneak previews and further discussion on this blog and/or on my Twitter feed.

Thursday, April 15, 2010

Ighalsk - sneak peak of Tunnels of Lost Dreams final level

So the Ighalsk Level Editor is coming along nicely - recently added options to add circular rooms and monsters. I've posted a screenshot of the final level of the Tunnels of Lost Dreams here. The level is incomplete as yet - though since Lord Apathy is the architect, the final version will be incomplete as well.

Tuesday, March 16, 2010

Ighalsk - release 0.1.14

I released Ighalsk v0.1.14 a couple weeks ago; it can be downloaded from its SourceForge project page here.

Here are the changes since v0.1.13:
* Simplified controller/viewer swapping for different screens to make it easier (in fact, possible) to generate a Windows executable. I haven't figured out the best way to host this exe yet, since it seems to be too large to upload using the SourceForge File Manager (and SFTP isn't working for me). If you'd like a copy, please email me.
* Added Stealth for Monsters; stealthy monsters will now only be noticed when they are closer to the Hero. There are a couple stealthy monsters to look out for.
* Refactored Monster Editor to simplify it further (separate classes for separate states). This made the next change a whole lot easier.
* Monsters can now have multiple attacks (weapons) instead of just one; this is also supported by the Monster Editor. This is most important right now for the uniques at the end of the first set of quests ...
* Fixed a bug where the keys to move through pages in the Monster Editor (left and right) were the wrong way around. (For a long time, I've been using the buttons instead, and had to look in the code to work out the keys again, only to find that they were wrong.)
* Can now add rectangular rooms in the Level Editor. I plan to also have an option of adding circular rooms, and maybe octagonal, and then there's adding a rectangle and circle of solid walls ...

The next release may be in 6 weeks from now and/or may have a small number of extra features, since I've starting working on a new game ...

Friday, February 12, 2010

Ighalsk - Thanks for the Downloads

This short post is mostly to say, thanks for the downloads. I've said before how I struggle with motivation when working on my own projects, and knowing that there are people out there downloading Ighalsk releases every month does make a difference.

Thanks even more to everyone who's given feedback, both on this blog and in email. It all helps make Ighalsk better one way or another.

Onwards to version 1.0!

Sunday, February 7, 2010

Ighalsk - The Nature of a Hero

I claimed recently in an online conversation that I was taking a slightly different slant on the Hero in Ighalsk. I was asked for more details, and gave the following response (slightly edited for blog format and where I felt the need for improvement):

I'm imagining the Hero as someone more than mortal, with extraordinary gifts and abilities. They are called to fight evil and complete quests. So far this is just expressed in the game as a series of speeches by the Queen who needs the Hero's help, by the replacement of "the dungeon" with a choice of quest dungeons, and by the extra powers that a Hero has that normal warriors (for example) don't have. (As opposed to say Angband, where my Priest might meet a Novice Priest in the dungeon and think hmmm, that priest is almost the same as me ...)

The end of this post has got my take on the different types of Hero, though this text isn't in the game yet.

At some stage I'd like to link in the history of other Heroes who tried and failed to complete all the quests: to have the Queen refer to them, to have their entries in the high score table, to be able to find the weapons or armour they owned and maybe even their journals.

I'd also like the game to show the reactions of townsfolk to the Hero, and to have these reactions change as the Hero grows in power ...

This is something that I'm still struggling with and would like to express more clearly in the game. A roguelike in its usual form doesn't offer a lot of opportunities for roleplaying, but there is all the freedom of text (as seen in interactive fiction games) - so I aim to take advantage of that.

Tuesday, January 26, 2010

Ighalsk - Doom Merchants

Where there has been a concentration of undead for several years, a strange, inky black substance can sometimes be found, pooled in hollows in the ground. If you picked it up, you would find that it pours and moves like a dark, viscous liquid - but it doesn't feel wet. At first it feels cold, then your hands become numb, then strength begins to ebb from your limbs. The solitary adventurer may be overcome at this point, but if you have friends (or at least companions) with you, a healing potion or power will restore you to health.

The unscrupulous soon discovered that this substance, when suitably processed, makes an effective and deadly poison. They called it "raw doom" and set up Workshops of Doom, sometimes even Factories of Doom, to refine and mould it into a more convenient form. A drop or two in a cup of wine induces death while the drinker is sleeping that night. A weapon coated with it strikes through armour and is only stopped by certain white fabrics which have been blessed by sacred rites.

The gathering, processing, selling, buying and owning of both raw and processed doom is illegal in all human, elvish, dwarven and goblin dominions. Nonetheless, there are some desperate souls who traffic in it. They call themselves Doom Merchants, or sometimes Merchants of Doom. The Doom Merchants venture deep into necropoleis, cemeteries and ghost towns, wherever they can find undead, and gather large quantities of raw doom. This they carry in large black bags - Bags of Doom. Their customary costume includes thick white gloves and masks for protection, though the black and white vests they also wear are thought to be ornamental.

By all accounts they make substantial sums of money plying their trade, but slowly lose all colour in their skin and hair, then within a few years become weaker and weaker until they collapse. Rumour also says that after death, they themselves turn into undead, with a shadowed, striped, spotted form that breathes out thick clouds of doom.

Saturday, January 23, 2010

Ighalsk - release 0.1.13

I released Ighalsk v0.1.13 last night; it can be downloaded from its SourceForge project page here.

Here are the changes since v0.1.12:
* Can now add up stairs and corridors in the Level Editor. Corridors in particular were tricky since the editor (or some other class) needed to store the start point until the end point had been selected. In fact you can add corridors between any 2 points; the editor will add two corridors (one vertical and one horizontal) between those points.
* Walls are now only shown if seen nearby or remembered (if they have been seen before). In the previous release, monsters were only shown if they were nearby; this release is now more consistent between monsters and walls, though all treasures and stairs in a level are visible at all times ...
* Visibility (the Hero's map) is saved to file, so that a loaded game will have the same memory of walls as when it was saved.
* Refactored Monster Editor and Monster to simplify both by removing duplication - Monster Editor now uses the underlying dict that holds monster definitions more directly. Editing a monster's attack and resists are still special cases.
* Started moving methods from LevelViewer to LevelFormatter so that they can be tested.
* Added 15 new monsters, including Doom Merchant, Gloomhound, Lesser Mook, Huntsman Professor and Wool Golem. Renamed Zombie to Zythar Feeder; added Zythar Axeman and Zythar Deathbringer. I picture Zythar as semi-undead, crazed beings with gleaming green eyes; the Axemen wear black ribbons attached to their helmets.
* Added Monsters for level 4 of each quest. There are some monsters in this new batch of 15 that can't be encountered yet - I'm saving them for level 5 of the quests.

I've got a few features that I'd still like to add in before v0.2.0, as follows:
* Add functionality to the Level Editor to add rectangular rooms, circular rooms and their inverses (filled-in rectangles and circles of walls), zig-zag corridors and a shortcut out of the quest dungeon;
* Refactor the Monster Editor further to simplify the code, and extract editing attacks and resists to a new screen; then adding multiple attacks and possibly descriptions to a Monster;
* Add new damage types, in particular cold, lightning and poison - at this stage, poison wouldn't have the slow draining of health effect, but would be like any other damage type;
* Add Awareness and Stealth attributes and interaction, as a friend of mine suggested, so that some monsters can creep up on you if they've got high enough Stealth and you've got low enough Awareness ...

The Awareness and Stealth functionality would also allow invisible monsters, though I'd prefer to wait to introduce them until I've also added some kind of Detect Invisible power, which would have the effect of increasing Awareness for a time - it's only fair to the Heroes.

Wednesday, January 13, 2010

Ighalsk - Three User Stories

I've been trying to write a decent introduction to user stories, and it hasn't been working. Instead I'll just summarise them as follows:
* User stories describe what the software should do.
* User stories are written from a user's point of view.
* User stories are often used in agile software development (see e.g. here or here).

Here are 3 user stories for Ighalsk.

User Story A.

Tom feels the need for more, bigger and better monsters. He fires up the Ighalsk Monster Editor and creates a Plaid Dragon and a Blue Orc (starting from existing monsters and modifying stats appropriately). He tries them out and decides that yes, they add something to the game. Maybe Melissa would like them? He knows that she's already got the other monsters that he's created, so he just exports these two using the Monster Editor to a separate text file and emails it to her.

Melissa (a friend of Tom's and a fellow Ighalsk player) reads the email, saves the file, and imports the monsters - again using the Monster Editor. Next time she plays Ighalsk, Plaid Dragons and Blue Orcs might be lurking in one of the dungeons ...

User Story B

The Ighalsk website includes a page for uploading and downloading monsters. Each monster has a summary, a description written by its creator, and reviews posted by others. The Ighalsk community votes regularly on which monsters should be included in the next release, or the next bonus pack of monsters (downloadable separately).

User Story C

Cass stares blankly at the screen. YASD - those stupid Plaid Dragons of Tom's! Ah well, they're not official - she'll remove them before she plays again. Now, what sort of Hero to play this time? How about a Mighty Hero for a change? The good thing about starting a new game, she thinks, is that all Heroes have plenty of powers right from the start, which gives them lots of options in dealing with monsters. Though they can still die if they make the wrong choices ... And each sort of Hero calls for a completely different playing style, and a different choice of quests.

Saturday, January 2, 2010

Ighalsk - release 0.1.12 (and 0.1.11)

So I released Ighalsk v0.1.12 a few weeks ago (mid-December) but have only just got around to writing a blog post about it. And yes, I messed up again and needed to jump from release 0.1.11 to 0.1.12 almost instantly. (So 0.1.11 appears in the Subversion repository, but there's no separate download - the Level Editor doesn't work for that release.)

Here are the changes since release 0.1.10:

v0.1.12:
* Added an empty file in data/quests so that this directory will be included in a zip file. :/

v0.1.11:
* Updated the Monster Editor to allow deleting when entering names of Monsters, filenames for Monster Dictionaries, Monster comments and weapon damages (dice descriptions). There are different characters allowed for each type of data, with the loosest constraints for comments (where punctuation is allowed) and strictest for dice descriptions (where 0-9, d, and + are the only characters allowed).
* Monsters are now only visible when they are near the Hero, though with no line-of-sight; I'm assuming that the Hero has limited telepathy. Line-of-sight looks hard :/ so will come later. (Need to do more background reading on RogueBasin ...)
* Added lit squares - this shows the limits of the Hero's sight (telepathy), hence the areas of uncertainty (where the Monsters could be hiding). Needs tweaking a little ... Currently all walls on a level are visible - this will change as well.
* Added 9 new, more powerful and more expensive items of Armour - all are available in the Armour Shop. My current favourite is probably the "Hat of Serenity", which increases resistance to fear.
* Removed the dungeon not associated with any quest; this meant that Habitat is no longer used, so removed it as well. Hooray for simpler code!
* Added a basic Level Editor: currently this allows removing and adding walls, saving and loading levels.
* Characters saved with release v0.1.9 *can* be loaded using this release. (Yes, I have tested this.)

EDIT: The latest version can be downloaded from here.