Nepeo's Recent Forum Activity

  • sachos345

    Thats nice to hear! Yup, i read that link yeasterday, i unpacked the APK with 7zip but i did not find any "lib" folder, from what i understand that means that the App is architecture independent correct?

    That's correct yes. APKs are architecture independent unless they contain code for specific architecture, which will be placed in a lib folder. So no lib folder is a good sign!

    Below is a diagram showing how your game is executed on an Android device. The C3 runtime is written in JavaScript, and addons are written in a mixture of Java and JavaScript. Java is needed to access some Android features.

    Anything that runs directly on the processor has to be the specific architecture for that CPU. As you can see Construct runs via the Dalvik VM and the V8 VM. These are already on the device and using the correct architecture, so you don't have to worry about those. Java was specifically designed to be platform independent so programmers didn't have to worry about architecture differences.

    Game/rendering engines that compile directly to machine code are often architecture dependant, such as unity and unreal.

  • We're looking pretty good for all the first party addons. I haven't looked at any third party ones, that's up to the individual developer. I would imagine they, like us, will be fine. You can check out the document that they posted https://developer.android.com/distribute/best-practices/develop/64-bit which tells you how to identify if your APK is architecture agnostic or not.

    We only use Java code on Android, and if you try looking at the APK in an archive viewer like they suggest you will see no compiled library folders. So all good!

  • TheScythe we need to publish a new release to disable webgl 2 on Android properly ( probably Monday ), if you know what you are doing it's possible to modify a cordova project export so that it only uses webgl 1. There is a older forum thread talking about doing this, which probably includes instructions.

    Just to be clear this issue only happens when published as an Android app, on devices using mali GPU's ( mostly samsung devices ) and using release 137+. If possible just publish using r136 if you need to do it urgently, or if your comfortable working with a cordova project you can modify the runtime as I mentioned before.

  • I'm going to be honest here GeorgeZaharia I know relatively little about Physics engines, they are pretty complex and I've never had to do anything complicated with one. We're embedding a port of Box2D here so my best guess is that your just looking at the properties that Box2D exposes. Ashley will know more, as he wrote the wrapper code for the behaviour, but his answer is probably the same.

    I imagine the reason why you can't see the module in the construct 3 version is that we've swapped from using a JS based port to one done in WASM which is a binary bytecode format. Chrome should still show you a human readable format for the module, but you won't be able to breakpoint it and it will appear as a relatively complex language.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I'm not sure why it's being rotated, but if you check the properties of the spawned block objects in the debugger they are at a 90 degree angle. I discovered this when I decreased the collision box considerably, which caused a lot of overlap in stack blocks. So I fudged it by changing the collision rectangle to 0.1 - 31.9 in both dimensions instead of just X, which fixed the issue.

    It makes more sense to fix the rotation though, as you'll end up with you texture the wrong way round.

    You may want to try disabling the bullet behaviour ( perf boost ) and clamping the object position to the grid ( prevent visible block height variation ) when the collision happens.

  • I had a look at your project, the falling blocks have been rotated by 90 degrees. So the small gap you've given for collisions is actually on the top and bottom.

  • andrewrutter there is a desktop beta version available on the forums that allows for saving projects as a folder of files instead of a single file. Some users using this with version control tools like git and SVN. In terms of versioning this obviously works fairly well, but some project level changes can touch on a lot of files, and merging such changes could cause conflicts. I haven't tried using this myself to comment on how much of an issue it is.

    This idea has previously been suggested here, and we have given an official response.

  • By the looks of your collision rectangle you probably understand this but I will explain why grid aligned games can be awkward

    In a typical collision engine 2 objects touching counts as a collision, even if it's a rare occurrence that should be the case.

    Most movement behaviours work along the lines of "If I move here will I be colliding? No, okay then move me there. Otherwise, I'll stay here". So when you have two objects moving exactly next to each other ( such as in grid aligned games ) it will appear to the object that it's path is obstructed, even though their overlap is technically 0 they are still touching each other.

    Some things you might want to check are:

    - your blocks are positioned at integer spacing

    - your blocks have an integer size

    - your blocks are not rotated

    - your collision rect is slightly smaller than the block

    - the size of the texture for your block sprite is the same as your instances ( prevents resizing of your collision rect )

  • Depending on how much JS manipulation you need you have 3 options. The first is to use the inbuilt "Browser" plugin, which has a couple of options for evaluating JS. So in this situation you could use the expression Browser.ExecJS("window.testMessage") to get the value.

    If you need to do more then the 3rd party JavaScript plugin is quite popular for this sort of thing. It offers methods for calling JS functions and getting the return value, which is generally safer and faster than executing an arbitrary string like I showed above.

    The final option is to write a small plugin using the SDK, this is an advanced use case but might fulfil a few more complex situations that you want. SDK manual

  • it looks like we haven't exposed all the required parts to the public API interface, I will look at getting it added soon for you.

  • TheScythe I wouldn't exactly encourage editing the version, as you may corrupt your project ( so always keep a back up ).

    C3P files are basically zip files, with predefined internal layout. What you see with folder projects is that internal layout. I'm not sure which format your using, but the process is much the same.

    If your using a C3P then I would advise opening it ( not unzipping ) with some variety of archive tool like 7 zip, you can edit the files within the zip file without you needing to unzip it like this.

    You want to edit the project.c3proj file ( it's in the JSON format ), each addon will include it's own version number in the style "r137" which you will want to change. Additionally there is a project version in the format "13700". If you want to move to a point release then the values will look a little different, you should try looking at a project saved with the version you want to target if that's the case.

    I believe the issue is graphics driver problems when using webgl2 ( these generally don't produce any actual errors, just rendering problems like blank screens ). We have a device in the office that had the issues previously. If you are happy to share the project ( not an APK ) privately I can test it for you on that device and we can see about resolving it before the next stable release. You can contact me privately at iainqnw@scirra.com

  • It's already supported, although it's probably not made it as far as the documentation. You can bind a construct plugin property to a cordova dependency variable. When the user exports the property value is automatically added to the config.xml as the variable. Let me go check out what we say in the docs.

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