Posts by Shadoku

Welcome to our brand new Clickteam Community Hub! We hope you will enjoy using the new features, which we will be further expanding in the coming months.

A few features including Passport are unavailable initially whilst we monitor stability of the new platform, we hope to bring these online very soon. Small issues will crop up following the import from our old system, including some message formatting, translation accuracy and other things.

Thank you for your patience whilst we've worked on this and we look forward to more exciting community developments soon!

Clickteam.

    RapidXml is supposedly 30-60x faster than tinyXml, so if parsing the xml file is what is slowing down load times it may be beneficial to try switching libraries. I'll play around with it and see if it improves speed a bit.

    My partner and I use github for collaboration, this works out for us since the vast majority of the games assets are external (scripts, tilesets, sprites, etc etc). Obviously source control doesn't work for the actual mfa, so to avoid conflicts there and keep on the same page we have to employ close communication (usually voice chat) and sometimes even remote desktop while we're working.

    Using the for each loop should work. How were you triggering the loop? It needs to be triggered via count -> for each object, under the objects actions.

    As for adding information to a list, what I do is collect everything I need to send for a specific set of objects into a list, send it as a single packet at the end of the frame, and then process it as a list once received. Combined with dead reckoning and careful consideration of when to mark an object as needing to be updated on the client, this keeps the frequency and size of information needing to be sent to a minimum. This may or may not actually help performance, I do it mostly because I store previously received updates for a while so I can rollback updates if needed and do sanity checks on incoming data.
    My advice was mostly just don't send things every frame, let the client handle moving the enemy and just update it when something happens that you don't trust the client to do (changing direction, taking damage, etc).

    Using peer IDs will work, if the enemies being synced are just other players. If the enemies being synced are computer controlled as I suspect is the case here, then you'll need something like you're trying to do here.

    The method you're using to apply the received data should work, I use something similar myself. I suspect the issue is with the method you're using to send the data, I would suggest trying a for each loop on the enemies, this should make sure the the event is actually run for each enemy, and allow you to do further scoping of the enemies to reduce network traffic where possible. (I would also strongly recommend that you not send updates every frame, instead perhaps only when the enemy changes directions or enters a new state, whatever is more appropriate in this case.)

    In the Ultimate Fullscreen object, if you set fullscreen type to 5, and then enable Misc -> Apply fullscreen settings to windows size; you can then use set manual fullscreen size to override the windowed scale of your game.
    You can use the on fullscreen/windowed conditions to apply the appropriate settings when needed.

    Yeah, I was blending. Trying without the blend, it causes crashes (after about a minute, and just from basic animation switching.)

    This is with loading from external. I'd try the loading from active but I have no idea how you're supposed to make a pipeline to get every sprite into an active object easily.

    Edit: It wasn't causing a crash, per se. It's destroying the spriter object which causes Advanced Direction Object to crash (because it'll crash if it references an object not in frame.) The spriter object self-destructing is still pretty worrying though.

    Edit 2: The sprite occasionally flashes, and an active object set to the X position of a bone will destroy itself if "destroy if too far from frame is checked." Does that mean when it flashes, the bones/sprites go offscreen for 1 frame? It also crashes due to the spriter object if I set the active to its point position and the spriter object kills itself (previously mentioned issue.) I think a safety check is missing. Set a string to check the x position of the bone and when the spriter object is destroyed, the x position is: -2147483648. Guessing the self-destructing is caused by the "destroy if too far" on the spriter object as well.

    I would double check your animations, I was having a similar issue and it turned out it was being caused by one animation having parts at some ridiculous offset for a split second.

    conceptgame: I've implemented the change to the way image loading handles external images I was talking about earlier in the thread, I've committed the changes to my fork on github, but I closed my pull request due to it also including changes I made to compile it in VS2017. I can open up a new pull request from a new branch if you'd like to take a look, it's not a very complicated change and it seems to work nicely.

    1. This is due to the "mmf.newObjectClass()" function being broken in F2.5. I'm working on an updated version of the extension to correct this and a few other F2.5 specific issues, but it may be a while before I have time to finish and release it.
    You can still use the mmf.newObject() function to manually a build a table containing the objects you need, however the collision detection functions will still be broken (class.testBackdrop and similar)

    3. You can use the "Call with X parameters" action to achieve this; I'm unsure if you can pass a table though. If it doesn't work you might try implementing some sort of serializer in mmf and then de-serializing the table in the Lua script.

    Here's something I came up with, it uses the Big Box object (which you can get Please login to see this link.) to detect the refresh rate of the monitor, and then does some basic math to detect how long the object has been alive, destroying it when it's been alive long enough to have been drawn on the screen once.

    Seems to work fine from 50-500fps, although I don't have a 120hz monitor to check that it works there.

    Please login to see this attachment.

    I haven't used the built in platform movement in years, but since it only happens when the walking animation is playing, I'd wager the height of the sprite is changing, causing the sprite to be pushed up/fall down. The easiest solution would be to move the hotspot to the bottom of the sprite, so that the bottom row of pixels doesn't change position during animation.

    A more complicated, but ultimately more complete and predictable solution would be to use a separate object for movement and collisions, with a single frame the size of your characters hit box. You could then simply center your player sprite on the hit box object. This would however require significantly more work; enough that it would probably make more sense to just dump the built in movement and use the PMO.

    There's a channel offset shader in Looki's shader pack that does that, you can grab that Please login to see this link. if you don't already have it. Seems to work fine applied to a layer above the objects with the glitch shader applied to them.

    Any chance of adding support for Tiled 1.0? It adds layer groups, which are pretty handy; unfortunately they don't work with the current version of the loader. I've hacked in enough partial support to use groups in my project, but it would be nice to have an "on layer group loaded" condition and access to group properties and such.

    It looks like your issue is related to object scoping; the way way fusion decides which object to apply actions to based on the conditions.

    In your case, it looks like at least part of your issue is the conditions in event 149, the condition comparing alterable value g of the zombie to alterable value A of the player group. In Fusion, objects are generally selected from the left most portion of a condition (the object you select to create a condition), so you'll need to flip that one around. You may also need to move that condition up one line, above the overlap condition.

    Volnaiskra wrote a great article on scoping Please login to see this link., I'd suggest reading through it, as scoping is often the culprit when things don't behave as you'd expect in Fusion.