stachir's Forum Posts

  • Ashely

    Thank you for answer.

    After investigation, and checking many things I realised platform behavior is not the main cause of my problem and there are many components and factors that can affect on all development process. Certainly, I make many mistakes during game/project assembling.

    You said "it's just reporting the way things have always been". Ok I can understand that, and just want to focus attention on this issue. Maybe it's time to get into it and rewrite legacy code.

    Also, I would like to thank everyone who took part in the discussion.

  • 99Instances2Go

    With all tests I got "SYNC FAILURE: Imperfect sync. Try closing all apps and browser tabs. " - with one tab opened on clean Chrome v50.

    Now, after that long conversation (thank you everyone), I know that VSync can be serious problem- some people have it (or something similar), some don't (or don't know about it yet), some people pay attention to it (because of personal perseption), and some don't (they do not see this as an error, or do not see at all). It's not easy to find main reason of that problem, and it's hard to prove. But first of all - it's sad, that vsync-problem exist.. at all.

    I tried to make test on some other machines I had access to. All with different software and hardware configuration- all of them had some vsync issues. Also I read about some bizarre tricks to make browser work a little differently.. yea, but what for - average player know nothing about vsync types, chrome flags and others.

    I am quite abashed - Now I know my current situation is the result of vsync-related-problem, but also I still cannot understand part of platform behavior code in all of it, there is collision detection load part of course, however those frame drops are disproportionately larg, so maybe there is something more,waiting to be discovered...

    R0J0hound

    Do anyone experiance something similar? What can I do to make my games more accessible on web browser? What tools should I use to execute optimalization tests on device with vsync problem? How to messure game performance in such situation? How can I know if bad performance is my fault, or runtime environment?

    ( Maybe I should change topic title to make it more accessible for others ? )

  • 99Instances2Go

    For me it looks like this:

    Graphics Feature Status

    Canvas: Hardware accelerated

    Flash: Hardware accelerated

    Flash Stage3D: Hardware accelerated

    Flash Stage3D Baseline profile: Hardware accelerated

    Compositing: Hardware accelerated

    Multiple Raster Threads: Enabled

    Native GpuMemoryBuffers: Software only. Hardware acceleration disabled

    Rasterization: Software only. Hardware acceleration disabled

    Video Decode: Hardware accelerated

    Video Encode: Hardware accelerated

    WebGL: Hardware accelerated

  • R0J0hound

    Yes, I noticed some flickering.

    According to the preformance graph in test of vsync of my browser, my average inter-frame millisecond time is 17.056. Every second moving picture stops and there is heap on chart out of scale.

    I read the article about the VSYNC synchronization test, and the "bug" in chrome 38+ ... it's really frightening.

    "Under Windows, Chrome 38+, Firefox 32+, and Internet Explorer DO NOT properly synchronize rendered frames to a display's VSYNC refresh signal".

    Honestly, I did not expect that something like this could have happen. How is it possible?

    Also, it looks like it is insoluble problem. Please, tell me I'm wrong.

  • Colludium

    I wrote that my laptop is rendering using webgl, so my graphic card is supported

    I always make tests on vanilla Chrome, with no plugins and one tab, with no other program like Unity or Blender running. This time I close antivir, and nothing happen. Same scenerio on second machine with different graphics, cpu.

    Link to capx file is in first post in topic.

    I checked timeline, and only thing I saw was "long frames" every 1-2 seconds, so there is some jank [#sherlock].

    [update]

    I also tried old fashion restart and check(http://gamedev.stackexchange.com/questi ... -4-seconds), and it did nothing much- drops happen less, but objects are still stuttering

  • Colludium - it's webgl

    I also checked template projects (like platformer temlate), and there I also noticed frame drops. Also I found that, every 1-3 seconds, there is something like 'freezing' - objects that moving stops for a microsecond and appear/'jump' in next frame in another place. I start to believe that something can be wrong with my computer, so I checked on other machine, and there is the same situation.

  • With platform disabled: collision checks per sec = 0 (of course)

    With platform enabled and player does not move: collision checks per sec = 100-110 (sure)

    With platform enabled and player moves: collision checks per sec = 400-500 (yea, why not)

    R0J0hound

    Ok, I get that all things metter- layers, number of objects and instances, effects and so on, I understand that. And maybe that is not direct impact of C2. I just would like to know, why my laptop makes frame drops running project with one layer, four objects and no effects.

    With that simple project I got 60fps with disabled and 55fps with enabled platform bahavior and player stand still. Nothing much? Really? It's so simple, that such situation should hove no place at all.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Yes, cpu usage increasing when the platform behavior is enabled is truly expected and undeniably. My point is close to DatapawWolf opinion- what about idle? In my opinion, this situation is more about this behavior runtime file, but for now I couldn't find any other reason, so that is my only clue. I already tried to disable different configuration of modules in my final project, and after many includes enabled and disabled, I have found that something is wrong with this particular behavior.

    I tried to compare exported c2runtime.js files from R192 and R228 - differences are big from end of 2014 and now. Thanks to WinMerge program, I found difference with old and new platform code, but it is not very spectacular- current version include this code inside of cr.behaviors.Platform function:

    behinstProto.onWindowBlur = function ()

    {

    this.leftkey = false;

    this.rightkey = false;

    this.jumpkey = false;

    };

    With my luck, it's probably not related to the problem..

  • Colludium Probably those things (usage caused by engine and drawcalls) are related some way. Frame drops are not so dramatic in example above, but in final project, where platform behavior in use with many objects, this problem is kind of "deal braker".

    In my case, according to the profiler, in this example I get:

    With platform Disabled:

    • Engine 0.9%
    • Draw 0.2%

    With platform Enabled:

    • Engine 2.3%
    • Draw 4.1% ( also 20x )

    First I thought it could be my PC fault. I made some tests on other machines with different configurations- example was reproduced.

    After short investigation, I discovered that platform behavior file is in bad condition- many comments and some unnecessary code- maybe there's problem.

    I tried to get some info about this:

    with no effect.

  • Problem Description

    No metter how few instances and objects are on scene, if there is at least one with active platform behavior, engine makes so many drawcalls, that force CPU to drop some FPS'es

    Attach a Capx

    https://drive.google.com/file/d/0B57pu5 ... ZqY2s/view

    Description of Capx

    .capx has as few as possible objects, and only thing you should do is to switch on and off platform behavior and look at the profiler to see what is going on.

    Steps to Reproduce Bug

    • Run project with debug mode and switch view to profiler
    • With spacebar You can disable and enable platform behavior of pink block

    Observed Result

    In my case, switching pink block's platform behavior on makes much more drawcalls - and it's a small project. In my final game, drawcalls cause like my CPU run at 75%, where drawcalls are +50%

    Expected Result

    no such FPS drops

    Affected Browsers

    • Chrome: (YES)
    • FireFox: (YES)
    • Internet Explorer: (YES)

    Operating System and Service Pack

    • Windows 8.1
    • Windows 10

    Construct 2 Version ID

    R228

  • hi , i have poblems with the draw calls percent in debug , is about 97% , this happend only when i add the character to the layout , the character have 11 frame without loop and pinpong S:, but if i delete the character the layout is about 60 and not 5 like whne i put the character.

    dokannon - I have something similar to Your scenario, but additionally - it's not caused just by animation, but platform behavior instead.

    I was trying to check runtime.js file in platform behavior folder and I didn't find anything strange (except some commented/legacy code about checking overlapping jumpthru? - Ashley -platform/runtime.js, line 655, c2 R227). I guess these objects with enabled platform behaviors make draw call request every tick with somekind of sub-pixel pressision... Is it a bug or maybe I do something wrong? I could switch enable/disable platform behavior for player by checking pressing nad releasing keys/buttons, but maybe it's overthinking?

  • Engine time includes "ticking" objects, such as stepping sprite animations, moving any objects with movements, other behavior tasks e.g. searching for targets with the Turret behavior, and anything else that needs tick-by-tick attention by the engine that is not covered by events.

    Ashley - Is there any way to check exactly what kind of operations / which operations in "Engine time" category affect the CPU usage?

  • I know, right? Try this

  • As I wrote before, You can try that:

    • go to generated/exported not-minified project folder and find c2runtime.js file
    • find function that starts like: C2AudioInstance.prototype.getDuration = function (applyPlaybackRate)
    • change

    let ret = 0;

    to

    var ret = 0;

    For me, that worked , and as You saw - yes, it's because of Audio update <img src="{SMILIES_PATH}/icon_e_wink.gif" alt=";)" title="Wink"> ( as expected from update post - https://www.scirra.com/construct2/releases/r213 ... ;p trololololo )

    You can also downgrade C2 to 211.2, here all works, but you also need project with that version.

    (If you are wonder, audio duration function was rebuild from R211 to R213 and disposed from multiple "return" instructions for one instead.)

    The other two errors:

    Uncaught ReferenceError: cr_createRuntime is not defined

    Uncaught ReferenceError: cr_sizeCanvas is not defined

    are caused by the first one, so they will gone after modification that I wrote above.

  • Problem Description

    Script can't be minified, and not-minified exported projects' scripts do not open in Chrome browser

    Attach a Capx

    --

    Description of Capx

    --

    Steps to Reproduce Bug

    issue with not working minify is related to big projects that needs 64bit java

    issue with not opening exported projects in browser is related to any projects exported to website in 213 C2 version

    Observed Result

    Big projects' scripts can't be minified and popout shows up exectly like here - can-t-minify-project_t148041 . And like in that topic, I tried to change java version, but nothing worked. Then I thought about downgrading Construct 2 from 213 to 211 and it worked - I could do minify projects' script without any problems.

    In C2 v213 I found that, even exported projects with not-minified scripts could not work in Chrome. There was no such problem with C2 v211.

    After short investigation (with Chrome DevTools-console) I found something strange when I tried to run in Chrome my exported project anyway:

    Uncaught SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode - c2runtime.js:17068

    Uncaught ReferenceError: cr_createRuntime is not defined - index.html:99

    Uncaught ReferenceError: cr_sizeCanvas is not defined - index.html:92

    ok, so I looked at c2runtime.js and I found what was at 17068 line and I compered that to similar code from earlier C2 version. Problem was caused with:

    C2AudioInstance.prototype.getDuration = function (applyPlaybackRate)

    now there is let ret = 0; and it should be var ret = 0; <img src="{SMILIES_PATH}/icon_e_wink.gif" alt=";)" title="Wink"> it looks like Chrome still can't work with ES6 / ES2015 ? (I checked same exported project in Internet Explorer 11 and it worked.)

    Next I found :

    Uncaught (in promise) DOMException: Only secure origins are allowed (see: https://goo.gl/Y0ZkNV). - index.html:118

    it's talking about this line:

    navigator.serviceWorker.register("sw.js", { scope: "./" });

    but I don't know what is really wrong here Oo

    Expected Result

    minifing scripts should work ;p

    not-minified scripts' projects should also work ;p

    Affected Browsers

    Chrome 45.0.2454.85 m

    Internet Explorer 11

    Operating System and Service Pack

    Windows 8.1

    Construct 2 Version ID

    213