Everade's Recent Forum Activity

  • Take a closer look at the official Multiplayer examples and its turorial series.

    They uses some different techniques which should fix your current issues.

    construct.net/en/tutorials/multiplayer-tutorial-1-concepts-579

    construct.net/en/tutorials/multiplayer-tutorial-2-chat-room-591

    construct.net/en/tutorials/multiplayer-tutorial-3-pong-626

    construct.net/en/tutorials/multiplayer-tutorial-3-real-time-game-598

  • If you sync an objext using NONE. That means that all Peers will automatically create the same amount of that specific object just like the Host has. Not the other way around!

    However without their position being synced. So they all spawn on the very same spot.

    Please share your capx file which shows us how your events are being setup.

  • You do not have permission to view this post

  • You have added the tag "animation" to the variable sync, yet this tag is nowhere to be found from any client input.

    I recommend to remove that tag from the Sync event if you don't use it.

    Multiplayer scenarios can be very complex, so without any .capx file, it's basically impossible for us to tell on how you handle Host and Peers accordingly.

    Otherwise please provide more information on your current state of how you're handling everything.

    Please note that:

    Sending client input from any Peer will ONLY send them to the Host.

    You in most scenarios you send only physical Keyboard/Mouse input to the Host.

    Then let the Host handle what's going to happen.

    And to reflect all actions to all Peers, you then forward this information from Host to all Peers.

    If you don't do that, you're most likely only going to see what's truly happening on the HOST side only.

  • My answer might be a little bit late but let me try to explain it to you.

    It's used to sync certain object variables, since you can't send them directly.

    So we use *Set client input state* event with a certain tag added to it to combine it with a variable sync.

    The Host will always recieve your Client Input.

    However in most cases, you want to Sync this recieved input information back to all the other Peers as well, so now you can use this tag, to sync an object variable according to the input recieved.

    Here's an example according to the Advanced Example from Construct 2/3.

    The Peer sends an INPUT STATE (which includes variable data)

    to the HOST

    So we send X and Y so the host knows our current position.

    At the top, we defined the input value tag lookx and looky (these are the ones we're sending to the host)

    And the 2 Sync variable events, is the information we're syncing back to all the other Peers.

    So we're directly syncing a specific Object variable to all other players!

    The tag is now used, to basically BIND the input value tag, and the Sync Variable event together.

    So the information recieved from the client input value is written into the variable sync, and sent back to all the players.

    Hope it helps

  • You do not have permission to view this post

  • You do not have permission to view this post

  • rayolf

    I don't have that file anymore.

    If you're really interested into this specific topic, then checkout the solution which worked for me as described a few posts back.

    You will need to use a custom "solid" code to be able to dynamicaly make objects "solid" or "non-solid".

    The official solid system from Construct can't handle this at all.

    Which means this solution works for Online - Isometric game using multiple, overlapping floors.

  • I think the Origin of your objects plays a role here.

    And of course the cell size.

    Although something looks really wrong in your example... Maybe Ashley should take a look at it.

    I've adjusted some things and it seems to work now.

    Although it still feels as if the pathfinding system is extremly slow.

    http://92.51.171.10/construct/pathfinding.capx

  • gumshoe2029

    Is there any guide on how to do this?

    Or what exactly do you mean?

    Currently i've built anything within the same construct 2 project.

    Which means the first player connecting will become the host (authoritative) while anyone else becomes a peer.

    I was already playing with the idea to create 2 seperate Construct 2 projects.

    Basically a "dedicated" authoritative Server version (not playable, just handles all the authoritative logic.

    And the actual players running the game connect to this version.

    The problem on that idea is that it would require tons of these server versions to run on dedicated machines.

    And i don't have the resources to accomplish that. Unless i give the players access to this version so they can run it themselfs.

    I guess there are other ways using plugins and other 3rd party tools but i have really no idea what nor how that would work out.

    In the end i would love to have a server-list so players can join wherever they want, and also to connect directly with their friends (maybe with steam integration).

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • gumshoe2029

    What's that supposed to mean ? xD

    And yes it works!

    Here's an example:

    (link removed)

    You can access the 1st floor by walking over the green box and access the 0 floor by walking over the red box.

  • 99Instances2Go

    Yea i guess i understood how seeds work (at least the basics)

    But let's say Peer has some short connection issues while shooting, or simply something went wrong while sending the player input data to the Host.

    Now the Peer will display 10 shots.

    But the Host only triggered / recieved / noticed 9 shots.

    This means that the entire seed sequence will be off by 1 for the Peer for the rest of the game.

    Which means all the following shots will be displayed wrong.

    I think the chances that this happens is pretty big, considering a fast-paced shooter with multiple players shooting with "realistic" automatic weapons and whatnot. (thousands and thousands of projectiles)

    And this is all running through a Peer to Peer connection with normal PCs and normal Internet connections. (not a perfect world)

    That's why i'm saying:

    To prevent that, maybe it could be possible to re-sync the current state of the seed every 30 seconds~2 minutes or something like that.

    (If that's possible, since i've never worked with it?!)

    newt

    Collisions will be handled host-side only.

    Displaying projectiles can be just aesthetics, but i want them to be as accurate as possible.

    Why? Because as a player i want to see when i hit something.

    Anything else is garbage.

    As i've said before, it does not have to be 100% accurate, so it's fine when there are some discrepancies.

    But missing and still killing, or hitting and never killing is ******** if it happens a lot.

    And i want some visual feedback with the projectile flash-line.

    I do not plan to only have a muzzle flash and then wait until the server responses if i've hit something or not.

    And i do not plan to only have a muzzle flash and then show absolutely wrong information just for the sake of being responsive.

    Random number being percent to hit?! I don't get what you mean.

    OddConfection

    Never done that, i will take a look at it if i can find something.

    Including player position as well would require for some host-side position checks, which i guess could get pretty complicated to achieve.

    Thanks again guys!

Everade's avatar

Everade

Member since 24 Jun, 2014

Twitter
Everade has 12 followers

Connect with Everade