gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

Game Design > Psychedelic Silhouette Games

#114728 - sgeos - Wed Jan 10, 2007 2:17 pm

I'm thinking about attempting a game that uses a psychedelic silhouette visual style. Here are some doctored and fake screenshots that use the style. The concept "screenshots" are 1536 by 1024 pixels, and were made with the gimp:

Axia (homebrew project I worked on with ScottLininger)
Elements of Darkness (homebrew project I worked on with Nessie and col)
Lockjaw (by tepples)
Luminesweeper (by tepples)
RPG
Mock Action Game
Mock "Space" Shooter (not in space)
Text Example
Fullscreen Image Example
Nethack (I was feeling silly)
ADOM (I was feeling silly)

Thoughts?

-Brendan

#114739 - gauauu - Wed Jan 10, 2007 3:55 pm

The action games seem better suited for the style than the other genres. I particularly like the "fairy in the rosebush"....I'd love to play that if it ever existed

#114748 - sgeos - Wed Jan 10, 2007 4:58 pm

gauauu wrote:
The action games seem better suited for the style than the other genres.

I noticed that both when making the screenshots and when thinking about this in abstract form. An RPG/isometric game could probably be made to work, but it would require specialized graphics, not just an all black palette.

gauauu wrote:
I particularly like the "fairy in the rosebush"....I'd love to play that if it ever existed

Maybe I've got a first project. =)

-Brendan

#114763 - Optihut - Wed Jan 10, 2007 6:07 pm

I like the idea - it's visually pleasing and is probably easier than drawing fully coloured sprites.

#114812 - tepples - Wed Jan 10, 2007 9:47 pm

Could the GBA handle blur effects like that?
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#114863 - sgeos - Thu Jan 11, 2007 4:57 am

Optihut wrote:
I like the idea - it's visually pleasing and is probably easier than drawing fully coloured sprites.

Drawing, yes. Displaying, no.

tepples wrote:
Could the GBA handle blur effects like that?

With major limitations. After reviewing gbatek, it looks like the limitations are greater than I had first anticipated. You can only increase color intensity, not decrease it. (I thought the gba had intensity increase and decrease blending modes. It does, but not on a per pixel basis. =)

If I've read and understand gbatek correctly, blending can be used to create "blur" effects. Muck around with layer masks in the the gimp (or another program) until you get the hang of how they work. The concept will be the same on the GBA- you create a blending mask, probably black and white, but a tinted one can be made if you want.

See:
4000052h - BLDALPHA - Alpha Blending Coefficients (W)

Itensity of each RGB value:
I = MIN ( 31, I1st*EVA + I2nd*EVB )

Settings for "masking" technique:
EVA = 16/16, EVB = 16/16

Every sprite will need three OAM entries- one for the OBJ window, one for the blending halo, and one for the black body. Again, if I understand the hardware correctly, a sprite will not blend with a sprite, so the body can sit on top of the halo and things will look nice. The OBJ window has the same shape as the halo. You set sprites and the plasma BG to display in the OBJ window, and then blend sprites with the plasma BG (this will give a nice glow effect).

Because each critter requires three OAM entries, I fear is line over. From gbatek:
Code:
Maximum Number of Sprites per Line
The total available OBJ rendering cycles per line are
  1210  (=304*4-6)   If "H-Blank Interval Free" bit in DISPCNT register is 0
  954   (=240*4-6)   If "H-Blank Interval Free" bit in DISPCNT register is 1
The required rendering cycles are (depending on horizontal OBJ size)
  Cycles per <n> Pixels    OBJ Type              OBJ Type Screen Pixel Range
  n*1 cycles               Normal OBJs           8..64 pixels
  10+n*2 cycles            Rotation/Scaling OBJs 8..64 pixels   (area clipped)
  10+n*2 cycles            Rotation/Scaling OBJs 16..128 pixels (double size)

Do pixels in the OBJ window count toward this limit?

The sprite halo can be made with tiles, or by increasing the size of the sprite and using a different palette. If size increase is used, things with holes can not be used, and you will line over sooner if you use size double.

BGs need a halo as well, and because you don't want halos blending together, parallax backgrounds can't really be used because then they will overlap. The plasma can be parallax. The GBA doesn't have an intesity decrease blending mode, so any far bg above the plasma will have to bemade with dithering if you want it to be darker. Creating good looking plasma may also require a little work.

EDIT: You could make your plasma with a design, but A) you'll run out of colors, and B) the glow effect won't be as nice.

-Brendan

#114880 - tepples - Thu Jan 11, 2007 6:43 am

Super NES has 256 sprite pixels per scanline. GBA has over 900. Don't worry about dropouts unless you're doing rot/scale.

My concern is when two sprites approach closely enough for their halos to overlap.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#114901 - sgeos - Thu Jan 11, 2007 12:44 pm

tepples wrote:
Super NES has 256 sprite pixels per scanline. GBA has over 900. Don't worry about dropouts unless you're doing rot/scale.

With a three for one deal it comes out to about 300 pixels per scanline. Rot/scale basically cuts that in half, 150 pixels, and size double cuts it in half again for a total of 75. Clearly that will not do.

I get 200 rot/scaled pixels with a three for one deal and no "H-Blank Interval Free". This might be the way to go. Five 32 pixel rot/scale sprites will fit, with a little extra for particles.

tepples wrote:
My concern is when two sprites approach closely enough for their halos to overlap.

Clearly you get a halo artifact. =P If you use scaled halos you could scale one or both down. You could brand it a "magical interference" feature. You could apply hit detection when halos touch and optionally add bounce back.

-Brendan