Tokinsom's Forum Posts

  • Ashley

    The "recreate initial instances" action was created years ago as a result of numerous discussions here on the forums about how to best handle open-world metroidvania style games without every single room being in its own layout.

    I've used it extensively for both open-world and linear games alike, and it's one of my all-time favorite features Construct has to offer (I know right?)

    However, one major drawback with using it is that pre-placed objects (as in, objects placed in the layout editor that are expected to have a static UID) which are destroyed and recreated do not preserve their original UID, making it impossible to reference them for the purpose of linking/pairing objects, save data, loading object states, etc.

    I've resorted to making my own ID system using "for each (ordered)" which has its own drawbacks (I only get IDs at runtime) and then using manually set IDs / tags using private variables when this won't suffice.

    All that said, would it be possible to somehow reserve UIDs so that pre-placed objects which are destroyed and recreated using "recreate intial instances" get the UID they started with?

  • Ashley Thank you for the quick response. I just edited the original post with one other suggestion (resampling only the text as if 'fullscreen quality' was set to high). Is that within the realm of possibility?

    As for the gpu memory, I'll have to look at my debugger again but I recall the memory usage skyrocketing when 'fullscreen quality' was set to high and I maximized the window. I mean, it's not an unacceptable amount due to me using pixel art, but it was certainly higher than with it set to low.

  • Ashley

    I've opted to use text objects instead of spritefonts for a number of reasons, but primarily for translations.

    Problem is my game's resolution is 640x360 (large pixel art) and unless I set 'fullscreen quality' to high -- which has undesirable effects for the rest of my art amd drastically increases VRAM -- the text ends up being quite blurry at runtime.

    That said, would it be possible to get some anti-aliasing options for text, maybe even an option to disable it entirely so that it is less blurry at smaller sizes / lower resolutions? An option to resample only the text as if 'fullscreen quality' was set to high could work too, if that's possible.

    I can post to the suggestions platform if so, but I wanted to inquire / discuss possible solutions beforehand.

  • Ashley

    Thanks for clarifying. I had assumed the "Is touching..." collision checks were already occurring since having objects with platform & solid behaviors with no events increases the collision count in the debugger.

    I know you guys have to take great consideration into any features like this anyway. I've been here since the beginning :) Just wanted to see if I was on to something.

    On the subject though - is there a general amount of collision checks we should try to stay under? You mentioned millions per tick is extreme, and I'm over here thinking numbers like 50,000 per tick is too high lol.

  • Ashley

    This occurred to me while messing with wall-tracing enemies / weapons that use a lot of collision checks with solids + solid tilemaps...

    The platform behavior already has "is touching wall" and "is on floor" which to my knowledge are handled in the behavior's script and simply return true or false -- using them in events does not create extra collision checks.

    If it also had "is touching ceiling" then we would be able to check if it's overlapping solids on all 4 sides without the need for "Is overlapping at offset", drastically reducing the amount of potential collision checks with solids.

    Better yet, if there was an offset parameter to "is touching..." and all the basic movement behaviors had them, then we can eliminate event-based collision checks with behaviors<>solids completely, since they'll just be checking if a particular existing overlap from the script is true or false.

    Considering a large portion of overall collision checks are simply to see if objects with behaviors are interacting with solids in some way, I think this could be rather beneficial. Thoughts?

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • For proper fire you're gonna want to look into things like masking / overlays, scrolling textures (like offset in TiledBG object), particle spawners, blend modes, etc.

    This is in Unity but you get the gist: youtube.com/watch

  • If you use events to make a typewriter effect for text/spritefont, and add BBcode tags to it, the BBcode tag itself will be typed out / visible until the closing bracket is complete.

    The built-in typewriter behavior fixes this by processing the BBcode tags before typing out the text. However, I can't use it because the speed of the typing effect is based on the length of the string, which is undesirable for my game and, well, any game for that matter. Suggestion thread for that here.

    That said, is there some workaround I can do to have my own typing effect process the BBcode tags before typing out the string? I've tried using a combination of intermediary text object & .PlainText but it didn't work.

  • It's pretty simple actually, and a 3D engine isn't going to make this particular thing any easier since the perspective in games like Zelda is just an illusion; adjusting a real z coordinate would just make the player grow towards the screen (and slightly upwards at a 3/4 perspective).

    The goal is to just have 2 y coordinates. 1 for the actual Y position, and 1 for the Y position + fake jump height. The latter is also used as a displacement from the object's shadow, aiding the illusion.

    Here's a clip from my Illusion of Gaia practice engine:

    gph.is/g/Zx1nqA7

    The "hard part" is making a custom jump mechanic with events, but there are some examples around the forum, typically in R0j0hound's examples. vy, gravity, a loop for detecting the landing, and you're good.

    As for stairs, that's all fake too. The player just moves diagonally when going up side-view stairs, and moves upwards as normal when going up front-view.

  • jobel I'm not referring to the objects, just the "add action" categories. Here...The one function (blacked out) in "Functions" is a brand new one, but the ones under "Functions (Built-In)" were all converted. I see no reason they can't go in the same category because they've been converted and have nothing to do with the old object anymore.

  • Ashley

    When I go to call a function via the new Function(Built-In) object, there are both "Function" & "Function (Built-In)" categories in the add action window. It seems the former is new functions, and the latter is functions that were converted from the old object.

    I'd rather not have two categories though, and it seems redundant since they're all part of the new function system now. Why continue to separate them after conversion? Is there a way for me to fix this on my own through editing project files?

  • Lol Ashley's link to 3 year old suggestion topic.

    Family folders will help us organize, or more specifically categorize, our families. No need for senseless arguments. People shoot down ideas around here for no reason other than feeling superior cause they can tolerate not having it.

  • Is your "For Each" a sub event of "Start of Layout", or a standalone event beneath it?

    The only time 2 standalone events communicate is with the "Else" statement.

    If I understand correctly the "rule" you're talking about is just object selection / object list within events, which should be covered in the manual.

  • Player_Base object, but yes :)

    Glad you're finding the demo helpful!

  • DiegoM Raises good points. Most importantly that there is a vast array of legitimate full-scale multi-platform commercial games & successes made with GM. Construct doesn't exactly have that right now, but it's well on its way. In fact it was revealed not long ago that Cyber Shadow (made in C2) is being published by Yacht Club Games (Shovel Knight), which I think is a testament to "what game engine is the best?" being a loaded question.

    The biggest argument I've seen for GM is that is uses "real coding". Many people think visual programming is a beginner-only thing for beginner-only game engines. This isn't totally true...but it's not totally untrue either...but neither is the "real coding" part so blah.

    Ultimately I'm a bit baffled cause I've tried using GM / GMS / GMS2 multiple times over the years and I think it's terrible. I have a lot of friends who use it too and, well, they all hate it...but according to them it's their only option -- Unity and frameworks are too complicated, Construct and others are too limited.

  • rojohound Thank you so much! You never fail to impress with this stuff. I think the arc is more in line with what I'm thinking. Forgive my terminology my math is (obviously) quite rusty as well. I'll give this a shot soon.

    oosyrag I will try r0j0hound's method but yes ideally the object will move accurately and at a constant rate from A to B with C being the curve. All 3 points will be adjustable (but not during motion). I think bezier curve or arc might be more appropriate terms.