Ashley's Forum Posts

  • The blog post includes the solution as well, which is to allow small ranges of values instead of expecting exact results.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Closing as not a bug. See "Expecting math calculations to be exact" in common mis-used events and gotchas.

  • It's really hard supporting the Facebook API. For a long while Facebook had a stupid motto of "move fast and break things", which meant constantly breaking their own API, and it also had regular outages so when testing it would sometimes randomly fail even if your code is correct. We've updated the tutorial a bunch of times as well, but they keep changing how the setup website works as well. It's a lot of work tracking these changes and we're trying to develop the next version of the product at the moment on top of that. However obviously we want all the official features to work, so if you can point me at a bug report if there is one, then hopefully we can get round to it for the next C2 beta cycle.

  • Rendering a HD game on less-than-HD display doesn't matter much: letterbox scale just downscales everything to fit. The source artwork is higher resolution than it needs to be, but scaling is something GPUs excel at, and the overall fillrate is still lower because there are fewer pixels on the screen to be written to. And having HD source artwork means it looks good on people who do have HD screens as well (some laptops even have 4K screens now!). If the resolution is less than half the design resolution, all your artwork will step down to the next mipmap level, and render from smaller automatically-generated high-quality renders of your source artwork too, helping save memory bandwidth.

    - all wrappers have their bugs. I'll take a look and see if there's anything we can do about it. Edge only runs on Windows 10+, and IE on Windows 8.1 and lower depends on the system version installed, and of course it does not cover Mac or Linux at all. So I think it's better to use a portable wrapper.

  • You should ask Wii U specific questions on the Wii U developer's forum, since Wii U development is under NDA and we are not allowed to discuss it in public here.

  • Can you post a .capx demonstrating the performance overhead of functions with actual measurements? Then I can investigate and see if anything can be optimised.

    However if the function does a very small amount of work, it's actually a normal result to see a performance hit. Even in traditional programming languages, if you move a tiny amount of work to a separate function, the overhead of calling the function can be larger than the amount of work done, and appear to make everything slower. However in absolute terms function calls are still fast, it's just that they can appear slow relative to tiny, even faster amounts of work.

    Moving the contents of a function to the call site is an optimisation called inlining. I think it could be difficult to implement that automatically in the event system, I'm not sure. It's something you can do manually where it makes a difference though. However if the function does any significant amount of work, the call overhead should not matter at all.

  • We want to support Playstation, but Sony won't let us. So I'm afraid there's not much we can do. It's definitely not that we don't want to.

  • - please file a bug report if there is too much memory use - the point of layout-by-layout loading is to keep the memory use down, so we want to make sure that is working.

  • If minification ever breaks anything, please file a bug report following all the guidelines. It should never break anything.

  • By design, you can only insert the Function object to a project once. (It's the same with Audio, Mouse, Keyboard, Touch etc. etc.) Once it's added to a project, it disappears from the insert object dialog, because you can't add it again. Since the original report does not follow the bug report guidelines it is impossible to investigate further, so I assume you have simply been confused by this. Closed.

  • Is it the same in the Chrome browser? What does Chrome say if you visit chrome://gpu?

  • The point of minification is to make reverse engineering hard, so it deliberately makes this difficult. Why do you want to change that option anyway?

  • NW.js for example has a memory cache nw.exe alongside the main nw.exe, it stores any recently accessed asset into that cache and never lets them go until the entire process is ended (exit game).

    This means if the game has 900MB of images/sprites in memory format, that cache will be ~900MB, even on a minimal main title screen layout.

    Cache is not the same as used memory, which the blog post I linked to covers somewhat. Unused memory is wasted memory, so maybe Chrome or even the OS maintains a cache of the decompressed images, or it's related to garbage collection. The thing about caches though is they can be evicted to free up the memory if the system ends up running low. So in a way it doesn't count - it's not going to make you run out of memory, it just speeds things up when there's spare memory available.

    Of course it's possible there's a C2 bug that is leaking memory (although it seems unlikely by now, with many very large games running just fine for some time). The key is if it crashes due to memory exhaustion, then by all means go ahead and file a bug report. Otherwise it's probably just hanging on to resources in case they're needed again.

  • I have observed when playing (the NW.js export) there are 3 processes (2 of them are background processes) that end up growing as the game is being played. So far in my game it seems to cap out at around 600MB (total).

    If you're looking in Task Manager, those numbers don't even include textures, because they're stored separately in GPU memory. Those numbers can be difficult to interpret too: see understanding CPU and memory measurements.

    [quote:n1tw30yr]sorry if this is a dumb question, but can you explain this "switching"?

    Lots and lots of laptops (even the one I'm typing on now) ship with two GPUs: a low-power, cheap and weak Intel GPU, designed to save battery, and a gaming-grade AMD or nVidia chip to run games fast. Both nVidia and AMD have really crap systems that automatically pick the GPU, and never pick the fast one for indie games, only AAA titles. For a while they wouldn't even let you manually pick the fast GPU for browsers, although I think that is fixed now. So GTA starts up on the powerful GPU and your browser or NW.js probably defaults to the weak Intel chip. Maybe if you got in touch with both of them they could whitelist your game for the powerful GPU, but you have to do it for every game you publish, and it involves trying to talk to a big corporation who probably don't care.

    So you can tell the users to do it themselves: normally there is a control panel that allows users to manually set the GPU for each program. For example on my laptop I can open nVidia settings, go to "Manage 3D settings", and manually add a program to use "High performance nVidia processor". It only lists programs nVidia think are noteworthy by default, so sometimes you have to manually add a program to the list too. However I've seen this alone entirely solve all performance issues with HTML5 games, but it is not the default, and lots of people probably don't know the option exists. So the whole system is kind of rubbish and biased against independent developers, but if you can make sure users are aware they might have a second GPU and may need to manually set the game to use it for it to run well, that might help.

  • The store used to have plugins for sale in it, but it promptly filled up with plugins costing £40 or more IIRC. I was very worried this would create the perception with new users that they would have to end up paying double or even triple the price of a personal license to get the features they wanted. We thought about having a price cap, but then that undervalues ambitious plugins like Q3D. So it got put on the backburner, and like many things on the backburner, quickly got replaced by more urgent matters. We could consider it again, but then if it's full of expensive plugins which the developers are claiming are must-have essentials in their sales pitch, I don't think that would come across very positively to new arrivals. As it stands it's up to third-party developers to distribute plugins themselves and charge for them independently, and it's up to them to announce updates, communicate with users, etc.