Graphical Error

Posted by marbs on Oct. 4, 2012, 7:16 a.m.

Hello!

Up until recently, I had been working on a game for S4D, which looked like this:

My aim was to invoke that feeling of thinking-you-know-what-will-happen-next. For example; when you suddenly get the thought that the phone will ring, and a few seconds later it does. Or simply that feeling of something-bad-is-gonna-happen.

I achieve this effect by showing the user a series of events at the beginning of the game. Then, as the user progresses through the game, they find these events occur to them but in reverse order. The further they progress, the harder it will be to remember the events they were shown. This should then create the feeling of subconsciously knowing the outcome of situations presented to them.

That's the plan anyway.

The black and white art style gave me other ideas though. I went off on a tangent and created a completely different game: Graphical Error!

It's hard to do this game justice with just screenshots. Apart from level 1, you can only tell what is happening when everything is in motion.

All the graphics are white noise (in varying ratios/offsets/phases). As a consequence, I find it leaves me feeling quite nauseous, and gives me a headache if I play for too long.

If that sounds fun, you can try it for yourself! Download "Graphical Error"

I'm also working on another black and white game (which fortunately does not cause nausea etc).

Comments

marbs 12 years, 1 month ago

I had mostly given up work on my S4D entry, but since there seems to be some interest in the concept I will try and finish it off. My main concern is whether my implementation of the concept will work well. Something about it just doesn't feel quite right to me, but it would be good to actually get something out.

@Yaru

The turning point will be when the main character wakes up from a dream. The game will start off showing the character fall asleep, and then the following dream shows the series of events.

The fear of the unknown is an interesting idea. The trouble I am having with this game is coming up with a good story and situations. It's not something I've ever had to do when developing a game before. It almost feels more like writing a novel than designing a game.

@SMP

Currently it's just pseudo 3D, just white lines drawn in the GM sprite editor. Earlier, I did try out the idea of doing proper 3D with this art style in Unity, which led to the conception of the black and white game I mentioned at the very bottom of my blog.

@Charlie

I agree, as a game it is certainly lacking. The idea had been stuck in my mind nagging me for a few days though, so I eventually just sat down one evening and whipped it together in a few hours.

The graphics are achieved by rendering static to two surfaces. One surface is drawn as the background, and the other surface is applied an alpha mask by drawing black objects on it using blend modes: draw_set_blend_mode_ext(bm_inv_src_color,bm_inv_src_alpha).

Charlie Carlo 12 years, 1 month ago

Oh I was wondering how you rendered the static itself. Is there some sort of function or system for that or did you render it in an external image editor and import it?

marbs 12 years, 1 month ago

I put this code in a function called draw_noise()

for (i=0;i<argument0;i+=1) {
    for (j=0;j<argument1;j+=1) {
        if (random(1) > argument4)
            draw_set_color(argument2);
        else
            draw_set_color(argument3);
        draw_point(i,j);
    }
}

And then use it like this:

w = view_wview[0];
h = view_hview[0];
s = surface_create(w,h);
surface_set_target(s);
draw_noise(w,h,c_black,c_white,0.5); // 0.5 is ratio of c_black to c_white
surface_reset_target();
...
draw_surface(s);

Charlie Carlo 12 years, 1 month ago

That seems like it could devour memory at higher resolutions, but I'll give it a try, many thanks, marbs.

marbs 12 years, 1 month ago

Haha it does, hence why the game runs at 160x160! Were I to develop the game further, I would of course look into ways of improving the efficiency. Given that it was just a curious idea I wanted to quickly try out, the above brutal and inefficient method is just fine for now.