Roadmaps
Blog Other  

Tic-tac-toe Collection has been implemented with a technology called Xamarin Forms. That officially reached end-of-life at the end of April 2024.

There is a natural progression from Xamarin Forms to Microsoft MAUI, but it is a non-trivial amount of work.

Currently in progress

The short term plan is to do as much as possible to enable the MAUI transition to be as smooth as possible while still using Xamarin Forms. This will mainly be removing any dependencies that aren’t supported in MAUI (which means not changing in a user-visible fashion).


Future - Started

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 useful.

Player rating

This will become a key part of any online multiplayer, but I plan to have it working offline too.

It will 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.

An independent implementation of this is largely complete and is documented on my personal blog in the Expanded Elo Rating series.

Future - Not started

AI options

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 improvements

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.

Online multiplayer

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.

Co-op games

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.

Crowd games

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.

Match options

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
  • Notakto
  • Wild tic-tac-toe
  • Quantum tic-tac-toe
  • Order and chaos
  • SOS
  • 3D tic-tac-toe

Infinite topologies

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 direction 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

Sharing games

A natural extension to sharing game modes is to allow users to share whole games with history.

Airplay support

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.

Desktop

This has always been something I wanted to do. The game has worked to some degree on Windows on and off, but some things didn’t quite work so well (partly because Xamarin Forms support for Windows is a lower priority). The switch to MAUI should improve desktop support on Windows, and it also enables macOS support mostly for free.

Xbox One

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.

Monday, May 6, 2024 Mon, May 6, 2024 06 May '24
Roadmaps

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 useful.


Future

Player rating

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.

AI options

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 improvements

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.

Online multiplayer

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.

Co-op games

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.

Crowd games

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.

Match options

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
  • Notakto
  • Wild tic-tac-toe
  • Quantum tic-tac-toe
  • Order and chaos
  • SOS
  • 3D tic-tac-toe

Infinite topologies

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 direction 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

Sharing games

A natural extension to sharing game modes is to allow users to share whole games with history.

Airplay support

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.

Windows

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…

Xbox One

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.


Recently completed

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.

Tuesday, May 5, 2020 Tue, May 5, 2020 05 May '20
Roadmaps

Despite being the “first roadmap”, I retroactively added two previous posts to the roadmap category.

Topology options improvements

Advanced options is getting long. I plan to separate board settings, including width, height, topology and cell reuse into a popup. This will also allow some extra text to explain the topology options.

Dark mode

Fairly self-explanatory. As well as being able to choose light or dark, you’ll be able to choose auto for supported devices (iOS 13 and Android 10). I currently have a black mode in development, which is dark mode but using true black for the background color.

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.

Player rating

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.

AI options

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 improvements

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 may or may not keep the existing campaign as a kind of legacy mode.

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.

Online multiplayer

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.

Co-op games

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.

Match options

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
  • Notakto
  • Wild tic-tac-toe
  • Quantum tic-tac-toe
  • Order and chaos
  • 3D tic-tac-toe
Sunday, October 27, 2019 Sun, Oct 27, 2019 27 Oct '19
Roadmaps
Upcoming dark mode

0.17 has been mostly complete for a while, but release has been slowed by some minor but prominent bugs being hard to nail down.

In the meantime, work on the next few releases has been carrying on regardless. Here is a short list based on approximate order of release:

Topology options - imminent

Why play on a normal flat bounded plane when you could play on a Klein bottle? I plan on writing a longer post explaining this in detail very soon, but for now I’ll leave this as a teaser.

Dark mode - soon

Fairly self explanatory. As well as being able to choose light or dark, you’ll be able to choose auto for supported devices (iOS 13 and Android 10).

Automatically discovered game modes - soon

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.

Player rating - early investigation

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.

AI options - early investigation

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.

Monday, October 7, 2019 Mon, Oct 7, 2019 07 Oct '19
Roadmaps

Tic-tac-toe Collection has been in development for nearly a year and the version number is still less than 1.0, suggesting the game is not yet “complete”. Although my intention is to continue updating the game while ever I can think of interesting things to do, there are specific features that I feel are required that are yet to be implemented.

Online multiplayer

Local network multiplayer has been a feature for a while, but online multiplayer has always been my plan. This includes private matches and matchmaking.

Matchmaking in particular has a lot of interesting issues associated with it because of the large number of game options available.

Ultimate Tic-tac-toe

Ultimate Tic-tac-toe is one of the most well known Tic-tac-toe variations that is actually possible to play competitively. As well as the traditional 9×9 grid with the normal rules, my plan would be support various sizes as well as many of the existing game variations as make sense.

One particularly interesting idea would be to support different rules for the inner and outer grids (like each sub grid being misère while the outer grid is not) and perhaps even different rules for each of the grids. The hardest part of this may well be coming with sensible UX for selecting the options and then communicating them in-game.

Other game variations

There are other game variations I’ve had in mind since I first started. These are probably not absolutely required for 1.0.

As with Ultimate Tic-tac-toe the aim would be to support as many variations as possible.

Multi round matches

Simple best-of-n setups, as well just an ongoing match that keeps track of the score as you keep playing games.

Time limits

A simple time limit per move as well as a chess clock option.

Monday, December 24, 2018 Mon, Dec 24, 2018 24 Dec '18
Roadmaps