Nepeo's Recent Forum Activity

  • It sounds like a return of an old Android bug, it would be appreciated if you could file a new issue for us to investigate.

    To go to the current stable just visit https://editor.construct.net, it always points to the latest stable ( not beta ). You can choose a specific release on the releases page it will tell you to update, but you can ignore this.

    Projects saved with a newer version won't open in an older version, this is for compatibility safety. In most cases the project can be safely modified to open in an older version.

  • Go to your application(Android version) on the AdMob website, select "app settings" from the menu. You will see a label "App ID", it will look like "ca-app-pub-0000000000000000~0000000000" that is the ID you want.

  • igalencar use the debugger and inspect the instances

  • Ashley

    Hmm... maybe GC heuristics work differently in a worker?

    I expect the scheduler to behave differently at least, so yeah GC timing is probably different as well. I'm not sure what the threading behaviour of Orinoco is when your in a worker, so that could effect how long GC takes compared to main thread as well. JS execution time definitely seems to be different.

    It's hard to keep track of heap size and frame rate in dev tools when using worker mode because it tracks the main thread.

  • SnipG

    Not related but.

    What Nepeo said

    "VERY high spikes when you cross a loading threshold"

    This is pretty awful, sometime it feels like there is small spike(1-2 tick) but it somehow overflows into ~0.2sec. Not sure what causes it.

    Yeah as I said it's just kind of how that game works, I based the logic on a similar project I've been working on in my spare time (Voxelcraft) which has a similar issue. Ideally the work would be broken up or done on a different thread so as to not hinder the framerate.

    On the procedural terrain demo when you cross a loading threshold it has to:

    - break the tilemap up into "chunks"

    - serialise each chunk, and store it in the dictionary

    - update the world position

    - for each chunk either generate world data or deserialise from the dictionary and place the data in the tiles

    So there is an awful lot of looping, serialisation, deserialisation, noise generation and tile updates. All of that has to somehow happen during a frame, and it normally does! Performance can be tweaked by changing the size of chunks and blocks, to reduce the number of loops and iterations ( loops cost more than iterations ). Also persistence can be ditched to remove the need to serialise the world. One idea I did toy with is to use multiple tilemaps and move them around, it's more complicated but would reduce the amount of work significantly.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Measuring the performance difference is difficult, the most obvious way is the CPU Profiler in debug mode. But that doesn't really tell the whole story. For instance, the CPU profiler isn't good at showing spikes ( which cause missed frames and jank ), as it shows live performance if you have heavy usage for a frame or 2 you are unlikely to see an accurate representation of that.

    While working on the procedural terrain demo I spent quite a while looking at performance to make sure that it ran smoothly. Due to the way the game works it generally has quite a low CPU level, but has VERY high spikes when you cross a loading threshold ( which is quite often ). These spikes would often cause dropped frames, which is unpleasant while moving around. To test what was causing them I mostly used performance recordings from chrome dev tools, as you can see frame times and CPU usage flame graphs for the duration of the recording. I tried testing worker mode to see if it made a difference. However, due to the way OffscreenCanvas works Chromes framerate is technically 0 when your using worker mode... So it's difficult to even tell if your dropping frames! You can however check how much frametime you used, which is fairly close.

    Performance with worker mode is... different, before xmas I was seeing a notable performance improvement with the procedural generation demo, but now I'm seeing a fairly large drop. This may partly be due to changes I made since then ( reducing loop iterations mostly ) but it may also be changes by the Chrome team. It's hard to tell. It's biggest win is that if your game is using significant CPU time it won't slow down whatever work the main thread is doing ( DOM elements, mouse movement, scrolling, audio ) and vice versa.

  • Diepther I can sympathise, the behaviour of the Google Auth API is frustrating to work with. I've tried my best to streamline it, but there is no useful output from it to give to the developer here.

    Last time I had to debug an issue with the API I found myself unable to get past this point for most of a day. The issue in the end was that we had changed to a new test account for our devices, I believed I had added the account to the test users for the application but had placed it on the wrong application.

    Resolving issues with this basically falls to trail and error, so all I can do is give suggestions. Sometimes the auth API will print kind of useful information to logcat in Android Studio, but you will have to sift through a huge amount of superfluous information from your device and jump through the correct hoops for getting Android Studio to produce a signed debug build.

  • Adding the key isn't enough, you also need to register the signature for the key with Google. You are given the option to provide a signature during the creation of an "app" on the Play Console, but it is optional. Without the signature your application will not connect to Google Play Services. You can edit the signature on the Google APIs website, there you will find an API entry for your application that was created via the Play Console website. Under the credentials section you can edit the signature and the package identifier associated with your application. The page looks like this:

    When opening the sign in dialog Google Play verifies that the certificate used to sign the app matches the one for the API, if it doesn't the dialog closes. As debug builds are signed with a special debug certificate they cannot use the Google Play API unless you resign the APK with the correct certificate.

    You can find a link to your API console project under "game details" in the Google Play console. It is at the very bottom of the page.

  • The Mobile Advert plugin does not have any configuration option for the position of the banner advert, and it's not hidden away somewhere. We create a layout with the banner at the bottom, over the top of the webview. Attaching it to the bottom or the top generally isn't as easy as toggling a flag, and the process is different on Android and iOS. It's probably possible to edit an Android Studio/xCode project export to change how the banner is positioned, I haven't looked at the code responsible for quite awhile so I'm not sure how difficult it is.

    We consider this to be an enhancement to the plugin, not a bug. If you think it is important please let us know using the ideas platform, so we know how to prioritise it.

    https://construct3.ideas.aha.io/ideas?project=C3

    Also as a reminder

    https://www.construct.net/en/forum/general/open-topic-33/forum-community-guidelines-141035

  • Hi Diepther

    When the dialog vanishes like this is typically means that Google Play services has decided that the app is invalid, it's not a very developer friendly way to fail but I believe they do it this way for security reasons.

    A couple of things for you to check:

    - Have you added the signature of your signing certificate to Google Play services?

    - Have you added the google account your using on the device to the testing user list on Google Play services?

  • There's no time limit on the free version, some features are locked out though. Most of them won't effect you with your first couple of projects. You can see the limits here:

    construct.net/en/make-games/buy-construct-3/personal-plans

    I recommend giving the beginners tutorial a go, you can do the whole thing in the free version and it walks you through building a game for the first time.

    https://www.construct.net/en/tutorials/beginners-guide-to-construct-3-1

    Have fun!

  • Hi pirx

    Check out https://www.construct.net/en/make-games/manuals/construct-3/tips-and-guides/performance-tips

    I recommend running your code in debug mode and seeing what is using up your CPU time. It can be easy to use up your CPU budget, particularly with a large number of objects on screen. I expect your event sheet is probably using the most time.

    Without seeing your project it's hard to diagnose it. There's a large number of skilled users in the community who are probably better at optimising projects than I am, but they will still need to see at least part of your project to help you.

Nepeo's avatar

Nepeo

Member since 8 Mar, 2016

Twitter
Nepeo has 583,792 followers

Trophy Case

  • 8-Year Club
  • x4
    Coach One of your tutorials has over 1,000 readers
  • x3
    Educator One of your tutorials has over 10,000 readers
  • RTFM Read the fabulous manual
  • Great Comment One of your comments gets 3 upvotes
  • Email Verified

Progress

13/44
How to earn trophies

Blogs