Canceled Fatal Fury Chronicles

Project is halted prior to completion and will not receive further updates.
Not a huge visual change, but foreground lamps have rain splatters and the lightning storm is now fully randomized with no models or source images. Previously the lightning was a really big model with spawn delay timed to the music. The flash patterns were set up to look random, but in reality it was just a really long loop cycled idle animation.

Now it is entirely script generated. The start up is still timed to coincide with uptempo music kicking in, but afterwards activates at random intervals. The flashes are a screen sized drawbox() that starts White and ends Blue, with randomized Yellow/Blue color cycling in between. When I first imported this stage from the my old IAF project the lake, waterfall, lightning, lamps, lamp flames, and rain were all animated models. Now the only model is one of the background lamp flames which acts as a controller. There are 23 layers in all and with scripts included the whole thing weighs in at less than 340KB.

 
It's pretty good, especially the drops on chars!

I wonder how you'll do to make large stages if you use backgrounds from fighting games, though.
 
16-bit Fighter said:
I wonder how you'll do to make large stages if you use backgrounds from fighting games, though.

16-bit Fighter,

Depends on the concept. It just happens this stage is intentionally short. In the IAF project, it's ~4 times the length. I usually come up with a design first, and then find appropriate resources, not the other way around..

DC
 
Damon what about changing the palette to darker colours to complete the rain effect, wet clothes I mean, that would look pretty cool and add to the atmosphere of the stage, I used your script to change the stage from day to night, I managed to do it so subtly you hardly notice,


if you could do the same with the characters clothes that would be pretty neat, total waste of time but neat hahahaha
 
danno said:
... if you could do the same with the characters clothes that would be pretty neat, total waste of time but neat hahahaha

danno,

That looks great. Really nice job on the subtle aspect. As for making it affect clothing too, there are a few different techniques you could apply.

  • You could tie the model's palettes to the global palette, like old school BOR, and use remap for their alternate colors. Then as the palettes change, so do the clothing colors. You'd be limited to 256 on screen colors, have to deal with the nightmarish remap system and plan every model around one global color table, but it would work.
  • For every palette in the level, set up a matched palette on the model, and switch them both. Main problem is you'd have a few dozen palettes on every model and organizing it all would be almost as bad, if not worse, than the global palette method. You might strike a balance by only changing the model palette once for every X number of stage graduations, or planning the models stage alternates carefully enough they can be reused for more than one stage. Still messy, but workable.
  • Tinting. This would be my method of choice. I'd just apply a gradually darkening tint effect to the entity and be done with it. The simplicity can't be beat - why struggle (and spend tons of memory) on palette after palette for each model when you can apply a single effect across the board? IMO, it would also just look better. Instead of replacing colors with other static colors, you're working with what's already there. That's why I like tint for stuff like burn, shock, and freeze too.
HTH,
DC
 
Working on a fully 3D stage, but before I start putting it together I'm doing some preliminary testing on various 3D style set pieces. Here is the "pipe" affine similar to Super Castlevania 4. It's just a roughing and there's no rotating animation just yet. If the image is just a pattern like this grid you could simulate animation without script using a clever palette and the neon effect, but true animation requires script. I just wanted to prove the visual itself is no sweat to create.


More to come soon...
DC
 
danno

The way i would do the wet clothes is  2 entitties , one for the clothes & hair - other for the "naked" normal or background ninja,
i would even dare to say 3 entities for "bloody" or stained clothing.

either way when it rains the, clothes entity buond & is in front  & is either tinted or has an opacity that increases to the desired color & when it stops this entity is disabled or is transparent.

basically is like overlaying a video over another & the opacity changes depending on what is going on or the health or score (in case of bloody clothes the more score , the more bloody)
 
danno said:
This is extremely juicy

Thanks danno!

Next step... In my post above I mentioned you could create rotation and very basic animation without script by carefully planning the palette and turning on the layer neon effect. Here's what it might look like. The neon feature effectively gives you two sets of four colors in rotation. Better artists than me could no doubt get some mileage out of this alone.

bWWd,

I replied to you in YouTube, but if you didn't see it, these are just demos. In a finished product there's a ton of ways to handle the float & slide issue. You can use a script to counter it directly, or in most cases, you just don't have entities walking directly on the background at all. There'd be a foreground or platform area like what you see in Super Castlevania 4. Or you could just take the SNES Batman Returns approach, say "screw it, gotta have muh' mode 7!", and put up with the slide. :p

 
Id use it for sewer stage, if its possible to use long/wide graphics res.
So the source image is flat ? Whats the code to do it ?
 
bWWd said:
Id use it for sewer stage, if its possible to use long/wide graphics res.
So the source image is flat ? Whats the code to do it ?

bWWd,

Yes, it's a flat image, and quite small too. Long and wide isn't a problem at all. But without script, the vertical size does matter.

In the demo, it's nothing but a bunch of layers stacked vertically with infinite horizontal repeat and graduated affine settings. I did it this way just to prove it was possible without script - the real thing will have one layer with auto-scrolling and use scripted math to generate screens for the transformation. Far more elegant that way. Script version can also handle any image size, or any mix of images. It won't need to be one monotonous background like this.

Anyway, here's the source image and the entire stage text. Again, this is for demo purposes only and I wouldn't advise doing it this way. Script technique is the way to go:

Code:
music        data/music/puella_theme_0.ogg
direction    both

# Default layers.
# background    filepath                                    xratio    zratio    xoffset    zoffset    xspace    zspace    xrepeat    zrepeat    trans    alpha    w-mode    amp    wl    ws    move    quake    neon
background    data/sprites/line_0.png                             0     0     0     0     0     0     0     0     0    0    0    0    0    0    0

# panel        filepath (main)                filepath (neon)    filepath (blended)
panel        data/levels/test_affine/path_0.png     none         none
order        aa


# Additional layers. I like to use fglayer vs. bglayer because
# you get fine control over the layer positon.

# fglayer    filepath                                    Zpos     xratio        zratio        xoffset        zoffset        xspace        zspace        xrepeat        zrepeat        trans        alpha        w-mode        amp    wl    ws        move    quake    neon
fglayer        data/sprites/line_0.png                                -150    0        0        0        10        0        0        -1        1        0        0        3        2.28    1.64    0        0.0     1       1
fglayer        data/sprites/line_0.png                                -150    0        0        0        30        0        0        -1        1        0        0        3        1.64    1.32    0        0.0     1       1
fglayer        data/sprites/line_0.png                                -150    0        0        0        50        0        0        -1        1        0        0        3        1.32    1.16    0        0.0     1       1
fglayer        data/sprites/line_0.png                                -150    0        0        0        70        0        0        -1        1        0        0        3        1.16    1.06    0        0.0     1       1
fglayer        data/sprites/line_0.png                                -150    0        0        0        90        0        0        -1        1        0        0        3        1.06    1.02    0        0.0     1       1
fglayer        data/sprites/line_0.png                                -150    0        0        0        110        0        0        -1        1        0        0        3        1.02    1.0    0        0.0     1       1
fglayer        data/sprites/line_0.png                                -150    0        0        0        130        0        0        -1        1        0        0        3        1.0    1.0    0        0.0    1       1
fglayer        data/sprites/line_0.png                                -150    0        0        0        150        0        0        -1        1        0        0        3        1.0    1.02    0        0.0     1       1
fglayer        data/sprites/line_0.png                                -150    0        0        0        170        0        0        -1        1        0        0        3        1.02    1.06    0        0.0     1       1
fglayer        data/sprites/line_0.png                                -150    0        0        0        190        0        0        -1        1        0        0        3        1.06    1.16    0        0.0     1       1
fglayer        data/sprites/line_0.png                                -150    0        0        0        210        0        0        -1        1        0        0        3        1.16    1.32    0        0.0     1       1
fglayer        data/sprites/line_0.png                                -150    0        0        0        230        0        0        -1        1        0        0        3        1.32    1.64    0        0.0     1       1
fglayer        data/sprites/line_0.png                                -150    0        0        0        250        0        0        -1        1        0        0        3        1.64    2.28    0        0.0     1       1
##########

#---------------------

#load         test_affine_controller 3
#spawn        test_affine_controller
#coords        0 0 0
#at        0

spawn        Ray
health        1000
coords        400 250
at        0


HTH,
DC
 

Attachments

  • line_0.png
    line_0.png
    2.4 KB · Views: 69
Damon Caskey

I don't know why , but Terry seem to be the kind of character that for some reason has a battle inside a fun-house cylinder...

i wonder how taxing it would be to feature"mirrors" in this rotating thing.

as for the castlevania 4 dungeon, i remember it features times when the scrolling went down , then up, also it had another "layer" with some walls or doors that pulsated, because a skeleton was supposed to burst out of it
 
So are these effects available in the current builds or are these some of the new mode 7 effects you spoke of for OpenBOR 4.0 ?
 
oldyz said:
I don't know why , but Terry seem to be the kind of character that for some reason has a battle inside a fun-house cylinder...

i wonder how taxing it would be to feature"mirrors" in this rotating thing.

oldyz,

I'm already working on that, and for good reason. If you recall, one of the Fatal Fury fights is in "Dream Amusement Park". I'm working on several set pieces for that, and a fun-house is one of them

as for the castlevania 4 dungeon, i remember it features times when the scrolling went down , then up, also it had another "layer" with some walls or doors that pulsated, because a skeleton was supposed to burst out of it

Yes, Castlevania's spinning level does start, stop, and reverse, none of which are any problem at all for the OpenBOR scripted version when complete. The pink stuff isn't another layer though - the SNES can't do that. Technically, what you are looking at is a single vertically scrolling tile layer with a basic animation cycle. Then they apply some scaling. That's all mode 7 is - a single tile layer with rotation and scaling. The scaling parameters are adjusted line by line with horizontal interrupts to simulate an affine transformation.

In OpenBOR, we don't have hardware interrupts to work with, so that does complicate things a little. But we can use similar techniques in ondraw event to get the same effect, and unlike the SNES we can do it on multiple layers at once. Also unlike the SNES, we can transform the whole screen if we want, including the sprites and HUD. You've already seen it in action with the zoom effect various modules do when a super move starts.

DC
 
msmalik681 said:
So are these effects available in the current builds or are these some of the new mode 7 effects you spoke of for OpenBOR 4.0 ?

msmalik681,

This is all current functionally, some it is almost old enough to vote.

DC
 
Yeah it works fine here but you have to chop up stage lements to make smooth transition of the angles if you want the pipe shape, especially with bigger tiles
37rbe.jpg

37rbU.png

ITs basically what i used in heman grid levels but more layers and theyre connected to create a pipe effect, but smaller the tiles the better the effect, and it would take a lot of time to set it up especially when you want stage thats not built from only one tile, so floor is concrete, walls are walls, and maybe ceiling is something else.
That just proves that it doesnt matter how something is made, it could use simple method but if final effect looks spectacular then its all what matters, and the final effect here looks very nice.
How complicated adjustment of entities position would be to correct floating on floor when background moves ?I guess different case by case but basically checking Z position and  shift position accordingly ?
 
bWWd said:
ITs basically what i used in heman grid levels but more layers and theyre connected to create a pipe effect, but smaller the tiles the better the effect, and it would take a lot of time to set it up especially when you want stage thats not built from only one tile, so floor is concrete, walls are walls, and maybe ceiling is something else.

bWWd & O Ilusionista,

Yep, couldn't get any simpler right? But very limited. That's why the real thing will be scripted. With script, I'm going to generate a series of stacked screens similar to the stacked layers. The screens then do the transformation work, not the layers. That way you don't have to limit yourself or spend years designing the tiles. Just tell the script which layers/sprites to include and you're done. The script will accept the following parameters:

  • Upper Left X, Y
  • Upper Right X, Y
  • Center Left X, Y
  • Center Right X, Y
  • Lower Left X, Y
  • Lower Right X, Y
  • Z Start/End
  • Accuracy

Then it will apply affine math to adjust the individual screen affine transformations, like how I did it manually for the layers. Accuracy determines the number of screens, to fine tune how smooth the effect is vs. CPU load. Z start/end tells it what range of layers or sprites to display. By adjusting the location parameters, I can simulate a true affine transformation. Hills and valleys, turns, or whatever else. Part of it is making 3D set pieces, but it's also core to this game concept I posted a while back.

How complicated adjustment of entities position would be to correct floating on floor when background moves ?I guess different case by case but basically checking Z position and  shift position accordingly ?

I haven't worked out the formula yet, but what I'd do is monitor the X scroll position, and adjust X position of entities based on an affine calculation of their Z matched to the floor's transformation. It shouldn't be very expensive, and since X scroll position usually never changes unless players are moving along X axis, you could put it in the player model's onmovex event instead of update.

DC
 
Great, so at the moment the only way to create a 3d cube this way is with screens ? Top.Front,Left and Right planes/walls of the cube, no way to use fglayers for this ? I really would like to experiment with pseudo 3d levels with perspective changes.
 
Back
Top Bottom