oosyrag's Forum Posts

  • Hi everyone,

    For those who know a bit Construct 3, I was wondering what you think about using it for a bullet hell game (with tons of sprites on the screen, and collision management) regarding the performance.

    I'm using Construct for more than a decade so I know very well (I think) the software.

    Since C3 automatically do a ton of basic things, I'm thinking (and I may be wrong) that it's using average optimisation for components so it can be useable for many different purposes. So that C3 is not the most optimized engine you can have for a specific kind of game.

    I was surprised to read that Vampire Survivors was made with Phaser, the game doesn't lag for me and I've never seen that much sprites exploding on screen in a game. So I figured that now JS/HTML5 and nowadays computers can manage this kind of sprite explosion hell game.

    But would C3 do ? Back in the days I did some test on C2 and it wasn't very good, even with me trying to optimize (disabling collisions and stuff like that). But these were old computers, old browsers and things may have changed. Also C2 is not C3.

    Is there a reason to think that today Construct 3 wouldn't be as optimised than a hand coded thing ? Or at least that kind of game is more difficult to optimize with C3 ? Should a pro better go Phaser instead ?

    Personnaly, I think I've made my choice and will use C3 for my game (I'm not a profesionnal), but I'm quite curious about the answer to that question.

    Thanks for any info about that.

    Vampire survivors doesn't lag? You must have a great machine. My fps drops to 5 in the last minute before the reapers.

  • I wouldn't normally recommend simulating a mouse with a gamepad, it is very clunky for the user. A more common gamepad system will snap to points of interest, like menu buttons or interactable objects.

    Otherwise if you insist, you'll just want to have an intermediate variable store the position of the simulated pointer. If using mouse/keyboard, set those variables to mouse.x, mouse.y, and set the pointer position to the variables. If using a gamepad, adjust the variable accordingly depending on the input.

  • What Everade said, there is definitely physics included, or you can create events to achieve the desired movement.

    Alternatively, use the bullet behavior with gravity on and bounce off solids enabled (recommend fade behavaior as well). Spawn these "bullets" with a random angle and speed within a range you define.

    I'd definitely recommend doing it this way instead of the physics behavior. I don't think the physics behavior is necessary for what you're trying to achieve, it is also much harder to use.

  • Did you set the purpose?

    construct.net/en/make-games/manuals/construct-3/tips-and-guides/icons-splash

    There are further device specific options in your export wrapper.

  • Some specific Construct limitations off the top of my head, there are probably more.

    No running when window is not focused.

    No FPS rate limiting controls.

    Certain things will run more efficiently/faster with pure JS, vs behaviors. The normal user is unlikely to run into this as a problem, until really pushing the limits of what a device can do. But then you can just use JS, so it's not really a limitation.

    Various issues with using HTML form elements, which float over the canvas.

    Jankiness with high cpu use (on certain platforms?), even if FPS is high. (This one is being actively looked into AFAIK and should be fixed, more of a bug than a limitation)

    I mean to be honest making a mining node that spawns a mineral and throws it in the air and then collides on floor

    This doesn't have anything to do with an engine limitation.

  • Or just add a TURN server.

  • The lessons and concepts you learn from using the built in multiplayer plugin are 99% applicable to any net code you do in the future, regardless of the specific format or platform.

  • You can use any version of Construct 3 you want by using the direct link editor.construct.net/rxxx

  • It's definitely a thing and not an optical illusion where the game can freeze for a few ms from high cpu use, even on pc, even when fps is 60+.

  • For a single event,

    On collision with heart - Set health to min(health+10,health_max)

  • Add a For Each Enemy condition.

  • If you don't want the follower to cut corners and get stuck, there are a few options to try:

    1. Use pathfinding.

    2. Have the player drop or otherwise keep track of waypoints for the follower, so the follower follows the player's path exactly and doesn't cut corners.

    3. Use line of sight to trigger a switch over to pathfinding when line of sight is lost, until line of sight is regained.

  • How about collision filtering, where the player ignores the follower's collision box entirely, while keeping the follower collision box enabled all the time?

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Disable the 'Enable BBCode' property of your text/spritefont object.

    You can also use \ to escape the [ character, but that's less useful in a user input type situation like yours.

  • Ran some tests to try to reproduce. It's much more noticeable for me when my estimated cpu usage gets high, according to the debug preview, at about 70%+. FPS stays above 55, but it's when it changes that jank is noticeable, especially for linearly motion. Lowering the number of objects/cpu load to under 50% made the FPS much more consistent.

    Turning off Vsync actually made it worse for me, as it drove the CPU use (and fps) up, causing significantly more jank, even though the fps was high.

    If the source is actually a CPU limitation, see if there's anything you can do to lower CPU utilization. If it happens in an empty project with low CPU utilization, I'm going to guess that some background software is possibly taking CPU time away from the game, like for example how some antivirus softwares can potentially slow a system to a crawl when running a scan at high priority. Not sure if that's a thing that can happen on a mobile device though, depending on how the device prioritizes it's CPU. Maybe some sort of power saving throttling? I doubt that would happen when actively using the device though.