Prominent's Forum Posts

  • This is a known issue with multiplayer and the window out-of-focus implementation of certain browsers.

    I'd be interested to know more about this, if anyone has some details about it. I don't destroy or recreate any synced objects while my game is playing (except when peers connect/leave). So having objects disappear and reappear (with their non-synced values reset), and sometimes not recreated at all, is a bit concerning.

    I feel like it is related to the latency simulation.. but I haven't tested it with real-world high latency yet to find out.

    I tested it locally WITHOUT latency simulation, with nw.js minimized and it was alright.

    When I tested with simulation, I tried testing with simulation values of 0.000001 and minimized, and the latency would begin climbing up to 900s when minimized (objects disappearing while this happens), and then when unminimized the latency of the peer would fall back down below 50.

    So I think there is something within the simulation itself that is causing problems..

    again, i haven't tested with real-world high latency- but I have with low latency, locally, and when minimized the latency doesn't begin to climb(since the latency isn't simulated).

    Also keep in mind, that if the synced objects don't have their data changed much, they timeout quicker.

  • Also, another thing worth mentioning is that if the host's window is minimized, it seems as if data stops sending- like it is being paused(even though the setting to not pause while unfocused is correctly set).. I'm guessing the lag simulation uses the time in construct to alter the gameplay, but when minimized the time stops completely.

    So objects will be destroye and recreated on the peer side when this happens, even if the host is changing the data constantly- the minimized window prevents data sending.

    I'll create another bug report when I get the time..

  • Ashley , I was having this issue, and I figured out the cause.

    When synced objects have no changes to their positions(if its synced?) or synced instance variables, the peers will think these objects have timed out and destroy them (they don't get destroyed for the host).

    Simply by changing a synced variable every few ticks (on the host side?), it keeps the objects alive.

  • You do not have permission to view this post

  • > I cant answer your question but but i can say.

    > For the love of sanity use the photon cloud multiplayer plugin.

    > Its a breese to work with and flawless performance because of the photon servers.

    > So easy to program as well.

    >

    > Anyway good luck

    Don't listen to this foolish drivel

    It was made to be easy to use, and the lest confusing as possible because this engine is built to be easy to understand for newcomers. Once you have gained more experience with game development and construct and you're familiar with how events work you could make your own lag compensation by storing player variables in an array and flush old entries when you add new one with push and pop, it's not up to scirra to add every single possible option when you can build your own with their event system.

    Also photon doesn't support this whatsoever.

    thanks- I hadn't considered storing that stuff manually, but I suppose that would work. I haven't created a multiplayer game before, and the multiplayer plugin seems pretty simple which is why I'm still going to use it.

  • The multiplayer plugin has expressions used to compensate lag for the x,y,angle of a single peer object that is associated with a player.

    However, this is bad design because it doesn't allow lag compensation for instance variables of other objects. The multiplayer plugin forces you to use one object for the movement/angle mechanics. What if you have two angles the player aims with, or controls two positions? or controls more than one object?.. There is no way to compensate for more than one x,y,angle. Only one object with its x,y,angle seems to be recorded to do lag compensation.

    This suggests that you can only compensate relative to other associated peer objects.. So you can't for instance compensate for projectiles if for instance you want to shoot down a moving object that isn't a player. The player- when shooting, wouldn't be able to find the compensated position of the object by the host because the expression can only check the associated peer objects that represent players.

    Am I mistaken? Is there ability to compensate for other instance variables, positions, angles, objects?? Seems like a big oversight to me.

  • Where is the link to go to the newest unread post in a thread? (not the latest)

  • too much whitespace..

    too much scrolling..

    everything is too big..

    too spread out..

  • no.. construct can't do that.

    but you could put your objects into a family, and then create the object, then pick the family by uid of the object created, and then perform the general actions on the picked family object. By putting them all in a family, you'll be able to set actions for one without having to create a bunch of duplicate actions.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • If there's interest, maybe I could create some tutorials for people who support me on patreon? Like $1 per month for the tutorials, and $5 for the capx files.

    That way I'd have more incentive and knowing that my efforts aren't going to waste.. Anyways- I'll mull it over for now.

    This sort of stuff takes a significant amount of thought and dedication, which takes away time from me doing stuff that pays and lets me live and there isn't any indication that there are enough people that would backup my efforts and make it worth pursuing.

    I suppose I'd have to make an example first to get people interested..

  • What about creating a plug-in for that.. Would be useful and you could see it on scirra store.

    Don't let it die.

    I've thought about making a menu/dialog plugin in the past, but I'm not sure how user-friendly it would be considering a menu incorporates various different object types, like fonts and 9patches, which can have properties set a variety of different ways.

    It might be better to just create a general tutorial for making a dialog/menu system- that way people can tailor it to their needs.

    I'll just leave it here. As an idea

    https://github.com/godotengine/godot/issues/17795

    woah! nice!

  • Hi, hows the progress of your dialog system?

    I can't remember- it's been a while since I worked on it!.. So it is probably dead- no one really seemed interested anyways.

    I could probably make a better one now, if I felt like it.

  • When I check the collision layer expression, it gives an odd number.. how do I translate it to the 00000000 format?

    for example I get 268435456 but I need it to read 10000000 (the layer it is set at)

    nvmind.. I'm implementing an expression into my own plugin that will do this.. i found way to convert using javascript

  • You could maybe browse through the closed bugs forum section for things.. Often people post bugs about things they don't understand.. such as this thread where r0j0hound explains some important quirks: