oosyrag's Forum Posts

  • For timers during runtime, you can use the timer behavior, or an instance variable to keep track of time.

    For keeping track of time when not playing, the unixtime expression will give you a number relative to a fixed point in history.

    You may want to familiarize yourself with "states". Using instance variables, an object can have different states depending on different conditions.

    If you place an object, it will be in the growing state, can't be interacted with. After X amount of time, it will be in a ready state, which you can harvest and or do whatever else you want with it.

    Just to put into perspective, a commercial game server can easily have up to 32 cores and 64 gigs of ram on Gb connections. And they aren't limited to just one. Again, that depends on the scope of your project though. If you're efficient about it, you can handle many players on a lower end system, but it all depends on how you put your game together.

    Also, high CPU% is not a cause for concern, it is a good thing that your CPU is being utilized. It only becomes a problem when it results in your FPS dropping.

    The main thing missing from the multiplayer plugin is filtered selective syncing, but that would make things a magnitude more complicated than they already are. For an MMO you'll need a reliable database system supporting it anyway, which is outside the scope of Construct. There are definitely ways for Construct apps to communicate with external databases though.

  • Generally speaking, there is no such thing as simply "Adding" multiplayer to a game.

    You'll basically need to recreate your game, taking into account host and peer setups and time difference between clients. The good part is that if you have your mechanics working properly already, you will have less problems to solve.

    construct.net/en/blogs/construct-official-blog-1/making-snek-online-905 is a good read for the considerations that go into a multiplayer game, and then at least go through and do all the official multiplayer tutorials at construct.net/en/make-games/manuals/construct-3/plugin-reference/multiplayer

    Then you'll have an idea what you'll need or won't need to make your game multiplayer. Not easy, but all the tools are there for you to do it!

    A quick example of what changes when you go from single player to multiplayer:

    Player presses button - > do action

    For multiplayer it turns into

    Player presses button - > Tell host you pressed button

    Host receives player inputs - > Do action for that player, and tell everyone else what happened, taking into account the time it took for the message to travel

    Everyone - > Receive what happened from the host, and update accordingly.

    When you've got your multiplayer game set up, you can preview in multiple windows by holding alt when you preview, to test as if multiple peers are connecting to the game.

    Everything depends on the scope and design of your game and the way you put it together.

    When talking about supporting many players, the limiting factor is (usually) bandwidth per update on the host - all traffic has to go through the host. Construct has tools that let you measure bandwidth use, so you'll have to make your own benchmarks and test in the context of your own game.

    I don't see any reason you can't make those types of .io games in Construct. But keep in mind they are probably hosted on significantly more powerful servers than what you are thinking about.

  • The last condition in event 21 in the example

    + cat2: [X] Is isTurning

    This is an inverted condition to check if isTurning is False

    If isTurning is true, this event won't run

  • Variable: A value that can be changed depending on the situation.

    Boolean variable: A variable that has two states, true or false.

    Instance variable: A variable that is attached/associated with a specific instance of an object.

  • Drag the corner of the window...

  • In a browser, you can resize the the window to any size you want to simulate different aspect ratios and resolutions.

  • Updated again, this time filtering by angle, and then picking nearest. Works pretty well, until you run into a situation like the screenshots below where the red circled positions can never be reached.

    dropbox.com/s/tff81dp49h8chuw/grid_UI.c3p

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • When wood overlaps water, apply upward force on wood. This force should be enough to offset gravity.

    You can use overlap at offset if you want the wood not to bob completely out of the water.

  • You can use floor(unixtime/86400) to get the day number.

    Then use local storage to keep track if the user has received the reward for the day or not.

  • Quick google search: johnwordsworth.com/projects/sprite-font-builder

    I have no idea if it is suitable for your use. Hope it works!

  • Change

    -> System: Create object Raindrop on layer 0 at (random(WindowWidth+100), 0)
    

    To

    -> System: Create object Raindrop on layer 0 at (random(WindowWidth×2)+ViewportLeft(0), 0)
    

    Or put the rain on a separate layer with its own parallax separate from the background.

  • In the following event (you should make them both subevents of the button trigger), you can make an Else event. The Else event will only run if the previous event did NOT run (meet conditions). So if none of the spots checked in the first loop were valid, stop loop would never have run, and the following event will run. If the first loop did execute, then the else event would not.

    But again, you have to define clearly in what order you want to check available positions. For example, why would it go to D4 and not C5? Would it go to F2 if there was a spot there when you pressed left?

    Don't worry too much about checking X amount of columns, loops can do wonders :)

    Edit: Also where would it go if there was a spot at F5 and F7?

  • In the event that the Construct signaling server is no longer provided, you can always set up and host your own.

    The signaling process is part of the WebRTC standard, and not proprietary to Construct.