Ashley's Recent Forum Activity

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

  • Try Construct 3

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

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

  • 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)
Ashley's avatar

Ashley

Online Now
Early Adopter

Member since 21 May, 2007
Last online 30 Jun, 2026

Twitter
Ashley has 1,769,362 followers

Connect with Ashley

Trophy Case

  • Jupiter Mission Supports Gordon's mission to Jupiter
  • Forum Contributor Made 100 posts in the forums
  • Forum Patron Made 500 posts in the forums
  • Forum Hero Made 1,000 posts in the forums
  • Forum Wizard Made 5,000 posts in the forums
  • Forum Unicorn Made 10,000 posts in the forums
  • Forum Mega Brain Made 20,000 posts in the forums
  • x126
    Coach One of your tutorials has over 1,000 readers
  • x74
    Educator One of your tutorials has over 10,000 readers
  • x5
    Teacher One of your tutorials has over 100,000 readers
  • Sensei One of your tutorials has over 1,000,000 readers
  • Regular Visitor Visited Construct.net 7 days in a row
  • Steady Visitor Visited Construct.net 30 days in a row
  • RTFM Read the fabulous manual
  • x42
    Great Comment One of your comments gets 3 upvotes
  • Email Verified

Progress

32/44
How to earn trophies

Blogs