Fengist's Forum Posts

  • I dont know how much I should be saying here, but I did buy the signalling server code.

    The code is minified, so its pretty hard to modify. I have, for my own personal use added in a basic login via sql. It took me less than an hour of formatting and poking around to understand what was going on with the code to be able to start adding my own functionality. (hint: js code formatters are helpfulllll)

    I hope this helps!

    Thank you. That's what I wanted to know.

  • So, I'm guessing this means that nobody knows the answer to this question and therefore I shouldn't waste my money since the dev's apparently have no desire to release any of their MP protocols.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Furthermore... and I just noticed this... the Scirra signalling server sends out the IP addresses of everyone connecting. The dev's of RUST learned the hard way that if you have a game and you broadcast the IP address of players, other players will DDOS them with pings just to make them lag out. Don't you just love how desperate some people are to massage their egos with a win?

  • The signalling server offered by Scirra is wholly unusable for my purposes. There's no method of controlling users logging into the game (like an SQL database) and there's no way to start and stop hosts if you don't want the game hosted by a player.

    I've been playing around with a wss client and server in C#, connecting to the public signalling server with no major issues and it appears that writing my own signalling server part wouldn't be that difficult.

    Therefore, my question is this:

    Does anyone know how readable the js code is for the signalling server?

    What I'm hoping to accomplish is to create a signalling server that starts a 'host' client for players to join as peers and then, pass off to the multiplayer control and allow the host to serve the game much the way the current signalling server does.

    In order to do that, it would be real handy to be able to read the signalling server code (since Scirra hasn't released their wss sub protocol standard).

  • Well, this can be done by using built-in multiplayer plugin like in this template.

    The server can be represented as a stand-alone application or even a browser window. Moba games usually have only ten players in each room, so it will not be a problem for C2.

    See my reply above. The question is, can it handle upwards of 150 moving objects and 16 players and all the settings needed for those objects?

  • A LoL/DOTA-style MOBA or RTS is pretty ambitious using these technologies. I think you are going to run into two major issues:

    Message rate limitations: In my experience, trying to send more than a few messages per second to a php/MySQL server will quickly overwhelm your server, as it has to receive the message and read/write to the hard disk synchronously every time. In something like LoL or a traditional RTS, each player might clicking several times a second, and each of these might generate a message to the server, quickly overwhelming it. This is just for a single game. If you have 10 games going on simultaneously, each game might require its own server, quickly driving your costs through the roof.

    Lack of an integer data type: Because of the large number of units involved, MOBAs and RTS games don't try to send the entire game state over the network. This would require gigabytes of data every second. Instead, they only send player inputs, and each computer is responsible for computing the results of all of the inputs. This requires a deterministic computation. To do this, you really need to be using integers instead of floating point numbers. Because it runs in a browser, you don't have direct access to integer data types in Construct, and this will introduce errors and inconsistencies between different player's computer's versions of the game.

    Hi and thanks for the input. Right now, what I'm looking at is a 8v8 moba. Each of those has speed and direction to be determined. Each of those can also fire up to 8 bullets each, 1 'direct fire' weapon and one semi-tracking weapon. Naturally, other data will need to be kept track of such as hit points, a shield and energy. While most of the time it won't have all of that on any one client's screen at a time, it is a possibility. Now, I know for a fact that UDP can keep up with this kind of data as it'll be a variation on a much older game that used UDP. What I'm concerned with is whether a NW.js game server and a C2/3 Web client can handle this kind of information using the multi-player plugin. Unity could do all of this with a lot of power left over. But creating a win/linux/mac client for it and writing code in c# is a nightmare I'd rather not deal with.

  • Ok, so here's my basic idea for a game and I'm trying to decide if it'll work in C2/3 or if I need to slog through Unity.

    The game is basically going to be a moba. There will be a login/matchmaking server. Once a client readies up for a game and the matchmaker finds players it will create and start a game server. Clients are then transferred from the login server to the game server. Once a match has ended the clients are transferred back to the login server and the game server shuts down freeing resources (think LoL or Dota2). I definitely don't want this to be a p2p multiplayer. I want it server controlled.

    I think I know how this can be done using C2 with Ajax, PHP and MySQL. What I'd like to hear is how you'd approach this type of configuration using C2/3. In particular, how you'd handle the game server. Would you do an NW.js export and just have PHP copy and run the game server or ????

    Thanks

  • Tetriser Winds3d to model, export as .obj. DazStudio to animate. And, if you decide to work in 3D, I know for a fact the models look just fine in Unity.

  • Wings 3D

  • Fengist : https://www.scirra.com/tutorials/4848/how-to-get-admob-official-plugin-working-on-android-crosswalk

    Here is the "non-existent" tutorial.

    Kyatric Ok, it does exist. It's the same tutorial Ashley pointed me to THREE MONTHS AGO... which I followed the instructions for... and it didn't work. Read back in this thread and you'll see that. If you've updated that tutorial... splendid. But since it's taken SIX MONTHS to... maybe get an answer through an unofficial tutorial update that may or may not work properly this time... I've already paid someone for a solution that worked the first time.

    You'll forgive me being a bit perturbed, but rooting through tutorials and reading the same one over and over again to see if it's been changed is NOT how I expect to get support.

    Yes, close and lock this thread. I'm tired of getting pissed every time I look at it.

  • lol... and this is exactly why I gave up. 6 months after I start this thread, I'm referred to a non-existent tutorial and the thread is closed.

    Now you know why I'm using cranberry's plugins. Pretty sad.

  • I can understand the Chrome web not working. He plainly stated when it came out it was in testing.

    Not working on google play? Are you kidding? The biggest market out there?

  • LOL, I've pretty much given up on developing anything else with this software. The fact that all I got for support was... read the tutorial... told me Ashley doesn't really want spend any time fixing this.

    Last I tried, Chrome Web Store and IAP did not work.

  • Hi cranberrygame

    Just bought your plugins and the IAP worked great. Ran into one minor problem. I shut down and restarted my phone and while it was still loading I ran my app with the IAP plugin and got this error.

    java.lang.IllegalStateException: Can't start async operation (refresh inventory) because another async operation(refresh inventory) is in progress.
    	at com.smartmobilesoftware.util.IabHelper.flagStartAsync(IabHelper.java:821)
    	at com.smartmobilesoftware.util.IabHelper.queryInventoryAsync(IabHelper.java:613)
    	at jp.wizcorp.phonegap.plugin.wizPurchase.IAP$2.onIabSetupFinished(IAP.java:288)
    	at com.smartmobilesoftware.util.IabHelper$1.onServiceConnected(IabHelper.java:260)
    	at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1265)
    	at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1282)
    	at android.os.Handler.handleCallback(Handler.java:739)
    	at android.os.Handler.dispatchMessage(Handler.java:95)
    	at android.os.Looper.loop(Looper.java:145)
    	at android.app.ActivityThread.main(ActivityThread.java:5942)
    	at java.lang.reflect.Method.invoke(Native Method)
    	at java.lang.reflect.Method.invoke(Method.java:372)
    	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
    [/code:h1fq5zue]
    
    That's the report sent to the Google Play Dev Console.  I'm guessing this happened because the phone was still booting up and I ran the app at the same time.  But, it crashed the app.
    
    I ran the app again a few seconds later and no problems.