DuckfaceNinja's Forum Posts

  • All it does is add up the bandwidth in/out in bytes in the past second, and since the value updates every second, accumulating it every second should give you a reasonable value of the bandwidth as measured by the payload.

    What is it different by 70% to? What else are you measuring it with?

    This was a (max - min)/average difference from 7 game session with identical end game result. My test case are similar in all action. The 70% came from peerX, but peerO is much more consistent.

    game1: peerX=944kb;peerO=810kb
    game2: peerX=657kb; peerO=799kb
    game3: peerX=798kb; peerO=992kb
    game4: peerX=1314kb; peerO=1009kb
    game5: peerX=853kb; peerO=853kb
    game6: peerX=1204kb; peerO=1115kb
    game7: peerX=714kb; peerO=840kb[/code:2t00soo3]
    Setup: 
    DuelHost: Chrome
    PeerX: Chrome
    PeerO: Opera
    
    My thought is the every 1 second can miss some of the kb/s information, possibly the reason some values doesn't add up. Anyway, another related question, is the information of kb/s [u]exist for the whole one second[/u]? If it does, the math I did should produce a very small different in margin which I think around 10% should be the largest difference.
    
    Do you think different time spent in a session would affect the calculation largely? Example I spent 10minutes on game1 but 8minutes in game2 even though I act similarly on both game.
  • Firstly 'Destroy' doesn't immediately destroy the object; it is flagged to be removed at the end of the next top-level event, so will continue to exist available for picking in subevents. Secondly 'Create object' does not really fully create the object until the end of the next top-level event, and it cannot be re-picked using "pick all" in sub-events until the end of the next top-level event. 'Create object' does however pick the object that is created, so if you set B's position immediately after the create action and just delete the sub-event it works.

    The fact objects don't really create or destroy until the end of the next top-level event is an architectural limitation and it could not be worked around without great difficulty.

    Ashley , I'm an avid manual user, I think I never came across this explanation and this is actually the first time I understand it properly. I would like to request this statement to be included into the manual under "How Events Work".

  • Just add up the estimated bandwidth every 1 second. It will be an underestimate since it measures only payload and not WebRTC/transport layer overhead.

    Oh I already did that, it just that the values are wildly inconsistent with marginal different more than 70%, so I thought there are more consistent way to measure it. Btw, this is just 7 sample of full gameplay of similar sequence/action.

    I guess taking average of 200~500 sample and traditional statistical math is the way to go after all.

    Nonetheless, thank you for the response.

  • Ashley is this possible to be done mathematically using the 4 available expression?

  • I need type writer text style dialogue boxes, and rpg movement... please help...

    This was answered in FAQ.

  • thanks for your reply and it sounds like it might work but, unfortunately I don't know how to pass the loopindex as a parameter.

    It's the same exact way like you did for worker.UID and area.UID, but this time you pass it as loopindex.

    I thought that was straightforward.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • OnTrigger condition shouldn't be nested. Move the condition in Line53 into the top of Line52.

  • Player number determination

    This can happen if you let peer to handle the logic. I think you missed the principle of "calculate only on host". Your method is calculated by peer which is not recommended, possible delay in connection between peers might cause your problem I think.

    Below is one way to "calculate using host", give it a try.

    [attachment=0:2a8yj2i0][/attachment:2a8yj2i0]

  • It increases instantly

    You need to pass the loopindex as parameter throughout all functions related.

    Another thing is, Loopindex start with 0, so basically you have "wait 0 second" for the first one because 4*0.

  • And yeah one more strange bug. When i try to pick the Multiplayer.HostAlias for the other players it adds a 2 to it. So if i chose Player1 as a nickname it puts Player12.

    This is a feature, if you have a same username login, the signal server will assign running number for you. If you intend to build a strict mode for username, I think you have to setup a database for that, unless we get an expression for [action: request peerlist in roomIndex] without having to join the room, then you can check whether certain username has been taken or not.

    Ashley, as of now, is it possible to request peerlist in a room without joining it yet? I had a few use in it as such a player can check which room/instance are their friends already in, and join their friends.

    The problem comes when i ask my friend to do so. For some reason it does not work for him.

    Which I don't understand because it's quite the same link with the same code. And we have both CHROME.

    What didn't work? Can you be specific?

  • Also i have a problem. I created a new dropbox account but they deleted the public folder. So i can no longer share an index.html and make it run instead of download as a single file.

    Do you have any alternative? (i don't want to use a custom server for that)

    Alternative

  • +1 on the add array and dictionary.

  • Line32, set a_shotgun_1 to 0.

  • sqiddster

    Tested it, it's a bit jittery at beginning, but then it was fine. Btw, the game crash if it falls >layout height, I wondered why is that.

    Win8.1 64

    Ci7 4510u, ATI R7 M265, 8Gb ram

  • I implemented something similar in my tutorial, maybe you want to look at how it's done by "manual indexing". Look at Line16 and Line17, as well as how I named the layouts. Cheers!