Hello everyone, I was able to discover recently Photon and I came across your interesting exchanges while working for a few days on basic concepts in order to master the beast.
It was a bit - or even a lot - tricky but much less than with my attempts via Scirra's Multiplayer object in its current state.
At this stage, I can generate players with permanent update of their position (at each tile change to save bandwidth or at each rounded X or Y coordinate change for more fluidity).
Each player present in the game - or each new player who joins a party - sees the other players in their true position, the same with bullets which are each attached to a single key and common to all players in order to manage collisions and "paternity" of players for each projectile (no other artificial object to simulate bullets, each bullet = just a real single bullet for everyone and identified by its unique key). A different path than yours Savvy001, but really appreciate your approach on all points !
Same principle with mobs and pathfinding (a bit more complicated to execute than bullets cause - among other things - a mix with update players position). Here too, the "filiation" of a mob via a unique key and common to all, allows to manage the events of each mob for everyone. Unlike bullets and facing sometimes the complexity of an AI, each MOB is actually controlled by a single player (the one who spawns it), which then redispatches updates to other players. If the "owner" player leaves the game, another player takes over the mob's unique key to control it and continue "raise" updates to, again, other players and so on...
Well, today I'm at this last point on mobs and it is not finished, I still have a lot of work if I want to continue to improve this part and the whole. That said, it really starts to run well and in a very coherent way, so in the end all my hopes were not in vain.
I wanted to take this opportunity to tell you that I had many problems with cache functions, however, and using other tricks, I finally get through the "RemoveFromRoomCache" function without Data and just with a past TargetActor argument, to empty the "stack" of events from, for example, all the positions of a single player, in order to add only the last and therefore more recent one.
Thus, and for example, when a new player joins a current game, he does not have to load all the movements of other players but only their last known position. This inevitably brings an enormous saving in bandwidth but also reinforces the coherence of all positions of all players, whatever the context.
I have to admit that I didn't get much sleep last 72 hours, drinking a lot of coffee, the multiplayer approach being something very different compared to single/local method and each step can be purely nightmarish... Moreover, the lack of documentation and content for Construct 2 has absolutely not made the job easier.
However, this was much simpler than with the C2 object! That said, and with the arrival of Construct 3, I guess with hope (and impatience) than Ashley and his team still reserve us other new (“good” lol) surprises on improving and simplifying their multiplayer features too.
ThePhotons (Vadim), it's been a while since your Scirra SDK seems to exist. Even if it has already been asked here some time ago, could you please give us more information on the future of the plugin, improvement of its integration, new templates for use it correctly and better in Construct 2? I confess that for the moment, the situation is a little bit desertic, and all what we can find is very simple and/or buggy without advanced example.
Thank for your lighting and your support. Any other Photon feedbacks and information from all of you are welcome.
Best regards, Sébastien