Ashley's Forum Posts

  • It's not supported yet. When you request the microphone like that it doesn't go anywhere. That particular feature is intended to be used with audio analyzers, it's not added to the video that you end up downloading.

  • This is actually pretty complicated to explain. There's a sort of paradox in the event engine that in order to make events "just work" intuitively, there's actually a lot of pretty complex code!

    newt is in the right direction with the "every tick" example. By default if you say "Sprite1: set X to Sprite2.X", it pairs them up. The event engine does this by what is internally called the SOL index. Think of this like the IID, but instead of being the index within all the instances, it's really the index within the currently picked instances only (aka the SOL).

    So in the "Sprite1: set X to Sprite2.X" example, the event engine really runs an algorithm like this:

    for each SOL1index in Sprite1 SOL:

    --- get Sprite1 instance at SOL1index

    --- get Sprite2 instance at SOL1index

    --- set Sprite1 instance X to Sprite2 instance X

    A similar algorithm is used for conditions, except the last step is "run condition using Sprite1 instance and Sprite2 instance". Note it only compares one instance against one other instance.

    The key thing to note is SOL1index is also used as an index in to Sprite2's SOL (aka SOL2). When all instances are picked (as in the Every Tick example), SOL indices are effectively IIDs, and everything pairs up. However when you start picking instances, they no longer pair up.

    The interesting thing about the capx is the condition is sort of backwards: in my mind I'd write "NPC: compare Target = Waypoint.ID", but instead it has "Waypoint: compare ID = NPC.Target". This means if any Waypoint does not have an NPC set to move towards it, it's not picked - and is removed from the SOL.

    So in your first example you set NPC 1 target to 2. This means the waypoint with ID 1 fails the condition. It's also important to note that each instance only compares itself to one other instance, as per the algorithm above. So it fails the condition not because there are no NPCs with target value 1, but because the single paired NPC 1 instance did not match.

    So waypoint ID 1 fails the condition and is un-picked, and no conditions mentioned NPC so they all remain picked. The NPC actions now run with pairing like this:

    0: NPC0 - WP0

    1: NPC1 - WP2

    2: NPC2 - WP3

    3: NPC3 - WP4

    4: NPC4 - nothing

    There are two interesting consequences of this:

    1) surprisingly, NPC2 goes to WP3 even though its target value is 2. This is because:

    a) all NPCs are picked - they all "met the condition" because no condition referenced them

    b) WP1 was filtered out, and it ends up paired with WP3 via the SOL index - note the engine is ignoring instance values here, this is what's left behind by the condition

    2) NPC4 goes to WP0. This is because the event engine implements wraparound for the SOL index - if it goes off the end, it wraps around back to the start.

    Similarly if you edit NPC1 to have a Target of 0, WP1 fails the condition again, and the SOL ends up:

    0: NPC0 - WP0

    1: NPC1 - WP2

    2: NPC2 - WP3

    3: NPC3 - WP4

    4: NPC4 - nothing

    This is actually identical to the previous result. The reason is it's just another case where WP1 fails the condition, and everything else is the same.

    Basically the best way to think about this is the event engine tries to pair instances together, but if you start picking instances, all bets are off - the pairing won't make sense any more. Also it might help to realise that once the condition has finished running, the instance variable values have no effect.

    When you add "for each NPC", you force the event to run repeatedly with just one NPC picked. Since it forces the whole event to run repeatedly with just one NPC instance, it works as expected. Note since the Waypoint condition runs an implicit for-each loop, this actually acts as a nested loop comparing every instance of NPC against every instance of Waypoint. So you actually compare all combinations, whereas before it only compares against a paired instance - which is more or less a random instance if you have conditions picking them.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I'd recommend filing a bug report if you think the problem is C2 or NW.js and not just your game running out of memory. But without a .capx or more information all I can do is wildly guess. I'd guess that your game is running out of memory. That's pretty common.

  • The signalling server is now hosted with Rackspace (we moved it recently). The recent crash was due to a bug in the signalling server software which I subsequently fixed and updated the server with the patch. It can be pretty tricky to deal with these issues - something which happens after a month of continuous hosting and upwards of 100,000 connections over that time is the very definition of a hard-to-reproduce bug. So revisions to fix every last possible bug that could happen over years of hosting can take a while to fully verify.

    If you don't trust us or Rackspace or you have some critical project depending on it, you can buy the signalling server from the store and host your own. However take care to note all the advice in the store page & readme - you must specifically ensure the server is not behind NAT (Network Address Translation) and set up TLS for a secure websocket, otherwise your server will likely be less reliable than ours.

  • The signalling server is designed to also function as a lobby server. Use the "request room listing" action and you get a list of available games that you can build a lobby around.

  • I'll add to this and say high resolution platformers are definitely an issue in C2 and I haven't seen any real movement to look into why HD performance isn't all that great.

    This is a classic case of blaming GPU performance on Construct 2. If a game runs OK in SD, but is slow in HD, that's 100% down to the performance of the GPU hardware. A native engine would perform identically, because it's the same hardware. I have looked in to this in the past, and it usually comes down to crappy integrated Intel GPUs. There isn't much any game developer anywhere can do about that...

    I'm not aware of any performance issues relating to platform movements - collision cells should ensure that's fast. I'd be happy to review a .capx if someone made something demonstrating a performance problem.

    According to webglstats.com 95% of users have WebGL support now. Problems for the 5% may be tricky, but firstly it's a pretty small segment, and secondly there's still not much that can be done about it - Chrome does a lot to work around driver bugs, and if it can't run WebGL, it's likely that the drivers have severe stability issues. So those users are likely to be a problem anyhow.

    I've not seen any actual performance numbers comparing Electron and NW.js. They are both based on the same Chromium engine, so it would be a surprise if they performed differently. I'd have thought they are running identical code!

  • Please report such issues to the Bugs forum following all the guidelines.

  • It means nothing is running and you tried to run a trigger. I think this is possible if you try to run a trigger while the game is still loading, because the first layout hasn't started yet.

    • Post link icon

    This is effectively circumventing the free edition restrictions so closing this thread.

    Note from the end-user license agreement you are not allowed to "rent, lease or lend" the software, so users with a license are not allowed to build your project for you.

  • The dropdown for animation property has been done for C3.

  • If you read the license it tells you what the limitations/permissions are. If that's not clear enough to you, then perhaps consult a lawyer. I'm not a legal expert but I think the license makes it pretty clear itself.

  • You probably just want to edit the exported HTML directly.

  • Yes, if you're exporting with NW.js that works across all Windows versions (only 7 and up actually I think as of the latest releases).