Coin-coin le Canapin's Forum Posts

  • When a player creates a new room from the main lobby, it could beforehand make the chat server broadcasting to all peers that this player has created a room. There is no need to request the room list regarding the room creations.

    However, as rooms can't send messages to another room, there is no way for the master lobby to know if another room has been shut down (for example, a room host closing his browser). This is the reason why I need to return and refresh the room list from my master lobby.

    It could be done every 5 secods instead of 1 or 3 seconds, but I'm pretty sure the issue will remain the same. And waiting for more than 5 seconds to actually see the available room is way too long. Anyway, it's still far from "hundred requests in seconds" to flood the server as Ashley mentionned on another thread.

    I could also use a refresh button ; but what if, on average, 30 players hit the refresh button every 20 seconds ? It would be 1 room list request every 1,5 sec, so the issue would be the same again.

    Or maybe it wouldn't because the requests would come from various rooms ?

    (edit : seems to be per peer, as I did theses requests from the host and peer in parallel and they both did 190+ requests)

    I wanted to ask Ashley about my issue but we can't send him private messages from his profile. Any way to contact him besides tagging him as you did ?

  • Would you mind to try this capx ? https://www.dropbox.com/s/mey55anw4rv1d ... .capx?dl=1

    It uses the timer thing and you just have to let it run for about 200 seconds.

    I'm surprised to encounter such an obstacle, refreshing every X seconds the room list is pretty basic for a multiplayer game.

  • Like creating a dummy sprite and assigning it the timer behavior ?

    edit : I've done this

    But the flood issue is still here. No change.

    Hi.

    I'm working on a multiplayer game.

    It will consist of a "master lobby" room (with a chat) and multiple "game-XXX" rooms.

    The master lobby refreshes and displays all the available rooms so the players can see and join them.

    I made the main lobby application asking for the room list every X second, but the message "Flood limit exceeded" happens after about 200 requests, regardless the requests intervals (I tried with 1 room list request every 3 seconds).

    I've made a test file here : https://www.dropbox.com/s/mey55anw4rv1d ... .capx?dl=1 where the flood message happens after 198 room list requests (no matter if my requests are made every 0.1 second or 3 seconds).

    Is there a way so my lobby can show an updated room list to all the peers every X seconds without flooding the signalling server ?

  • Hi

    I tried with an interval of 3 seconds and the flood message is still here. Flood after 10 minutes and 198 room list requests.

    Of course I'm creating an infinite (but slow !) loop, because I need to refresh the room list every X seconds as long as my server is up.

    I could have done "system : every X second -> multiplayer: request for room list", it would be almost the same.

    How could I refresh and show the actual room list to my players if I don't have a loop ?

    edit : I'll go for the refresh button if needed, but that's a bit annoying for the players… And if only 10 players refresh only every 10 seconds, that is the same as 1 request/sec so it doesn't solve the issue ?

  • https://www.dropbox.com/s/mey55anw4rv1d ... .capx?dl=1

    I've made some tests and it appears that the flood message always happen after 198 game list requests. Any way to bypass this ? :/

  • Hi again

    I've done this :

    And the issue is still here (it disappears if I remove these two events).

    On this screenshot, there is no loop that triggers more than 1 request per second as far as I know…

    [quote:afo4u2s6]I notice your master condition there is set off by "on join".

    I think "On signalling join" is only triggered when we and only we join a room, as it is different from "on peer join", right? So it is not triggered multiple times here. Plus, if I add a log of this event in my text area, it only happens once.

    Still puzzled by this flooding message.

  • Hi!

    I'm not sure to understand.

    The loop condition (events 27) only contains local events as it's adding data to a local list object. The game list request happens after the loop condition, as in a different event (event 28).

    The issue remains even if I remove the loop events.

  • Hi.

    Here are my events which cause this error after about 4 minutes :

    If I replace 1 sec by 0.25 sec, the error message comes after about 1 minute.

    The error doesn't happen if I remove these events.

    I read this but it didn't help me much as my game list request happens every second, not "hundreds of requests within seconds"

    Any idea how to fix this ?

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Thank you !

  • How can you make 100% sure you'll be the host on a multiplayer application ?

  • Thank you.

  • Hi. The idea is to prevent a game to be ended when the host leaves. Then a random peer becomes host, so the game can continue.

    Is it possible ?

  • Hi.

    I would like to create a multiplayer mini golf game.

    The idea is having an online, permanent server on which players connect, and they land in a global chat room. So, ALL players are client.

    From here, any of these players can create a private game on which other players can connect. Then desired, the private game host launches a game. The "host" player shouldn't be a real host, but a client too as every player action should be calculated from my server.

    I've made a very first prototype of my multiplayer mini golf when I was learning how to make a multiplayer game with Construct, but I don't know how to create a public server on wich every player connect to, instead of having a "local" server instance created when the first player connects to my game.

    I'm not sure if a player which creates a private game should be a real "server", which locally calculates its own actions as well as the other player actions in the same game (asynchronous multiplayer, and that's what I did on my prototype), or if all actions should be calculated by my online, permanent server. Which seem, on the paper, simpler.

    The thing I didn't like in my asynchronous prototype was that I had to have different events for when a player does an action, according to the player type (server or client). Like "if host … else …".

    You can have a look here : http://canapin.com/construct/canagolf/0 ... lf-07.capx (start two instances as this prototype need this exact number to work)

    Any idea or suggestion ? I don't mind using third-party plugins as long as they're reliable.

  • le Canapin

    I don't have time to test it yet, but i have a guess about it. Maybe it happened when the first angle is a bigger number than the target angle. For example, tweening from 245 to 15? It is better to add 360 to the 15 if the target value is bigger from the source value. Could you test it and tell me how it goes?

    Hi

    Using blackhornet's method, the value decreases correctly from big to low values, so if my sprite is at 359° and I click so it is 1°, litetween goes from 359 to 1 instead taking the shortest path.