Ashley's Forum Posts

  • I think we wanted an option for the old style but it didn't make this build... we'll try and add it to the next build or two.

  • Construct 0.98.5 released

    Basically a hotfix for some things that broke (*glances at David* ) in 0.98.4, and one or two things I'd done in between. Since 0.98.4 did not make the front page or send update notifications, its changelog is also attached below.

    Remember you can donate via the main page. All your donations mean a lot to us and thanks to everyone who's donated in the past. We also pay for upgrades to the Prof-UIS library from donations, so it does come back around.

    New in 0.98.5

    General

    • [ADD] System object: 'On device reset' trigger (objects like Minimap lose their textures on device reset; you might need this to redraw terrain and set up other objects)
    • [FIX] Most recently used (MRU) list no longer shows duplicates
    • [CHANGE] Opening an application also adds it to the MRU list
    • [CHANGE] MRU now lists 10 items and shows full paths

    - [CHANGE] Insert icon replaced by Deadeye's icon. Thanks deadeye!

    Hotfixes

    • [FIX] Platform movement fixes relating to platform and conditions such as 'is moving' were broken
    • [ADD] Bone movement - moving mouse over a handle makes it go blue
    • [ADD] Bone movement - action 'Force bone reposition', which can be used if you need the bones to instantly reposition themselves (eg. you're manually positioning something to the co-ordinates of a limb and your having synchronization problems)

    Changelog from 0.98.4

    Behaviors

    • [ADD] Drag & Drop: ability to limit dragging to one axis
    • [ADD] RTS: Get destination X/Y
    • [ADD] Platform: can disable down-falls-off-platform, new conditions for testing wall left/right/above
    • [FIX] Ball movement: 'Set angle' had no effect when 'Rotate object' enabled
    • [FIX] RTS movement: issuing a move action on Start of Layout crashed
    • [FIX] Platform: objects with the 'platform' attribute are no longer solid sideways

    Event sheet editor

    • [ADD] Draws lines to show indentation of subevents
    • [FIX] Crash using 'go to' when no include had been made
    • [FIX] Adding events by the ribbon now insert at the right place
    • [FIX] Adding stuff from the ribbon now unselects the previous selection and selects the new stuff
    • [FIX] Adding conditions by the ribbon and by the right click inserts at the right place
    • [FIX] Can no longer add sub events in stupid places like comments and includes (ribbon, right mouse popup, drag drop, hover buttons covered)
    • [FIX] Deleting events or groups without deleting their children will no longer cause the children to reverse. Also, it will make the animation gap that the events move smaller so the transistion wont mess up
    • [FIX] Crash running a project with a blank event sheet include

    General

    • [ADD] New 'No serialize' attribute. Objects with this attribute will not be saved or loaded at runtime by the save/load/quicksave/quickload actions. Useful for objects like XAudio2 playing music etc (You need to add this attribute manually in old .caps)
    • [ADD] 'No to all' when resource prompts occur, if they are missing
    • [ADD] Some (long overdue) window settings: minimize box, maximize box, caption, resizable.
    • [FIX] Reordering layouts now sets the changed status of applications to true
    • [FIX] Editing/adding/deleting any resource now sets the application status to changed
    • [FIX] Crash selecting 'go to url' in insert object dialog
    • [FIX] Crash resizing selections in the Picture editor
    • [CHANGE] Double clicking in the object bar opens the picture editor now
    • [CHANGE] Updated to new Prof-UIS 2.84
    • [CHANGE] Update checker now runs in a thread, should stop all lockups at start
    • [CHANGE] The Directsound object no longer appears in the Insert Object dialog. You can still open old .caps using the object, though. Use XAudio2 instead of Directsound.

    Layout editor

    • [ADD] Holding enter while left clicking selects the object under the selected object (allowing you to get to those hard to select items!)
    • [ADD] While dragging, pressing enter will paste the object onto the layout making it easier to make large amounts of objects
    • [FIX] Crash with pasting clones
    • [CHANGE] Right click wont change the selection in layout editor if you mouse is over a selected object

    Plugins

    • [ADD] Timeline object: significantly upgraded, effectively version 2
    • [ADD] XAudio2: Limiter (on by default). The limiter dynamically adjusts the volume so sound does not distort if you are playing a large number of samples at once. This substantially improves audio quality in this situation.
    • [ADD] Layout object: transparent & resize-to-fit options, can scroll independently
    • [ADD] Sprite: 'is overlapping at offset' condition. Can be used instead of 'detector' sprites.
    • [ADD] Sprite: 'resume animation' action, which plays but does not go back to first frame
    • [FIX] XAudio2: possible crash in playing samples
    • [FIX] XAudio2: crash playing music from resource twice with two instances
    • [FIX] Tiled background: 'set image scale' did not display all parameters in event sheet editor
    • [FIX] Plasma object: is now timedelta-compliant
    • [FIX] Crash in Bone movement
    • [FIX] Minimap: invalid texture reference when device reset

    Runtime

    • [ADD] System object: cubic interpolation expression (cubic())
    • [FIX] Collisions: bounding-box tested against per-pixel objects was not working
    • [FIX] Debugger-reported event numbers are now always correct
    • [FIX] Problems with incomplete containers in layout editor again
    • [FIX] Weirdly rendered display if the layout was smaller than the window, and mouse co-ordinates sometimes wrong in that case.
    • [FIX] 'Pick a random object' didn't work correctly with families
    • [CHANGE] Animations are now allowed to skip frames if they are faster than the framerate
    • [CHANGE] Passing a family to a create/spawn action now picks a random type in that family and creates that
    • [CHANGE] Debugger can now also identify the event sheet a crash originated from if it happened in an action, condition or expression.
    • [CHANGE] Window automatically centers itself in the screen on startup.
  • OK, hotfix coming up soon... actually I think I'll just make it 0.98.5, I think a lot of people have already downloaded this one.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • No, we'll definitely have an importer for old .cap files.

  • Batches are not particularly interesting to the end user, it's more for us developers to test how efficiently the game is being drawn.

    V-sync always draws the screen when the monitor is being refreshed to stop tearing. If it misses a V-sync because it's still drawing, it'll wait until the next monitor refresh. So if your game takes just over the time between VSyncs to draw, it'll dip to half the framerate, because frames are never rendered in time for the next VSync, only the one after.

    I guess your game is really running at 90-99fps. If your refresh rate is 100Hz, it never has a frame drawn in time for the next VSync, so it only manages to draw every other frame. In windowed mode, the VSync isn't quite so accurate anyway, so it tends to sometimes skip a frame or two a second even if the application isn't doing anything. This probably just exaggerates the problem if your FPS is just below VSync rate.

    If you go to 60Hz, it can comfortably get a frame rendered in time for every VSync, so you hit 60fps.

    I'd take a look at optimising your game. Whats your video hardware, by the way? If it's powerful, you've got to be doing some pretty heavy rendering to pull down the framerate that low!

  • Part of the problem is probably that Construct is using the very latest DirectX updates at the moment (eg. November 2008). As it seems WINE and other emulators have poor DirectX support off the bat, I doubt they're able to keep up with such updates.

  • You're using 0.98.3, update to 0.98.4, it's on the forum but isn't sending update notifications yet.

  • Are you talking about animations not working in sprites or in the bone movement?

  • They're conditions in the platform movement, which are reached by selecting the sprite with the movement while adding a new condition, and using the tab to pick Platform.

  • Actually, by the time it launches the DirectX installer, everything else should have been installed anyway. Even if it crashes at that point, you should be able to browse to the directory you specified and find a working Construct install.

    I really don't want to add a checkbox to disable the DirectX installer. A lot of people assume they have an up-to-date DirectX installation just because they have 9.0c because they don't know Microsoft periodically release updates which don't change the version number. I think some people would inevitably untick the option if it were there anyway, and complain when it doesn't work. And the last thing I want to do is have that problem just because WINE is broken.

  • Heh, I like the idea of community challenges. Davo and I came up with this one. You'll need the latest 0.98.4.

    It doesn't look as good as Squeemish's, but it uses instances of the same object, instead of a load of clones (which would get kinda annoying in the event sheet editor).

  • Download 0.98.4 now!

    This update provides a lot of bug fixes and a few new features (the usual, really). Please remember to post bugs to the tracker, unless there's something really serious which breaks this build, in which post it here in the thread and I'll see if we can fix it ASAP!

    Remember you can donate via the main page. All your donations mean a lot to us and thanks to everyone who's donated in the past. We also pay for upgrades to the Prof-UIS library from donations, so it does come back around.

    Anyways here's the changelog:

    Behaviors

    • [ADD] Drag & Drop: ability to limit dragging to one axis
    • [ADD] RTS: Get destination X/Y
    • [ADD] Platform: can disable down-falls-off-platform, new conditions for testing wall left/right/above
    • [FIX] Ball movement: 'Set angle' had no effect when 'Rotate object' enabled
    • [FIX] RTS movement: issuing a move action on Start of Layout crashed
    • [FIX] Platform: objects with the 'platform' attribute are no longer solid sideways

    Event sheet editor

    • [ADD] Draws lines to show indentation of subevents
    • [FIX] Crash using 'go to' when no include had been made
    • [FIX] Adding events by the ribbon now insert at the right place
    • [FIX] Adding stuff from the ribbon now unselects the previous selection and selects the new stuff
    • [FIX] Adding conditions by the ribbon and by the right click inserts at the right place
    • [FIX] Can no longer add sub events in stupid places like comments and includes (ribbon, right mouse popup, drag drop, hover buttons covered)
    • [FIX] Deleting events or groups without deleting their children will no longer cause the children to reverse. Also, it will make the animation gap that the events move smaller so the transistion wont mess up
    • [FIX] Crash running a project with a blank event sheet include

    General

    • [ADD] New 'No serialize' attribute. Objects with this attribute will not be saved or loaded at runtime by the save/load/quicksave/quickload actions. Useful for objects like XAudio2 playing music etc (You need to add this attribute manually in old .caps)
    • [ADD] 'No to all' when resource prompts occur, if they are missing
    • [ADD] Some (long overdue) window settings: minimize box, maximize box, caption, resizable.
    • [FIX] Reordering layouts now sets the changed status of applications to true
    • [FIX] Editing/adding/deleting any resource now sets the application status to changed
    • [FIX] Crash selecting 'go to url' in insert object dialog
    • [FIX] Crash resizing selections in the Picture editor
    • [CHANGE] Double clicking in the object bar opens the picture editor now
    • [CHANGE] Updated to new Prof-UIS 2.84
    • [CHANGE] Update checker now runs in a thread, should stop all lockups at start
    • [CHANGE] The Directsound object no longer appears in the Insert Object dialog. You can still open old .caps using the object, though. Use XAudio2 instead of Directsound.

    Layout editor

    • [ADD] Holding enter while left clicking selects the object under the selected object (allowing you to get to those hard to select items!)
    • [ADD] While dragging, pressing enter will paste the object onto the layout making it easier to make large amounts of objects
    • [FIX] Crash with pasting clones
    • [CHANGE] Right click wont change the selection in layout editor if you mouse is over a selected object

    Plugins

    • [ADD] Timeline object: significantly upgraded, effectively version 2
    • [ADD] XAudio2: Limiter (on by default). The limiter dynamically adjusts the volume so sound does not distort if you are playing a large number of samples at once. This substantially improves audio quality in this situation.
    • [ADD] Layout object: transparent & resize-to-fit options, can scroll independently
    • [ADD] Sprite: 'is overlapping at offset' condition. Can be used instead of 'detector' sprites.
    • [ADD] Sprite: 'resume animation' action, which plays but does not go back to first frame
    • [FIX] XAudio2: possible crash in playing samples
    • [FIX] XAudio2: crash playing music from resource twice with two instances
    • [FIX] Tiled background: 'set image scale' did not display all parameters in event sheet editor
    • [FIX] Plasma object: is now timedelta-compliant
    • [FIX] Crash in Bone movement
    • [FIX] Minimap: invalid texture reference when device reset

    Runtime

    • [ADD] System object: cubic interpolation expression (cubic())
    • [FIX] Collisions: bounding-box tested against per-pixel objects was not working
    • [FIX] Debugger-reported event numbers are now always correct
    • [FIX] Problems with incomplete containers in layout editor again
    • [FIX] Weirdly rendered display if the layout was smaller than the window, and mouse co-ordinates sometimes wrong in that case.
    • [FIX] 'Pick a random object' didn't work correctly with families
    • [CHANGE] Animations are now allowed to skip frames if they are faster than the framerate
    • [CHANGE] Passing a family to a create/spawn action now picks a random type in that family and creates that
    • [CHANGE] Debugger can now also identify the event sheet a crash originated from if it happened in an action, condition or expression.
    • [CHANGE] Window automatically centers itself in the screen on startup.
  • Nice example! The effect is more noticable if you use a low fixed framerate eg. 15 fps - the blue object passes right through the barrier.

    You could neaten the events using the 'repeat' condition instead of a loop, which keeps everything in the same event, eg:

    + Right arrow key is down

    ----+ Repeat 5000 / redguy('Accuracy') times

    ----+ Red does not overlap wall

    ----> Set X to .X + (TimeDelta * redguy('accuracy'))

    This keeps everything inside one subevent. I don't really like the action-based loops - I'm not sure they deserve to be there - I think using condition loops is always superior. The runtime can run condition loops faster, and it keeps events in one place (it's bad for readability that 'start loop' runs the loop body somewhere else).

    Also, your example doesn't take in to account if it's running too many loops - if each iteration the object is being moved less than one pixel, it is a waste of processing to check the same pixel twice.

  • Yeah, you can do that or put all objects with the same texture on their own layer, so even accidental send to front/send to back won't change the layer, and still allows the GPU to keep the same texture loaded.

    However, that's probably of the more subtle areas you could optimize. The canvas thing is much more important (don't make them bigger than the screen if you can). I wouldn't bother building your game from the ground up with the Z ordering thing in mind. It won't make any noticable difference unless you're using hundreds, or thousands, of on-screen objects which are intermingled with other objects in the Z order, which is a fairly rare situation.

    You're much better off optimising the use of pixel shaders, or not bothering at all, until your framerates prove you actually need to start speeding things up (what's the point if it runs fine anyway?).