4 Add'l brevity
source | link

I would like to buildcreate a multiplayer mobile game that works without an internet connection, and allows a group ofwhere players to play together over Wifi P2P or Bluetooth. Batteries fail, howeveran ad-hoc network, and sometimes players wantwith no internet connection required. Players should be able to find their chargerjoin and rejoinleave mid-game, and sometimes they can't, so the app cannotgame should not rely on a leader/server/host"host" device being online.

How can I coordinate game state across multiple devices in a Wifi P2P or Bluetooth group, tolerate a player running out of batteries,an ad-hoc network and allow playersany player to join and leave mid-game?

I would like to build a multiplayer mobile game that works without an internet connection, and allows a group of players to play together over Wifi P2P or Bluetooth. Batteries fail, however, and sometimes players want to find their charger and rejoin, and sometimes they can't, so the app cannot rely on a leader/server/host device being online.

How can I coordinate game state across multiple devices in a Wifi P2P or Bluetooth group, tolerate a player running out of batteries, and allow players to join and leave mid-game?

I would like to create a multiplayer mobile game where players play together over an ad-hoc network, with no internet connection required. Players should be able to join and leave mid-game, and the game should not rely on a "host" device being online.

How can I coordinate game state across multiple devices in an ad-hoc network and allow any player to join and leave mid-game?

3 Brevity
source | link

What is How can a failure-tolerant way to manage mobile multiplayer game manage state over a local network?

Background

I'd I would like to turn my favorite card game intobuild a multiplayer app. Since people play cards in all sorts of places, I don't want it to requiremobile game that works without an internet connectivity — games should be ableconnection, and allows a group of players to be playedplay together over Wifi P2P andor Bluetooth. Mobile devicesBatteries fail often due to battery issues and heavy use, so I'd also like to avoid a client-server design where one device "hosts" the game and the other devices act as clients, because the host could go down. Since some device failures can be recovered (your charger is nearby)however, and other times they cannot, I would also like to supportsometimes players joining and leaving mid-game. Since "playing cards" and "replicated, consistent, mobile-optimized state machine with membership changes" are, in my judgement, separate concerns, I'd like to use or create a library to do the latter.

My Task

What is a good high-level architecture for a replicated, consistent, mobile-optimized state machine with membership changes?

Some Related Concerns

I'm not asking for answers to these questions, I just want to share where I'm having trouble making design decisions.

Do such libraries already exist for Androidfind their charger and iOS? (I am not asking for recommendationsrejoin, I just want to avoid reinventingand sometimes they can't, so the wheel)app cannot rely on a leader/server/host device being online.

Are there current algorithms IHow can build on top of?

  • Do I use an artisanal blockchain designed to coddle weak CPUs?
  • Do I just blast UDP messages over a fully connected mesh topology and call it good enough?
  • Do I use a consensus library or a well-known replicated database?
  • Do I use an existing consensus library and make iOS and Android libraries that provide Wifi P2P and Bluetooth adapters?
  • Since RethinkDB server only supports i86 and i86_64, is that not an option for mobile?

What language should I use?

  • Should I write a common implementation in C++ and provide bindings to Android & iOS
  • Should I write separate Java and Swift libraries that implement a common contract?

Also:

  • Performance-wise, will this work for real-time apps as well as turn-based games?
  • Is LAN Party a cool name for a library?

That last question wascoordinate game state across multiple devices in a joke. AgainWifi P2P or Bluetooth group, I'm not looking for answers to all the related questionstolerate a player running out of batteries, I just wantand allow players to document my thinking so far.join and leave mid-game?

What is a failure-tolerant way to manage mobile multiplayer game state?

Background

I'd like to turn my favorite card game into a multiplayer app. Since people play cards in all sorts of places, I don't want it to require internet connectivity — games should be able to be played over Wifi P2P and Bluetooth. Mobile devices fail often due to battery issues and heavy use, so I'd also like to avoid a client-server design where one device "hosts" the game and the other devices act as clients, because the host could go down. Since some device failures can be recovered (your charger is nearby), and other times they cannot, I would also like to support players joining and leaving mid-game. Since "playing cards" and "replicated, consistent, mobile-optimized state machine with membership changes" are, in my judgement, separate concerns, I'd like to use or create a library to do the latter.

My Task

What is a good high-level architecture for a replicated, consistent, mobile-optimized state machine with membership changes?

Some Related Concerns

I'm not asking for answers to these questions, I just want to share where I'm having trouble making design decisions.

Do such libraries already exist for Android and iOS? (I am not asking for recommendations, I just want to avoid reinventing the wheel).

Are there current algorithms I can build on top of?

  • Do I use an artisanal blockchain designed to coddle weak CPUs?
  • Do I just blast UDP messages over a fully connected mesh topology and call it good enough?
  • Do I use a consensus library or a well-known replicated database?
  • Do I use an existing consensus library and make iOS and Android libraries that provide Wifi P2P and Bluetooth adapters?
  • Since RethinkDB server only supports i86 and i86_64, is that not an option for mobile?

What language should I use?

  • Should I write a common implementation in C++ and provide bindings to Android & iOS
  • Should I write separate Java and Swift libraries that implement a common contract?

Also:

  • Performance-wise, will this work for real-time apps as well as turn-based games?
  • Is LAN Party a cool name for a library?

That last question was a joke. Again, I'm not looking for answers to all the related questions, I just want to document my thinking so far.

How can a multiplayer game manage state over a local network?

I would like to build a multiplayer mobile game that works without an internet connection, and allows a group of players to play together over Wifi P2P or Bluetooth. Batteries fail, however, and sometimes players want to find their charger and rejoin, and sometimes they can't, so the app cannot rely on a leader/server/host device being online.

How can I coordinate game state across multiple devices in a Wifi P2P or Bluetooth group, tolerate a player running out of batteries, and allow players to join and leave mid-game?

    Post Closed as "too broad" by gnat, Bart van Ingen Schenau, Robert Harvey, amon, user22815
2 Focus on main question, clarify I don't want recommendations, clarify the joke was a joke.
source | link

What is a failure-tolerant way to manage state in a multiplayer mobile multiplayer game state?

Background

I'd like to turn my favorite card game into a multiplayer app. Since people play cards in all sorts of places, I don't want it to require internet connectivity — games should be able to be played over Wifi P2P and Bluetooth. Mobile devices fail often due to battery issues and heavy use, so I'd also like to avoid a client-server design where one device "hosts" the game and the other devices act as clients, because the host could go down. Since some device failures can be recovered (your charger is nearby), and other times they cannot, I would also like to support players joining and leaving mid-game. Lastly, sinceSince "playing cards" and "replicated, consistent, mobile-optimized state machine with membership changes" are, in my judgement, separate concerns, I'd like to use or create a library to do the latter.

AMy Task

What is a good high-level architecture for a replicated, consistent, mobile-optimized state machine with membership changes. How.?

Some Related Concerns

I'm not asking for answers to these questions, I just want to share where I'm having trouble making design decisions.

Do such libraries already exist for Android and iOS? (I am not asking for recommendations, I just want to avoid reinventing the wheel).do

Are there current algorithms I do thatcan build on top of?

  • Do such libraries already exist for Android and iOS?
  • Do I haveuse an artisanal blockchain designed to build my own library on top of another algorithmcoddle weak CPUs?
  • Do I usejust blast UDP messages over a consensus libraryfully connected mesh topology and call it good enough?
  • Do I use an artisanal blockchain designed to coddle weak CPUsa consensus library or a well-known replicated database?
  • Do I use an existing consensus library, e.g. Zookeeper or Raft, written in C++, and make iOS and Android libraries that provide Wifi P2P and Bluetooth adapters?
  • Do I make an Android library in pure JavaSince RethinkDB server only supports i86 and i86_64, is that not an iOS library in Objective Coption for mobile?

What language should I use?

  • DoShould I just blast UDP messages overwrite a fully connected mesh topologycommon implementation in C++ and call it good enoughprovide bindings to Android & iOS
  • Should I write separate Java and Swift libraries that implement a common contract?

Also:

  • WillPerformance-wise, will this work for real-time apps as well as turn-based games?
  • Is LAN Party a cool name for a library?

That last question was a joke. Again, I'm not looking for answers to all the related questions, I just want to document my thinking so far.

What is a failure-tolerant way to manage state in a multiplayer mobile game?

I'd like to turn my favorite card game into a multiplayer app. Since people play cards in all sorts of places, I don't want it to require internet connectivity — games should be able to be played over Wifi P2P and Bluetooth. Mobile devices fail often due to battery issues and heavy use, so I'd also like to avoid a client-server design where one device "hosts" the game and the other devices act as clients, because the host could go down. Since some device failures can be recovered (your charger is nearby), and other times they cannot, I would also like to support players joining and leaving mid-game. Lastly, since "playing cards" and "replicated, consistent, mobile-optimized state machine with membership changes" are, in my judgement, separate concerns, I'd like to use or create a library to do the latter.

A replicated, consistent, mobile-optimized state machine with membership changes. How...do I do that?

  • Do such libraries already exist for Android and iOS?
  • Do I have to build my own library on top of another algorithm?
  • Do I use a consensus library?
  • Do I use an artisanal blockchain designed to coddle weak CPUs?
  • Do I use an existing consensus library, e.g. Zookeeper or Raft, written in C++, and make iOS and Android libraries that provide Wifi P2P and Bluetooth adapters?
  • Do I make an Android library in pure Java and an iOS library in Objective C?
  • Do I just blast UDP messages over a fully connected mesh topology and call it good enough?
  • Will this work for real-time apps as well as turn-based games?
  • Is LAN Party a cool name for a library?

What is a failure-tolerant way to manage mobile multiplayer game state?

Background

I'd like to turn my favorite card game into a multiplayer app. Since people play cards in all sorts of places, I don't want it to require internet connectivity — games should be able to be played over Wifi P2P and Bluetooth. Mobile devices fail often due to battery issues and heavy use, so I'd also like to avoid a client-server design where one device "hosts" the game and the other devices act as clients, because the host could go down. Since some device failures can be recovered (your charger is nearby), and other times they cannot, I would also like to support players joining and leaving mid-game. Since "playing cards" and "replicated, consistent, mobile-optimized state machine with membership changes" are, in my judgement, separate concerns, I'd like to use or create a library to do the latter.

My Task

What is a good high-level architecture for a replicated, consistent, mobile-optimized state machine with membership changes?

Some Related Concerns

I'm not asking for answers to these questions, I just want to share where I'm having trouble making design decisions.

Do such libraries already exist for Android and iOS? (I am not asking for recommendations, I just want to avoid reinventing the wheel).

Are there current algorithms I can build on top of?

  • Do I use an artisanal blockchain designed to coddle weak CPUs?
  • Do I just blast UDP messages over a fully connected mesh topology and call it good enough?
  • Do I use a consensus library or a well-known replicated database?
  • Do I use an existing consensus library and make iOS and Android libraries that provide Wifi P2P and Bluetooth adapters?
  • Since RethinkDB server only supports i86 and i86_64, is that not an option for mobile?

What language should I use?

  • Should I write a common implementation in C++ and provide bindings to Android & iOS
  • Should I write separate Java and Swift libraries that implement a common contract?

Also:

  • Performance-wise, will this work for real-time apps as well as turn-based games?
  • Is LAN Party a cool name for a library?

That last question was a joke. Again, I'm not looking for answers to all the related questions, I just want to document my thinking so far.

1
source | link