Archive for the ‘Game Dev’ Category

Road of Kings now Free on Android

Road of Kings was removed from both Google Play Games and iTunes back at the end of 2014.  I still to this day get the occasional message from a fan wondering what happened to the game.  It’s especially bad for fans who bought the game, but since have upgraded their device or for some other reason can no longer recover the game from iTunes or Google Play.  Sadly that end of it is out of my hands, how those two markets deal with legacy games is entirely up to them.

But what I can do is now that some time has passed, I can put together an official, totally free, off the market version of the game.  Unfortunately Apple does not allow for any reasonable way for me to distribute such a game to players short of paying $100/year to maintain an account on their distribution channel.  Fortunately Android is far easier to deal with, so I present to you, totally free of charge, Road of Kings 1.3:

Download Road of Kings 1.3 for Android

Enjoy, redistribute, do what you like.  I’m just happy to see people play the game again.

Hybrid Games

Recently for one reason or another I found myself contemplating the old board game Dark Tower.  For those that don’t remember it, this was a board game that featured a large electronic device in the center (the titular dark tower) that did some random number generation and supplied sound effects and other minor visuals.  Here’s the original commercial (starring Orsen Wells!) and a more recent video playthrough.  This game has still has a pretty sizable cult following, and due to the unreliable nature of the circa 1981 electronics, it’s pretty collectible.  I never had or even played this game as a kid, but I was certainly aware of it, and eventually Delta introduced me to a pretty good simulator online.

Anyway, I was pondering the game for unknown reasons, and thinking about the process of finding and repairing parts to put together a working physical version.  Not that I have any such plan to do so, but I was just curious about the electronics and the repair hobby, in the same way that I’m fascinated by guys who collect and repair pinball machines, but would never really want to get into it myself.  Anyway, I happened upon an android app called Droid Tower, which is both a full simulator and just a tower simulator – the purpose of the latter being that maybe you own a copy of the game but your tower no longer works: now you can play again using your smart phone instead.

This idea of replacing the tower with an app tickled me.  Then I started wondering, why aren’t there more hybrid games that have both physical and virtual components?  The only other example I can think of is the way I play Space Alert.  The original game comes with a CD of audio tracks that actually drive the gameplay, and eventually I replaced that with mp3’s on my phone, and then later the Space Alert Mission Generator app, which actually generates random missions by assembling different audio elements.  That last bit is what I think makes it cross the line into actual software that affects the game.

Also, I wonder what other existing games could benefit by having some element replaced by software?  The first idea that came to my mind is Hero Quest.  This game includes a GM type player that must lay out the contents of the dungeon the other players are exploring.  It includes a booklet of adventures, in a sequence that presents a sort of story line, for the GM to follow.  The later iteration of this game, Warhammer Quest, eliminates the GM in favor of random dungeon generation and algorithmic movement of enemies.  I wonder though if one could preserve the pre-authored feel of the adventures by simply having a piece of software present it to the players.  It could speak out where to place the elements as the players reach them.  I’m not sure exactly how to achieve this, maybe some kind of recognition of the board and pieces via the phone’s camera?  I suppose you could replace the board entirely with an interactive surface, but I think this breaks some of the feel I’m after here.  I want to play the original game, just with a computer playing the GM role instead of a real person.

What else?  Anyone aware of any existing physical games that augment gameplay with software?  Anyone got a really good idea they’d like to share for such?

End of the Road

A couple days ago I got the following message submitted to the blog:

Did you run into legal problems with barbarian prince?  If so that’s very unfortunate. Is there any future hope for road of kings?

For those who have not noticed, Road of Kings was indeed pulled from iTunes and Google Play at the end of last December.  Likewise the Dancing Sorcerer website has been taken down.  It was a tough choice for us, but we decided by the end of the year that it was time to pull the plug on the project and wrap things up.  The timing was chosen specifically to avoid any tax implications for the following year.

No, we did not encounter any legal issues.  I had a very nice e-mail exchange with Richard Hendrick, the original designer of the Barbarian Prince board game.  He was very supportive.  I never heard anything out of Reaper, the current holder of the Barbarian Prince license.  Barbarian Prince did have a strong inspirational influence on our game, but so did our D&D hex crawl adventures, which I expect was also the original inspiration for Barbarian Prince itself.  All 30,000+ words of content in Road of Kings were written by us, and the mechanics while inspired by Barbarian Prince, were modified and added to by us based on our play testing and to better fit the mobile video game platform.  I believe Road of Kings was quite sufficiently its own beast such that there never an issue of claims arising from any quarter.

So what happened?  Ultimately, the game was taken down entirely for financial reasons.  It had reached that tipping point where it was going to cost us money simply to keep it up there, so we made the difficult decision to take it down.  This problem was further compounded when one of our three members moved across the country making collaboration a bit more difficult.  The terms that bound Dancing Sorcerer together were an all or nothing deal, so if one of us was out, we were all out, and so the group dissolved.  There are no hard feelings on any side here, we all agreed that the best choice was to call it quits.  The game had a small but dedicated fan base, and I’m sorry to all who enjoyed the game that we couldn’t develop it more.

Road of Kings was a great learning experience for us all.  When I first started the project, I knew nothing about smart phone game development.  I’d been in the video game industry for ten years, and knew PC development pretty well, and even spent some time making games for the old dumb phones, but that has little bearing on the current technology.  Furthermore, the market shifted as we created the game.  Premium titles were making money when we started, and by the time we shipped it was already a dying model.

Of course, all those lessons would be wasted if there wasn’t another project on the horizon.  I have been talking with the remaining member of the group about starting something new.  It will still be table top gaming inspired, though we’re now inventing from whole cloth with the current mobile market firmly in view.  We’re still spare-time hobbyists here, so we’re trying to keep that in mind and keep the scale small enough such that we’ll hopefully get something out before the entire market changes under us.

There will be more info about the new project here in the future, but I thought for now I really should make some kind of public statement regarding Road of Kings to all our fans.  I really am sorry that Road of Kings didn’t have longer legs than it did, and I hope the next project does better, and that you all are willing to come along for the ride with me once more.

Road of Kings Released!

Hey everyone , I’m super excited to report that Road of Kings has officially been released on both iTunes and Google Play.  I won’t bother you with more blabbering on about how awesome our game is.  I’ll just leave with these nice two buttons:

app-store-badge google-play-badge

Countdown to Release

I’ve posted this everywhere else, why not my own blog?  Road of Kings has an official release date: January 18th.  Also, we’re officially supporting iPhone/iPad in addition to Android, which is very exciting, as we expected it to take much longer to support that platform.  Things went pretty smoothly though, thanks very much to the good folks over at libgdx and robovm.

Finally, here’s the new trailer we just released.  Enjoy!


I’m working on isometric projections at the day job this morning.  I had the world position of an entity (wx, wy) and had to figure out the grid coordinates (gx, gy) of said entity on an isometric grid which had individual tiles tw wide and th high.  I also already have the formulas at hand for the inverse problem of converting from grid coordinates (gx, gy) to world coordinates (wx, wy).  I’m sure this math exists in a dozen places online, but actually spending a couple minutes doing out the work always helps if it doesn’t quite work right and you find yourself trying to figure out why in the debugger.  So here’s what is written on the notepad on my desk:

Known Formulas
wx = (gx – gy) * tw
wy = (gx + gy) * th

Solve for gx
wx = (gx – gy) * tw
(gx – gy) = wx / tw
gx = (wx / tw) + gy

Solve for gy
wy = (gx + gy) * th
gx + gy = wy / th
gy = (wy / th) – gx

Re-solve for gx excluding gy
gx = (wx / tw) + (wy / th) – gx
gx * 2 = (wx / tw) + (wy / th)
gx = ((wx / tw) + (wy / th)) / 2

Re-solve for gy excluding gx
gy = (wy / th) – (wx / tw) + gy
gy * 2 = (wy / th) – (wx / tw)
gy = ((wy / th) – (wx / tw)) / 2

I’m sure it marks me as a huge nerd, but I find it so satisfying when I get to do this kind of thing as part of my regular employment.  Sweet, sweet justification for all those math classes.

Road of Kings Update

In other news, progress on Road of Kings is going strong.  In fact, a large part of why I’ve missed updating my blog so much recently is due to my focus instead being on the social media marketing campaign we’ve started.  Granted, none of us are marketers and we don’t really know what we’re doing, but we’re trying very hard to have a much stronger visible presence on social media as we approach launch.  As such, I’ve been posting to Facebook and Twitter much more than my own blog.

If you’re not following us there, here’s what you’ve missed:

  • I’ve been posting a dramatized actual play report bit by bit on Twitter.  You can find that at #TaleOfSoryl.
  • We’ve posted a couple lore posts to our website, and promoted them on Facebook and Twitter.  The first was on the race of the Aesir, a strong group of sea-going raiders that you can join or fight against.  The second is on the staring location of the game, Delm Island.
  • Finally, I recently dropped several new screenshots of the game on our website’s front page.  Here’s a little teaser, follow the link for more:

Road of Kings

So, if you dig what we’re doing or just want to give us a little moral support, please consider liking us on Facebook or following us on Twitter.  I promise you’ll get much more frequent updates over either of those channels than waiting for me to remember to post to this blog about such stuff.


Sorry for the lapse in posting everyone, I blame CardHunter.  If you haven’t seen it, do check it out, it’s a web-based game with a decidedly D&D theme.  In fact, all the visuals and shell of the game really emulate old school D&D hard.  You may recognize some of the thinly veiled names like the intro level “Raid on Ommlet” and the home base “Keep on the Hinterlands”.  Heck, check out the level artwork, made to look like old school D&D modules:

CardHunter Levels

Note the dice, soda, and Cheetos.  Yeah, this game is punching hard on the old school vibe.  It does stoop a little on some of the nerd jokes (sigh, yes, the nerdy DM character loses all confidence in the face of the pretty pizza delivery girl), but generally I find it rather endearing.  On the flip side, the actual gameplay feels pretty new-school.  The game itself is just combat between your three person party of characters and some group of enemies.  Each character has a deck of cards that are played for everything — movement, attacks, etc.  Ultimately though, this is just the format where I enjoy that kind of highly tactical combat.  That stuff bogs down real roleplaying games, but is perfect for a casual video game.

CardHunter Gameplay

The game is sold in freemium format.  For those not in the biz, that means the game is completely free to play but offers various in-game purchases to “enhance your experience”.  This is always a bit of a double-edged sword.  On the one hand, the developer can go too far and make the purchases really effective and/or required, thus turning it into a “pay to win” or “money game”.  On the other, if there’s no value in the purchases nobody will buy them at all and the developer has just given away all his work for free and it’s not long after that that the servers shut down and the game vanishes.

Personally, I did buy their “basic pack”, but mostly because as a fellow developer I feel like they should reap the rewards for creating something I’m clearly enjoying and spending a lot of time on.  That said, I’ve yet to feel like I got something really cool beyond the basic experience of the game for my money.  I think you could get a lot of enjoyment out of this game without paying a dime.  I hate to encourage people to do that, but perhaps you can go ahead and do what I did – play the game and if you really enjoy it, consider buying something in game even if you’re just going to ignore it.

But definitely play it, it’s really very fun.


The Feminist Barbarian

Making a game rooted in 30’s era pulp fantasy presents some tricky situations for the modern developer. Let’s be straight (or not, whatever) — I wholeheartedly agree with modern ideals of equality for all, regardless of race, religion, gender, or any other detail that makes us a little different from each other. This modern ideal though sometimes works at cross purposes with the source material. Barbarian themed fantasy if full of slave-girls, savages, and other very non-PC portrayals. How can we avoid being offensive to our player base without cutting the legs off our genre?

It’s a tough line to walk. In some cases we allowed ourselves to play into old stereotypes. Yes, the main character of our game is a powerful, brutal, white guy. There is some content in the game where you can go rescue a swooning captive woman being sacrificed to evil demonic gods. That said, two of the more powerful allies you can get to join your band are a tough female Aesir warrior and a deadly spell-packing sorceress. I can also promise you that neither of these characters will be wearing chain-mail bikinis or other skimpy unrealistic articles of clothing.

There are slaves in our game, though they are not of any specific race or culture. We made the conscious decision to not have any case where you end up buying or fighting a slave. You can free them or you can ignore them, but we shied away from everything else. The difficulty was that we do want the game to feel like an old school roleplaying game where you can “do anything”. That said, we still have to author all possible outcomes, and we were just not comfortable going down those roads.

I hope our players appreciate the game for what it is and enjoy the stories they create with it. I hope we can attract a wide and diverse player base who all enjoy pillaging the lands and declaring themselves king. What is best in life? Hopefully just crushing your enemies without the lamentations of anyone.


Road of Kings is built on top of a third party library known as libGDX, and I think it’s worth taking a moment to give the maintainers of that project their proper due. I happened upon libGDX quite by accident. Originally I started writing code for this project in java only because I had the vaguest idea that Android phones used java code. I chose Android as a target because that was the phone in my pocket, though to be honest, I think ease of developing code was one reason I chose an Android phone in the first place. But I digress…

When the code base first formed up it was just game logic, a simple combat emulator run on the command line. I started very early with a strong model-view-controller architecture, knowing I would want to replace the IO down the road. Eventually I did this, adding a Swing based UI so I could render the earliest map. Still I kept the game logic (model) very separate from the rendering (view) and user input (controller) portions, and one day I finally decided it was time to port to Android.

I looked into some of the Android docs, and quickly realized the complex UI system used by most Android apps was overkill for a game. I wanted something that would just let me blit images to the screen. So I hunted for a library that would do that, and discovered libGDX. I started playing with it and it seemed easy to use, and so the game soon had a third view/controller scheme based on libGDX. It would take a while before the console and swing alternatives would completely die, though once they did some bits of libGDX did seep into the codebase at large. I still keep my model pretty pure, though libGDX’s pool based collection objects did seem like a good optimization over the standard java.util packages.

I had no idea the many further benefits libGDX would bring, and these days I think if I were starting a mobile game fresh I would certainly choose libGDX as my engine. Here’s why:

1. Abstraction – What originally brought me to this library is still worth quite a lot. Having an abstraction layer between your game and the hardware is key for porting. The good news is, libGDX provides several already functioning ports, including desktop builds for Win32, linux, and OSX, Android, and HTML 5 (GWT). iOS is still a work in progress (see below). Plus, it wraps all the bits you’d want in a game: rendering, audio, input, file i/o, and even network communication.

2. UI – Wow, the 2D ui code that comes standard with libGDX is fantastic. It’s scene graph based, it includes an html table-like layout system, support for 9-patches, and skinning. I’ve worked with many less robust UI systems, and certainly few as elegant.

3. Animation – I was tempted to include this under UI, but it’s worth calling out on its own. Nate has implemented a very sweet system for moving actors around the scene using standard transformations including translation, scaling, rotation, etc. all easily modifiable by a pluggable interpolator to give non-standard motion over time (eg. sine waves, bouncing, etc.) You want an image to swoop in from the side and scale in, with a little bounce at the end? It’s about one line of code. And as it’s all built into the 2D scene graph, it’s just as easy to do that to a whole chunk of UI as it is to a single image.

4. Tools – Besides some helpful utility classes (hello xml and json parsing), there’s also some very nice support tools. For example, there’s a very nice tool for packing many small images into a single large texture. It’s even clever enough to determine that two images are identical and only actually pack a single copy and create two differently named references in its metadata. And then there are some approved optional extensions to the library that add some nice flourishes like loading and rendering TTF fonts.

5. Free – Yeah, it costs not a dime. Also, that means you have full source access so when you discover some little “I wish they did…” it’s actually pretty trivial to just go change it yourself.

OK, lest I come off as a complete fan-boy, it’s worth noting there are a few detriments:

1. Programmer Oriented – Those sweet UI and animation systems are great, provided you don’t mind layout out your UI and specifying your animation sequences in code. You want artist and designer friendly tools for this stuff, you’re going to have to write them. Good news is, you can write them, and I’ve found I can even add some libGDX rendering to a swing JPanel to use convenient swing UI stuff for the heavy lifting but still have a WYSIWYG display.

2. Early iOS Support – This is a big one, but the iOS support is pretty new. The current system is based on Xamarin (née MonoTouch) which requires a pretty hefty licensing fee (about $500). The maintainers seem to want to move away from this and are actively working on a new backend based on the free RoboVM, but that’s only started in the past month or two. I’m really crossing my fingers they get this stable by the time I need it, but if I have to I guess I’ll fork over the dough for a Xamarin license.

Well, there you have it, libGDX. I really can’t recommend these guys enough. If you’re thinking of making a mobile game and you’re not keen to jump on the Unity bandwagon, definitely check these guys out. You won’t be sorry.