Hi,
I apologise if this is covered elsewhere, but I'm stumped and the documentation is confusing me more and more. If there's a definitive answer, then please just link there and I'll be happy
. I also apologise if this is in the wrong place - as you will see below, we don't even know which product we need.
We are trying to build a simple networked game - message traffic will be small and while latency is important, it's not game-breaking. We've been using RabbitMQ up until now, but while our system has simple needs, we'd like to be able to handle many things in ways that seem to be common elements of games - authentication, encryption, reconnection etc.
The actual functionality of our game is trivial by comparison to all of the other stuff that goes on around it. So we're looking at something like Photon. We are experienced C# developers, but networking noobs.
1) Our game is an authoritative server game that runs like an auction. Users place bids in real time, we tell them if their bid was successful, and update them on their state - how many things they own, how much cash they have left, how much the new price is, that sort of thing
2) Some information we send to the clients (cash remaining, number of things owned) is private. Other information is publicly broadcast from the server.
3) All information the clients send to us is private (bids etc)
4) Accessing other players' private information can't happen. Seriously, this is a deal-breaker.
5) Clients don't need to talk to each other directly
6) If we hit the jackpot then we will need to be able to scale up to lots of concurrent users (a few thousand if we're lucky)
You'll note that mention of things like bounding boxes and models are conspicuously absent. We'll probably use a game engine to define the interface, but it won't be complicated at all. Seriously, we're sending through a few integers and doubles. Maybe some decimals.
The only way that I can think of to be certain of preventing players from accessing information intended for other players is to make sure that private information is only sent to the intended recipient - even relying on encryption worries me, unless it comes as standard within photon. I was always taught that if you're doing your own encryption, you're doing it wrong
My confused reading of the documents seems to suggest we need to write a very simple MMO server, but I have no idea how the MMO server limits who receives what information.
So the questions I have are:
A Can photon do what I'm asking (I'm sure the answer is yes, but better to ask now
)
B For this kind of operation (authorative server dealing with clients independently) what solution (Cloud, OnPremise, Other?) should we be looking at?
C Possibly obvious depending on the answer above, but do we need to build a back-end for this? Or do we build a master-client that talks to everyone else in the room?
D Is there an example in any of the SDKs about how to pass restricted information around? Do we just do it all via private messaging?
Sorry for the length, but I wanted to be clear. Also if this stuff is basic, but I really couldn't find any clear answers discussing it. Any help is greatly appreciated.
Thanks for your time in reading this far!
I apologise if this is covered elsewhere, but I'm stumped and the documentation is confusing me more and more. If there's a definitive answer, then please just link there and I'll be happy

We are trying to build a simple networked game - message traffic will be small and while latency is important, it's not game-breaking. We've been using RabbitMQ up until now, but while our system has simple needs, we'd like to be able to handle many things in ways that seem to be common elements of games - authentication, encryption, reconnection etc.
The actual functionality of our game is trivial by comparison to all of the other stuff that goes on around it. So we're looking at something like Photon. We are experienced C# developers, but networking noobs.
1) Our game is an authoritative server game that runs like an auction. Users place bids in real time, we tell them if their bid was successful, and update them on their state - how many things they own, how much cash they have left, how much the new price is, that sort of thing
2) Some information we send to the clients (cash remaining, number of things owned) is private. Other information is publicly broadcast from the server.
3) All information the clients send to us is private (bids etc)
4) Accessing other players' private information can't happen. Seriously, this is a deal-breaker.
5) Clients don't need to talk to each other directly
6) If we hit the jackpot then we will need to be able to scale up to lots of concurrent users (a few thousand if we're lucky)
You'll note that mention of things like bounding boxes and models are conspicuously absent. We'll probably use a game engine to define the interface, but it won't be complicated at all. Seriously, we're sending through a few integers and doubles. Maybe some decimals.
The only way that I can think of to be certain of preventing players from accessing information intended for other players is to make sure that private information is only sent to the intended recipient - even relying on encryption worries me, unless it comes as standard within photon. I was always taught that if you're doing your own encryption, you're doing it wrong

My confused reading of the documents seems to suggest we need to write a very simple MMO server, but I have no idea how the MMO server limits who receives what information.
So the questions I have are:
A Can photon do what I'm asking (I'm sure the answer is yes, but better to ask now

B For this kind of operation (authorative server dealing with clients independently) what solution (Cloud, OnPremise, Other?) should we be looking at?
C Possibly obvious depending on the answer above, but do we need to build a back-end for this? Or do we build a master-client that talks to everyone else in the room?
D Is there an example in any of the SDKs about how to pass restricted information around? Do we just do it all via private messaging?
Sorry for the length, but I wanted to be clear. Also if this stuff is basic, but I really couldn't find any clear answers discussing it. Any help is greatly appreciated.
Thanks for your time in reading this far!