Roadmap update (feb 2016)

Time to update the roadmap, describe what I’m working on and where we are heading. Apart from fixing bugs and improving stability and performance, the feature I’m currently working on is editing and hosting custom maps. This project is not just a game, it’s a platform that is continually evolving. It doesn’t have a release date that will mark the end of the project after which no more work is to be done. New features will be added incrementally and it’s critically important to take the time to get the supporting infrastructure right.

In order to host custom maps, the client app needs to be able distribute these maps to the other players via the servers, and the servers need to coordinate the uploading/downloading of these map files. So you could say that there are three kinds of networking communications going on: 1) ”file sharing” of maps, 2) battle simulation, and 3) coordination so that the right players start with the right maps. Each kind of networking has its own set of challenges, e.g lag for battles, reliability for coordination and throughput for sharing.

Looking forward, customization is not only about hosting your own maps, but also things like picking your own units, and even customizing victory conditions and other meta/contextual parameters. While implementing the networking infrastructure it’s important to make it flexible and capable of handling these future use cases as well.

The core game engine (graphics and battle simulation) is written in C++. The C++ language is good for crunching numbers, but other more dynamic tasks are much easier to do with Javascript. The match setup (i.e. map) coordination is one such task. So I’m taking the time to make sure that the platform and the infrastructure work really well with both C++ and Javascript, and that the different components can interoperate really smoothly. The goal is to make the game very modular and very scriptable. I’m really excited about the scriptability and all the possibilities it opens up. (If it sounds too technical or fuzzy, just ask and I’ll try to explain the details.)

So to summarize:

  • Current feature is editing and hosting custom maps.
  • In order to do this properly, a good deal of infrastructure is required:
    • servers that handle the different kinds of networking communications required to setup and play matches
    • a client platform that is modular and scriptable
    • focus on getting this infrastructure glitch-free (lag and connection issues) and able to handle upcoming new features

Release dates

I’m not setting any release dates, it will take the time it takes (see first paragraph). I will be releasing beta builds for iOS and Android continuously, so make sure you’re a beta tester.

Features

The feature list is roughly the same as before.

Map editor and custom maps

First step to customization is to be able to create and host your own maps. Initially with the current set of terrain features: hills, woods, and water, but later also structures like buildings, bridges, castles, and forts.

Lobby and chat improvements

Improve the main screen and lobby, add setup panel so you can host custom games. Add in-game team chat.

Battle view, gestures and commands

Camera controls have been tweaked in the current beta, but they can be improved even further to make it work really well on small devices. And add more advanced unit commands for controlling groups of units, changing formation and unit orders like hold-fire, fire-at-will, hold-ground, etc.

Custom armies

Players will be able to select the units they bring to the battle field. Moreover, the host will be able to customize the cost of those units, as to balance the battle in his/her choice of preference.

Battle mechanics

Improve and fine-tune the calculations for movement and melee combat. Add support for artillery units. Improve how morale works and add fatigue. Add realistic line-of-sight and fog-of-war so that you can conceal units in woods or behind hills.

Graphics and animations

Graphics has admittedly been neglected while focusing on other parts of the game. Needs to be improved and expanded, recreating the style of classical Japanese woodblock prints.

Custom scenarios

Add different victory conditions and scoring mechanisms other than last-man-standing, like capture-the-flag, king-of-the-hill, free-for-all, etc. Also add historical and fictional scenarios of different types (meeting engagements, ambushes, sieges, etc). And improved battle AI scripting for solo play scenarios.

Contextual battles

Add ability to play battles where the outcome matters in the context of a larger scope, such as ladders and competitions like tournaments and leagues, as well as the more traditional strategic campaign mode of play.

Other periods

Extend the platform to new periods, to ancient, medieval, napoleonic times, etc.