oosyrag's Forum Posts

  • Effectively yes, as an engine, c3 is still a 2d engine with 3d representations.

    Platforming in 3d in particular is supported though, I recall seeing multiple examples.

    Do note that 3d space and collisions can well be calculated manually in a 2d environment, as has been done so since the earliest days of video games, but it's just not all necessarily done for you.

    As with all games and design, it's not "no interacting with anything on the walls", it's how are you going to capture and show or simulate an interaction on the wall? Of which there are many ways.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • If you're asking what I'm thinking you're asking it's for logical organization, to get the input values assigned to the correct instance variables for each peer object, on the host. You can see the tags being utilized in event 49.

    Associating object with peer, as far as I know, simply destroys that object when the peer leaves the room. I don't know if there's any under the hood optimizations for syncing or interpolation benefits to associating an object.

  • I don't recall if the multiplayer net code was scripted directly, but github.com/AshleyScirra/CommandAndConstruct Ahsley's Command And Construct heavily leans into scripting as a multiplayer example project. The entire project is pretty well documented, check the links on the github.

  • Those are some pretty hefty spikes. dt only works for delays up to 33ms (30fps). My recommendation would be to nail the source of the the lag spikes instead of trying to get it working with them. A rhythm game with that kind of inconsistency is going problematic even if you do get the audio and visual to stay synced after the spike.

  • It really depends on your project. Usually I would use a logical base object for sync purposes, and handle visual animations for each player locally on clienta.

    I would not be surprised if syncing did not work with hierarchies. The multiplayer plugin and containers both predate hierarchies by a lot.

  • Use separate permutation tables or seeds

    Use an offset to your permutation index value.

  • They do. 8 direction is framerate independent as a behavior by itself, but if they set/adjust the vector manually every frame, then it becomes framerate dependent. Multiply the magnitude (sin(movementangle)) by dt*60, or replace 60 by whatever framerate you're testing on that feels like the correct acceleration to you, and it should become framerate independant.

    Edit: Oops! Guess not, sorry!

  • I don't think an ai tool will be a good fit for learning C3, as a niche product with it's own quirks and design. Construct is made to make sense to certain people naturally - if it's a good fit for you, you'll know because it works and clicks. Ai is much better suited for learning and using a mainstream language like javascript (also able to be used in construct though). Construct rewards hands on learning in a way that ai can't replicate and will probably even detract from.

  • You probably didn't add any movement behavior to your object. Try adding either the 8 direction, tiled movement, or platformer behavior.

    Reading the manual and following the guides and tutorials helps too.

  • Uhh I don't think that pack actually has any 45 degree tiles, or I'm blind.

    Here's the filler pieces (on the right) I think you need, along with all their rotations and variations, if this is what you're looking for (example on the left). It's missing all the main turns and corners though, but I think you can figure those out yourself.

    Basically have attachment points for road pieces at each tile in thirds as shown on the bottom, and have all the variations needed for inside and outside road connections.

  • You're using wait wrong - wait only delays the actions, not the event. So each sprite gets looped through on the same tick (instant) and they're all waiting the same 2 seconds, and setting the text all on the same tick again then.

    Try using 'every x seconds' with an incrementing variable instead, picking by IID from 0 to object.count while the variable is less than object.count.

    Or try the timer behavior, you could still use a for each loop, setting the duration for each timer/instance to loopindex*2 seconds, and setting the text on timer triggered.

    Wait is super commonly misused and the name is misleading. If it were up to me I'd call it "delay actions" or "postpone actions" instead.

  • construct.net/en/make-games/manuals/construct-3/plugin-reference/filesystem

    <app>

    This is not a good idea to use, at it can potentially be read-only.

  • The security part is no free access local disk access from browsers without user input, thus requiring picker tags. On export the local safe folders are fine, but the preview runs in the browser, so it won't work.

    Besides that, asynchronous file operations to local files has its advantages and disadvantages, and asynchronous is what we have to work with now.

    Exaggerating something 10 lines of code doesn't help your case much - it went from one to two events. And could probably go back to one if you used the wait for previous action to complete action, but I haven't tried. If you're experienced with large projects then one additional event out of thousands should not make any noticeable impact on anything in your workflow, besides having to learn something new (which you also have an option not to, by using whatever version of C3 you are more familiar with if you want).

    Otherwise if you're going to keep this belligerent approach then I'd just assume you're just rage baiting and not actually looking for help. Then good luck with your project.

  • Did you export or just test in preview? The predefined folder tags only work in export. As for why it's more complex, the simple answer would be for security.

    Browsers impose security restrictions to ensure that general web browsing is safe. Therefore they start with no access to local files or folders at all. The only way to gain access to local files and folders in a browser is to show a picker - a "save file" dialog, an "open file" dialog, or a "pick folder" dialog.

    Desktop exporters like Windows WebView2 are an exception to this rule and can have direct access to certain special folders like the user's documents folder without any dialogs or permission prompts

    In Windows WebView2, macOS WKWebView and Linux CEF exports, the browser permission model can be bypassed to directly access folders such as the user's documents folder. This is done by using pre-defined folder picker tags like "<documents>". These act like the folder was already picked on startup. You can check if these are available on startup by using the Has picker tag condition.

  • This does the same thing. What limitation are you having trouble with?