Ashley's Forum Posts

  • Yeah, the 'travelled' expression in the bullet behavior retrieves its distance travelled.

    The range exceeded thing might be a bug, can you reproduce it in a new .cap?

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • You could take a quick look at the Rain demo. It's not exactly what you want, but the puddles are reflective and show clouds in the sky in them.

  • It could be done, but it might use a lot of CPU taking volume measurements for a lot of channels running at once. I'll see.

  • I don't have Photoshop, by the way

  • It seems that those who initially "invented" programming conventions didn't spend much time thinking about what words really mean in English

    Quite the opposite. Engineers spend much time considering what would be an accurate name for their inventions and concepts. For example, 'variables' sure is a better one than 'remembers', to be honest.

    Also, using some terms directly from programming and the industry is a benefit for some people who want to move up to programming languages, who then already know some basic concepts. Finally, if you insist Construct's terminology is confusing or nondescriptive (which I have tried to show it is not, by comparing to a real programming language), then maybe there is another program out there you can go use like Kodu or Popfly. You don't have to use Construct if you don't like it, it's not like we're losing a sale or anything.

  • Can you reproduce them in new .caps and submit them to the tracker?

    If you set the resize mode in application properties to 'show more window content', the runtime will never stretch the display. However, I think some non-CRT monitors pretend they support certain resolutions by stretching the image with linear filtering. There's nothing you can do to stop that except not change in to that resolution; it's just crappy monitor design.

  • Tom, if you've got a couple of film grain textures I could have a shot at making a film grain effect. I'm useless with art though. I guess you'd need a bunch of black-and-white textures that have just the film grain pattern on them, then I could use that with an effect to process the background, and switch randomly between the textures to give the effect of frames going by.

  • Use the function object's Call Function After Delay, eg:

    + Any key pressed

    -> Make sprite visible

    -> Call function "make_invisible" after 2000ms

    + On function "make_invisible"

    -> Make sprite invisible

  • OK, I made a few tweaks like being able to change the strength and supporting transparency:

    // Sharpen
    // Elvis Presley
    // PS 2.0
    // A simple Sharpen Shader.
    
    // Foreground texture
    texture ForegroundTexture;
    
    // Foreground sampler
    sampler2D foreground = sampler_state {
        Texture = (ForegroundTexture);
        MinFilter = Point;
        MagFilter = Point;
        MipFilter = Point;
    };
    
    //#PARAM percent strength 0.1 : Strength : Strength of the effect.
    float strength;
    
    float pixelWidth;
    float pixelHeight;
    
    // Effect function
    float4 EffectProcess( float2 Tex : TEXCOORD0 ) : COLOR0
    {
       float4 color;
    
       color = 9.0 * tex2D( foreground, Tex.xy);
       color -= tex2D( foreground, Tex.xy + float2(pixelWidth, pixelHeight));
       color -= tex2D( foreground, Tex.xy + float2(0.0, pixelHeight));
       color -= tex2D( foreground, Tex.xy + float2(-pixelWidth, pixelHeight));
       color -= tex2D( foreground, Tex.xy + float2(-pixelWidth, 0));
    
       color -= tex2D( foreground, Tex.xy + float2(-pixelWidth, -pixelHeight));
       color -= tex2D( foreground, Tex.xy + float2(0, -pixelHeight));
       color -= tex2D( foreground, Tex.xy + float2(pixelWidth, -pixelHeight));
       color -= tex2D( foreground, Tex.xy + float2(pixelWidth, 0));
       color = color * strength + (1.0 - strength) * tex2D( foreground, Tex.xy);
       //color.a = 1.0;
    
       return color;
    }
    
    // ConstructEffect
    technique ConstructEffect
    {
        pass p0
        {
            VertexShader = null;
            PixelShader = compile ps_2_0 EffectProcess();
        }
    }[/code:akpn529n]
    
    This is in the next build as "sharpen.fx", so you can cut and paste that in and carry on using it in 0.99.
  • Wouldn't be surprised if the angry mob scared him away

  • I've amended the documentation to clarify this.

  • Haha, way to hit a nerve with the community Psmith

    I think we've established renaming a variable to something like "remember" is extremely counterintuitive - it actually makes it more obscure and impenetrable - the opposite effect to the one you intended - because the rest of the world calls it a variable. Still, if you're looking for a game development tool which you don't even need to use variables, have a look at something like Popfly or Kodu if it's released, but you'll probably find yourself severely limited in what you can create. If you want to create games as complex as Construct can without touching such basic building blocks as variables, good luck with that There's a thing to counter terms and concepts you don't understand, and it's called "learning"!

    For context, here are some of the things you have to specify or consider when declaring a variable in C++. This is not exhaustive, just off the top of my head. Perhaps it will give you some perspective on how far simplified Construct is already:

    • constant or variable
    • static, global, or local to a specific scope and if so its lifetime before leaving scope
    • volatile for thread safety
    • a fixed unchangable type such as boolean, integer (8, 16, 32 or 64 bits signed or unsigned), floating point (single, double or long double precision), string or text (wide/multibyte via const char* C style arrays or a handling class such as std::string or MFC CString)
    • initial value, where class const member variables must be defined in class initializer lists
    • memory address, location on stack or dynamic allocation on heap, heap memory deallocation, alignment, structure packing or array alignment
    • assignment involving implicit and explicit casts, possibly involving operator overloads, conversion routines, and associated performance penalties

    In Construct, all you need to say is whether it's text or a number, and its initial value. Hopefully you can see how far it's already been simplified in Construct and how much technical jargon has already been removed. Renaming a variables is a step too far though. That's what they've always been called and always will be called. There's no need to take that last step.

  • If you want it to look the same, you need to look up the algorithm photoshop uses and reproduce it.

    Some hints:

    • Get rid of the #border-mode line if it looks the same without it, the shader will run faster
    • If you want to get the next adjacent pixel to the lower right, tex2D( foreground, Tex.xy+0.0001) won't do that. Texture coordinates are percentages of the texture size, so you're actually going 0.01% further along the texture which probably isn't what you want. However if you did Tex.xy + float2(pixelWidth, pixelHeight), that's the offset you need to move one pixel.

    If you always move an integer number of pixels along, you can also get rid of linear sampling and use point sampling instead, which runs slightly faster.

  • change all of these cyptic, programmer specific terms into their "human readable" forms?

    Hehehe, you should try real programming!

    Seriously, though, I do think the terminology used in Construct is sufficiently simple. We have to strike a balancing act. On the one hand, beginners like you have to have a fighting chance. On the other hand, we aim Construct to design commercial quality 2D games, and if you're an experienced user, the "big colourful simple easy" approach of software like Kodu is nothing but a hindrance. By the way, I fired off an email to one of the guys on the Kodu project a while ago because I thought it was interesting. He described the project as aimed at children, and their site emphasises their young target audience. Construct isn't meant to be a kid's program and completely dumbed down.

    [quote:310po22e]Having downloaded the program and clicked around quite a bit, I can't say I find it to be totally as comprehensible as I had hoped.

    Did you try a tutorial like Ghost Shooter or Deadeye's excellent Platform School? They guide you through the basics step by step. I wouldn't be surprised if you couldn't figure out a fairly complicated bit of software like Construct just by "clicking around".

    [quote:310po22e]Another thing I noticed after studying the Wiki and such is that the tiny icons that are strung together in sequence, indicating the order of "events" and "functions" are not incredibly descriptive

    Are you in the right event sheet editor view? It sounds like you're in chronological view, which is designed to be compact and you have to hover over icons to see what they are. If you switch to List view in the Events tab of the ribbon, everything's laid out descriptively.

    [quote:310po22e]the obligatory "programmer speak" begins to emerge all over the place - words like "variables", "global variables", "functions", "z-order", "exclusion"

    Many of these terms are not programmer specific and are actually general to game design. If you want to design games, for example, you have to ultimately use variables, even if they're managed by something as simple as drag and drop blocks. You simply can't avoid it for game design with any tool, any programming language, any design system anywhere. It's like trying to do math without being able to count. Another tool might "simplify" it by calling them "numbers" or something, but that's misleading. For example, you can store text in variables as well as numbers, so it would be counterintuitive and confusing to call variables "numbers" in Construct. Ultimately, that's what they are - they really are variables - so it's correct and appropriate to name them so. If you want to get in to any specialised field, even in an amateur way, you have to learn a little bit of jargon.

    FYI the terms you mentioned mean:

    variable: a value that can be changed (varied, hence variable), such as your current speed

    global variable: a value that keeps its value over the whole application, between layouts, such as your score

    functions: this is in fact named after the programming equivalent, and is to do with a special plugin that can be very useful for intermediate/advanced users. However, beginners can get by just fine without ever having to use it, it's more a shortcut for experienced users.

    z-order: the front-to-back (depth, hence Z) order of objects, such as which object shows on top when two overlap

    exclusion: an effect which has the same name and appearance of the photoshop exclusion blend

    You can find much more on the wiki.

    In short you a) need to learn a few terms to give yourself a fair chance of succeeding in game design and b) can safely ignore anything you don't understand. With Construct a beginner can make a wide variety of simple games with very few plugins and features: sprites, tiled backgrounds, text and simple events. If you don't understand a plugin or term, you don't have to use it. But it's there for if you ever do need it, and for experienced users who need to take advantage of it.

    Hope that helps

  • Just set the 'resizing' setting under application properties to 'show more window content'.