Update: Viking Chess! is now available for free on the App Store.
In April 2014 I read an article about the ancient viking board game of hnefatafl. It sounded intriguing, and I thought I’d take a stab at making the game in Unity. After a year and a couple months of off-and-on development, innumerable setbacks, and plenty of personal life distractions, I’m finally ready to share my progress.
Viking Chess! main menu
History
After building a prototype in the web player, I realized how well-suited the game would be to mobile devices. Much of the early time was spent learning about the game rules and translating them into programming logic. Since different variants of the game used different sized boards, I wanted to build the board dynamically and offer alternate layouts and rulesets.
Prototype for what, at the time, was to be called “Tafl - Viking Chess”
I got to work creating the game proper, translating the controls to touch input, adding a proper camera, and modeled my first pieces in Blender. Since my initial version was made using UnityScript, I also translated all my code to C#, which was a great learning process. I was very happy with how it was coming along until my wife pointed out how much the black pieces looked like penises. Whoops.
First iOS build. Ignore the penises.
I also initially wanted to support cross-platform play, but multiplayer seemed like such a daunting task, and I was having trouble wrapping my head around the various frameworks out there. I ended up deciding to focus on one platform at a time, and decided iOS was the best market. I found a cheap plugin called U3DXT that provided access to the Game Center API, but it turned out more problematic than anything. A couple months in, the plugin developer seemed to have stopped supporting their work and disappeared off the grid, while I had Xcode errors relating to their plugin I couldn’t figure out on my own.
Cleaning things up. Except for that menu button… Eek.
After abandoning the project for a while, I eventually came back to it and attempted a fresh start by deleting U3DXT from the project entirely. I focused on the core game a bit more and added new black pieces, a fancy board trim, and got rid of the placeholder textures in lieu of a nice flat appearance instead. I actually liked the look of this enough that I wanted to keep it for the final game, but figured people would find it too cheap looking, hence the current visual style. I would like to add “basic mode” as an option, though, as it performs great on older devices.
I took a stab at implementing Google Play Games to handle the multiplayer, with the benefit being it’s cross-platform. What I discovered, though, was that the Unity plugin version of GPG is severely limited at this stage, and it became clear it would provide more obstacles than it would benefits. I finally bit the bullet and purchased prime[31]'s Game Center plugins, and things have gone swimmingly since then.
New graphics! Now with 100% more Unity 5!
I then went crazy making the game look “good” and “Vikingy”. The astute observer will notice I borrowed a large number of assets from the Viking Village. I purchased music tracks, pieced together a UI (that I currently hate) and started ticking off the features I’d been putting off for a while. One of my favorite is toggling perspective on/off in game. Orthographic view is great for smaller screens, and having the option to switch on the fly (by double-tapping two fingers) should let people see which view they prefer and enjoy either easily.
Ortho view without opening a menu!
One of the things I realized was that this game is pretty niche. While similar to chess (it actually pre-dates it by a few hundred years, I believe), it’s different enough to be confusing if you just jump right in. The game will show you each move where you can and can’t put your pieces, and which pieces you’ll capture with your move. There’s also a written version of the rules available from the main or in-game menu.
Dragging a piece shows its valid moves. Helpful to those of us who were never vikings.
I’m definitely discovering how the last 10% of a project is 90% of the work. Every time I launch the game I discover a new bug or discover something I thought I fixed isn’t quite done. I’m also second-guessing a lot of my usability decisions (like how many taps before you can get into a game)… Stuff like that. Last year, hesitating because I wasn’t sure what the right decision was almost prevented me from finishing the game at all, so I’m learning to just do something and worry about fixing it later if I can. It may be more work, but it also may be just fine, and that’s a good risk.
Confirm your move of this highlighted black piece to capture this (faintly) highlighted white piece.
Where you come in
I’m getting to the point where I want to start testing for real. I invited several friends and family to get in on the beta, but they all seem a bit busy and only one of them has even installed the app.
I’m thinking I’ll find more like-minded people here who are savvy enough to figure out the quirks of working with Test Flight and know what kind of stuff to give feedback on and which is obviously placeholder.
If you’re interested in playing the game in its current, breakable state, send me a PM with your Apple ID email address and I’ll add you to the batch of tester invites. It’d also be great if you could provide me info on what kind of device you have and other relevant information (“I’m colorblind”, etc).
If you’re not interested or not able to help with testing (sorry, Android users!), I’d also appreciate any feedback here, and I’d be happy to answer any questions about the app, the development process, or code tips for your similar project.
Thanks for reading! Stay tuned for more!










