tomsstudio's Forum Posts

  • Looking at your screenshot,

    isConnectedToLobby is a normal condition, which gets checked every tick.

    You want OnConnectedToLobby which is a trigger condition.

  • You don't need ajax,

    just use iframe navigate to "betaframework/bfindex.html"

  • Is it indeed certainly possible,

    i myself have been building a small/medium scale multiplayer rpg using a custom hybrid p2p/colyseus plugin.

    I have it designed so you can build a seperate barebones server inside c3(no textures, animations, sounds etc) but will still sync with the client version.

    This allows a somewhat headless** dedicated environment using multiple iframes or embeds on a invisible layer inside a basic server manager, which itself is invisible.

    Im testing with vultr on performance, while its not as efficient as a true headless node.js server, its pretty good as each additional iframe will use a seperate core.

    You could start by writing all your server code in events, get everything set up, then later on move over to javascript for better peformance.

  • Multiplayer Extended Almost Ready :)

  • I'm not sure about teaching, but i could make a well commented example project using my own custom multiplayer plugin.

    I have been working the plugin for a while now and i need a real world example to work on to flush out any features i have missed or overlooked.

    I am a programmer however and i can't draw to save myself, so i wont able to do any decent graphics.

    Are you focused on events mainly or javascript?

    Are you looking for a full authoritive setup, semi authoritive or more of a casual set up?

    Regards,

    Tom

  • const bundle = new Bundle()

  • Further, you should really only worry about the host, generally your sending inputs to the host(minimal bandwidth) then sending x,y, and angles of each synced object to each peer.

  • According to google the average mobile upload speed is 5MegaBits per second in the US.

    So i go by a rule of thumb of max 1MegaBit per second. In construct 3 stats, thats 125kb's .

    So for 8 to 10 players you should be fine, you can have half your bandwidth by changing the precision from high(8 bytes per value) to normal(4 bytes per value), or even low(2 bytes per value).

  • Working hard :)

  • Stick to construct multiplayer, i will be releasing an extension this friday to the official multiplayer that uses photon as a turn server backup.

    All lag compensation is automatically handled for you.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Not yet, been too busy with coding and testing. I will have a itch page set up with all the information about it before I release the beta :)

    I'm happy to answer any questions you may have.

  • Not currently possible, but im building an extension on top of the construct multiplayer plugin which can do what your asking.

    Will have a beta in a week or so.

  • A = document.getelementbyid(iframe)

    A.contentwindow.postmessage("completed", "*")

  • I sent you an email but might be a little late 🙂

    I'm building a front & backend service that would suit your requirements.

    It's a hybrid peer-to-peer network assisted by dedicated turn servers with really cheap $ per GB.

    Lots of luck with your project!

    Regards,

    Tom

  • I might be wrong,

    but basically its checking to see if its not overlapping itself(as its the one being picked on the touch event). Which is true every event.

    There are some tricks around this, but the most easiest verion for my brain that i can think of is to use a function and a invisible collision tile(the same size of the gridbase).

    so,

    on gridbased.touch, call function($name) no need to pass any values.

    on.function($name) set invisible tile position to createx and createy

    invisible_tile is not overlapping gridbase at offsetx and y

    then create object(gridbase) at createx +- offsetx and createy +- offsety

    (repeat event inside function for however many times you need it)

    This should work, someone else might come up with a better solution.