Xayaships is a blockchain version of the classic naval warfare Battleship game. Battleship has been around since at least the 1930s, but it was in 1967 that Milton Bradley created the plastic board and peg version that most people are familiar with. Its rules are relatively simple but gameplay is relatively quick and perfect to demonstrate the cutting edge Game Channels technology that Xaya allows.
There are many different variations on the rules for Battleship. Xayaships adopts a simple set of rules that are in common use.
When calling a shot, if it’s a hit, the hit is noted but which ship that is hit, isn’t. Also, after a hit, that player gets to fire again. As in all variants, when all ships are sunk on one side, that side loses and the opponent wins.
Blockchain suffers from many drawbacks and the most commonly spoken about is scalability.
Scalability for blockchain gaming means a few things:
- Transaction speeds
- Blockchain bloat
- Game complexity
The latter is solved by the unique method of how game states are computed on the Xaya platform.
The first 2 are solved with game channels technology. Read on.
Game Channels are a major technological achievement for blockchain. The academic paper can be found here. They facilitate near infinite scalability for games or dapps running on the blockchain and allow near real time gameplay (limited by network speeds).
Xayaships demonstrates Game Channels for developers and shows how they can create near real time games that run entirely on the blockchain in a trustless and decentralised way.
With respect to the Xaya platform, Game Channels can be thought of as individual payment channels that games run in.
They work by submitting a special transaction on the Xaya blockchain that creates a channel which other players can join. For Xayaships, when a channel is opened directly between 2 participants, real time gameplay can begin. In game channels the number of transactions can be unlimited, for free, and the speed is only limited by the network latency between the 2 players. Once a game is complete the winner can prove he won by posting the state to the blockchain. The other player can try to dispute it, but in the end the real winner will win as he has all the signed moves of the other player which prove he lost.
In all, a complex and real-time game can be played in a trustless, decentralised, provably fair way with little transaction fees and massively reducing blockchain bloat.
Unity Frontend DOWNLOADS
Instructions / Guide > https://github.com/xaya/xaya_tutorials/wiki/Xayaships
Unity Front End / GUIs (updated to 0.1.2 fixes pathing issues on windows)
Windows (includes prebuilt backend binaries) > https://xaya.io/downloads/xayaships_win_0.1.2.zip
Linux – you will need to build libxayagame and sudo make install and sudo ldfconfig for this to work > https://xaya.io/downloads/xayaships_linux_0.1.1.zip
Mac – untested – but you will at least need to make libxayagame and install etc (will have issues with names with spaces) > https://xaya.io/downloads/xayaships_mac_0_1.app.zip
The Unity Project can be found here > https://github.com/xaya/xayaships_frontend
Xayaships is fully open source and is included in the libxayagame GitHub repository here. If you build libxaygame it will build shipsd and the ships-channel executables.
Instructions for building libxaygame for Windows and Linux are here:
More information can be found here