The Future

Sea Wars IV has proven to be an interesting system, with a lot of room for improvement and further experimentation. With more time, there are a number of ideas we could explore.

At the present time we have only created one A.I. player. The client-server architecture would allow us to create other A.I. programs which could compete against each other; this way we could compare the performance of different A.I. techniques.

Specifically, it would be interesting to see the performance of a neural network in the Sea Wars IV environment. We could use the boolean variables already present in the Evaluator as inputs and use the network's output to choose a move. We could also give the neural net the board itself as input, giving each square a value.

It would also be nice to have more sophisticated tools for analyzing the weight files produced during the training session. We could examine how population size, recombination techniques, number of iterations, and game configuration (i.e., number of ships, lengths, board size) affect the evolution of players.

Currently we can only examine weights by hand; it would be nice to have a visualization tool to graph the changes of weights over time. We could determine what initial constraints result in stable weights, and if certain sets of weights tend to develop in different situations.

We could also examine the boolean variables themselves, determining which are more or less important, based on whether their weights tend to go to zero regardless of situation. A ranking of the information itself could be constructed.

At the moment the A.I. has a limited memory. Specifically, it cannot react to how the opponent is playing; being able to adapt would make things more interesting.

There are also possible changes to the game itself.

We could also consider games with more than two players. In this case a successful player would need to be able to fight several different opponent strategies.

Right now a player's firing range is unlimited; a player need not move any ships to successfully shoot enemy ships. If firing range was changed so that a player could only shoot, say, three units away from any ship, moving would become more important. It would certainly be interesting to see how strategies in general change.

Of course, it would also be nice to have a prettier graphical interface, with animated explosions. The interface could be a little more intuitive, also. We have also considered hooking a graphical view of the intelligent player or server, so one could watch a game in progress. A more sophisticated server could allow connecting players to choose what players they would like to play against.