oosyrag's Forum Posts

  • Stages of multiplayer development:

    1. Accept that latency is a thing that exists. This means that no two peers will ever see the exact same thing at the exact same time. It is basically physically impossible.

    2. Design around it. This includes local input prediction, which means a peer will receive feedback for their inputs locally before the host or any other peer receives the information that they have input anything at all, and lag compensation, where the host validates that peer inputs and actions, which actually happened in the past, are valid.

    Interpolation is also important, but the multiplayer plugin takes care of most of that for you so you don't have to worry too much about it.

    In general, you're going to want to decide who sees what, separately, because no one will be seeing the same thing at the same time.

  • Hmm it's a little hard to say, it depends on what you're trying to do and I haven't really wrapped my head around your logic.

    But basically you use it when you want to have any particular action(s) apply for each instance of an object, instead of for all of them at the same time.

  • Using the "For Each" system condition usually solves this type of issue.

  • You can if you have a way to look up/record the associated pronunciation of the relevant word in each sentence. Manual entry would be one straightforward way.

    Showing matches after that would be simple.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • If you made them in c2, you can open them in c2.

    Remove or replace any use of the plugins, and then you can open in C3.

  • That's pretty nifty, and most likely a bug with tile movement. I filed a bug report for you.

  • I mean... moving stuff into and out of local variable scope is always fiddly, regardless of if it's in a group or not. FWIW you can't move an event that references a local variable to somewhere that local variable is not accessible, group or no group. And if you move the variable out, anything that references it locally gets deleted, with warning. This is consistent behavior wherever the local variable is.

  • Local variables can be created/moved under groups, it's been like this. It's one way to manage global variable clutter.

    Klabundee has the right idea, local variables are reset every tick. If you have two separate events in the group, they can both access the group's local variables as long as it is on the same tick. I think another quirk is that triggers happen outside of a normal tick and won't be able to share data with normal events through a local variable, but can with a separate events using the same trigger.

  • Note that CORS needs to be enabled on the web server that the audio is hosted on if your game and audio file are not on the same domain. Otherwise you will not be able to access the audio file.

  • Try adding a Wait 0.1 seconds before your save.

    Music is streamed, it doesn't immediately start playing. Since you do both on start of layout, basically you're saving the game state before the music has started. Since start of layout doesn't trigger on loading, it wouldn't start playing the music after loading either.

  • In a loop like for each, every time it repeats, loopindex goes up by 1. So the first time it runs, loopindex is 0. The second time it will be 1, and then 2, ect.

    So if your loop runs 10 times in a for each, because you have 10 instances, loopindex will be 0-9, in order. And because we used an ordered for each, the order can be set by another variable, like speed.

  • First off, my condolences for your 13,000 events and resolve to attempt this feat. If you were familiar with the math, you might have realized that there are 3,628,800 possible combinations of 10 positions. So you're lucky in that you seem to have hit a limitation so early...

    To determine turn order for 10 objects, the simplest way would be to use instance variables. If you had an instance variable for speed, and an instance variable for turn order, you could use the system "For Each (ordered)" to sort them by speed, and then assign each one a number from 0 to 9.

    + System: For each Sprite order by Sprite.speed descending
    -> Sprite: Set turnorder to LoopIndex
    

    What you would do now that they can be identified by their turn order is up to you. For example, you could keep track of the current turn in a separate global variable, and only allow the sprite with turnorder that matches the current turn to act.

  • Your other post also doesn't have enough relevant information to give you an answer.

    Instead of pictures, if you could recreate the problem in a minimal project and upload that it would be much easier to help you.

  • You're going to want to give more details if you want an answer, because it sure isn't reproducible from just your title.