Understanding what to use and when..

Options
I am new to networking in games, and I have a question about Photon Cloud: When using Photon Cloud, who is the authority?

I've got a work in progress that displays the rooms, and allows you to join/create a room. Players within the same room can walk around independent of each-other. The positions are synced and interpolated as was suggested in the Marco Polo tutorial. This visually shows a good amount of progress, except that I know if I open up Cheat Engine, I could start playing around with my health values, positions, etc. As far as I can see, each client is responsible for its own state.

The other problem I have is if I want a dedicated room, do I have to run an instance of the game (in my case a Unity3D app)?

I could see a potential solution of writing my own .NET app that keeps a room open, and acts as an authority for the room. I could pass requests for health changes, position changes, etc. I just need some more clarity in this area.

Comments

  • Tobias
    Options
    What is a dedicated room?
    If you want a certain room name to be in the rooms list even if it's currently not in use: Fake it. Check the room list and if something is missing, just add the room you want listed.

    Cheating:
    PUN does not have a special / hosted client. You could check certain cheats on a selected client (master client) or on all clients. If the collective detects a cheat, they could kick the client who's cheating.
    If you need total cheat protection, you could use our server SDK and make it clever enough to track cheats and disconnect clients. Possible but quite some effort.
  • Tobias wrote:
    What is a dedicated room?
    If you want a certain room name to be in the rooms list even if it's currently not in use: Fake it. Check the room list and if something is missing, just add the room you want listed.

    I guess what I am getting at is trying to fake a dedicated server by creating a room that is always running. You're right I could just create the room if its not there, or use it if its already been created.

    I am trying to create a persistent world, where the server (not anything touched by a player) has the authority over the game logic and flow. The client would make requests and guess until corrected. Is this not the standard?

    Are there any materials on architecting a game using Photon Cloud?
  • I'm also new to networking using Unity and Photon, but from other, prior experience: what's to stop you from simply configuring your server client to log in to the Photon server cloud simply to create a room, and run persistently while waiting for players to join?

    That is, in a sense, a dedicated server. You'd be holding a dedicated room, and obviously your script that logged in, created the space, and ran in the background would be in control of the game flow to like you desired.

    If this isn't something viable, or is somehow fundamentally different to what the original poster is after, I'd like to hear the nuances between the two examples for my own education.
  • Tobias
    Options
    Storm: The Photon Cloud is not built for persistent worlds. When the last player leaves a room, anything in it gets discarded.
    You can use the Photon Server SDK to implement what you need, including fixed, static rooms and server logic or you could combine Cloud with any other service that provides persistency.
  • artician wrote:
    I'm also new to networking using Unity and Photon, but from other, prior experience: what's to stop you from simply configuring your server client to log in to the Photon server cloud simply to create a room, and run persistently while waiting for players to join?

    That is, in a sense, a dedicated server. You'd be holding a dedicated room, and obviously your script that logged in, created the space, and ran in the background would be in control of the game flow to like you desired.

    If this isn't something viable, or is somehow fundamentally different to what the original poster is after, I'd like to hear the nuances between the two examples for my own education.

    This is in theory what I was suggesting. But based on what Tobias has said, I think I'll switch to using the Server SDK.
    Tobias wrote:
    Storm: The Photon Cloud is not built for persistent worlds. When the last player leaves a room, anything in it gets discarded.
    You can use the Photon Server SDK to implement what you need, including fixed, static rooms and server logic or you could combine Cloud with any other service that provides persistency.

    That makes a lot of sense. Thank you for your patience with me on this. I'll start looking into the Server SDK.
  • Tobias
    Options
    In case you didn't find this yet, there is a tutorial which (hopefully) shows some basics of server development, too:
    http://doc.exitgames.com/photon-server/HelloWorldPart1
    http://doc.exitgames.com/photon-server/HelloWorldPart2
  • Tobias wrote:
    In case you didn't find this yet, there is a tutorial which (hopefully) shows some basics of server development, too:
    http://doc.exitgames.com/photon-server/HelloWorldPart1
    http://doc.exitgames.com/photon-server/HelloWorldPart2

    Is it possible to run a server from my laptop for testing purposes?
  • Tobias
    Options
    If it's a Windows machine, yes.
    See: http://doc.exitgames.com/photon-server/ ... st%20Steps

    You can download the server and your personal 100 CCU license from the download page.
    https://exitgames.com/download/photon
  • Awesome. I just went through and looked at A LOT of the reference material. I'll be sure to ask more questions in a separate thread :D
  • neoneper
    Options
    Hello friends. First I would like to say that it is a huge pleasure to be part of this community. I do not speak English Fluently. Please use your responses in formal words of easy translation. This will help me a lot in good understanding .

    I have a doubt equal to our fellow owner of the topic.
    I am interested in creating an MMO game that consists of a dedicated server that manages data concerning all connected clients.
    I do not want to use Rooms , because the game consists of only one Big world.

    I'm doing test using < PhotonServer 3 > and Unity 4. But My difficulty is in discovering the correct way to create the (Client Server). "That guy who" will open the World and receive data packets from all clients connected to the validation coordinates and then re-send the data back to connected clients and or customer specific.
    Tobias wrote:
    In case you didn't find this yet, there is a tutorial which (hopefully) shows some basics of server development, too:
    http://doc.exitgames.com/photon-server/HelloWorldPart1
    http://doc.exitgames.com/photon-server/HelloWorldPart2

    I'm already understanding ways of connecting to the server, but I do not understand how I can create my server which is also a client. However a "Client Server"... I do not know if I can make myself understood.

    Thanks in advance and sorry for digging up an old topic. I believed that for be the same question could be more useful to use the same topic. I hope I have done right
  • Tobias
    Options
    Photon does not use "Client Servers". It always has a Dedicated Server that clients connect to and that receives all actions of clients and broadcasts the results to interested clients / players. For am MMO, this is important.
    Making a seamless world with the PUN client framework is not the best way you can approach this either. It's not built with interest management in mind but you will need that desperately in an open world.
    Please check out the Photon Server SDK and the "MMO Application" it contains. Questions about this should go into the "Server" subforum.