1StepCloser's Forum Posts

  • It's loading a browser right so maybe it's an issue with that. The true test would be to play the exported game and see if you have any performance issues.

    I tested the following scenarios for about 20 seconds of scrolling upon layout initiation:

    Exported Windows 64-bit NW export: Jank Free Sessions 20/20 (0% Jank Session Occurrence)

    Preview In Project: Jank Free Sessions: 14/20 (30% Jank Session Occurrence)

    I will probably extend this out to at least a 100 sample size.

    In the case of the in-browser preview, I'm not versed enough to understand the underlying processes at play, however, I find it interesting that it is in a sense a boolean type of outcome. If the session starts with the jank/stutter it remains, regardless of if I wait 5 seconds or 1 minute before testing the scrolling.

    From my point of view, I can understand some initial stuttering at the beginning of a layout, but the persistence makes it appear as though something becomes out-of-sync upon initialization and remains out-of-sync.

  • Consider the following scenario:

    1) Open a preview of your project and begin scrolling, no jank/stutter experienced at all

    2) Close the preview, open a new preview, begin scrolling: consistent jank/stutter

    3) Repeatedly open and close preview sessions testing scrolling and discover that it's a toss up between having and not having jank/stutter.

    CPU in each case: approx. 30%

    FPS in each case: 57-58 (Never goes higher regardless of the project, could this be a causal factor? (If so, then why would it be smooth in certain sessions with the same FPS vs not smooth in different sessions with the same FPS?)

    -I'm far from an expert, but if this issue was event based, considering that each session is independent, wouldn't the jank/stutter be experienced everytime?

    -If it isn't event based, what theories do you have on why this stutter/jank when scrolling would be session dependent?

    - I've seen many instances of the jank/stutter pop up throughout the community and I've not been able to pin down a fundamental cause of this issue.

    -It's basically come to the point where if I can't resolve the jank/stutter issue I will have to move on to another means of development.

    In anticipation of Ashley or anyone on the Scirra team asking for a cap. I'm willing to send it privately.

  • So after further testing, the minify script option only updates whether or not it can be enabled after you close and reload the project. Thus, even after deleting everything in the project, the option was only available after reloading. (In my specific case at least)

    Update: found the javascript, by isolating the event sheet that once deleted allowed for enabled minify script. Then searched through that event sheet.

    P.S. is there any means by which to locate a blank javascript within the event sheet?

  • It tells you in the export dialog why:

    > NOTE: this is not yet supported for projects that use JavaScript code.

    It's on the todo list to add support for that.

    Perhaps I am misunderstanding but are you saying that even on a blank project (Having deleted everything except the mandatory single layout) minify script being grayed out is normal?

  • I can't minify my export without it ((I think I might have accidentally added an empty javascript code within my event sheet, (minify script is greyed out))

    Update: Decided to systematically delete every part of the project to determine what's causing the minify option greying out. I ended up deleting the entire project and removing any addons that aren't the default and still can't minify script.

    P.S. using the latest stable build

    Any ideas?

  • Understood, thanks for the reply Ashley.

  • After more searching, per Ashley in a different thread:

    "You can answer these questions yourself with measurements, but I really don't think it has any significant impact at all. "Every" events don't create timers that need to be tracked, they work more like a condition that says "the timestamp this event last ran is greater than X seconds", which is basically a simple number comparison, which is the kind of thing it is a waste of time to worry about."

    So there probably is no significant difference.

  • I'm attempting to keep my event groups organized, but this often results in situations where I'm setting conditions such as "Every 1 Second" in multiple areas in multiple event sheets to maintain organization in terms of keeping that condition in the designated group. Ideally I would want a single Every 1 second parent condition and all sub events pertaining to that condition underneath, right? If that's the case how much of a performance hit does a situation like this result in.For example: Assume you have 10 separate events with the exact same parent condition "Every 1 Second" And then a varying amount of actions that, for the sake of this example, all result in the same amount of CPU usage. How much of an impact would it be for those 10 events to be separated vs. having one event with a single "Every 1 Second" parent condition followed by the 10 sub events within that parent condition?

    VS

    Apologies if this has already been addressed somewhere else.

    Best,

    OneRepCloser

  • Alright, thanks for the reply.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Are there any noticeable speed gains to be had from either approach in comparison to the other (Using a dictionary to look up values, vs. an instance variable)?

    Thanks,

    One Rep Closer

  • I figured as much, thanks guys.

  • In a similar manner as we can use the create an object by name feature in Construct 3, I was wondering if it would be possible to set up the same mechanism for instance variables.

    I am working towards making my events more streamlined however I hit a wall when it comes to checking a function parameter and then ading to an instance variable based on that parameter.

    For example, say an object has woodCapacity and meatCapacity, upon adding an item (wood) to the object and then adding an item (meat) to the object I would like to be able to set the action as add self.(item.name & "Capacity") however to my current knowledge this is not possible. I am sure there is some fundamental mechanism with coding that may make this difficult (or perhaps impossible?) to add but boy oh boy would it reduce the amount of code required.

    I believe there are other ways around this such as setting a value within a dictionary or array that you set the woodCapacity or meatCapacity to and then when this value is updated also update the capacity value, but would it be possible to make a direct reference to a variable so this wouldn't be necessary?

    Also, if there is another way to achieve the same result I am grateful to hear about.

  • You do not have permission to view this post

  • GameSparks C2 plugin please

  • >

    > > Basically the camera is jumping from pixel to pixel at the low window resolution (312 x 240)

    > >

    > > The quick and simple solution is to set both

    > >

    > > Fullscreen Quality to High

    > > Pixel rounding off

    > >

    > > ....

    > >

    >

    > .....Unfortunately the fullscreen quality is only reasonable in small layouts....

    >

    What do you mean by this ?

    If you load up Demonoire, set full screen quality to high and set pixel rouding off (unchecked) you will get perfectly smooth scrolling in all directions. You may get the odd jank as the c3 editor , or other browser operations fight with the preview in the browser but that will be minimal when deployed as app/ nwjs / website.

    f you are talking about your own game then you need to post a c3p of some sort showing your events and set up. otherwise it is hard to help.

    With simpler layouts such as Gatewood it works well, however more complex layouts result in fps drops.

    For example, I have an outside layout, where fps drops to around 20, however if I walk into a house with a much smaller layout, the fps is 60, with smooth scrolling. Thus, if I go this route I think will have to limit my layout sizes drastically.