lennaert's Recent Forum Activity

  • With what ?

    you have asked a question ... it was answered, you mention a flaw and a solution to it ....

    So .. what kind of help are you expecting ?

  • Gradius

    A common work around when entering a new layout, is to have a dialogue with the level name and some details, with a little "Ok" button below it, required to touch.

  • Anyway few people seem to understand the hardware issues involved here, so I guess we will face continuing calls for native exporters to fix hardware limitations :->

    You could try and make an example ....

    But then again ... you would throw all your skills into the mix ... which would get you a decent performing game ...undermining the thing you are attempting to achieve

    Seriously though, a good example .... could potentially quench all following questions relating to desires for a native exporter ...

    I think the time spent on making an example would be far less then the time already spent on answering similar questions ... not to mention those not yet asked

  • Yes .. but you have to 'event' it ... not so much disable it ...

    For instance, a peer wanting to join has a global variable: playing default 0

    When wanting to know the latency, and joining room for it ... leave the playing at 0.

    Peer joins a host

    Host:

    On peer connected, send message, check playing.

    Peer receives messages, and replies: 0

    Host sees the 0 ... and does not create the needed objects.

    Would the host receive 1, (perhaps set in the lobby when a peer selects to join a game instead of wanting to check latency)

    The host would then create the required objects for the peer.

  • > I think you are asking for solutions to problems that you wont have. You do not need to open 2,000 browser tabs. If a room is full or not found, that player becomes the host of a new room. The players are the hosts, not you.

    >

    Yes, but if I want to make sure that connection quality is good and consistent, especially with 100 players/room, I need dedicated hosting.

    It would mean that ALL connections run through the server .... and its bandwidth usage ....

    You would require a hosting service with unlimited bandwidth usage.

    Also .... max web RTC connections per browser is 256, that is for a single browser instance. So that browser is only able to connect with max 256 players in 1 room at any given time.

    That would mean for each 256 users connected to a single room ... you would require another browser instance with its own opened WebSocket.

    Each websocket you open will weigh down on performance of the server.

    Also, if you manage to get a game running with 256 peers connected ... without problems ... well, I would praise you a lot

    The C2 multiplayer hosting scenario based on a peer being the host is actually quite intuitive ...and eliminates tons of server connection problems relating to high volume usage.

  • You are syncing wayyyyyyy to many objects ....

    Just imagine that each of those objects their instances tries to update their info at least 10 times a second ..... (some up to 30)

    The inputs should be reduced to 1, using the getbit/setbit methods. (you can set 8 1's or 0's in a single synced var, see it as 8 booleans)

    The player objects should just 1 for its position and the rest of the items should be created based on who has connected.

    All other info should be transmitted via messages. (1 time action instead of continuously updating)

  • When you open your preview in chrome, hit CTRL + Shift + N for an incognito browser and navigate to your preview address.

    This second incognito instance will act and behave like a separate browser entity, not mixing up the connections or overwriting local storage data.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • > heh ... with associated objects, when you leave .. your objects get destroyed in those rooms.

    >

    > but euhm, This latency ... isn't this rather the host latency ? and the signalling server would never be able to predict this seeing as its location is not yours ?

    >

    > Your method of workaround actually sounds decent, seeing as you would get the latency between you and the host of each room.

    >

    > Downside is that during this action you would effect each games host and peers their performance for a few seconds as your stuff gets created and destroyed.

    >

    The main problem of the Sync Object while using this method of workaround is that the peer may not be in the same layout as the actual game layout, this usualy cause unexpected bugs when the multiplayer engine tries to sync objects for players in different layouts. (e.g. host is playing a match in the layout "game" and the peer is checking the latency in the layout "lobby", the engine will try to sync objects and associate objects in the wrong layout). Also this method can't check latency of full rooms and locked rooms because you can't join those rooms.

    This expression should return the latency between the host (of each room) and the peer that calls the expression and not the latency between host and signaling server.

    - Player calls request room list

    - On room list triggers

    - A For loop feeds an array with listroomname, listroompeercount, listroommaxpeercount, listroomstatus and listroomlatency (For each loopindex)

    - When this multiplayer.listroomlatency(loopindex) is called a generic message should be sent to the signaling server,

    - signaling server should send it to the target host (current index),

    - target host send it back to the signaling server

    - signaling server send it back to the caller of the expression containing the average time (in ms) that the message took to reach the host and return.

    I meant the connection between the host and the peer wanting to know the latency.

    To get the latency, you would actually have to transmit some data back and forth resembling the game data in order to get a decent estimate about latency between the peer wanting to know the latency and the host hosting the game.

    To overcome the obstacle of on which layout is what ... simply add some checks for on which layout it resides. There is an expression LayoutName, which returns the current layout name.

    LayoutName <> "lobby" should prevent it from checking while it is in the lobby

  • >

    > >

    > > but your c2 is a great software it can make billions you just not so serious about it

    > > so i suggest you hire people and programmers to develop it and spend some money

    > > i will promise you will get so much more then now

    > >

    >

    > A business is not that simple. Scirra aimed for a gap on the market and made a very good software to fill it up: HTML5 game creation environment with visual programming. In my opinion it's fine to give suggestions for Scirra to let them see what the community wants, but at the end it's up to their will and opportunities how they manage their business.

    > es 2 years ago yes there was a gap 2d html5 was a gap but

    unity have 2d and html5 now

    and there are other engines too so it's time to change

    And why are you the one to decide that change is required ?

    The other tools generally suck at their potential with rapid development, where as Construct still tops it all ...

    Why is it not time for you to switch to unity ? seeing as you are quite enthusiastic about it

  • easiest, would be to have the object in an extra family. ie object player in family "Checker"

    tmpUID = 0

    on click player

    sub event: tmpUID = 0 ?

    -action: set tmpUID = player.UID

    else

    pick all checker

    pick checker by evaluate checker.uid = tmpUID

    -action: set text to: distance(player.X,player.Y,checker.X,checker.Y)

    -action: set tmpUID 0

  • The peer should send the mouse look x,y to the host.

    The host uses the received mouse look x,y to set that peers angle.

    The object position and angle sync should take care of your player facing the right side.

  • In the peer group, you do not need the set facebook variable.

    Seeing as you sync that variable, it takes a moment after creation and the host then sets the facebook ID.

    So you should remove the "set facebookId" from the peer group.

    Also, you do not need to add the "sync variable peerID" in event 5. You can remove that.

    The multiplayer object takes care of this. you only need to set them on host and peer end, as you have done.

    Question: The facebook ID is all numbers, right ? remember that syncing object variables do not accept Letters.

lennaert's avatar

lennaert

Early Adopter

Member since 8 Oct, 2013

Twitter
lennaert has 13 followers

Connect with lennaert

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
  • x5
    Popular Game One of your games has over 1,000 players
  • Famous Game One of your games has over 10,000 players
  • x2
    Coach One of your tutorials has over 1,000 readers
  • Educator One of your tutorials has over 10,000 readers
  • 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
  • RTFM Read the fabulous manual
  • x2
    Great Comment One of your comments gets 3 upvotes
  • Delicious Comment One of your comments gets 10 upvotes
  • Email Verified

Progress

25/44
How to earn trophies