oosyrag's Forum Posts

  • I hesitate to give a shortcut, because I really, really feel you read through all the multiplayer tutorials, but here is the main design consideration:

    All game logic and mechanics should be handled by the HOST. All PEERS generally only send their inputs to the HOST. The HOST will act based on these inputs received from the PEERS, then SYNC the state of the HOST game/objects to all the PEERS, so that they all have the latest state of the game.

    The other main stumbling block a lot of people have is how to get connected and the concept of SIGNALLING SERVER, GAMES, ROOMS, and who is a HOST/PEER. But this really is generally very straightforward and the same for most games, so if you follow the tutorial it should be very clear. I think people have trouble with it because they didn't really read the tutorial to begin with.

    Regarding starting from scratch - that isn't true! We spend the most time when we run into a mechanics problem that doesn't work right away as we imagine. Once you've figured it out, you won't need to figure it out a second time. Also, you can copy/paste events. When your base game works, all you need to troubleshoot is the sending of messages and communications. It is much more frustrating when you have to debug multiplayer communications at the same time as your game mechanics.

  • Hmm... creating the menu with events is very flexible by nature, there are many ways to do it.

    One way I've done it in the past is just have one menu sprite object with all the menu options as animation frames, with an instance variable MenuItem.

    When the menu is triggered, use a loop to place each menu selection, incrementing the position, animation frame, and MenuItem variable.

    On clicked MenuSprite, compare MenuItem value and do whatever.

    To close the menu, destroy all MenuSprite.

    If you use a For loop, you can control the loopindex numbers for submenus.

  • In addition to that, you may also want a stop loop action so that the event will only run on one instance of the object.

  • Sorry I was unable to determine exactly what is wrong in your particular project as it was heavy for me to figure out, but I think I have an idea what you are looking for...

    I've made a small example that will pick an object when is within a certain range of another, with sub events that differentiate which side it is on.

    You can add trigger once while true if you want the event to run just one time when the two objects come in range.

    https://www.dropbox.com/s/eb23u6823hs9b ... .capx?dl=0

    Hope this helps!

  • Have you gone through the multiplayer tutorials? It is worth spending some time to familiarize yourself with it to have a basis to know what sort of work you will need to put in.

    The multiplayer plugin may seem intimidating at first, but it is actually rather well done and very clean to use provided you actually go through the tutorials and understand what each event is for.

    This will help you judge if you want to proceed with a multiplayer game, and it will let you design with multiplayer architecture in mind.

    On the other hand, I always like to prototype my base game first to make sure it's something I want to keep working on. Even if you had to redo some of the events later for multiplayer, it will be much easier the second time around, and you'll be sure your base game works as intended first. It is much easier to diagnose bugs and problems if you focus on one thing at a time!

  • I think on peer connected, as the peer, will not trigger. It seems like on peer connected is for the host to know when a peer connects. For the peer, I think you want to use On Joined Room.

  • Link to it in a new tab

  • I just had a thought that technically you could have one single host that all peers connect to, and use a custom pseudo-room system to divide up the peers within the same game room instance yourself. But then you would not be able to use the host sync action, and would have to create a custom client update messaging system as well. This is probably not a good idea.

  • I won't be able to diagnose much further without seeing the debug.

    Can you check if the host is receiving the message and setting the variable on the host to the correct value? Also confirm that the host is able to spawn a character on its own properly based on a static variable.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • The host should take care of the syncing. Basically the player will send a message to the host with data regarding the input (placing which block where) and the host will change the tilemap based on that input. The host will then sync the tilemap object to all the peers.

  • So basically, you want to have a single object have physics disabled for some instances of the same object, but not others.

    I think you'll either need custom physics events or sperate objects for each chain of lines.

    How many chains do you need at any given time?

  • Would it be a difficult undertaking/bad idea to allow dropbox/scirra links specifically to be posted by new forum members? Seems like it could be a good idea.

  • https://www.scirra.com/tutorials/73/sup ... reen-sizes

    [quote:28hrw2zt]It's much better to pick an aspect ratio, then scale the game to fit that.

  • Do you need hundreds of hosted game instances? A hundred tabs is one way. A hundred virtual servers is another. Or physical ones. Up to you. I think when you get to the scale of hosting thousands of players you might have another back end solution lined up that doesn't rely on the multiplayer plugin.

  • The quick answer is to not actually use the tilemap for collision. Place invisible sprites over your tilemap and set as solid to create collision boxes. I believe this is a pretty common practice.

    Edit: It looks like you can also edit the collision map for each individual tile in the tilemap editor: https://www.scirra.com/manual/172/tilemap

    [quote:1qnfcefe] A custom collision polygon can be set for individual tiles by clicking the Edit tile collision polygon button in the Tilemap bar, or just double-clicking the tile in the Tilemap bar.