There is another possibility on Xaya and I believe Ethereum has implemented as well now. On Xaya they are called game channels. The idea is that you allow a side branching chain to develop between an arbitrary number of people, then when a game is over you inject the end of the side chain back into the main chain and verify it. They invented it for near realtime verification between consenting parties, then you only pay the main transaction fee when you get back on the main block instead of very every action. But that type of system doesn't have to be only done with games obviously, that could be applied to anything.
If you are interested more in it, you can check this video out. They have lots of documentation and tutorials for the network as well.