Friday, December 28, 2012

v0.910 released

Version 0.910 is out, get it on SourceForge. Some interesting new features in there.
v0.910 (28 December 2012)
 - Initial work on automated balancing
 - Added configurable and persistent user settings, plus a Settings screen
 - Added user settings: combat speed, music volume, personality chattiness
 - Added Tip Of The Day to main menu
 - Added an OK/Cancel dialog when the player quits to the main menu
 - Initial implementation of the automap
 - Moved difficulty level implementations into the default campaign module
 - Difficulty level implementation can now swap in a new foe combat AI

When I initially released v0.9, I planned for v0.91 to be the first beta. Needless to say, that hasn't happened yet. But we're on the road. I'll just keep adding versions in 0.001 increments, leaving me 89 releases until the big 1.0!

Wednesday, December 12, 2012

Mid December Update

Balance had stalled a bit, so I have jumped into some feature work. The balance stuff had gotten thoroughly boring, so some relatively unglamorous dev was fun by comparison. What a pleasure to get into the glory of configurable user settings and the Options/Settings screen, as well as the long overdue Automap. They're shaping up well, with a bit of luck and time I'll be able to drop a December release.

IRL, my better half is 32 weeks along and all is well so far. The new house is mostly settled into. The new all-grain brewing system is up and running.

I'll leave you with Eric Schwarz's musings on Balance, perhaps I will leave what I have and forge ahead. I do still feel that there is a middle ground to be found... but hopefully it will emerge when the time is right.

Thursday, October 25, 2012

On Balance


It's hard. 

I remember someone from the World Of Warcraft team talking about the giant spreadsheets that they used to balance the game. Suddenly that approach doesn't sound so bad.

Progress has been slow, partly because I've had very little free time, partly because this automated balance approach is hard. I'm pondering taking a breather on Balance and implementing some features.

Here's where we are:
Combat classes 1v1 victory at lvl 1-30 vs the Reference Foe
I've been trying to define a Reference Foe at each level. This graph shows the wins of a single combat character versus the Reference Foe of that level. I've spent a lot of time tuning the Reference Foe, and this is the best I've got. For a "Balanced" progression, I would hope for 0.5 across the board.

Yeah. Hard.

One positive here: the Monk graph climbs nicely, as might be expected from the current Monk progression of bonuses. Monks are clearly overpowered at high levels, but it's nice to see the input data validated in the results.

I do still think that automated balancing is the way forward, but maybe it's time to get some features in too.

Unrelated update #1:
The wife is at 25 weeks. All is well except for the outlook of my free time...

Unrelated update #2:
Crazy Cleve has finally got Grimoire up on a funding site. I encourage anyone reading this to go and invest in his work, I have.
Go get it.

Thursday, October 11, 2012

US overtakes Poland as primary downloader

Still no feedback from the Poles. No idea what they were up to.

Downloads are ticking over, slowing as expected after the monthly releases dried up. I'm still working (sporadically) on Balance, hope to post on that again soon.

Monday, September 17, 2012

On Progress

Progress is slow. In theory I'm still working on mock combat. In reality I'm dealing with plumbing problems and other house admin.

Also, my limited spare computing time has been spent playing Gratuitous Space Battles. I'm done with it now, time to get back to the Maze.

Also, non-Maze related content will now appear on my newly created (but filled with exported Multiply content) blog. This one will stay strictly more-or-less on topic.

Over and out.

Saturday, August 25, 2012

Today: The Leveler

Today's task was refactoring the level up logic out of the UI widget where it was and into a separate class (I have named it Leveler) that contains all the logic and none of the state.

This is required so that the Leveler can be called from a different place to the UI. This new place is an automated character builder that can be parameterised with various strategies for developing a character and then asked to churn out a given player character (class/race/gender/etc) at a given level, applying the parameterised build at each level.

The automated character builder is required for a few reasons. I want to be able to automate various builds across all the different character classes and then run them through a "scorer" to determine their relative power, and also run them in a party through a simulated adventure.

As a bonus the code is now a lot more testable, not that I have time to write much in the way of tests.

The lesson here, children: don't put your business logic in your UI code.

Friday, August 17, 2012

In Which Progress is Slow

Balancing work proceeds slowly. I am still developing tools to measure it. Ideally I want the ability to a complete simulative walkthrough of the game, tracking average foes and loot as they are encountered.

In Real Life, the wife and I have moved house (from a small apartment to a large house), and I can officially announce that she's knocked up with our first child. So various the burderns of admin continue to steal my time away. Never the less, work will continue! :-)

Sunday, July 29, 2012

v0.909 released

Release early release often, they say.

v0.909 (28 July 2012)
 - Music and musical instruments
3545088: NPX in loot items widget

Well, it's been a good few monthly 'often' releases. v0.909 is out the door.

The next feature, as I mentioned, is Balance. This will take a while and monthly releases are hereby on hold until further notice.

I will post now and then about progress. Hopefully with pretty graphs.

Weapon strength (scored by a custom algorithm) grouped by attack modes. Stats as of v0.909

Sunday, July 22, 2012

Music, musings and the July release

The music implementation - mostly involving the configuration of instruments - is done and dusted bar the sprinkles. Sprinkles of items in the loot lists, that is. I'm not going to go too wild on that front, but the Skald and the Troubadour will start with instruments and there will be a variety to be found in various chests. Progress was a little slower due to a ten day business trip to the States, but v0.909 will be out before the end of the month. 

I a toying with the idea of skipping a monthly release for a while, here's why:

The next feature on the plan is Balance. Currently game balance within a campaign is completely up to the creator. In the default campaign I am managing it roughly with an Excel spreadsheet and my grey matter. This no doubt means that the campaign is completely unbalanced - and anyway I have no idea since the only way to ascertain balance is to do a complete play through.

I plan to develop some tools to make balancing a campaign easier. I'll see how they an out, but I'm thinking of at a minimum:

  • Scoring item power and tracking the expected player acquisition thereof. Ditto for wealth.
  • Scoring foe power and tracking the expected player encounter thereof. Ditto for experience.
Perhaps also:
  • Simulated path finding through maps
  • Simulated character builds
  • Integration into the Mazemaster editor - graphs and stuff
Some of this may involve tinkering with the data model a bit. For example, I plan to make vendors generate items from loot entries as well as individual item templates. Loot entries have become a tool for me to manage how soon a player has access to a given power level of items, and making the vendors use the same method for generating their items as the chests and foes will simplify tracking potential player item acquisition.

Anyway, all this will be very behind-the-scenes sort of stuff. So there may well be no point releasing every month.

But I will certainly be dumping my thoughts and plans here, regardless.

I will leave you with one closing though: in the default campaign, the item in the database with the highest average damage is currently the Butterfly Knife...

Tuesday, June 26, 2012

v0.908 released

Not a lot of bullet points in these release notes, but still a nice update to functionality.

The next feature I'm going to wrap up is Music - mostly adding instruments to the item database, since the plumbing for the rest is done. After that I think it's on to Game Balance and Campaign Extension.

v0.908 (26 July 2012)
 - Player character personality speech

Sunday, June 24, 2012

Wrapping up for the June release

The personality stuff is in a releasable state, and over the next week or so I'll find the time to drop a new version on SourceForge. Next feature on the list is fleshing out the Music skill.

Here's some screen shots of the characters with stuff to say.

An encounter.

Having wasted a bad guy.

They're all keen for you to pick them.

Monday, June 11, 2012

Back from Malawi

11 days backpacking with the wife. It was awesome.

Maze is still on track for an EOTM release. I am working on the Personality stuff; it's been a lot of fun.

Sunset over Thumbe Island, from Cape Mclear.

Saturday, May 19, 2012

v0.907 released

Head over to SourceForge to get it.

The wife and I are backpacking in Malawi for a couple weeks, so there may not be an update in June. I've started on the Music and Character Personality features, we'll see how it goes.

Release notes:

v0.907 (19 May 2012)
 - Normal damage split into Bludgeoning, Piercing and Slashing.
 - Craft Recipes and Item Enchantments refactored into separate database table
 - Implemented carrying capacity penalties
 - Gadgeteer character class
 - Engineering modifier, gadgets and gadget components
 - Added axes, hammers and javelins as throwing weapons
 - Added darts, knives and stars as recognised ammo types
 - Implemented wild magic spells.
3513860: Many modern weapons have bow type

Thursday, May 10, 2012

A Great Day Dawns

Every item in the database has an icon. Except the TestItem, but he doesn't really count. No more gold question marks.

The gadgeteer/engineering is all done, barring seeding the existing campaign data with places to actually find the gadgets. I'll do some degree and that, but most (like a vendor in Aenen) will have to wait until the details campaign rework.

I'll package and drop a release before the end of the month. The wife and I are out of the country for a couple weeks soon, but v0.907 will be out before then.

Monday, April 30, 2012

No April Release

A combination of bathroom renovations, house hunting, and a camping weekend away have kept me busier than usual, so this month I'm skipping a monthly release. The Gadgeteer stuff is approaching halfway done, but not in a state where they really add anything to the game. It should be there by end-May, so even if it isn't done I'll pitch the next release at that stage.

Tuesday, April 10, 2012

Now available at Softpedia

Can't say I had anything to do with it, but Escape From The Maze has been picked up by Softpedia.
Here's the link:

It's flattering, I think.

I'd suggest that those in the know continue to get the latest version from SourceForge. I will still be releasing monthly updates, and Softpedia is already one version behind. At least they're linking direct to the SourceForge download page, so people following their download link will end up in the right place.

Friday, March 30, 2012

v0.906 released

Get the monthly drop at the SourceForge site. This wraps up most of the UI refresh for now. There's always more to do on that front, but I have some fun stuff to tackle next.

v0.906 (31 March 2012)
 - UI Refresh: main menu, character detail screens, all dialogs, mana display, level up, character creation, crafting items
 - Background music: main menu
 - Non-castable spells can now still be queried for their details
3277594: Random encounter interrupts NPC appearance
3497105: Linux .WAV incompatibility
3477638: Linux: Invalid display mode, again
3277593: Widget focus problem makes UI unresponsive
3277584: Early resurrection powders
3277581: More accessible loot in starting dungeon
3510779: EmptyStackException on quitting to main menu
3510781: NPX on save/load screen
3511270: Merge item invokes the second item
3495593: Implement item stack splitting

Thursday, March 29, 2012

It's a bug in OpenJDK

Or IcedTea. Or PulseAudio. Who cares. Linux users can run it on the Oracle JVM, or disable music.

Wednesday, March 28, 2012

Yet another Linux showstopper

Good thing I fired up that linux test VM, because the music playback crashes the JVM. At least, it does on OpenJDK on Ubuntu.

Unable to open the sourceDataLine: javax.sound.sampled.LineUnavailableException: unable to prepare stream
java: /build/buildd/openjdk-6-6b23~pre11/build/../pulseaudio/src/native/org_classpath_icedtea_pulseaudio_Stream.c:726: Java_org_classpath_icedtea_pulseaudio_Stream_native_1pa_1stream_1cork: Assertion `operation' failed.
Bam, game over.

The internet suggests that the bug is between OpenJDK and Pulse Audio. But we will see. Goddam leaky abstractions.

Tuesday, March 27, 2012

Gearing up for the monthly drop

Just the testing on Linux outstanding. Probably quite important seeing as we're playing .ogg now.

Actually I'm posting this to write down some things that I'm planning to tackle in the short to medium term.

Refactor Damage Resistance
I'm planning to split the single "Resist Damage" modifier into three: "Resist Bludgeoning Damage", "Resist Piercing Damage" and "Resist Slashing Damage". I got the idea from Frayed Knights, but it's been brewing a while anyway. This will make regular melee combat a bit spicier, and give a much needed chance to implement foes like skeleton warriors. Different weapon attack modes would deal different types of damage; bludgeoning for bash, piercing for thrust, and so on. Some niceties will be required, like a default damage type for a weapon (applicable for things like thrown weapons and backstab/snipe attacks).

I was never really big on the Music thing in the Wizardry series. Having had a few years to think about it, I think it's time to get it in there. The Music modifier will be one of those under the Magic heading. I have some ideas about how to bend the feature more to my liking, like more interesting backfire effects from an unskilled user. We will see.

Ditto on not being a fan of the Wiz8 Gadgeteer. The time has probably come to add such a feature. I'm undecided whether the Engineering modifier will be a Stealth or Magic modifier, how to make the functioning gadgets more interesting to me than Wiz8, and what to do about the Omnigun.

A laundry list of other things to go with this:
  • Adding an Alchemist class, now that craft recipes are starting to go in. Perhaps a magic focused class with zero or limited spell casting but much craft skill and various special abilities that enable him to rock with potions, powders, bombs and the like.
  • Adding a Gadgeteer class, once there is Engineering. Probably a stealth class with zero backstab/snipe, but with much engineering and something cool like the Omnigun.
  • Character personalities, like Wiz8, implemented without voice acting as in Frayed Knights. I'm starting to see this as a replacement for the character class knowledge.
  • Scouting. Time to add a similar detect-secrets ability to characters.

Tuesday, March 20, 2012

Fabled Lands republished

Holy crap, the epic Fables Lands game books have been republished!

Go and  buy them, now.
Morris and Thomson only ever managed to publish half of the planned books. With enough support for the new editions, perhaps the remainder will see the light of day...

Thursday, March 15, 2012


Since starting this project, I have developed new found respect for people that work professionally in game development. It's hard. Code is code, that's my industry and I knew what to expect. But developing art and sound content for a game is difficult and time consuming. Creating an entertaining plot and designing engaging game play is hard. Balancing an RPG is hard. Hell, doing the data entry into the database to create foes, items and especially zones is time consuming.

So, as the project wends its way along, collaborations others than myself were merely a matter of time.

Starting with v0.906, original musical backing tracks composed by the enigmatic Zazza will start appearing in Maze. Her dark, silky ambiances and haunting rhythms will bring an aspect to the game that has long been missed. Frankly, your humble author couldn't compose a simple ditty to save his life, and the game has been far better off with silence than any ham-fisted attempt of my own at music.

For v0.906 we probably won't have more than the main menu music in place. Ultimately I'd like the game to be as musically rich as Wizardry 8, but that's a very high bar to set.

Tuesday, March 6, 2012

Write once, debug anywhere

Finally I've got the much-procrastinated task of setting up a Linux test environment. Ubuntu 11 on VirtualBox does the trick, with Puppy Linux on the wife's old HP G7000 Laptop as a backup.

Right off the bat, two showstopping bug were easy to fix. Graphics and audio related oddities in the Java API, this despite the entire app being in 100% pure java and using no third party libraries other than what comes with the JDK (I am in the process of integrating JOrbis for music, but that's another blog post).

Inset a moderate rant about leaky abstractions here.

Clearly nobody has been playing on Linux, because these were non-starters. My apologies if you tried. v0.906, due out at the end of the month, will include these fixes.

Tuesday, February 28, 2012

v0.905 released

Version 0.905 is up on SourceForge.

The UI refresh is not complete, but things already look a bit better.

--------------------------------------- v0.905 (28 February 2012) --------------------------------------- Features: - UI Refresh, part 1 Other 3482612: Sohei "Short Spear" kit bug 3482613: Idenfity spell not working 3483469: Crash while saving 3483079: NPX selling items to Ideaus 3484570: Hero class missing Melee Master modifier 3484571: Remove Curse spell always fizzles 3484572: Spell selection widget not updating casting cost 3484609: Many foes have insufficient magic points

Friday, February 17, 2012

UI Refresh Progess

I'm been tinkering away at making the game look prettier. All the renderers are done (the easy bit), various background screens are in the works (the hard bit). A new font is in place (Monaco).

I think I'm going to aim for a monthly release cycle, so wherever it gets to at the end of Feb I'll drop onto SourceForge.

Some screen shots of the work in progress:
The main menu
The player character widget

Item details dialog

Friday, February 3, 2012

Documentation Has Moved

The MediaWiki from SourceForge was pretty crap, so I've moved the documentation to Google Sites.
You can find it here:

Alas, it is no less sparse than it was. But hopefully quicker to access and maintain.

Thursday, February 2, 2012

A Busy January

Jan 2012 turned out to have the most downloads since the initial release. And not even any from Poland.
We're still not exactly breaking any speed limits here, but it's a start. Thanks to anyone who downloaded; your feedback is always welcome on this blog, the SourceForge forums or my email inbox.
Windows downloads

Wednesday, February 1, 2012

Comment located in the source code

// this whole fucking thing is such a fucking hack.  fucking ui programming horseshit

No idea when I wrote that, it must have been at least four years ago. But it certainly is some ugly code!

Tuesday, January 31, 2012

v0.904 released

The official release date is 4 Feb, but I've kicked v0.904 out the door tonight. Get it over at the SourceForge project page. It's a rollup of stuff reported since v0.903.

Compatibility: Save games from older versions won't load correctly on v0.904 unless you manually fix them by editing data/default/save/<savename>/conditions.txt, deleteing all the contents and saving it as an empty file.

v0.904 (4 February 2012)

 - Additional hints for quest Red Ear's Taxes
 - Event display delay is configurable in maze.cfg

3477194: Crash when saving and loading
3477638: Linux: Invalid display mode
3477642: Died while swimming in water and it crashed
3477652: Magic modifiers not being practised
3478229: Crash while fighting gnoll hunters
3479204: Shopping bug: scroll pane to small
3480742: Charm and Beguilement spells fizzle
3480942: Broken chest in Ichiba Domain North
3480946: Item enchantments not loaded from save games
3481288: Invalid item in Ichiba villa chest
3481715: Martial Arts not being practised
3481725: Item enchantments include old modifiers

It strikes my fancy to give the engine and default campaign a break and work on the skin for a while. The basic renderers weren't even anti-aliased, and all the dialog boxes are using obscene stretched versions of the same PNG. Hopefully I can get it looking a lot more polished.

Wednesday, January 25, 2012

New Look And Feel

For the blog, that is. Because I was bored of the old one, and this one looks pretty clean and simple.

A v0.904 release is in the works for next week some time; it'll be a round up of bug fixes reported since v0.903.

A new look and feel for the game is inevitable too, and I'm almost tempted to work on it as the next major feature. DIY-GUI supports pluggable rendering, and the current yellow-blobs-grey-text look was only ever intended to be the testing skin.

Sunday, January 1, 2012

v0.903 released

This version ships to fix the windows launcher, and includes generally better and more repeatable packaging.
v0.903 (1 January 2012)
3467452: Broken maze.exe

Also, happy 2012!

I'm done and married now, still catching my breath after the event. Perhaps updates to this hobby project of mine will be a little more frequent. 2011 was a busy year for me and 2012 promises more of the same, but Maze is close to my heart and I'll try and carve space for it out of the chaos.