Chadori's Recent Forum Activity

  • Hello to all

    I would like to know how can i make an app for android, but who alo work under ipads/tablets

    Someone know the best practices and best screen resolutions for mobile dev??

    thanks

    Best option for Phone and Tablet support with HD looks and good performance:

    HD Screen Size: 1280x720 pixels and Scale Inner. Depends in your game (Scale Inner / Scale Outer)

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Tartilla, the high possibility of this is the invisibility of a certain layer where your object was. And by the looks of it, there is only one layer in your layout and when that layer became invisible, the blank white layout paper disappeared as well.

    Click on the Layer Tab in Projects Bar ---> then Set Layer0 or any layer there to visible.

  • Maybe something has changed since last year - I haven't tested it recently. However last year when I was releasing my trivia game I clearly noticed that every layout first loading took on my mobile approx 2s. Then every layout second (and n-th) loading took about 0.5s. So the difference was clerly noticable.

    Now regarding RAM. It depends on how the program is written. I am not sure how C2 works atm. But system does not clear any RAM data "by default". Clearing RAM takes time as well so data usually stays there even if it is not used and then some GC (Garbage Collector) clears it periodically. Or you can do it manually by coding as well ofc.

    And let's say I have an app exported to desktop. My laptop has 16GB of RAM. It is "strong enough" to keep in RAM whole game even if it is not being used. But access to the RAM memory is much faster than HDD read so the game would be much more optimised if all the data would remain in RAM rather then be cleared and loaded everytime the layout changes.

    For mobile devices it is a bit different story cause we usually have 1-3GB of RAM which is not that much and indeed sometimes RAM might be not big enough. In such cases unused data will be overriden by the new data.

    I am not an expert, just saying how I see it based on my knowledge and experience.

    Now the last thing to say here is that putting all objects in one layout is not a good practice when you think from the perspective of being a good coder. Good code is semantic and hermetised code, which means (in short) that every "thing" should be where it belongs and nowhere else.

    But loading everything on first layout is acceptable even for good developers in C2 simply because of performace.

    But then again if for some reason data is cleared when you swich to other layout... then there is absolutely no point doing so. It requires testing on various platforms and various mobiles to be sure how it works I believe. Nice topic tho!

    Yeah. I agree, this really depends on what you are exporting to. For I make mobile games, I focus more on cordova exports and less on PC exports. And If I sum up what said, I would say that since PC's has greater Rams then it would be better if you would preload it on startup because PC's doesn't require a lot of resources that makes clearing of Ram unnecessary, therefore making it faster. But If you use mobile exports then it is better to put each objects that is going to be needed in the layout into that layout for mobile ram's are very limited at the moment. But if you have the time, I really recommend to put the objects in the layout you are using because of unexpected Ram cuts and clearing just to make sure. But these might not be accurate yet, so testing for yourselves will be much better. I will also test this myself on other platforms if I have the time. I also think this is a great topic too.

  • I don't see anything in them that would make me think it is a bad idea to create a layout dedicated to stocking objects.

    Stocking objects is not bad when you are still editing and it is the first instance per object that you are putting there and this should only be temporary because this is only used to make construct 2 familiar with the size, opacity and other properties of your object / sprite and later on you will have to move it to the layout that is going to need it afterwards. And this is only applicable for games with many layouts. And every optimization freaks out there that is concerned with code optimization knows that you shouldn't leave something in your program that is not going to be needed. So if you think about it, if you want to have a more optimized game then you should delete that object layout on export.

    "NOTE: When a game leaves the layout. It releases images from memory that is not going to be needed in the next layout to make space for the new images for the next layout. This is necessary for optimization of games. Think about it, if you don't flush it for the next layout and keeps adding more images. Sooner or later it's gonna overload and crash or have fps spike and etc."

    If you think I am wrong, please correct me. Btw, I did not made this statement based on my observation only, I made a lot of test on this before just to prove this and this is also based on my experience. I had a game before that became so slow because of misunderstanding how ram memory works and by not reading the manual. And I learned my mistakes the hard way.

    Rable

  • Could you quote the part of the articles which make you think it is?

    https://www.scirra.com/manual/134/performance-tips

    Ashley said:

    (Not placing all used objects in the layout)

    If objects are not placed in a layout but are created by events, Construct 2 will load the textures for those objects the moment you create them. This can cause a momentary pause or "jank" and make the game feel less responsive. This can be avoided by placing any used objects in the layout. They can be placed off-screen and destroyed on startup to avoid interfering with the gameplay. Then Construct 2 will preload all their textures when the layout starts, avoiding any "jank" as they are created and destroyed at runtime.

  • Alright, I hear you If I find a solution before than, I'll definitely let you know. Could you do the same for me? Also, have you ever heard of Ludei? Can't we use that instead of Intel XDK? Can you use admob with Ludei?

    Yes. I'll notify you too. I really don't know anything about ludei (cocoonjs) admob export but it really isn't as compatible to construct 2 as IntelXDK.

  • I see. So, is there a solution? What are you going to do? Personally, I can't find a solution for this problem any where...

    Well. One thing for sure, we can't download the previous intelXDK for intel doesn't support them no more. I think I will keep experimenting on a way to avoid the problems and If I fail, then atleast we can also wait for Ashley or others to find a solution.

  • Is that what he's saying? To download the old version of Intel XDK, and use the old cranberry ID (this one?: com.cranberrygame.phonegap.plugin.ad.admob) as well?

    Actually what you are using is the updated one. And it loads for a while(very long time) about(must be wrong 5 - 45 mins) and it will finish adding plugins, but that is not the real problem because on finished build and when you receive your apk, on install and run on phone, it will crash the game even before finishing the construct 2 logo and progressbar loading.

  • Download the old version. I'm still using it and works fine with me.

    That will be my last option. Maybe there is a better solution.

  • > Try

    >

    > > If Space pressed
    >   Object is on Layer 2
    >     -> Move Object to Layer 4
    >   Else
    >     -> Move Object to Layer 2[/code:37yr5ttw]
    > 
    
    It says that Else is not valid.
    

    If else is not valid then just change it to this:

    If Space pressed
      Object is on Layer 2
        -> Move Object to Layer 4
      Object is on Layer 2(invert)
        -> Move Object to Layer 2[/code:37yr5ttw]
  • >

    > > how can I have enemies attacking each other and having them attacking the player when in range

    > >

    >

    > Try this:

    > https://www.scirra.com/tutorials/474/pa ... e-of-sight

    >

    thanks but I already have path finding and line of sight events it was working till I created other enemy's and then the enemy attacks only the other enmeys

    Maybe you forgot to add the condition:

    *(Pick nearest/furthest) to (enemy.x, enemy.y)

    *For Each

    If still not enough, tell me. I'll try making an example but I suggest you to provide a sample/similar event .capx file so it'll be direct to the point.

  • 'Disable collisions' only affects 'On collision' and 'Is overlapping' events. Arguably a touch is not a collision, because the touch is not an object that is colliding with it, it's something else (a form of input). So I'm not sure if this should be changed anyway?

    No, I think that would cause issues. My point is since Touch is also dependent on Collision Polygons, I think adding in the manual that touch is based on collision polygons but not applicable by events nor object collision would suffice. This is a simple misunderstanding but if somehow some people will make a big game and somehow missed this, then it would be a big problem.

Chadori's avatar

Chadori

Member since 10 Oct, 2014

Twitter
Chadori has 49 followers

Trophy Case

  • 10-Year Club
  • Entrepreneur Sold something in the asset store
  • Jupiter Mission Supports Gordon's mission to Jupiter
  • Forum Contributor Made 100 posts in the forums
  • Forum Patron Made 500 posts in the forums
  • Forum Hero Made 1,000 posts in the forums
  • x2
    Coach One of your tutorials has over 1,000 readers
  • Regular Visitor Visited Construct.net 7 days in a row
  • Steady Visitor Visited Construct.net 30 days in a row
  • Enduring Visitor Visited Construct.net 90 days in a row
  • Unrelenting Visitor Visited Construct.net 180 days in a row
  • RTFM Read the fabulous manual
  • x2
    Great Comment One of your comments gets 3 upvotes
  • Delicious Comment One of your comments gets 10 upvotes
  • Email Verified

Progress

24/44
How to earn trophies