Currently in progress
Save game revamp
I plan to switch the game to save all previous games by default. The storage space is tiny. This will also involve a new section combining the functions of the current load game screen and game stats screen.
Automatically discovered game modes
Since fairness calculations based on game simulations have been improved, I can now see which game modes are fairer than others. At the moment the results are only based on game modes people have actually tried though. To improve the situation I plan to do a few things. First is to run the simulation more for modes that look promising - simulations with a few runs are unlikely to be accurate. More interesting is to take the promising modes and mutate them - change one of the properties slightly - and then simulate that. This essentially becomes a simple genetic algorithm for finding fairer games.
The first results of this have been mixed. After playing with it for a while I’ve decided a more restricted search would be more interesting. Finding the best possible game modes out of all possible variations is quite daunting. Finding the best game mode that is “reasonably similar” to a specific one might be more more useful.
This will become a key part of any online multiplayer, but I plan to have it working offline too.
It is likely to be Elo based, but with modifications to deal with requirements that most games don’t have. First is multiplayer. I won’t be the first to deal with this using an Elo-like system, and there are a few ways to handle it that all seem reasonable. The other big requirement is inherently unfair games, and my research on this topic has found no existing material on this.
Most games are designed to give each player an equal chance of winning, or at least as close as possible. And, for games played seriously like chess, a single match involves playing several games in which the advantage alternates between players so the match as a whole is considered fair.
Tic-tac-toe Collection has mostly unfair games. But, they are at least quantifiably unfair. This means I should be able to take that into account as part of a rating system. Early investigations are promising.
At the moment the only difference between the difficulties is how long the AI searches for. There are a couple of other parameters however. There is one for changing the bias between promising moves and unexplored moves, as well as one for how ties are scored compared to wins and losses. My plan is to expand this into different AI profiles that could vary these parameters more. Combined with allowing them to get ratings just like normal players this means the better parameters would actually be discovered over time.
I’m also planning to give the AI names.
Campaign has gotten very little love since I added it. It’s a little buggy around progression, I don’t really like the easy/medium/hard split, and there are new game modes that need to be added.
I have a plan developing in my head to make the choice of the game modes to be semi-automated (which is going to be more important over time as more game modes are added). I will probably keep the existing campaign as a kind of legacy mode.
A big one that I’ve been intending to do for a while. In many ways it will be simpler than local network multiplayer but requires a commitment to some server resources. The plan includes both private games and matchmaking.
This makes more sense in the context of online multiplayer. I imagine a game mode in which several players “vote” on which move to play.
The simplest form is splitting users into two groups (possibly randomly, possibly with a choice) and have them play a game against each other. Everyone chooses the move they would play and after a certain time limit the most popular move is played.
The most basic would be to simply track the number of wins and losses as you repeatedly choose “rematch”. There could also be a predetermined match length (best of 5 for instance). I also plan to add timer options, including a simple per move timer and possibly chess clock timing.
Other game modes
Including but not limited to:
- Ultimate tic-tac-toe
- Wild tic-tac-toe
- Quantum tic-tac-toe
- Order and chaos
- 3D tic-tac-toe
A new infinite board size. Moves would be restricted to being within one square of the current minimum and maximum row and column. As well as an option of being infinite in both directions, there would be infinite in one direct but something else in the other direction. I believe the complete list of new topologies would be:
- Infinite plane
- Infinite horizontal strip
- Infinite vertical strip
- Infinite horizontal cylinder
- Infinite vertical cylinder
- Infinite horizontal Möbius strip
- Infinite vertical Möbius strip
A natural extension to sharing game modes is to allow users to share whole games with history.
The ability to broadcast games to AppleTV. You could already just broadcast an iOS device’s screen but it’s possible to completely customize what appears on each screen. This would mean slightly tweaked UI with interactive elements hidden.
This could possibly include other broadcast formats like using a Chromecast but Airplay from iOS is much easier to implement.
This has always been something I wanted to do. The game has worked to some degree on Windows on and off, but somethings didn’t quite work so well (partly because Xamarin Forms support for Windows is a lower priority). The recent announcement that Microsoft are discontinuing their native advertising platform makes this a lower priority. Except the next point might make it happen anyway…
In theory UWP apps will just run on an Xbox One with minimal changes and can be made available as with plain apps, or games via the Creators Collection. To actually make the game fun to play though a lot of work will need to be done to make the controls actually feel like a console game.
Topology options improvements
Advanced options got too long. I made a separate popup to handle board settings, including width, height, topology and cell reuse into a popup.
Sharing game modes
You can now share game modes with other users.