Badmiracle's Forum Posts

  • I tried running the realtime multiplayer demo overnight. One host, one peer. In the morning I got a message in the chat log that said "Signalling disconnected" and I couldn't move my characters on either the host or the peer.

    Just wondering what this issue could be. Does it have anything to do with the signalling server (would buying my own signalling server help)? My hope of running a multiplayer game with a "dedicated" host for the game room 24/7 is kind of dwindling.

  • Hi,

    I've been developing a mobile game and found the rex firebase plugin very helpful, so I added it to the game.

    The thing is, I've seen some people having issues with the plugin on mobile games.

    Can I get feedback from anybody regarding the compatibility of the plugin for iOS or Android game?

    In theory it should work fine. I think the only issue on mobile had to deal with certain authentication methods like Facebook/Google login that requires an In-App Browser to work. cranberrygame released an In-App browser plugin that will get this to work:

  • You can consider using a service like PlayFab/GameSparks/Firebase, which offers the ability to authenticate users and can even add some security features for verifying incoming data.

    Actual client side game data can however always be manipulated.

  • Hi guys,

    I’m working on adding jumping and platforms, to my top down action game, to give it a sense of depth.

    The game will look a bit like 2D Zelda. It's multiplayer - here's a demo: http://www.badmiracle.com/hero/ (player graphics are not my own)

    Screenshot Example for Context: https://www.dropbox.com/s/lcfd5mfvdiv2e ... n.png?dl=0

    I’m having some trouble getting jumping to work, and I can’t seem to figure it out. I’ve created a “z” axis for depth, and played around with adding a jumping power variable that will increment the players Z with delta time, and another variable for jump height... but it eventually becomes so convoluted that I end up back at square one. It’s a lot more complex then I thought.

    I’ve implemented a collision system that R0J0hound created so that I could have some form of depth based collision control. It works quite well for making sure you only collide with objects on the same “z” height as your character.

    I have a stripped down capx containing a player that can be controlled and a bunch of stacked boxes. I’m hoping someone can either direct me on how to do it, or create such a system that will explain it.

    Capx Example: https://www.dropbox.com/s/pckfuj4ajot1x ... .capx?dl=0

    Thanks in advance for any help/advice... (or even words of encouragement at this point) that you can provide!

  • You can, but you'll have to build your own sync algorithm via messages rather than use the built in sync.

    Yeah but this is highly unrecommended. Messages are sent as strings, and it costs you 1 byte per standard character. So for anything other than a turn-based game that doesn't need to be transferring data every few milliseconds this would be horrible.

  • This is extremely cool! I also love the animated water effect. Very creative.

  • Thanks for sharing your knowledge I plan on using an additional Player object for each Peer, and interpolating client side to the correct position. This should fix those jitter problems, while still making the game feel fairly responsive.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • It is for interpolation for smoothing out jitter and/or packet loss.

    https://www.scirra.com/tutorials/892/mu ... pts/page-6

    Roughly speaking you can think of it as the engine having 80ms worth of artificial latency - all peers under 80ms will percieve the same level of responsiveness from the host, and the player/host ideally won't notice any network lag unless the actual ping (or time between updates) becomes greater than 80ms.

    oosyrag

    Thanks for the help! But question... I'm not using client input prediction for various reasons, if I don't want any artificial latency what's the harm in putting this buffer to 0ms? I've tested it with simulated latency and it seems a lot more responsive (the delay between key press and client side movement is reduced greatly).

  • I'm still wondering about question 1.

    Does anyone know what the Multiplayer Buffer is?

  • dop2000

    brunopalermo

    tarek2

    All GOD's. Interesting methods, thanks guys.

  • Hi - I'm working on a top down game that uses click-to-move controls. There are large moving boats in my game and I'm trying to figure out how I can get my player to move to a certain location on the large boat, while the boat is moving.

    I figured out a hack solution, where I calculated the displacement from the boats position to where I clicked to move to on the boat.

    XDisplacement: (target.x - boat.x)

    YDisplacement: (target.y - boat.y).

    Then I move my player to this new position every tick

    X: Boat.X - XDisplacement

    Y: Boat.Y - YDisplacement

    This keeps up to date the relative position on the boat that I ordered my player to moveTo, even if the boat is moving.

    Here's an example of how it currently looks (but it's fairly odd) - https://i.imgur.com/l4onOBZ.gifv

    There's a parabola effect I am trying to get rid of. Preferrably I'd like the player to move in a direct route toward the "new" location on the boat. The speed of the boat, and the speed of the player are both constant.

    Does anyone have any other ideas on how this can be achieved?

    Thanks in advance!

  • Not possible yet! A feature request for C3 is up on the idea board, which might solve this issue: https://construct3.ideas.aha.io/ideas/C3-I-319

  • The multiplayer plugin has 2 bandwidth profiles - 30 Hz updates w/ an 80ms buffer for games played over the Internet, and 60 Hz updates with a 40ms buffer for games played over LAN. I have 3 questions:

    1. What is the buffer actually for? (The manual doesn't explain this)

    I learned recently from the developer of a multiplayer game that feels incredibly responsive (w/o any client input prediction), that his game only sends 20 updates per second (vs the MP plugins 30), with his server receiving and processing updates immediately (which happens every 50 ms).

    2. Does this mean that his game is essentially using a Bandwidth Profile of "20 Hz updates w/ a 50ms buffer"?

    3. If so, would this be recommended if it gives my game a better feel? I have chosen not to use client input prediction, due to the issues that come with it, but I still want my game to feel fairly responsive on the clients side. What would the implications be of decreasing the buffer from 80ms to 50ms, and reducing the updates from 30 to 20? I've tested the change and it feels okay, but on a larger data transfer scale, what does this mean?

    Thanks in advance!

  • This is a Construct 2 feature, not 3. There's been a (somewhat) recent request for it to be added to Construct 3 here: https://construct3.ideas.aha.io/ideas/C3-I-314.

  • Background throttling is quite complex - normally background web pages are suspended, but there are exceptions, which include if the tab is playing audio, and IIRC as of recent Chrome versions WebRTC connections count as an exception too.

    This is pretty interesting. Ashley is it possible to run the Multiplayer server plugin in Chrome headless mode, to save on CPU/Memory usage?