Parallel sessions & security, host/peers vs server/client

Discussion and feedback on Construct 2

Post » Fri Oct 10, 2014 2:37 pm

DUTOIT wrote:You will never be able to stop cheats or hacks. No system is secure.


Yes, I am aware :) And I'm not trying to stop cheating, I'm trying to find a sensible architecture that would fit "easily" with Construct 2 built-in services, and that would make cheating non-trivial.

There is a big difference between "let everyone run the game and push random data around" and "have the game logic validated by an entity the developer controls". The second, and traditional choice for commercial games, at least limits the scope of the cheating and makes it somewhat difficult.

I think the consensus so far is to go for the solution I described as "scenario 2" in the initial post (1 host the dev controls, every player is a peer), and use DuckfaceNinja's proposal on datastructures to handle multiple game sessions in parallel.

Unless there are other suggestions, I guess that's what I'll be investigating next ! I already have some host/peer running, but I'll need to start measuring bandwidth requirements...
Image
B
23
S
9
Posts: 237
Reputation: 2,207

Post » Fri Oct 10, 2014 2:46 pm

Salt ;)

recieved = data&salt
salt2=right(recieved, count)
salt=salt passed
else
failed

@DuckfaceNinja is lightyears ahead of everyone when it comes to multiplayer. Whatever he says, he has good reason for saying it. So go with his expertise ;)
You think you can do these things, but you can't, Nemo!
Just keep reading.
Just keep learning.
B
65
S
16
G
9
Posts: 1,429
Reputation: 12,708

Post » Fri Oct 10, 2014 3:01 pm

Ah ah, well, at least this thread confirms I haven't missed anything obvious that would make it all very easy :)
Image
B
23
S
9
Posts: 237
Reputation: 2,207

Post » Fri Oct 10, 2014 9:59 pm

DUTOIT wrote:@DuckfaceNinja is lightyears ahead of everyone when it comes to multiplayer. Whatever he says, he has good reason for saying it. So go with his expertise ;)

Well I wouldn't say I'm ahead of anybody in terms of MP, it might be true that I'm using it more and longer than anybody else, given the complexity of my project ;) . Most of the knowledge gained are lessons learnt, so there are things that I said can be wrong at time too, I'm actually in dire need to discuss how to MP constructively but I guess the adoption hasn't reach it's matured stage yet... Anyway, it's always a good thing to be able to discuss anything about MP :D

Refeuh wrote:I already have some host/peer running, but I'll need to start measuring bandwidth requirements...
I think you might want to hold out on that thought first, because I don't think it is helpful to measure anything without actually seeing the actual data comes in/out. I think the best practice is to always build your events by considering network load in mind, especially the host. There are things that you can let the peer to process instead of host, so prioritize the logic but for a start, let the host do all the logic first until you have good grasp on which logic can be leveraged.

If you want to measure your bandwidth, you might want to avoid mistake I did in human error.
B
28
S
8
G
4
Posts: 553
Reputation: 4,914

Post » Fri Oct 10, 2014 10:28 pm

There are things that you can let the peer to process


Definitely ! Usually, when cutting it down to the core critical gameplay logic, there isn't that much in terms of processing that needs to be happening on a dev-controlled server/host.

Though if the idea is to go with the suggested scenario (i.e. 1 host handling multiple game sessions in parallel, every player is a peer), I'll want to have realistic estimates for min/max bandwidth bounds (i.e. knowing the load I can put on the host connection, how much game sessions can it handle at the same time), to assess the practicality of the whole solution. A working technical implementation that is not viable in terms of scalability wouldn't get me very far, therefore this is still a major risk.

Coming from a background of much lower-level programming (consoles, etc.), it is always tempting to try to push the boundaries, but beyond a certain point it simply becomes counter-productive (time invested vs. technical advantage)

Btw, thanks for all the input :) It's always great to be able to bounce ideas and make sure we're not missing the obvious !
Image
B
23
S
9
Posts: 237
Reputation: 2,207

Post » Sat Oct 11, 2014 5:44 am

DuckfaceNinja wrote:Well I wouldn't say I'm ahead of anybody in terms of MP, it might be true that I'm using it more and longer than anybody else, given the complexity of my project ;) . Most of the knowledge gained are lessons learnt, so there are things that I said can be wrong at time too, I'm actually in dire need to discuss how to MP constructively but I guess the adoption hasn't reach it's matured stage yet... Anyway, it's always a good thing to be able to discuss anything about MP :D


That is the point - lol, you have dedicated more time to mp than anyone else.

I think we are all trying for the same thing, and agree we maybe need a way to collectively discuss MP.
I can do some pretty advanced things, but it really takes awhile to wrap my head around MP... I'm struggling - lol.
I can write my own Multiplayer system, but I am determined to figure this beast out... the possibilities are huge with using webtrc.
Just juggling to many things at the moment, so my focus is divided.
You think you can do these things, but you can't, Nemo!
Just keep reading.
Just keep learning.
B
65
S
16
G
9
Posts: 1,429
Reputation: 12,708

Previous

Return to Construct 2 General

Who is online

Users browsing this forum: tarek2 and 7 guests