Ashley's Forum Posts

  • Because the URLs usually fit anyway! Why should I take the extra step to shorten it if it fits?

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • What antivirus software are you using? You might want to reinstall it or send them a false positive report, because there have not been any other reports of this.

  • Twitter has really freaking annoyed me lately, so I came here to rant about it. It was working nicely as a simple place to paste links as a replacement for writing longer news updates. Then shortly after I put a forum link to the Twitter feed to replace the announcements forum, I found it was breaking all the links for users not logged in!

    Here's a link I posted to the 0.99.96 build thread on Twitter:

    http://www.scirra.com/forum/viewtopic.php?f=2&t=7533

    If you're logged in, it displays correctly. If you're not logged in (a guest) you get this link instead:

    http://www.scirra.com/forum/viewtopic.php?f=2&t=7533

    See the & turned in to & and the link no longer works - anyone remotely familiar with the very basics of HTML knows that's an escape code for &. Twitter are processing their escape codes wrong. This is an embarrassingly amateurish mistake which suggests somebody there really hasn't a clue what they're doing.

    Then I read Twitter is valued at $1.5bn, and I can't paste a link to the forum on Twitter.

    The world is crazy. I don't want to set up another feed; I'll work around it with URL shorteners for now, their support isn't responding.

    </rant>

  • Today is the 3rd birthday of Construct! We released the first public, open source version 0.8 on 27th October 2007. We've come on a long way

    Fun stats:

    64 total separate releases (about 1.7 releases a month)

    236,667 total downloads to date at time of writing

    2.8 TB total bandwidth of downloads

    Construct 0.8 was downloaded 54 times in its first month of release

    We're not going anywhere just yet so here's to another 3 birthdays

    Also, Davo made a picture of a slightly weird looking halloween cake to celebrate, help yourself to a slice :

    <img src="http://www.scirra.com/images/construct3rdbday.png">

  • Sorry for the delay - added you.

  • I've heard Python is a good starter language. It's clean and has some nice and intuitive features.

  • Tulamide - thanks for the image! Demonstrates the problem very well.

    Just to clarify, some textures can be split up to save VRAM in rare circumstances - if you have a 32x4096 image, for example, some graphics cards might place that on a 4096x4096 surface in memory, wasting a large amount of VRAM. In that case, splitting it up in to smaller chunks might save VRAM (it depends on the design of the graphics card though, I think). However Tulamide's example shows how it is easy to split up a texture and not save any VRAM at all.

    It's also a good point that games are not typically designed with large, pre-rendered images. If you have 100mb of textures for a large level this may not even fit in the memory of a 128mb graphics card (due to operating system/other stuff stored there) and instantly you have a huge requirement to have a 256mb card to play the game! Even most commercial 3D games don't use that much memory - they use the principle of a smaller set of textures which are tiled and repeated as well, but with a lot of processing on top. So you should definitely prefer building your levels out of tiled backgrounds and sprite elements rather than pre-rendering - graphics cards aren't designed for huge prerendered images.

  • Have you tried one of the beginner tutorials?

  • Madster: that's correct, if you use a condition to filter down the objects before checking an overlap, then the overlap is only checked on those instances matching the previous condition. (That's the normal operation of conditions - filtering down instances condition by condition.)

    The fact invisible offscreen sprites still affect performance is for two reasons:

    1) If they're animated, the animation still needs to be ticked along so when they come back they're showing the correct frame. If they only have one animation with one frame, though, I think an optimisation kicks in that does no processing at all, though.

    2) Construct must check every renderable object every tick to see if it needs to be drawn. Even invisible sprites are checked - it will just say, "oh, this one's invisible, next please". If it is visible, it does a very simple is-on-screen check (determine the bounding box then one to four integer comparisons) and if it's not on-screen it skips to the next one as well. These are trivial and take a tiny amount of time on modern processors, but with hundreds of thousands of objects these tiny tests become significant. 100,000 objects at 60 frames per second is 6,000,000 checks a second.

    If you like calculations, since that's running on a single core at probably around 2.5GHz, each sprite takes about 400 cycles to check, which is about 160 nanoseconds. Yep, most games probably don't have to worry about that!

    It's possible to improve the engine such that invisible or offscreen objects don't even need to be checked like that - it's something I'll consider for Construct 2.

  • This is a good idea for C2, but per pixel isn't much of a waste of resources. At 1 bit per pixel for a collision mask you're only using 128kb of memory for a 1024x1024 object, on machines which these days typically have well over 1gb physical RAM going spare.

  • Have you thought about having a single event sheet that more than one layout uses? You could have a 'standard level' event sheet which includes 'Gameplay' and 'Rain' and simply select that as the event sheet for several levels.

    Does that do what you want or were you after something more?

  • Yeah, I always wait a couple of days after asking just to be sure. There's no rush.

  • Shall I mark this build stable? I haven't heard of any problems with it yet.

  • Over 5000 objects would probably be pushing it for low end machines, and large layouts should be fine (there's no memory/cpu usage proportional to layout size so it essentially doesn't matter how big a layout is). The only issue is objects store their position in single-precision floating point numbers, which means they might start getting inaccurately calculated at really big X/Y co-ordinates - it should be OK within 100,000 pixels of the layout origin though. You could always experiment with a slow moving object at (100000,100000) and see if it still moves OK (use unbounded scrolling to save having to make a layout that big).

    You'll probably get better performance with smaller levels with less objects: currently, construct has to check every object in the layout, no matter how far away it is from the screen, to see if it needs to be drawn or animated. This incurs a tiny performance penalty, but in theory having over 10,000 objects in a layout could slow down the game purely because those objects exist.

  • What are you trying to do? If you're trying to connect two objects with a line, the Line object is the way to go, since all you have to do is update its start and end position. If you want to draw a picture consisting of many lines, you probably want to use the Canvas object, which is better suited to procedural drawing.