I'm aware that p2p multiplayer games are something hard to code. My idea takes in account that you have nodes/supernodes for each client/server. So, when you came into some specific area where a supernode is already working, game client switchs to it as main server, later all supernodes syncs between them to keep data integrity, or as soon as you move to another supernode or became one. Anyone in that network scenario could became a supernode, as any client could upscale as needed.

On the pros side, you could play solo or with your friends (multiplayer is an option).

On the cons side, you may need humongous disk space for user data validation, once you became a supernode. A house keeping mechanic must be implemented to make this viable. A tracker server may be needed to be able to sync nodes/supernodes.

This is just a project on planning stage. I know there are lots of things/condition to foresee/consider.