SwiftIllusion's Forum Posts

  • So that 'messages' don't get lost during the game, if anyone's connection is lost I want to give them the opportunity to resume by pausing everyone until they have joined again. So I need to stop the progress of events (e.g. as I've been trying with the wait signal-0 timescale didn't work because it couldn't wait until full reconnection to get back to 1 timescale) when someone gets disconnected (loses internet momentarily-not from a natural disconnect).

    PeerCount doesn't work, because it still counts peers that have disconnected (unless fully out/kicked which takes time).

    I've also tried to do something with 'On Host/Peer Disconnected' manually, but found that also takes time after the disconnect to trigger, so the information gets sent (not to them) before they can reconnect.

    Without exhaustive detail but extra context, with intentional design, what happens can't be retroactively updated or synched/newly sent after, those kinds of alternatives won't work.

    I would appreciate some method to know a player has lost their connection and to halt gameplay before the message is lost during the time they are waiting to reconnect.

  • I'm trying to use 3D in a project, and I discovered that the 3D layer acts like if the projects fullscreen mode was 'scale inner' instead of the chosen 'scale outer', breaking the presentation of the game (2D layer fixes it but breaks the mesh's appearance).

    Couldn't find anything in the documention of the 3D camera/google, is this a limitation or bug to report? Would appreciate any help to try and resolve this.

  • Ah I can understand why that change wouldn't be an option then, thanks a lot for the clarifying response.

    A problem though is I wouldn't have had as much concern if the single month personal license was the price to pay. In Australia, even as an individual you require a 'business' for any earnings (my games are via my business/logo etc even when free for those that may not be), so I required the business annual license. When I was originally looking to what license I required I'm pretty sure that was the case in another country too.

    This limits my option to every second year paying for an annual business license for ideally a single build of a free game.

    This is certainly not a common situation, but if others encounter this too, in the future if it were possible at all for a monthly based maintenance license-allowing opening and building of a project, for projects without any monetization, at personal license pricing, that would be greatly appreciated.

    Though I can absolutely understand why that might not be an option either as I don't know the extent of the behind the scenes work you'd need to set that up.

    At least it's available still on the web so if discovery of it grows/interest of it on mobile is desired more I can consider purchasing the license again at that time.

  • "we are expanding on Google Play’s target API level requirements to include existing apps that aren’t updated."

    I'm not questioning other limitations of the free license, however you already can't have any monetization without a license (I spent time developing the game with a license, and released it free, so I'm no longer paying the subscription).

    So I'm hoping and would really appreciate, that with these policy changes from google, would it be possible to change so you can build games to the new API levels, without having to temporarily pay for licensing every time just to be able to build. You can already open them without changes allowed when the game is above the scope of the free version, but right now you can't build to mobile.

    It's purely wanting to build for the new API level requirements.

  • DiegoM Thanks so much, that worked perfectly :)!

  • On a separate note from the above issues, is there any way to change 'chrome settings' in the exe/anywhere (I'm using an older construct3-win64-c73-stable) desktop solution.

    The problem I'm having is the colors are dull relative to how they should be, and discovered that was a chrome color profile issue, which I could change in the browser, but those changes didn't carry over into the construct editor.

    It's especially frustrating when I want to take screenshots during debug but the colors are all off, and personally the browser version is very inconvenient/not realistic for me to use.

  • No worries, thanks a lot for the understanding and further advice.

    That being a problem is exactly why I end up feeling helpless a lot guessing in the dark. Logically it should work, but it feels like there are shortcuts/conversions/clashing interactions hidden behind the abstraction of the events/flow that I can't predict and keep tripping over.

    That could be an approach in some cases I'll have to keep in mind so thanks :), but my structure in this case and those where I have issues are more complex. I tried to build a separate example, but I was essentially making the whole project again to have the systems/interactions in play that are causing the issue, that are again just 1 of many encounters with this general issue each time I try and make something in Construct.

    Continuing the above thread though, to try and better discuss this games set of circumstances, here's an in-action visual of where it got - gyazo.com/015a79930be6b9e3814fd9e294643578

    The game loop is turn/round based:

    • [#1 (active)]: Player pressed 'w/a/s/d' and that sets that directional character to Attack1a that ends on final frame / Any Attack1a on final frame begins Attack1b to follow through. At the same time Any enemy at the left will step through Attack1a/Attack1b over 2 turns too (currently doing nothing else as I couldn't fix these issues at the player attack enemy stage, it's just visual)
    • [#2 (resolve)]: When Attack1b changes to its damage frame, the lowest enemy if any is in the left row (they advance from right to left in a sense each round) changes to 'hit' animation and will be deleted then removed from the row (the rows are 3 wide/x tall tracked in an array to move them and divide their location evenly as they reposition).
    • [#3 (turn end)]: Because enemies need to be deleted and taken out of the array before the next set move forward, I'm trying to during this step check at the final potential steps (did a character finish their attack but no enemy was being hit/did an enemy die and no remaining enemies are dieing or attacks are being triggered). Then enemies would progress and the round would go to the next so you could input again.

    I realize that it's probably as hard to give broad advice as it is to explain all the various circumstances I find myself in. I just have an unnatural talent to constantly make mechanics that Construct doesn't seem to agree with.

    Regarding the suggested startup sequence that's basically what I do, except I didn't find wait for previous actions consistent enough and I needed to do more with them so I was using signals - i.gyazo.com/6af17591ce1609dcdb19c3d209d7f943.png i.gyazo.com/a3953bfd8d3bccd04fce57e61886a685.png but it's reassuring to know I was on the right track with them so thanks for sharing your experience with them.

    Hopefully the above elaboration might give some insight into more potential methods I can try and take advantage of in this situation, but regrettably the awkward areas of code I still have needing wait 0+'s/signals/wait for completions/embedded blank events don't really have their context when shared at face value without me adding/removing them and seeing everything randomly break or randomly work during their implementation.

  • Appreciate you sharing your experience, but it seems like you haven't run into my problems or at least have been able to avoid them from the start.

    I've been struggling on how to respond because I know I don't know everything, otherwise I would hope I'd be able to avoid these issues. But I want to at least affirm the context that I've used many different engines/visual scripting solutions for years and it's not basic mistakes like having any wait in an every tick that's happening. Though I also appreciate that was just meant to help as I didn't know how to word my experience in the first post and it could have been an issue.

    In a sense I was using a state machine, but only really for the natural use case of tracking the progress of a round and using that for tracking when logic should happen and players inputs can be used in a turn based structure.

    That is what I used as a recent reference, but I also frequently have these issues in start of layout sequences too, for example when I need to load json data to set up arrays and use that in some way at startup. Signals help most there, but often when trying to iterate events through that I run into various issues with having to wait for data to actually be loaded correctly, but then sometimes the event iteration breaks, and so many things seem to not be functioning in order, and what needs a wait to work/what putting a wait in front of breaks even worse becomes a complete guessing game for me. I had to rebuild the startup of a previous project so many times it was insane.

    Your response in general is helpful, but it's closer to how not to make mistakes 101, than best practices to utilize to avoid the above headaches. I'd love to be able to do something as simple as your attack animation example but that just doesn't ever function so smoothly for me so I end up with a messy string of functions/waits/embedded blank events trying to get things to work in the order I want and hoping nothing randomly happens more than it should.

    I looked through Kiwi Story, and Demonoire to try and find an example structure but they're just simple/clean/to the point. A good thing for sure, and especially Demonoire has a great deal of content, but like in the circumstances they use foreach/don't use it, or how in their enemy 'AI' they don't seem to need to try and cover potential overlap, because the game is built in a way that won't happen. So I can't really point at any tricky sequence of events like my above array example that is more representative of the cases where all this trips me up.

    Construct has some great advantages, but I always feel like I'm tripping over invisible code because of the nature of whatever logic it's using to determine action orders and event triggers. Where as in one of Unity's more complex visual scripting solutions like Bolt/Flowcanvas/Nodecanvas, or Unreal Blueprints, etc, I know exactly what something is doing and where/when it is doing it as I can follow it along more precisely.

    So I was hoping there might have been some more advanced tricks to keep things in order or have things run as much as they should/when they should with stronger certainty.

  • I've been using construct for a long time now, but the largest headache I have is constantly having events trigger out of order/early/late/multiple times, causing days of rewrites sometimes just to try and accidentally find something that works.

    Then I can add one new thing, and everything breaks in an equally nonsensical way.

    Note: This all includes using wait:0's, wait signals, moving stuff off to functions/asynchronous functions and waiting for completion, etc.

    Does anyone that's experienced this have a workflow/consistent solution for this?

    For a recent point of reference, was trying to work on a recent game jam and spent straight 6 hours rebuilding an attempt to smoothly transition to a next turn of combat.

    I wanted all of a turn to resolve before allowing input again, so I did many variations like adding 1 to a global when a character attacked, then subtracting 1 at the end of their attack animation. And added 1 at the start of an enemies hit animation (triggered before the end of an attack), reduced 1 at the end of the hit animation before it was destroyed. Once it returned to 0 you would then be able to input again.

    Tried various waits, moving it around, signals, functions, etc adjacent to that idea, switched to/away from 'for each' in the on animation ends in-case there was a difference if 2 enemies triggered at the same time, but nothing worked. It would consistently, inconsistently have 1 left over and so stop working.

    This is only my most recent example, it's a struggle I constantly run into and can be the majority of my effort in small games just hoping to randomly stumble upon some combination that works.

    Sometimes wait 0's would fix something, other times it would break everything. Sometimes I end up with so many nested events just trying to hope they would properly run after another because they just didn't seem to even though nothing is meant to be parallel from what I've read.

    I can't really provide an example because it feels so illogical and inconsistent that I don't know how to properly reproduce it, besides waiting for it to break, but even providing that could be one of any countless variations of struggling with this problem I've had and not be of universal help.

    So I'd really appreciate if there's anyone who has developed a workflow to overcome these issues or found a common trick to resolve some of these cases that isn't just guess work.

  • Sorry, I admit that the circumstances causing this issue may be resulting in me sounding rushed and desperate for a solution, leaving the incorrect area's of my discussion emphasized. As you say, this happens, and it has happened to me many times in every game engine I've used.

    To try and adjust the focus of my discussion here, what I'm trying to emphasize is that I'm more than comfortable trying to find a solution for this on my end, I'm not asking for a 'solve my problem' button. However to find a solution on my end, being able to open my project in an older version of construct 3 to compare with would be invaluable.

    Currently all I've been able to do is blindly re-adjust how my character's are made without success. If I could open the project in an older release of construct 3 to compare with though, I could debug it fully, check all the values of the characters, re-adjust and evaluate the situation between both versions and come up with a more firm resolution. If I instead just tried to remake my character's from scratch, that would not allow me to identify what caused the issue.

    That's why I so wish to be able to run an older version of construct 3 in the desktop build. Not for it to be magically solved, not to offload responsibility, but so I can better deconstruct the issue and hopefully find what caused the problem.

  • I can understand the idea of looking elsewhere for the source of the problem, however the most significant problem is that without being able to view my older backups that also display the same problem it's hard to try and even conceptualize the issue. It's not my first time trying to find a bug, and I've no doubt made some dumb mistakes when trying to fix bugs that weren't bugs, etc, before. But it's difficult when I can't reference a functioning older version of the project.

    I had the characters working early with at least 4 folders copied of them working as intended, and loading up all of those projects they are broken in the same way. As in the videos above, there are 3 different results. Pre-r148, Post-r148, and Post-r148 with the events changing the physics moved below the physics enabled action.

    If I could at least view my project in r142.3, I might be able to look through the debug view and discover other properties or variables that are different which could be causing this problem. However because it's saved as a project folder, and the online browser version won't accept that or a newly saved singular file-which I can only produce in the latest version because that's all that the desktop version can access, I can't even properly try and dig further. At least in any meaningfully efficient way.

    Hence why I would so appreciate the ability to reach older versions in the desktop build. As far as I'm aware all it's doing is wrapping the site of r148, with the difference that it can save/load project folders. So if it is at all possible to have some setting somewhere that would allow you to use older versions that would be incredibly helpful.

  • just add a Wait 0 before you set the density which will wait for it to get to the end of the sheet.

    https://drive.google.com/open?id=1RAQFUdiHbmIRof0enjOL7Pku_iupLRfw

    (this uses r/148)

    Incredibly appreciative of your effort to try and find a solution for this, however the reason that works is only because you've enabled physics before setting the density.

    My issue is in my project I need to set the parameters before physics is enabled. A wait 0 is practically muscle memory for me now as a first attempt to fix something, it didn't work at any point I tried in the latest stable.

    Thanks for the tip of having objects in the layout, however because that has caused me so many issues in past projects I prefer now to just have a storage layout I keep the objects and their default settings in instead, even if it's not as efficient.

    Really all I want to do is be able to give my project a final polish in the last desktop stable version it was working in to release it, I don't want to have to try and re-engineer it and find new workarounds and retest and tweak everything all over again.

    Here's a set of comparison video's.

    This first one is the last stable release, that I uploaded to my site prior to r148 and was just waiting for feedback on.

    youtube.com/watch

    This is the same project now playing in r148

    (see how it stops almost immediately-as a result of the various physics settings no longer being changed)

    youtube.com/watch

    And this is the result of moving the physics settings in r148 to below physics enabled. They change now but act completely differently because they aren't connected correctly as a result.

    youtube.com/watch

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Thanks for another response, but to further re-iterate, my project was at the status of 'complete'. All I was doing was having a few people play the final version to get a feel for it and see if I might have needed to tweak the tutorial or add any extra information to descriptions.

    I wasn't changing anything.

    I understand 'update' isn't the right term necessarily, however the fact is I can no longer reach the previous stable release in the desktop version-the only version compatible with my project folder save, and saving it newly into a single file forces a version restriction on it so I can't load it in older browser versions you can still access.

    So all I'm left with now even after backups and carefully approaching the new stable release is a complete game that is broken, which is pretty disappointing for me after my relative enjoyment working on it in this engine and being happy with where it was.

    EDIT: To further note, opening even older backups from 26th of the 4th are broken in the current version.

  • sounds like your issue is unrelated to r148

    but you can recreate the part that is NOT working in editor.construct.net/r142 and see if that fixes it.

    Not sure how big your project is.. but open one tab in r/142 and another tab in r/148 and copy paste over all your objects and events...

    EDIT: oh nevermind, it won't let you cut/paste between tabs right?

    As I have tried to explain, though not being able to re-open my project in the previous stable has left me unable to demonstrate, absolutely all I did was update my editor version, play it, and see it broken.

    Recreating a small demonstration of it in r142 I find it not working, however it was working in my project-but I can't understand how to recreate the same circumstances of it or what allowed it to work, and I can no longer see it working to even get a grasp of it.

    Additionally my project is saved in folder format on the desktop version.

    It's not large, but it's not small enough that I can just copy and paste it (I was surprised to see I could copy/paste from my desktop version to the browser at all), but there's various complexities and you can't copy/paste things like families which is where a lot of the required data is.

  • I've encountered an issue with my project in the latest stable that broke a fundamental part of my project, in a way I don't know how to reconstruct into a working state.

    The problem is, I made backups of my project before updating to stable in-case, only to discover that the web version of Construct 3 doesn't accept project folder save types. So I'm left with a broken project, because if I try to save it as a compatible individual file, then it tells me it has saved in a newer version and it won't load it.

    Additionally it has made trying to resolve this issue here - github.com/Scirra/Construct-3-bugs/issues/2929 - difficult, and that is now closed but I can't formulate a better opinion or try and tackle my case from a different angle because the project that was working essentially is no longer accessible, even though I made backups of it to prepare for potential problems.

    Would be very grateful if the desktop build could access older construct 3 versions.

    Tagged: