Animmaniac's Recent Forum Activity

  • You do not have permission to view this post

  • I had a similar idea sometime ago and was going to propose it sometime soon. My insight was to just develop a way to pick events by typing instead of creating a full-blown new script system. Kind of an hybrid.

    Streamlined lists could serve the purpose to expose all possible events and aid discoverability, while an alternative typed method could serve experienced users to gain production speed.

    I discovered a fuzzy matching algorithm that seems to work very well and is very forgiving with typos. It can be used to match the display text of events, so it remains familiar to current users and doesn't require a new script system. I made a rough interactive mockup as a proof of concept that you can try below:

    Autocomplete Proof 01

    1 - Type the object name (can be very fuzzy like "sp3" for Sprite 3) 2 - Press ENTER or RIGHT ARROW to commit and go to next field 3 - Type the condition (skipping vowels or typing just the beginning of words still works very well *)
    • BACKSPACE to clean the field (press again to go back one level)
    • LEFT ARROW and RIGHT ARROW navigate fields
    *you can also continue to type/repeat parts of a new word until it converges to it

    Now this is just a bare bones of what it could be, but it all revolves around a fuzzy matching system and the limitation to only pick existing events (there's no way to get syntax error due to mistyping). Ideally after picking the condition it should be able to navigate the condition fields using the arrow keys to type numbers, strings or objects. By pressing DOWN a flying list could appear bellow with the top 5 alternative matches, where you could switch by pressing UP or DOWN, then press ENTER, RIGHT ARROW, or go all way up to make the list disappear.

    I used the final condition text in the mockup, but probably a way better alternative would be to first match the condition name (like it appears on current lists), and on pressing ENTER or RIGHT ARROW switch to the final condition text (e.g. "Compare X" => ENTER => "X = 0"). It's possible to leave it open to match both the condition name or the final condition text, but that probably may give some unexpected results sometimes (maybe not).

    This fuzzy match system could very well be used to match objects, functions, variables, and all types of linked references in all kind of dialogs. Even for auto-casting similar conditions when an object type is changed: if one object type uses "set X" an another "set position X" it probably could detect it as the best match. It may not give a perfect match 100% of the time, but it sure would help in a lot of situations.

  • If all you want is to blend the original screen with a processed version of itself, all you need is a single shader applied to a layer. Using a canvas or paster will just impact performance by adding another unnecessary texture.

  • I know you have already solved it, but here's my take on it:

    https://dl.dropboxusercontent.com/u/7871870/construct/prr-sine-distortion-A03.capx

    (uses Rojo's Canvas plugin)

    The solution of the first layout distorts a sine wave, offsetting each X proportionally to an interpolated linear function that goes from 0 on the edges to 1 at the center. The interpolation power can be controlled by the bottom slider. It can easily be transformed into a single function but it would get long and hard to read. It also gives a seamless tilling.

    In the second layout I tested just interpolating a "sine wave skeleton" to see if it could work. It doesn't tile so well when distorted, but it's interesting that you can adjust the interpolation on the fly to go from a triangle wave to a rounded square, passing through a sine. The downfall is that with too much center offset it kinda breaks the smaller spike, but maybe if a damping is added to not allow the smaller spike to approximate too much from the edge it could give better results. It also uses conditionals to generate the base skeleton, so it's not easily transformed into a single function, but it could be done.

    *Just to clarify that I was lazy and the graph is upside down, with top-left being (0,0) and bottom right (1,1).

  • You do not have permission to view this post

  • You do not have permission to view this post

  • You do not have permission to view this post

  • You do not have permission to view this post

  • You do not have permission to view this post

  • Mipmaps are created from exported by C2 sprite sheets, right?

    So if you design your sprite frames so they all end up on one (or more) 1024x1024 (or any other power of 2) sprite sheet all should be fine.

    Yeah, I think you are right. I haven't thought about that.

    But I guess if you wish to see a smooth result on preview you will need to use power of 2 textures.

  • I don't recommend downscaling things in layout, instead make everything 2x and use a layout scale of 0.5. Tiled backgrounds doesn't allow scaling it's graphics, so if you downscale everything else the tiled backgrounds will still remain low resolution. Alternatively you can make everything 1x and only replace the image files directly in the images folder by a 2x version, I'm not sure if this only works after export though.

    If you want a smooth look on downscale make sure to use only power of 2 images so they get mipmapped. Otherwise they may display some artifacts similar to pixel aliasing. Play a little with the "Downscaling" option on project properties to see what works best for your project.

    In general it's better to use linear sampling for HD graphics, but if you are going for a pixelly look with blocked colors point sampling may look better.

    I'm not sure if the source image size affects performance, but the screen render size (canvas size) does if the "Use high-DPI display" is set to "no". By the way, I highly recommend setting it to no. You can then leave an option to adjust the canvas size (like set resolution) to get better performance for weak hardwares.

  • You do not have permission to view this post

Animmaniac's avatar

Animmaniac

Member since 18 Mar, 2010

Twitter
Animmaniac has 1 followers

Trophy Case

  • 14-Year Club

Progress

14/44
How to earn trophies