Unity and Photon Question
Hi guys!
I was hoping someone may be able to help me with something I can't get my head around. I've been working with Unity for a while now and I recently branched off into iOS games. I've created a few small iOS games with Unity, but now I really want to try something bigger. I would like to make an iOS MMO game.
I've been studying up on the topic and I want to make my game server hosted. I want to separate the client side from the server to minimize the possibility for cheating/hacking. I also want to self-host my server so that I can have complete control and freedom to customize as necessary. I decided I will use Amazon's AWS EC2 for my server and Photon for my multiplayer & chat engine. I believe I understand how to set up the server with Photon's Server SDK (I've watched their tutorial, but it's outdated and I have yet to actually try it) but, I really don't understand how I can get my client side to communicate with my server side operations.
I would like the server to handle the player's login and authentication, store player information and buffs in Amazon's NoSQL database for data persistence across multiple devices, synchronize player actions and movements and general gameplay things like that so the server is in essence a simulation of the game. I would also like the client side to really only handle rendering the UI and user input and sending its commands to the server to carry out the action in its simulation and send back the result for the client side to render. I believe with time I will be able to create this functionality, but I'm really not sure how I will separate the client from the server. I've done some uNet FPS games before but its always been that one client is also the server and it was not a separate server authority type situation. I'm assuming to do this I will need to create two separate Unity projects, but then how will I get them to communicate with each other? Is it as simple as setting the Photon connection settings to self-hosted and entering my server details or is there more to it?
This is such an under covered topic about Unity, if anyone can point me in the right direction or help describe what I should be doing to get this type of functionality? Thanks in advance! I appreciate the help!