I think this might be a very interesting debate. As an open-source game developer, I’ve been greatly intrigued by the idea of game engines using the IPFS protocol for storage. This is especially the case for games with realtime worlds or collaborative editing, which could make great use of direct storage to IPFS. Some great examples are virtual worlds like Second Life or sandbox games such as Minecraft.
Let’s take the later example as it’s more common to everyone. Suppose you want to create a Minecraft server where you and your friends play: First you have to configure and run the server application provided by Minecraft in order to start the server up. You and your players are then limited to the server uptime your machine can provide… close the binary and the whole thing goes down. You also have to host all of the data, which for some games can be a bit straining on drive space.
Now let’s imagine someone forked Minecraft, implemented an IPFS library in the engine, and used it for all forms of world storage… OrbitDB would be a good candidate so let’s assume its model. Whenever you create a new world, it gets registered as a database within Orbit. Every game is now referenced as the ID of that database, you connect to a world by pasting in its hash. The creator of the world is registered as its owner based on their public key, and can give other keys various forms of access to join or modify given parts the world. When a player preforms any action that edits the world, any changes cause the database to be updated and new files to be referenced… for instance, if every chunk (Minecraft’s term for storing a cubic area of voxels) is saved as one file, placing or removing a block there generates a new chunk file then updates the database to reference it. There would no longer be a server doing the computing, each client processes the changes to be made… obviously this opens the gates to trolls and cheaters, so there will need to be some form of verification to make sure the game’s rules are respected and people aren’t adding or deleting whatever they want, for instance by asking multiple game clients to agree on every change.
Virtual worlds like Second Life would further benefit from this model; They allow people to upload models / textures / sounds from in-game and use them immediately. IPFS would provide a wonderful alternative over the standard client - server architecture here: Every SL user would upload directly to IPFS, each asset stored in its network with no server having to host it. It would essentially be what DTube and BitTube are doing as video platforms, except for virtual worlds to provide each and every assets.
Modding in general would become easier as you’d no longer need to manually download or update any game files: The developers of a game can make changes to the game directly in IPFS, making them immediately effective to all players. This may lead to increased control and potential censorship if not done carefully, but as an update or content installation tool it would be very effective.
Overall I believe adopting IPFS in gaming would revolutionize multiplayer the same way it’s going to revolutionize the web. Games can ditch the old “one server, multiple connected clients” policy, introducing a new paradigm in which anyone can make a world that can be joined by any player in the world at any given moment. Just as with the everyday web, this would remove the burden of having to host every part of a site on your servers, needing to ensure 24/7 uptime for your users, and being directly liable for what your user do since you’re exclusively making it available.
I would very much like to know what people think of this. Do you see IPFS being used for storage by multiplayer games? Also are you aware of any game engines that have attempted to implement the IPFS library for the purpose of serverless online experiences? If so please mention them here as it would be very interesting to see this idea in action!