DuckfaceNinja's Forum Posts

  • C2 image editor should be called as C2 image manager instead. The only thing that you should be doing in it is managing your collision polygons, your imagepoints, animation names, placeholders graphic, image imports. Beyond that, use other tools which are already establish for a long time.

  • But if the first peer becomes a host, who checks that peer? Or am I thinking about this incorrectly?

    Download the capx in my last bug report if you want to see a method of ensuring your server to always be the host. This is one of the few ways to do it, it uses roomlist checking to verify a host exist or not before peer attempt to join room.

  • npmjs.org/search

    Thanks for the link Too bad I don't have the necessary skill yet to be able to use them.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • You can add parameter in the Call Function dialog. Double click the Call "EnableCrabby"(), click on the "add parameter", type Crabby.UID, you should see exactly what nimos100 typed above, then follow through his instruction.

  • Is there a chance that your miserable situation caused by the c2dataeditor? Probably tag the seller would be a good idea to ask his assistance. I haven't use browser.ExecJS before because I don't know how, so I can't tell whether those parameters are properly forwarded or not.

    It's rare to see advanced question like this though, hopefully better users can give some hint.

  • And what about database communication? Is that even possible through the browser?

    The serverhost can cover this by AJAX call to PHP. Btw, this is actually a solid way (i think) to prevent cheating/hacking by having the host to do the communication to DB.

    Honestly, I haven't covered this yet because I have no knowledge in it, still a PHP beginner, not yet sql. If only we're capable of communicating to DB using C2, with node,js plugin or something, then we can actually achieve this purely by C2.

    I'm not sure requesting DB plugin for C2 will have any attention because it is niche and possibly only see small usage, and possibly cause beginners to use it unwarily and cause their DB to be hack. But I still wish it will be made though, regardless official or 3rd party plugin. Some discussion.

  • skelooth I once used dictionary, honestly I don't really like it because of things that happen to you, once happened to me. I would like to suggest you to use array instead, no particular reasoning to this it just my preference. I rather use dictionary to store simple things only.

    Similar functionality you can exploit:

    Dictionary: haskey; Array: [condition:contain value]

    Dictionary: get; Array: array.at(array,indexof("xxxx"),#)

  • I have a lot of players on big map. When player shoot other must hear if close to him. "Set listener" isnt helps correctly. Looks like listener always host screen. Any ideas?

    This is interesting to think...

    I never tried this but I think you can calculate this on peer side, because this is not an authoritative case. Let the host sync the coordinate of all peer to everybody, so in peer event, calculate the distance based on sync coordinates, adjust the volume based on the distance. This is if you want to adjust the sound relational to position. If else, what TheDom said is totally a good way to do it.

  • Not really, no. Like I said, grid-based, which means requesting a tile in one of four directions, using a 3D arrays that contain information about the map. Really all it needs to know is the placement of objects, and whether or not there it can go to that square.

    This is actually fairly easy to do (compared to my current project), and I think you don't even need sprite object at all, just crazy array management here and there, I still believe C2 is the faster way to do it, none of the both I think superior to another.

    I think the only limitation is C2 is not capable of more than 3D array, which in my project I need 4D to be short, but this is managable just by duplicating my 3D array events.

    How reliable is that?

    Nobody have anything to test it yet, so there's no telling how reliable it is. I tested a few situation such as spam send message and client input, so far I think it is reliable on small scale, let say 20 concurrent users for single server tab. But this will differ based on complexity of your logic as well.

  • Warning: Long Post

    I am looking to create an authoritative server rather than using the signalling server.

    I think you misunderstood signalling functionality, AFAIK signalling server only serve to:

    • Create Game
    • Create Instance
    • Create Room
    • Assign/associate peerID and peerAlias
    • Assign Host
    • Connect Peer to host

    It doesn't handle game logic at all. You can actually create authoritative server using C2, it will be flimsy but it is definitely doable, what you'll be needing is:

    Note: MP beginners do not read this or read at your own risk.

    • Client made from C2. This is obvious.
    • Lobbyhost, area host, or generally call it serverHost, this can be made from C2 as well to handle the logic. I know this is doable because I'm actually doing it. Below is the actual screenshot of client.
      Below is the actual screenshot of duelhost.
      If you're going into the path of server side logic, this might be the thing that you have to tackle, which is creating a totally more than 2 different project, this is extremely difficult but doable, only your patience will tell how far you can go.
    • VPS or dedicated hosting server to run browser. This browser will run your exported C2. For scalability, you can open up multiple tabs for the same project, but log it into separate instance (game instance top level) and separate room (area instance). Furthermore, if you ran out of computing ability on one server, you can just host the serverhost in another computer!
    • Access to remote desktop to your server to actually run your browser, or if you know how to run the browser using php or any sorts of vodoo, you probably don't need the remote desktop access.

    On side note, you're trying to make an RPG, so will it involve collision check? If you do, I think that would be the most difficult to do if you intend to do that using the way you wanted in the first post. The advantage of doing server logic in C2 is, you already have collision covered, I believe that cut a lot of developing time, the project can be minimal, without any visual, just collision mask to represent you players/objects.

    In terms of reliability, I would admit that, doing so probably gives you a flimsy server, but this is not tested fully and unproven. I think what is doable with C2 now is actually acceptable for small scale MORPG unless you're building a full-blown massive scale MMORPG, which I think you're probably need what you wanted in your first post.

    If you know Real of the Mad God, something like that is totally doable with C2, I tried it, seen it happen, yes it is possible.

  • So I know we already have the mutiplayer plugin (and that's all fun and games and it works well, yes) however, I'm not interested in it because getting a dedicated server and running that through the signalling server is not a hoop I would like to jump through.

    This could mean either:

    1) You think MP plugin needs you to have a server to run your game, which is not, OR

    2) You want to keep game logic on the server side, so you need a dedicated server to host the game sessions/instance/area, which require the serverhost to connect to signal server, which you don't like. Is there any reason for this that I should know of? I'm asking because it's quite relevant to my project.

  • I wouldn't expect the bandwidth use to be deterministic. Expect variations even for identical runs.

    he test is done with single device (laptop) with just different browser, I haven't done any test between 2 different network, which I plan to use my 3G dongle and home internet (HSBB fibre optic), I think the variation is very small because of the connection is from the same network that it took the LAN advantage. Should I be expecting bigger variation if I use different network? I'm thinking yes.

    Now I just need another PC to test 2 different network.

    it still will have counted the outbound bandwidth because it passed it to the OS network layer.

    hh that's explain the result fluctuation for outbound. Thanks for the info!

  • Problem Solved.

    It seems that time spent on game does affect the calculation, because of some deep-rooted peerlist checking event I did months ago that I forgot it exist, because it's not logged, silly me. Disabling that portion gave me quite consistent result especially for inbound (<1% margin). Outbound still fluctuate a bit but I guess that is due to some packet losses when tested on 3G connection, and the client retry to send the packet, which adds to the outbound total. So far results from steady home internet gives me the most reliable result, I can almost conclude that there are almost no packet losses on steady connection, this gives me confident to continue heavily on the project, MP plugin is great, kudos to Scirra!

  • If you browse the forum enough you will see that buying straight from this website is the better choice, even considering the 3rd party plugin factor.

  • lilvee1989 if you feel insecure, you can always put screenshot of your event or something. Vague question will always get vague response, however precise question will get either vague or precise answer, so go for the latter . The more specific you ask the better, that's why people will ask for capx, MINIMAL, not the full game.

    This works similarly like a bug report though, narrow down the events you have problem with and upload the capx. Btw, problems with minimal capx attached always get good attention from the community.

    On topic: probably like this? I'm just assuming what I think you wanted. You can use physic, but I think at your level, it is probably best to understand solid and bullet first. Deal with physic later when you have a good grasp of C2. Look around the behavior and instance variable I setup,try to make it elegant as your "homework".

    Note: what you wanted from 1st post is z-ordering.