Ashley's Forum Posts

  • Download Construct 0.99.96 (unstable)

    Link to previous build (0.99.95) changelog

    Here are some more fixes, hopefully we can make this another stable and move relatively straightforwardly to some release candidates soon

    Update 26th October: Marked stable.

    Changelog

    Editor

    • [CHANGE] Cleartype enabled for as many places as I can find in the editor. Also changed the font in many places from Arial to Segoe UI. (Ashley)

    Animation Bar

    • [FIX] Launch Explorer no longer crashes when you have an action point

    Runtime

    • [FIX] Fixed slowdown when using per pixel collisions. (R0J0hound)
    • [FIX] Fixed crashes when using families with private variables. (R0J0hound)

    3d Object

    • [ADD] Can now change the z position at runtime (Davo)

    Event Wizard

    • [FIX] Crash that occured if you obtained an expression from an object before typing anything into the expression editor. (Davo)
  • You do not have permission to view this post

  • You do not have permission to view this post

  • Moved to Your Creations

  • You do not have permission to view this post

  • I've always thought this would be much less useful than people think. Consider typing "On collision between SpriteA and SpriteB". If you typo'd and wrote "On collisiion between SpriteA and SpriteB" Construct wouldn't be able to recognise the condition and would point to it as an error. And it'd take so long to type out you probably could have picked it out from the menu by then, if you're experienced. Plus the text format could never be as clear as the event sheet: to prevent ambiguities in which part of a condition or action are parameters, you'd have to differentiate it somehow. So instead of "Sprite value 'X' less than 5" you'd have to type something like "Sprite: value param('x') param('less than') param(5)" which has already destroyed the readability.

    Are you sure it would make it quicker and easier considering that? I think an experienced user can click through the menus very quickly so typing out a long event could actually take a lot longer IMO, especially if you make some typos.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • You do not have permission to view this post

  • Welcome back

  • Construct's functions probably won't help with this - why not get libpng or something like that and do it yourself?

  • It depends entirely on the .cap you have. Some features are faster than others but everything rendered is hardware-accelerated. I don't know what your XNA game does but presumably it's not the rendering that's slowing it down. Maybe Arima is right.

  • That's a huge amount of complexity you're proposing, without suggesting how it would work or why it would be useful and worth the developer's time. Perhaps you should flesh out your ideas in some more detail.

  • Are console makers these days pretty open about having indie games submitted? Last I heard, for example, the XBox Live Arcade were increasing the strictness of the standards required of submitted games. I don't have any consoles so I'm not really up to date on what the latest is though. I'm just worried since console makers don't have a clear path to profit from indie games on their consoles, and they risk the reputation of the platform if there are loads of "junk games", they might not be so keen on having a lot of indie game submissions from a package like Construct.

    The internet is a much more open platform not at the mercy of any particular vendor - that's why I think it might be a better choice.

  • OK, will push out a stable later tonight.

  • events:

    1,450,000 iterations at 29 fps

    python:

    550,000 iterations at 29 fps

    That's interesting, thanks for doing the measurement. Also, IIRC, Python doesn't evaluate the range(0,550000) statement every iteration in a for loop (otherwise it'd be even slower!), so a function call wouldn't even things up.

    I can explain why the For condition shows up as so fast: the per-iteration overheads of the loop conditions in Construct are actually incredibly low - comparable to the overheads of a C++ loop. The real work comes in the overhead of executing actions, conditions and expressions (each of which involve a for-each and execution of function pointers which are comparatively expensive for C++), as well as the list processing of conditions which pick from a list of instances. None of that is present in the events in your test.

    If it interests anybody, the For condition with no actions or subevents, in a release build, with a good branch-predicting CPU, effectively comes down to this:

    __int64 r = ...;
    
    // ...
    
    for ( ; r != end; r += step) {
    
        // (omitted some branches here which will be correctly guessed
        //  and have almost no performance impact)
    
        pCRuntime->pCurrentEvent = pThisEvent;
    
    }[/code:vc2hdvg8]
    
    As you can see it's simply a for loop with a 64 bit index that assigns a pointer every iteration.  This kind of thing takes literally a handful of cycles out of your 3 billion or whatever a second.  I'm kinda proud I got the overhead that low and it runs so fast 
    
    Adding an Always condition essentially adds a function call or two, and a call through a function pointer, which explains the reduction in performance.
    
    Making a fair test is tricky especially considering your framerate will largely depend on the rendering too.  I propose maybe doing some kind of processing on a bunch of say 1000 sprites, and write equivalents in Python and events and see which goes faster.
  • I'm not sure - Python isn't really famed for being a high performance language, and events are compiled C++ code but introduce the overhead of event processing. I don't think anyone's done realistic performance comparisons. What is it that you're trying to do? Is it fast enough?