---
deprecated: true
excerpt_separator: <br/>
category: technology
layout: post
title: My new project - netjatafl
date: '2009-06-25T10:06:00.000-04:00'
author: Anna Wiggins
tags:
- go
- tafl
- mancala
- programming
- chess
- Gaming
modified_time: '2013-10-22T11:19:50.698-04:00'
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-4703066947394332908
blogger_orig_url: http://www.stringofbits.net/2009/06/my-new-project-netjatafl.html
---

I've been pretty busy the last month working on <a href="http://netjatafl.sourceforge.net">netjatafl</a>.  Netjatafl will eventually be a networked client for playing various board and/or card games.  It was originally created for hnefatafl and other tafl games.  However, I have designed it to be extensible; I'm working on adding mancala games, and it looks like my design makes it pretty easy to add a new game. (I've added most of the logic for mancala to the client and server in just a couple hours of work).  I intend to add shogi, xiangqi, chess, and possibly even go at some point in the future.<br/><br/>The netjatafl server (taflserv) operates on a simple, completely open protocol; it will eventually support authenticated logins and statistics tracking.  Anyone could write a netjatafl client for any platform, if they wished.  My clients will all be in C++, because this let's me reuse the 'libboardgame' library, which contains the game logic used by the server.  I will also build in a "capabilities" system at some point, so the client and server can both advertise which games they support.<br/><br/>The whole thing is theoretically usable in its current state; the client is an ncurses-based text UI that is pretty cumbersome, but can be used.  As far as I know, it only works in Linux.  Anyone who wants to cross-compile it for Windows and send me a patch with everything you had to add, feel free!  I will eventually add a proper GUI, probably gtk+-based.<br/><br/>Like the sound of this project?  Feel free to check out the code, compile it, and let me know what you think!<br/><br/><br/>Etymology notes:  netjatafl is Old Norse for "net-table"; i.e. a networked table you can gather around to play games.  'taflbordh' is ON for 'tafl board' (tafl can also refer to tafl games in general), which sounds a little redundant, but it made a nice name for a client.  And 'taflserv' is just 'tafl server'... 'serv' was meant to be short for 'server', but I later noticed that it's also a French word meaning 'it serves".  I find this somewhat appropriate.