Ribis's Forum Posts

  • Hello everyone,

    I'm trying to optimize the logic that I have already made. Checking the CPU usage it takes 2% only for this function.

    Basically, on top of the collision player I have the animation player. When the player move, there are 2 sprites on the right and left of the collision player that is always static at angle 0. These 2 sprites, check if they are touching the solid terrain. If the player moves and there is a hills for example, the angle changes. When the angle changes, I'm able to understand if the player is uphill or downhill based on where the player moves.

    I bet there is a better way to achieve this. However I can't figure out another solution. The fact that I'm using 2 sprite to check every time the collision impact the performance. I would avoid to change the angle of the player based on the solid terrain angle. I found several examples on the forum but all the links are unfortunately broken.

    Thanks!

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Looks like there's good activity at Chromium on this issue. Part of the problem is these issues get reported here, Phaser forums etc., but people don't follow up by reporting it to Chromium, sending their APK etc. and walk away blaming webview, Construct, Cordova etc. So I commend indy2005 for following through on this.

    To me this is looking more and more like a GPU driver specific issue, which might be anti-climatic, and Ashley might sigh a told you so.

    I just tested on the apk on my phone, a low-mid end Nokia 3.2, and no performance issues, 60fps with 25% CPU utilization, GPU metrics not available on my phone. Together with Cascade Games testing that tells us there is no performance issue on the following GPUs:

    - Mali-T830

    - Adreno 505

    - Adreno 504

    But there is a problem with Mali-G71 MP2 (the GPU in the Doogee N20). Mali uses a different renderer (driver) for T series and G series. So the problem is probably specific to Mali G series, if not only G71 MP2 itself. G71 MP2 was released in June 2016, some analytics from Q1 2019 across 36 countries, shows G71 MP2 is 1.51% of the market, and I suspect it would be less again if you were looking at the 'gamer' market. The issue might even be further limited to a specific driver version.

    So if people want to help get to the bottom of this, let's crowdsource it, download and test the APK from the Chromium issue:

    https://bugs.chromium.org/p/chromium/issues/detail?id=1127307

    Report back here with your phone model, GPU model, and if you see the same performance issue or not. Then we can compile that information and add it to the Chromium ticket. I would especially be interested for people to test on phones with Mali G-series GPUs, including more common phones like Samsung Galaxy S8 and S9, Huawei P10, P20, Honour 10, which are all G-series but a different GPU. And people to test on phones with the exact same GPU (G71 MP2) which include:

    Blackview P10000 Pro

    Cubot King Kong 3

    Doogee BL9000

    Gigaset GS290

    Gigaset GX290

    Oukitel K10

    Oukitel U23

    Oukitel WP1

    Poptel P60

    Samsung Galaxy A10

    Samsung Galaxy A20e

    Samsung Galaxy A30s

    Samsung Galaxy A40

    Samsung Galaxy A7 2018

    Samsung Galaxy A8 2018

    Samsung Galaxy M20

    Samsung Galaxy Tab A 10.1 2019

    Samsung Galaxy XCover 4s

    Ulefone Armor 3T

    Ulefone Armor 5

    Ulefone Power 3

    Ulefone Power 5

    Umidigi One Max

    Umidigi Z2

    Alcatel 3X 2019

    Alcatel 7

    Blackview BV9500 Pro

    Blackview Max 1

    Blackview P10000 Pro

    BQ RU BQ 6424L Magic O

    Cubot King Kong 3

    Cubot P30

    Cubot Power

    Cubot X19

    Doogee BL12000 Pro

    Doogee BL9000

    Doogee N100

    Doogee N20

    Doogee S50

    Doogee S70

    Doogee S80

    Elephone A4 Pro

    Elephone PX

    Elephone U

    Gigaset GS290

    Gigaset GX290

    Oppo A1

    Oppo A73

    Oppo A83

    Oppo F5

    Oppo F5 Youth

    Oukitel C17 Pro

    Oukitel K10

    Oukitel K6

    Oukitel U23

    Oukitel WP1

    Poptel P10

    Poptel P60

    Samsung Galaxy A10

    Samsung Galaxy A10e

    Samsung Galaxy A20e

    Samsung Galaxy A30

    Samsung Galaxy A30s

    Samsung Galaxy A40

    Samsung Galaxy A7 2018

    Samsung Galaxy A8 2018

    Samsung Galaxy A8 Plus 2018

    Samsung Galaxy J7 Duo 2018

    Samsung Galaxy M10s

    Samsung Galaxy M20

    Samsung Galaxy M30

    Samsung Galaxy Tab A 10.1 (2019)

    Samsung Galaxy Tab A 8.4 (2020)

    Samsung Galaxy Tab A Plus 8

    Samsung Galaxy XCover 4s

    Ulefone Armor 3

    Ulefone Armor 3T

    Ulefone Armor 5

    Ulefone Armor X5

    Ulefone Power 3

    Ulefone Power 3S

    Ulefone Power 5

    Ulefone X

    UMI Z2

    Umidigi A5 Pro

    Umidigi A7 Pro

    Umidigi One Max

    Umidigi One Pro

    Umidigi Z2

    Umidigi Z2 Special Edition

    Vernee V2 Pro

    Vernee X

    Vernee X1

    Hello there, I bring up this topic again.

    I have a user that tested my game with the Adreno 618. The performance are pretty bad, meaning that the fps doesn't go more than 25 fps, even if the CPU is at 20%.

    Another user, using Adreno 405, run the game with a smooth 60fps.

    So there is clearly some problem. My game is in the internal testing phase and I'm not still ready to publish as an open beta. So I'm looking for someone who has the capability to test my game on different android phone to better understand which gpu are affected to bad performance.

    Since is not possible to pm here in the forum, if you are in the discord could you message me at Ribis#7413 ? So I could share with you all information to download the game.

    Thank you!!!

  • My game crashes as soon I remove a whole family, but even if I remove a single object inside the same family.

    On the Google console it rise this bug: Uncaught (in promise) TypeError: Cannot read property 'IsVisible' of null. Basically, I'm unable to remove these objects, however if I remove in on start of layout no error are rise.

    I do not use the isVisible boolean to my instaces.

    Since the game is big, it would take me some time to make a project and replicate the bug.

    Did anyone encounter this bug before?

    Tagged:

  • Thanks, Ashley for your fast reply!

    Seems that I have to live with that error at the moment.

    But I'm sure I'm not the only one with a problem like this, so chances are, that it could get fixed.

    Maybe still anyone knows a way to avoid these crashes? Or a quick and dirty workaround?

    Could you check the log and see what is that produce the crash?

  • An easy way would be: On start of Layout >> if name layout is "level1" then play the specific music.

    Better if you use a json or an array where you keep track of the name music based on the level number.

  • The Array must be as the same format of C3. Try to download an original array as Json from construct3 and then edit the one exported. You will see which part you need to make the c3 array

  • I think 4K will be an overkill for a mobile game. Full HD or 2K will look almost just as good, but will use much less space and memory.

    For PC you can choose 4K, as PCs are more powerful.

    Having graphics for two different resolutions in one game is also not a good idea. You should pick one resolution that is optimal in quality, size and performance.

    I think 2K is still a huge resolution for a mobile game. I would say that the average people will not even notice the difference between 720p and 2k.

  • You would need to load the data back as soon the layout start. Refer to the documentation: construct.net/en/make-games/manuals/construct-3/plugin-reference/local-storage

    And also, check on the debug mode if the data is stored.

  • you can use shadow for the wall, and put the light on the player. The idea would be to put the shadow on top or as a mask to the enemy.

  • We're planning to look in to developing an editor feature for this.

    Ashley This would be a game changer for anyone who develop 2d platform! And when implemented it should be on the homepage of the website! Considering that Construct is a tool to develop software/game 2d, this would be a HUGE feature for any artist and game designer.

    I bet that I'm not the only one who had problem figuring out how to implement a good looking terrain without killing the performance. Here I'm describing my experience so far about designing 2d levels:

    With tilemap it was too complicate to make nice graphics without puzzling with the tiles.

    Problem with tilemap:

    - Platforms are limited based on the tiles itself (you can't make curvy terrain without making a lot of tiles matching together).

    - If you need to change something in the level, you will need to move all the tiles again and it takes ages to design a level.

    - If for some reason you change the size of the source tilemap png, then you need to start over again.

    - If you want to match different design terrain, then good luck.

    - When using tilemap, it is extremely hard to have the texture in front of the player to simulate the grass. I have tried multiple time to have the grass on top of the player and is is too way complicate.

    - Matching the tilemap with the solid is a huge problem.

    Basically, tilemap is good for most people who develop a pixel art game. If you want to do a game design like Rayman, it would be extremely hard if not impossible.

    So the best solution I have found is to simulate this sprite shape using my own functions. It works good because I use masks and a lot of tiled background. The pro using this approach is:

    - You can change the sprites/design over time without braking the whole game.

    - Easy to make and edit a level, take minutes to design complex level.

    - To make the design, you need two 46X46 tiled background. Basically, to make a whole new terrain it takes 10 minutes. In tilemap, it takes hours if not days.

    - If you want to change the whole design in a level, it takes a 3 clicks.

    - Sprite can be "alive". The columns on the gif are movable.

    - Infinite ways to make a level. Easy copy/paste between layouts.

    Problem with this approach:

    - Hundreds of objects. for 100 sprites, there is an average of 300 tiled background spawned.

    - You can't see what you are designing, so you must use a lot of immagination.

    - Use of multiple layer and force own texture. (performance)

    To conclude, I have tried both solution (tilemap and sprite+tiledBackground). It ended up that sprite+tiledBackground is more performant then tilemap, if you design long level.

    With Sprite Shape, I'm pretty sure that most of the performance problem will be solved, and you would allow designer to design the level in real time in construct.

    PS: I compared tilemap vs sprite+TiledBackground because these are the only choice we have when designing a level. Also, I forgot to mention that I made this method because I didn't want to deal with any tiled background manually. I can't imagine someone design a level with 1000 objects in the editor, only for the terrain.

  • Hello there,

    I just saw the mesh distortion feature, and it looks great.

    I wanted to know if it's possible to add a mesh distortion in the editor, and make something similar the sprite shape of Unity.

    Basically, it should be a sprite with tiled background and custom sides that allows you to distort the sprite directly in the editor adding more polygon.

    I have been able to make my own terrain generator from the sprite as described above, however when I need to do some curvy terrain it will take extra resources because I need to add more sprites instead to distort the single sprite.

    The GIF show what I have done, however if you see the Sprite Shape in Unity, you will see that it would be much easier to make "dynamic" levels.

    Thanks

    Tagged:

  • Yes, that's right! This should really be helpful.

    Looking through the list takes 90% of debugging time, in my case.

    Same here.

    Having an option to hide the instances to zero would be great. Also, an option to check the array in a better way would be good

  • Hello there,

    I'm having problem to authenticate the users using google play

    When I try to use the Sign-in condition, I get the error n 4 without any other information.

    So, I generate the key the first time I made the app, and I have been always use this key when I published the game (as internal testing).

    I see the SHA1 keys as in your screenshot, and the key that I use for the game uploaded has the same SHA1 of the uploaded key on the google play console.

    I added the id app and the id client from the service game page (the id client is a really long string)

    Do you have any suggestion on which troubleshoot I should do?

    Thank you!

  • Hello there,

    I'm looking for making a custom splash screen as you open the app. I noticed that construct3 generate a custom splash screen by generating a file called "default@2x~universal~anyany.png" taken from the loading-logo.png.

    On newer phone, this splash would stay 1 seconds because the game load fast, however in older devices it takes more than 3 seconds to actually get into the game.

    Instead of displaying a static image, I would like to add something more sophisticated, such as add a play sound or 2 images, one as a background, and one on top as a gif for example.

    I'm looking to edit the file where this image is loaded.

    Does anyone have edited this splash screen? My last resort would be editing the png directly.

    Thank you

  • UPDATE: It doesn't work neither using a android vm. So the problem is not the connection between the 2 devices, but there must be some problem with the project itself.

    Did anyone ever used this? I mean, it is extremely important if you want to test your app in thousands of devices to figure it out which device you have to exclude before publishing it.