oosyrag's Recent Forum Activity

  • 1. Tags are used to organize and specify in case multiple requests are made. They are not strictly necessary, but it is good practice to use descriptive tags. (If you're only making one request, you don't need tags. If you make a lot of requests, you definitely need them to sort things out)

    2. AJAX requests are asynchronous - they are not instantaneous, and there is no way to know when you're going to get the data after you request it. So there is a trigger for AJAX On Completed, where AJAX.lastdata holds whatever information you requested.

    Why do you need AJAX? Because the XML plugin has no way of getting the data from a project file - you need AJAX to do so. When you use "Load XML", you're putting the data you retreived from the project file via AJAX into the XML object.

    3. This is the typewriter function. This is source, or whole text - xml.StringValue("/chapter1/hint/text()"). len(Text.Text)+1 is how long Text currently is (starts at 0) and adds 1. The left(a,b) expression that wraps the whole thing means take the "b" number of leftmost characters of source "a"

    4. Not that I know of.

    5. len(Text.Text) How many characters the Text object is currently displaying. len(xml...) is how many characters the source text is. When they equal each other, that means what you are displaying is the entirety of the source text, and therefore there is no need to continue adding one character to display.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • The developers for Towerfall specifically decided not to do online multiplayer for exactly the reasons you specified. It would be too difficult to account for lag in that system, so they opted for local only.

    However, there are games like Street Fighter IV with highly optimized netcode for their specific engine that allows for frame dependant game play (mostly simulated latency to buffer any jitter)

  • Do you mean swatches? This is a new feature in the upcoming Construct 3, which you can try right now for free at

  • I think adsense would go in the html page itself rather than your project. If your host doesn't let you modify the page, you might not be able to use adsense.

  • Did it solve your problem?

    Otherwise the last thing I can think of is to check if your object might be invisible on the host and you're not destroying what you think you are destroying. A synced object can be visible to one peer and not another if your events call for it.

  • Oh can I also suggest that every instance of "Signalling Server" ever mentioned be changed to "Signalling Service"?

    Might clear up a lot of entry level confusion.

  • Edit: I think I misuderstood. Are you asking why you are disconnecting, or do you want to know how to set up an automatic idle disconnect?

  • Hm. Check if somehow the peer made a copy of the ball somewhere? Maybe they were stacked. Should be able to see it in debug if that's the case.

  • Yes, if it was created on the peer side by the sync action from host to begin with.

  • > Curious, it works fine and has full functionality as dedicated host, regards if you're running it in nw.js or a browser tab, so wondering what the problem is there. Is not like clients ever see what the host sees, depending on how you approach it.

    >

    > Also, what is the benefit of running for own signalling server? Honest question, I really don't see it.

    >

    > The main question I guess would be what exactly you want to see improved and how?

    >

    > The solids issue you mention is hardly unique to multiplayer projects, and there are logical workarounds. Also it will likely be addressed in a C3 runtime update, which is planned for the future.

    >

    Full dedicated host functionality?

    Do you mean if i let the game itself run on a windows server or what?

    That's a really non-performant ugly workaround. I think Ashley even said that himself from what i can remember in a private message.

    Benefit of running an own signalling server is:

    I have full control over availability and geographical location (about 1 year ago the scirra signalling server was down for several days and i've offered my signalling server to others (and yes it has been used by several people))

    And the solid issue i've mentioned has no logical workaround.

    I've been testing tons of different things but everything was an ugly workaround which ended up with specific bugs which are impossible to be fixed.

    Maybe someone could write a plugin for that, no idea since i'm not a coder (that's why i'm here using Construct in the first place).

    And "likely" be adressed is a huge word.

    I would love to here some feedback from Ashley on this particular case.

    Makes sense, thanks for clarifying. I myself don't really care about running nw.js on a dedicated windows server - All servers are software running on some type of dedicated platform. Maybe I just haven't really pushed any limits in terms of performance. In terms of reliability, I can imagine a few ways to have redundancy and messaging/feedback for clients based on the availability of servers.

    Also reasons not relying on a third party (Scirra) signalling server makes sense too. Although for me theirs is probably more reliable than anything I would set up

    Solids issue - I must have been thinking of something else. Hopefully this can be addressed in the new runtime.

  • I think I'm starting to see it. Users are spoiled by the sync feature and not going through the work of building their own. There are many, many ways to handle netcode - that is how different multiplayer games optimize for their specific systems. The sync behavior the multiplayer object was a nice feature included by Scirra, but it really isn't suitable for all uses.

    However, the multiplayer object has everything you need to write your own netcode. The problem is that it is not a simple endeavor at all, which is probably why Scirra designed Sync to begin with. Unfortunately, users run into situations where it doesn't meet their needs, and think that they are unable to continue.

    So to nail down a specific request I think people are asking for to improve multiplayer would be to expand on the sync options and behaviors to make it easier to use.

    But right away I'm going to say that is mostly impossible (besides the fact that Scirra has made it clear they are not interested in doing so) - there are just too many ways to do it, and netcode really should be tailored towards its specific application. Basically - do it yourself, because there is no way they'll be able to make sync cover all the situations it needs to. The tools you need to do so are already there.

    A tutorial with a different approach and focus on simple data communication via messaging may be the most useful at this point, then moving on to interpolation, lag compensation, and bandwidth limitations/message efficiency. Then users will be able utilize the shortcut tools provided by the plugin as they see fit, and understand why the plugin behaves the way it does.

oosyrag's avatar

oosyrag

Member since 20 Feb, 2013

Twitter
oosyrag has 38 followers

Trophy Case

  • 11-Year Club
  • Forum Contributor Made 100 posts in the forums
  • Forum Patron Made 500 posts in the forums
  • Forum Hero Made 1,000 posts in the forums
  • Regular Visitor Visited Construct.net 7 days in a row
  • Steady Visitor Visited Construct.net 30 days in a row
  • Enduring Visitor Visited Construct.net 90 days in a row
  • Unrelenting Visitor Visited Construct.net 180 days in a row
  • Continuous Visitor Visited Construct.net 365 days in a row
  • RTFM Read the fabulous manual
  • Email Verified

Progress

21/44
How to earn trophies