Ashley's Forum Posts

  • 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.

  • 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.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • 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?

  • OK, looking good so far, think I'll wait a customary day or two then push it out over auto update.

  • I think this should be pushed out as a stable... agree?

  • Here's my view:

    Hi everyone. I am considering whether not to install Construct.

    Well, right away, I'd say it wouldn't hurt just to install it and run through the Ghost Shooter tutorial, and see what you think!

    [quote:238e5hnh]1) Can it be installed on an external hard drive? I do not have my own PC and I switch between two.

    To run Construct you need DirectX up-to-date and the Visual C++ redistributable installed. As long as both machines have that you can run off an external drive. To be honest it would probably actually be easier just to install Construct on each machine locally.

    [quote:238e5hnh]2) Python is a very flexible language, correct? How much of the game can be hard-coded in Python?

    Python is very powerful, but Construct's Python features are designed to work side-by-side with the event system, which is also very powerful. So I wouldn't say Construct is designed to allow you to write a full game in Python - just use Python snippets where events wont do.

    [quote:238e5hnh]3) Is it easy to learn?

    I think so, but someone else can chime in on that, I'm one of the developers

    [quote:238e5hnh]4) Can you link me to a features list?

    The main site gives a pretty comprehensive overview.

    [quote:238e5hnh]5) How many licks does it take to get to the center of a Tootsie Pop?

    I initially read that as "how many clicks does it take"... aside from the fact I probably need to get away from the internet a bit more, would that change the answer?