Nepeo's Forum Posts

  • I figured it would be something along those lines. Thanks for taking the time to explain.

    Flipping the axis like this would probably mean us having to rebuild the view. Then have some logic when creating/reading that data back to map it to the corrected axis. As arrays are 3D there are 3 possible flips, and 6 combinations ( 3 * 2 * 1 ) which makes the remapping logic more complicated ( as well as the associated UI ).

    In your situation your just interested in "viewing it the other way" but modifying the data is actually easier to implement I think. Also it actually allows you to change the data instead of the view, which some people will want to do.

    This will probably end up towards the bottom of the TODO list unfortunately, but I will add it to my notes to investigate.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • dop2000 We probably could, but is there a reason why you can't just have your data structured in the other direction?

  • I think you might have been misunderstanding the "logical or" operator.

    It evaluates the left hand side and checks if that side it "truthy". If it is truthy it will return the left hand value. If it is "falsy" it will evaluate the right hand side and return that value instead. For numbers "0" is the only "falsy" value.

    Looking at your expression it would have always been returning the left hand side. AllanR's suggestion of using the "choose" expression is what your expected the "or" operator to do I expect? Which is to randomly return one of the values.

  • It might be that there's a bug, the original samples I produced actually don't wait for registration to complete so they aren't testing those triggers. I'll review the code and see if there is any obvious problems.

  • Colludium Ear cutting works pretty well, and it's easy to understand compared to most other methods. The downside being that it doesn't support polygons with holes or self intersection (Non-monotone polygons). I think most algorithms that deal with holes attempt to resolve it into multiple monotone polygons first. Of course if you can guarantee that the polygon is convex then simple fan triangulation is the way to go, as it's simple and fast.

    In terms of release I'd echo what others are saying. It's better not to hold off because of one bug. Your users might discover another edge case you haven't thought to try when you do release, making the delay pointless. Just make sure to clearly note any known issues in the release.

  • Shubi Yeah that sounds like exactly the sort of thing that can break things! The Chromium team would probably be interested in that, but it would be a low priority fix I think. Also it would take a fair bit of effort to get a good reproduction I expect. As you've found a way to workaround it I think we should just be happy with that.

    Hope the next submission goes well.

  • Which success handler are you registering? IAP has 3 different success handlers, none of them are called "On success".

    You should only need to register the products once, as the store exists for the duration of the session. I expect attempting registration again will simply be ignored.

  • Yeah seems pretty stable now! Can you tell me what you changed? Curious what the issue was.

  • Well I can confirm that I get the crash, but not at the time you indicated. For me it occurred after going back to the homescreen from the game. It also did not occur all the time, but quite frequently ( 2 out of 3 times perhaps? ).

    If you have a device that repeats the issue then your might get more information by doing a debug build and looking for more information in logcat ( android studio logs ).

    If we get more information I think we can take this up with Chrome team, if we can figure out the situation it might be possible to workaround it.

  • As it's failing inside libGLES it's hard to tell what triggered the crash, only that it's happening in code we don't own... So it's a bug to be taken up with the Chromium team, or the device vendor.

    The crash log mentions "taimen" which is the codename for the Pixel 2 XL, which is a phone we have in the office. If you want I can take a look, but I can't guarantee I will find a solution. I might not be able to reproduce it if I have a different software version.

    As a side note do you know if they are testing on a physical device or the simulator? My experience with webGL in the Android simulator is... pretty rough. But I think they often use the simulator for testing.

  • andrewrutter Behaviour interfaces are still very new, I don't think they have made it to the manual yet. There is a small amount of information about them in the r167 release notes. As it says it only supports the bullet behaviour at the moment, but we will be adding more interfaces in future.

  • Hey Shubi I'm glad you managed to work it out! It can be a bit of a beast figuring out Android Studio and XCode. So many buttons and menus... I mostly just use the corners of them I know and leave the rest be.

    We'll try to sort out the issues with the default permissions, I don't think they are actually being used. They exist mainly because they are added by general purpose plugins, and features that require them exist in those plugins... but aren't used. Which is a bit silly. We'll probably resolve this by having more options in the export to select permissions, and have the default values be what the plugins specify.

    Anyway, let me know how you get on!

  • Incidentally I have been investigating the unwanted permissions being included and we are hoping to have a fix in one of the upcoming beta releases.

  • Shubi When you open your project in Android Studio the Gradle sync will initially fail, this is because they changed something in Gradle and Cordova hasn't caught up yet. Here is how to resolve the issue so you can use the project.

    Select the error message The minSdk version should not be declared in the android manifest file...

    In the right hand panel it will repeat the description, and there will be some text in blue that you can click on saying "Move minSdkVersion to build files and sync project".

    Finally click the "Do refactor" button to confirm you want it to make the change.

    It might take a moment to complete the sync. You will likely have a warning about the targetSdk version still, but no errors. You can repeat this process for the targetSdk if you wish but it doesn't matter.

    Now that you have hopefully got the project working again we can remove the permissions. In the project bar select App > manifests > AndroidManifest.xml and double click to open the file.

    Inside this file you should have some lines that look like <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />. These are the declarations that each permission is required. If you delete the line, the project will no longer include that permission requirement. Delete the permissions you do not want.

    To get your release APK go to the top menu and select Build > Generate Signed Bundle / APK and follow the on screen instructions.

  • System expressions like choose(...values) and random(min, max) use the JavaScript Math.random() method. Which tends to be fairly high quality ( certainly better the MST ) but doesn't allow for seeding. It's down the browser vendor to what algorithm they use for it. I believe Chrome uses an xorshift variant.

    The Advanced Random plugin uses the xorshiro256* algorithm, in which we allow the developer to specify a seed ( although the default mode uses a random seed ). More advanced features of Advanced Random like perlin noise, permutation tables and cellular noise all that PRNG as a source. So are based off the seed. You can also set Advanced Random to replace the source of randomness which the System expressions use.

    newt what do you mean by complex noise? We have 2D and 3D variants of Improved Perlin, Billow, Ridged, Cellular and Voronoi noise. Perlin and it's derivatives utilise Fractional Brownian Motion as well. They are all derived from a seed.

    you should be able to create MersenneTwister using JavaScript if you want. I'm not that familiar with the algorithm but there is an implementation here. It's worth noting that it is quite complex and isn't considered "good" anymore. There's some passable simple PRNGs written in JS here. I'm not sure what the quality is like, but they will likely be "good enough".