Jase00's Forum Posts

  • It might be the "create object on layer 0" that is the problem.

    Do you have multiple layers in your project?

    Layer 0 would be the furthest layer usually for backgrounds and such. If layer 0 has any scrolling settings changed, then this would explain why your bullet moves at different speeds depending on how far the screen scrolls.

    Either create the bullet on a different layer (instead of layer 0, you could do it on player.layernumber) or you might need to click on layer 0 on the layers window, and change the scrolling settings back to 100% x 100%

    I'm taking a guess from the info we have so far, so I may be incorrect!

  • Hmm. Sounds like something is up with the spawning code. Could you post a link to a screenshot of your code where you spawn the bullet?

  • But the host I got for free gave me a domain that is http.

    Hey I am not as familiar with all of this, but you may be able to get a free SSL certificate (Google: let's encrypt) and apply this to your website to get https.

  • At 34, your body isn't banged up permanently (unless there's any illness/disabilities, that's more complicated). As long as you mildly keep up with fitness and healthy eating and intake adequate water, your mind will thank you for that, and you'll have an easier time coding, thinking through anxiety-inducing situations, etc. It's not a cure-all and it's not exactly easy to do if depressed or anxious or if your personality causes you to avoid healthy lifestyles, but it's surprisingly effective if you're able to form this healthy habit. I'm guilty of failing this myself, it's not easy, but keep at it, try again and again, just like we do with our unfinished projects, just keep trying your best!

    I have been using drag n drop software for around 20 years, since I was younger than a teenager (I started with Klick n Play), yet I've never released anything. I'm 27 now and I WILL complete a project and release it, nothing will stop me. No zero days, always work on something in your project for even 10 minutes. BUT also be mindful of your own mental wellbeing, don't pressure yourself and take a "zero day" if life gets overwhelming, as it often does.

  • I agree, there's a chance this bug affects only Android exports, but judging by the other dev's comment about jank on his modern macbook, it may even affect desktop exports, so it must be in everyone's interest to star this!

  • I do something similar to the 2nd method you mentioned - On browser resize, set canvas size to PlatformInfo.WindowInnerWidth and height. I then do "wait 0 seconds" twice, and then I copy & paste the same "set canvas size" event below this (seems to help make this work more reliably). Then I use anchor behaviour on objects, or position/size things with events.

    I don't know if there's a bad reason to do this, but it helps give me the exact control that I need to support portrait, landscape, and even ultra-wide screen monitors.

  • I just read one of the comments from the Chrome devs:

    > For the record, the above test case drops frames in Chrome even on a recent M1 MacBook Pro with high-end CPU.

    I saw this too, this gives me hope it fixes my issue on desktop with jitter when vsync is enabled! I have starred it too.

  • > but at 60fps the sprites will "jump" 40pixels every tick, if they move from one side to the other in a second, it cannot be "silky smooth" movement?

    Front 'janky' plants move like this:

    lerp(self.X, Self.X-(train_speed*(Self.speed_adjust)), dt)

    Omg wait read this, just remembered after realising you use lerp. Try the formula below "Perfect Accuracy".

    construct.net/en/blogs/ashleys-blog-2/using-lerp-delta-time-924

  • Whenever I get desperate, I take a copy of my project and slowly tear it apart, like delete sections of it (maybe whatever event sheet groups that use the most CPU in the debugger preview), and test each time, to see when the stuttering stops. You might find some specific feature is causing the jank.

    Recently, I tried my project on a 4k monitor, and I noticed that even tho I had solid 60fps or 1000fps when vsync off, it was still jittering badly. Turns out it was me "pasting" on drawing canvas every tick, it didn't like that I was doing it every tick on a 4k sized drawing canvas. Obvious now that I see it, but I wonder why was my fps was seemingly fine.

  • Thanks for testing with vsync disabled, it's interesting that noone else is getting similar results to me.

    Perhaps the jittery issue I experience is a different jittery issue to what others are experiencing, but for me I do get perfect results with vsync off, but when vsync is on, even if my monitor refresh rate is set to 60hz,144hz,or 240hz, I can see jittery issues every few seconds. Very unusual.

  • Aha it was fun reading your post, as I always do the same thing with undo/redo (where you constantly undo and redo and see if the event sheet scrolls, if not, then scroll up a bit, then undo redo again and again).

    I do agree that it could be improved. Like when you press undo or redo, it pops up at the bottom of the screen. If that popup just included a tiny bit more information, like "event sheet: Blah. Event number: 177" that would be a major help in speeding things up.

    But then, clicking the popup to make it take you to the specific event (much like double-clicking on a "find" or "find all references" result) would be VERY useful.

    Suggestions platform is looked at by Scirra, but I'd take the guess that things like this won't get voted up much. I checked a few recent pages on suggestions platform up to a few weeks ago, and most have 1 to 3 votes, a couple have 6 votes, but 6 votes might be 2 people since 1 person can add 3 votes on an idea, then it just slowly disappears in the sea of ideas. 🌊 Unless people draw attention to their idea by using the forum to start a discussion I guess.

  • Could I ask if you test your project with your projects "vsync" setting set to "unlimited"?

    I have this issue sometimes too, but I've found that disabling vsync fixed the stuttering and made it buttery smooth. I don't know why and I haven't been able to reproduce this in a minimal project yet.

    If disabling vsync DOES help, then don't expect to continue like this, but perhaps there's a bug with vsync, or, we would need to ask Scirra for a "max FPS" cap so that's we can disable vsync without having your CPU at 99%.

  • Normally if you need to process a 2D array you can do "Array For Each XY" loop, but I prefer using two nested System For loops.

    I agree with this advice! You get easier control on when to start/end your loops, and you can "stop loop" at any time.

    But yes, sharing some more info on your project would help - there may be a hard-to-see mistake in an expression somewhere.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I see why you thought to buy the signalling server.

    Are you sure these are facts about Iran's Internet filters and such?

    I'm not aware of what sort of restrictions Iran (or any country) would have to Scirra's signalling server. I would also not understand why a server in Iran would be able to get around the sanctions and filters you mention.

    Are you able to open the multiplayer examples and successfully get ingame? Do you ever use "remote preview" when testing your games, as this feature uses Scirra's signalling server to connect, too.

    OK I might be exaggerating with the 1000's of players being connected, perhaps there is a limit to the number of connections (I'm not sure what the true limit is) but logically, the signalling server is doing even LESS work than a normal website does.

    When someone connects to the signalling server, the signalling server stores a tiny bit of data about the player that connects, such as their IP, what room they are joined to. That's it. Once you actually join a room and you are playing a game with someone, the signalling server doesn't handle ANY of the game data, it doesn't store how much health each player has, it doesn't store chat messages if you made a chat system, the signalling server simply keeps track of "who is connected" and nothing else.

  • I've used Construct for many years but I've never used containers. I've been using hierarchys once they were added, but before this I'd link objects together by having a parent object, with all the children having an instance variable that stores the parents UID.

    I still use the "store the parent's UID" when it comes to arrays and dictionaries, as you cannot add an array/dictionary as a child with hierarchys.

    We all learn in different ways - I am the type of person that, when starting to use a new software, I only Google/check the manual if I get stuck on the specific thing I'm trying to do, but beyond that, I wanna click and poke around the software myself - even if I click the wrong thing, I will learn from that. As months go by, I become very familiar with the general layout of the software, and THEN I read the manual more casually, so that I can see if there's shortcuts or secrets to enhance my use of the software.

    I have somehow never used containers in all these years - I see the manual mentions at the very bottom about how you can use containers to store an array/dictionary per object, which sounds VERY useful!

    However, I'm not fully convinced that containers are "adaptable" enough. I have the view that containers are for relatively simple situations.

    Like let's take Scirra's example with the tank object with a separate turret, both placed into a container. Now say you design your game to allow you to upgrade your tank to have a 2nd turret - I assume that containers wouldn't be good for this situation, since you must stick with your original container setup and not edit this at runtime?

    You'd need to specifically clone the tank object so that you can build a new double-turret tank (then put all the tanks in a family to make it easier to handle the tanks in events) which would work fine, but then you want to have a 3rd turret upgrade - again, clone the tank, and then make a triple-turret tank in the family.

    Now this sounds messy, you wouldn't want to drive around in your tank, collide with a "upgrade" power up, and suddenly your events would involve creating the upgraded tank on top of the old tank, angle/position all the values from the old tank to the new tank, then destroy the current tank... Not very elegant. Maybe you could have an invisible "player" object that handles movement and everything, and the tank simply positions on top of the player object, but you still have to transfer some data to the newly created tank as you don't want your old turrets suddenly angled the wrong way when you collect the upgrade.

    Sounds like a pain! But if you used hierarchys, you can have the 1 tank object, add as many turrent children as you like in different positions easily (which can automatically follow the tank along with the angle, width, height, z elevation), maybe store a variable for the turret like TurretID or use the IID when picking the tank's turret children, so that you know which turret to pick when you wanna do stuff in events, and then you're done! If your tank needs a different shape, you can add an animation for that, so you never have to destroy your tank object at any point.

    The final downside to containers, is the lack of control over destroying everything. Bad example, but let's just say you had a situation where your turret should destroy on its own for whatever reason - Well you can't do that, as it will destroy your tank entirely. You would need to set the turret to be invisible I suppose, maybe that's better design anyway, but hey I wanna destroy it and I'm not able to!

    Please correct me if I'm misunderstanding the true power of containers, as I'd rather understand this better!