Ashley's Recent Forum Activity

  • Are you using PhoneGap Build? If you have an issue with that, it might be better to contact them about it.

    We also have an official guide on using the Cordova CLI here and you can also use C3 to build C2 exports.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Well, this puts us in an awkward spot. Nobody was ever meant to use this feature. I'm also generally not a fan of the fork-official-plugin-and-tweak approach to plugin development, as it's a perpetual source of compatibility problems, as it has unsurprisingly become here. We could add fast triggers to the C3 SDK, but then there's nothing stopping new plugins being released using it, meaning the compatibility risks I described earlier get carried on in to C3 as well. This is frustrating since a new product is a good opportunity to make a clean break and remove old compatibility cruft from the code base, but this will bring in some awkward compatibility stuff right at the beginning of the product lifecycle.

    We do intend to redesign the function feature after the new C3 runtime which will supersede the official function plugin and any other third-party function plugins as well. Hopefully this will then make the issue irrelevant, since everyone will migrate away from all function plugins to the new feature. Because of this, I think the best compromise is to port the plugin to C3 using standard triggers rather than fast triggers. It may not be as fast as in C2, but it shouldn't be terrible, and it will only be a problem in the period between now and the new function feature in the C3 runtime.

  • Ashley - I haven't looked too deeply at the pixi library but I reckon you're right.

    It would be good to have a more modular approach to sprite / drawn objects in c2 / c3 (in the new runtime?). I mean, if you're just using sprites for background imagery, for example, then there's no need for the runtime to keep arrays of data on unused components like collision polygons etc. It would be amazing if that horse hasn't left already and this sort of approach could be included in the future (like many more behavior options to add to a basic particle-like sprite). Just a thought and a hope...

    In general I doubt it's worth it. Adding different rendering modes adds a lot of extra complexity and that often causes bugs (e.g. render path A is not pixel-perfect identical to rendering path B). Also as I mentioned in the original thread, in these tests we're really talking about tiny differences on the scale of nanoseconds per sprite, that scale up to bigger results in specific benchmark tests. I rarely see real-world games bottlenecked on this as well, so it looks like a lot of complexity for no real-world benefit other than improving a specific benchmark result. This is one of the limitations of benchmarks: it tempts you in to running down a performance rabbit-hole which just ends up wasting time.

  • Zebbi - IIRC the device had a buggy GPU and was blacklisted for GPU acceleration. It only affects a few percent of devices in the world these days. It's just bad luck you had one of them really. It's nothing to do with event performance.

    Colludium - IIRC Pixi was using point sprites (same as Particles plugin in Construct) so it wasn't exactly an apples-for-apples comparison. Point sprites can't scale or rotate so aren't really useful for the Sprite plugin.

  • Why not just use "On touched" instead?

  • The message about throttling suggests you're spamming the API with constant requests and it's decided to stop you to prevent overloading the servers. I'd guess you've accidentally made an event that tries to load the leaderboard every tick, or something like that.

  • Take fast trigger flag for example. It is only a flag, not specific code of implementation

    No, it is not just a flag. It uses a whole different path through the triggering code, which is deep in the internals of the event engine. Just because it's exposed as a flag, doesn't mean it's as simple as flipping a bit.

  • bilgekaan - it's not about needing money to do it, it's more about who will write it, when, how it's managed, and how it's scheduled with everything else. Time is the bottleneck here.

    "Ability to install multiple addons at once" could be submitted to the feature request platform. It's certainly a smaller feature than making a whole online addon service.

  • If you use it identically to the Function plugin, it's probably OK. But I don't know, the bigger problem is that it's unknown which circumstances it works exactly, so it would be tough to document it and I don't want to have to support it if someone uses it in other cases. E.g. if someone uses it in some other way, then files a bug because it's broken one way or another, that's exactly what I want to avoid. It's meant to be a single-purpose shortcut that nobody else knows about.

    One of the big problems with the C2 SDK is basically everything is public and people go nosing around undocumented APIs and relying on them. This is pretty bad for us, especially if people start asking us to document or better support random hacks in the engine that were never meant to be used anywhere else. I mean, what next - is someone going to start fiddling with the WebGL batching engine and asking us to document what various command parameters are for? It gets pretty obscure in that part of the engine, mainly because a bunch of stuff is recycled and repurposed to relieve GC pressure. Nobody's meant to care about it, but in theory someone could end up writing a plugin that uses all that.

    In the long term it also risks making the entire engine inflexible - if we can't change the code without breaking some random third-party plugin, we could end up struggling to make any changes. For example it could end up that we can't ship a 2x performance optimisation, because several third-party plugins ended up depending on a particular algorithm that we used. This could well be the case with fast triggers: we might be able to speed them up further by making its restrictions even tighter, which is OK with the official function plugin, but not OK if it was a documented general-purpose API that we have an obligation to support forever, or put through a lengthy deprecation-and-removal process. The end result could be everyone's games are stuck running slower and we can't make optimisations to improve it.

    By the way, this is why for the C3 SDK we've taken a consciously different approach. There is a much more focused (and limited, at first) set of APIs available. We hope to broaden it out over time, of course, so it can do everything C2 did and more. However this takes time. These APIs will be much better designed so it still allows flexibility in the engine, will be comprehensively documented, we'll support them with bug fixes etc., and we will provide backwards-compatible support for the foreseeable future (unless we put them through a deprecation process). In the long run this is much better for everyone, but in the short term puts us under pressure to work on various API features (like the text rendering API I just filed an issue for). We'll do our best to keep up with that.

    Finally one extra thing to note: the C3 runtime will in many cases use identical APIs to the editor. For example IWebGLRenderer will be identical in the editor and runtime - and it will actually be backed by identical JavaScript classes, since we can share editor code with the runtime. Hopefully this makes it a lot easier to develop plugins, since the editor code can be shared with the runtime. For example we already have a particle engine in the editor for the live preview feature; when we come to port the plugin to the C3 runtime, we'll literally copy-paste that to the new runtime, saving a lot of work.

    Maybe I should've written a blog post about this

  • OK, I filed a todo issue for this: https://github.com/Scirra/Construct-3-bugs/issues/1127

  • I have no idea when we will be able to work on it. What status should I assign to it in this case? "I like it but we might not do it for ages"?

Ashley's avatar

Ashley

Early Adopter

Member since 21 May, 2007

Twitter
Ashley has 1,831,030 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
  • x6
    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
  • x44
    Great Comment One of your comments gets 3 upvotes
  • Email Verified

Progress

32/44
How to earn trophies

Blogs