Plans and Progress

By far the most frequent question I get is “when will Pirates and Traders 2 be done”. The answer to that is the annoying – but unfortunately accurate – “when it is done”. Software development is my passion, but developing games is only the part of that which I do for fun. This means I have to balance game development time with all the other activities of my life, which means my work hours are limited, irregular, and ultimately need to be at least a little fun (otherwise I burn out). The latter is one of the reasons why I decided to combine the three projects that I’m currently working on – it may not be the most efficient way to develop, but being able to switch contexts every once in a while or experiment on something different, is one of the ways in which I maintain motivation. But I digress; the point of this, of course, is to note that this situation makes it completely impossible for me to say when anything will be done. There are just too many variables that can affect the situation.

What I can do, is try to describe the status of things right now, and what I hope to do in the coming months. Just … keep in mind that all developers (myself included) are invariably hopelessly overconfident, so take any timelines here with the huge grain of salt that it deserves.

Small Battles is currently in a playable state; i.e., you can start up a battle, take your turns, have the AI take turns, and at some point you either win or lose. There are a few bugs in the gameplay still and the AI is still not good, but overall, I believe that the game engine is solid now (testing has not turn up any crash bugs). At the moment, I am working on adding some of the remaining missing features (e.g., making it possible for the player to deploy their forces) and handling the end of multiplayer games, but once that is in place, the game is pretty close to being release-worthy. Assuming no unforeseen issues, I hope to get most of this work done by the end of the month, and would like to try and release an open beta of Small Battles before the end of the year.

Pirates and Traders 2 development is going well. The story engine is looking good, sea combat works, and map movement is OK (the latter two still need some tweaks, though). A big part of the work remaining is to script the port interactions, and develop the user interface to give proper feedback. It’s not difficult work, but it is time-consuming; and given the things on my calendar for December-January, I’m not going to get through that work on this side of the New Year. Once I’m done, though, I plan to do the first round of beta testing. I would love it if this was possible to do before the end of the February, but that is probably my optimism talking.

Dwarf Kingdom shares a lot of code with Pirates and Traders 2, so a lot of the work that needs to be done there is stuff I’ll be doing while working on the latter. In addition to that, of course, there is a bunch of game specific mechanisms that need to be implemented. Some has been done already during earlier work on the game; the rest is waiting to be done. This has been taking longer than I would like it to, but my hope would be to move right from the beta of  P&T2 to implementing the last remaining bits of this game, and hopefully starting up that beta during the summer of next year.

So that’s the plan. In a perfect world, where I could guarantee spending 15-20 hours of my free-time a week working on that plan, this might even be doable. In the real world, though? Not a chance… one, if not all, of these goals are guaranteed to slip. So when they do… don’t be too disappointed. But there you have it.

TLDR; games are done when they are done.

Character Generation in Pirates and Traders 2

Seeing as how I just posted a peek at the character generating screen from Pirates and Traders 2, I thought it might be an idea to write a few words about it.

intro_traitsPlayers of the original game will feel that they are in familiar territory with this screenshot. I am retaining the basic character creation structure from the old game, as I’ve always been fond of defining the character through “backstory”, rather than just doing a +1/-1 skill choice.  The mechanism is a classical one, of course – it was used to excellent effect in several old RPG games such as Ultima IV and Challenge of the Five Realms. I’ve never heard anyone complain about it, so I assume most of the people playing the game are OK with this as well.

A new element in the starting creation is that your character now also starts out with personality traits (as shown in the screenshot). These personality traits provide bonuses (e.g., your fearless character gains a bonus to willpower in combat – i.e., less chance of breaking) and also affect what other characters think of you (e.g., fearless characters tend to be admired by others). The traits are not equally useful, but none of them are useless. For example, being craven might seem like a bad trait (since it is a social handicap and can negatively affect your battle performance), but it comes with a hefty bonus to perception (being afraid, means that you are always attentive to danger), and the likelihood of suffering fatal wounds in battle are significantly reduced.

As a player, you should want to chose traits that fit with your playstyle, and the kind of character that you wish to play. Did I mention that you can both gain and lose traits during the game? So, e.g., if your “Fearless” character continually turns down challenges to duels and runs away from battles, people will eventually see through the facade, and you lose both the trait and the benefits that come with it.

One element in character creation that exists in the old game that disappears is the ship selection. In the new version, here, the starting ship is tied to the character template you choose. Instead, the full version of the new game will contain a number of different starting backgrounds (I’ve got 10 planned, so far) leading to a variety of starting ships.

Another difference from the current game is that the difficulty level will be customizable, even beyond the current level. I haven’t decided on exactly which parameters will be possible to tweak yet, beyond those already mentioned (i.e., wind effects on the world map). Generally, I would like to make it so that players can tailor the game to their preferences within reason.

Of course, the quick-start option will remain, for those people who prefer to just jump right into the game with a reasonable, pre-generated character.

Scripting stories

The past week has gone in putting some final touches on the story scripting engine in Pirates and Traders 2/Dwarf Kingdom. The original script engine of P&T was pretty poor; it has been improved on since then, but I’ve still not been quite happy with it for various reasons.

A couple of months ago, I did a new survey of the various interactive fiction/story script engines commonly used. I’ve done some research on various interactive fiction script engines in the past, but none of them have really suited my purposes. I need something that is extremely easy to write in (so that other people than me can write stuff if they want to), but which is also easy to parse. I also don’t want to be tied to a specific editor, because that is rarely a good idea. At the same time, unfortunately, I also need the scripting language to be pretty powerful – for a game like Pirates and Traders, for instance, I do a lot of calls into the core game engine to fetch stats, skills, even entire descriptions.

Inkle have a fantastic writing tool in their Inklewriter – probably the most beautiful interactive story scripting tool done yet; sadly, the scripts generated by their engine are not human readable (JSON). Most of the popular interactive fiction languages that I looked at had more in common with programming than writing; useful, given their use-cases, but not for me.

I spent a lot of time considering Choicescript. It’s popular (lots of games developed using it), well supported by the Choice of Games guys, and contains almost everything that I need. Unfortunately, they went for an indentation-based syntax. I wish they hadn’t. Indentation syntax isn’t easy for people to get used to, and invisible markup (e.g., the difference between space and tab) is simply an accident waiting to happen – especially in the hands of someone who isn’t used to programming. It makes having a great text editor pretty much a requirement for being productive – and most people don’t. Despite the many good things about it, I eventually decided to drop the idea of using the Choicescript syntax.


Cloak of Darkness

At this point, I’ve settled on a Markdown-based syntax. I fell across one such syntax, called Ficdown, during my research and was struck by how similar the structures were to the non-Markdown compatible syntax I was already doing. After a little bit of work, I’ve developed a syntax for the story engine inspired by this which creates readable text in a WYSIWYG Markdown editor, while retaining all the flexibility I need.

Implementing the new syntax was pretty easy, so it’s already functional. I did a small writeup on how it looks like on the future Pirates 2 wiki. Hopefully, it is also pretty easy to use for non-programming people. The idea is to have it so simple that anyone who wants to, can write their own small adventures/quests for Pirates and Traders, and have them loaded into your game where you can play them (the same as the existing stories). The documentation is not complete yet, but the core elements are there. I’ve been putting the final touches on the implementation this week, and hope to start (re)writing some of the encounters and quests for the game soon.

I also experimented a bit with creating a stand-alone story viewer for the Story Script (see the image on the left); as I thought this might perhaps be useful for modders in future. It’s very plain, but works well – as it should, of course (it’s 99% the same code as I have in Pirates and Traders – I pretty much just stripped out the fancy UI).

At the moment, I’m actually considering whether to publish the story viewer as a free stand-alone app. Feels like it could be quite fun to give people the possibility to write their own CYOA games using something as basically simple as Markdown. On the other hand, I’m not really sure the interactive fiction community really needs yet another scripting language/viewer. At the moment, I’m just planning to fool around with it a bit, continue writing stuff for P&T, post a little bit around, and see if there is any interest. If it’s the sort of thing you’re interested in, feel free to post a comment or send me an e-mail.

In the mean-time, I need to put the last touches on the story engine, and adding the final hooks into the role-playing module.