Duplicating the "Attribute Clash" effect

For questions about using Classic.

Post » Fri Dec 04, 2009 8:01 am

With so many trying to turn Construct into a 3D app (give it up, there will never ever be a simple to use 3D game building program that can remotely compete with the expectation of modern 3D games!), or adding bloom effects (which do look awesome btw, layer effects ftw) and HDR. I'm probably the only person even remotely interested in trying to cause an Attribute Clash look. But then I'm one of those people who once bought a top of the line system, capable of all kinds of wonderful stuff, only to go and use it to create VHS looking output "for the fun of it", kinda like a valley girl buying a stable in her 30's to overcompensate for not having got a pony for a 16th birthday. So I figured I'd ask, never know, someone out there might have an idea how to pull off this super retro effect.

What is Attribute Clash
Basically it's color bleed. Imagine you've got your game at 640x480, BUT you can only use one color for every 80x80 pixel square block, rather than a different color for each and every pixel. So if a purple circle moves in front of a white background object, it brings with it a purple box, or the purple box vanishes and now your circle is white until it passes the white background object and returns to it's original purple color.

It looks terrible, and nobody in their right mind would EVER want to find a way to duplicate it.. would they..

Examples:

Note the effect on the players helmet


So bad, it's good


It's like eating a Kebab after a night out, while doing cartwheels and drinking your Uncles homemade pea-pod wine once you got home.

I was originally going to make this one of the It's Easy!!! challenges, but decided it would probably prevent too many from entering. I've no idea how to go about getting this look, in a simple way that is. Off the top of my head, I would think pre-made graphics with the clash built in would of course do the trick, but it's a lot of extra work and wouldn't be quite right. I'm wondering if there's another way, perhaps through some kind of mosaic effect that only pixelizes the color values and not the luminosity perhaps? I noticed there is an effect which can separate the red green and blue values, which is what got me to thinking it "might" be possible.


And yes, I am serious lol.


Edit:
Someone did manage to create one, so it is possible, even down to the colors, yay lol

Unfortunately didn't give any code or anything of any use to anyone, so meh *cry*

Edit 2:
A version in action http://www.youtube.com/user/CHIPF0RK#p/u/3/yTmmnb3KvVU which includes the attribute clash "feature".

There is a simpler version of the effect here http://www.redadept.com/zxshader/ however it doesn't do the actual attribute clash effect, and also I don't know how to get it working in Construct.

Good to know it is possible though! Would be kinda cool to have 8bit style effects available in Construct, being 2D n retro n all that. ;)
B
3
S
2
G
3
Posts: 628
Reputation: 2,531

Post » Fri Dec 04, 2009 2:52 pm

I don't have time to explain it right now, but it's possible.
B
25
S
3
G
6
Posts: 1,197
Reputation: 5,620

Post » Fri Dec 04, 2009 3:57 pm

Ahh, the good old attribute layer.
I remember this fondly, from way back when I started programming on the ZX Spectrum.

Some fast moving games, like the ones Ultimate Play the Game (Rare) produced didn't worry too much about the clashing, but some companies got good results with it.
Manic Miner used it to it's advantage for the most part.

Yeah, there's a couple of obvious ways of doing it off the top of my head, but I'm not sure I'd want to recreate it though.

Krush.
B
2
S
2
G
3
Posts: 406
Reputation: 2,062

Post » Fri Dec 04, 2009 6:19 pm

I can understand when people try to emulate old style pixel type games, but this is just ridiculous. :P
Image Image
B
161
S
48
G
90
Posts: 7,356
Reputation: 66,767

Post » Fri Dec 04, 2009 6:40 pm

[quote="newt":2sxff8u7]I can understand when people try to emulate old style pixel type games, but this is just ridiculous. :P[/quote:2sxff8u7]

Hahaha. But admit it, when nobody is looking you'd have to try it on something like Crysis, just for shits n giggles :D

But yeah, even I think it's insane lol. Though it's only a bit more extreme than the filters used to give things such as MAME an "arcade screen" feel to things, which does add a lot of character to the older games. It would be nice to have a pixel filter that can do it, for the real retro feel. Could use a toggle event with it to switch between super-retro mode, and modern graphics in a game. Like how Nintendo had paper mario go from 3D to 2D, or the new R-Type game go from 2D to 3D. It would make for an interesting challenge in creating a game too. Add the pixel filter, then try work around it for the best effect.
B
3
S
2
G
3
Posts: 628
Reputation: 2,531

Post » Sat Dec 05, 2009 5:00 pm

have black bg make a layer with all your graphics pure white, then you have to set up another one ontop with a bunch of white squares on it which you tile for the entire screen area. you give those squares an effect that grabs the draw are behind them (additive plus, magnify, opacity plus) set there properties to 0%, then add tint plus to those squares, and adjust the tint of the squares to stain the white gfx below them

http://dl.dropbox.com/u/1010927/attrbclash.cap

example thrown toghether, to actually have objects be certain colour and stain the bg like in that "ruins" one would mean you need to adjust the colour of squares which the objects to be colored overlap

EDIT: heres one with said effect http://dl.dropbox.com/u/1010927/attrclash.cap theres no ordering yet but that would be easy to do with an ordered loop and a family

i think a pixel shader could be written for it, but setting a "colour" for objects might be hard to implement, your gfx's would need to have their colour incoded in them somehow.
B
52
S
7
G
6
Posts: 1,945
Reputation: 7,610

Post » Sat Dec 05, 2009 7:46 pm

[quote="QuaziGNRLnose":1odxp627]have black bg make a layer with all your graphics pure white, then you have to set up another one ontop with a bunch of white squares on it which you tile for the entire screen area. you give those squares an effect that grabs the draw are behind them (additive plus, magnify, opacity plus) set there properties to 0%, then add tint plus to those squares, and adjust the tint of the squares to stain the white gfx below them

http://dl.dropbox.com/u/1010927/attrbclash.cap

example thrown toghether, to actually have objects be certain colour and stain the bg like in that "ruins" one would mean you need to adjust the colour of squares which the objects to be colored overlap

EDIT: heres one with said effect http://dl.dropbox.com/u/1010927/attrclash.cap theres no ordering yet but that would be easy to do with an ordered loop and a family[/quote:1odxp627]

Hehe those look pretty cool! I might give that a go, thanks!

i think a pixel shader could be written for it, but setting a "colour" for objects might be hard to implement, your gfx's would need to have their colour incoded in them somehow.[/quote]

I think to do it with a pixel shader, it would do something like first cut down the colors to just a few of them, then, for each block, find the most used color in each block at a specific time and use that. Or something along those lines. I dunno, I linked to a pixel shader further up that can do it, but it doesn't work in construct. I looked at tutorials on how to write them and none of them made any sense and seemed to miss out whole chunks, they all tell you how to write the start bit, the end bit, but forget to go into useful detail on the actual important bits. I had a go at that FX thingy of Nvidia's and got nowhere either. Oh well, never mind. :)
B
3
S
2
G
3
Posts: 628
Reputation: 2,531


Return to Help & Support using Construct Classic

Who is online

Users browsing this forum: No registered users and 1 guest