In Progress Street Fighter: Initial Impact

The project is currently under development.
Thanks for the feedback, O. I'll change the speed of it. :) I figured out how to change the facing of the hit spark randomly, but I decided to save it for a certain moment before uploading it. Now is the time that I'm gonna use it.
I like to use a 1 empty frame with 1 delay at the start of the animation to take care of this.
This is needed to bypass some issues, like the update delay and the pause caused by type text
 
I like to use a 1 empty frame with 1 delay at the start of the animation to take care of this.
This is needed to bypass some issues, like the update delay and the pause caused by type text
I do use empty.gif as an empty frame, but when it comes to color conflict, I use 'frame none' as a last resort. That helps. :)

Thanks for the info, DC. I have log(), but I am quite a novice to using it. I know very little how to use it. I looked at some of msmalik681's example of how log is used. Not only that. I need to learn more about using it.

Great work @maxman (y)😁

I love it! 😊
Thanks you, my friend. 😊

@NED, at least I found what kind of the pre-battle texts I'm gonna use already. I need some post-battle texts like winning, losing, and/or a draw.

I decided I'm not going to remove icons from players and enemies because I figured out how I can put enemy icons as players' opponents with remaps or alternate palettes, by using iconposition for enemies in the entity header instead of e#icon from models.txt. I don't mean "remap" as the ancient remap from the old BOR days. Just alternatepal as in alternate palettes.

Just a couple of updates to show:
- 2-player VS mode
- Round text changed
- Winner's name specified according to 2 players available
- Post-battle menu

 
Thanks malik. I used your choice text script as reference and modified it to suit the system for VS. It works like a charm!

The problem with this is the shadow: "frame none" cast the default shadow, ignoring the gfxshawdow.
I dunno if this was already fixed.
I see what you mean after testing it. I don't use shadow at all, as well as gfxshadow. But you can set it to shadow 0 if you like. Avoid using shadow 1 or so, if you plan to use frame none. I believe it's not fixed yet. I think if you plan to use the same shadow sprite from the sprites folder for a new shadow entity, you could use spawnbind2 to summon the shadow entity in player's anim spawn, and create same animation names and same delays for the shadow like the parent entity has, in order for them to be in the same rhythm. That one is tricky to do with multipliers. But do not worry about number of frames used. Timing is what matters.

spawnbind2:
Code:
void spawnBind2(void Name, float dx, float dy, float dz, int Dir, int Flag, int Num)
{ // Spawn entity, bind it and store each other
   void self = getlocalvar("self");
   void Spawn;

   Spawn = spawn01(Name, dx, dy, dz);
   bindentity(Spawn, self, dx, dz, dy, Dir, Flag);
   setentityvar(self, Num, Spawn);
   setentityvar(Spawn, Num, self);

   return Spawn; //Return spawn
}

Main:
Code:
name Vega
type player
health 100
speed 15
subject_to_minz 0
turndelay 9999999999999999999999999999999
atchain 1
gfxshadow 1
nolife 1
weapons none Vega_Claw none none none none none Vega #weapons {weapon1} {weapon2} {weapon3} {weapon4} {weapon5} {weapon6} {weapon7} {original_name}
weaploss 3
load Claw
load Mask

animationscript data/scripts/script.c
script data/chars/vega/vega.c

anim spawn #Start with mask and claw
@script
int P1 = getplayerproperty(0, "entity"); // Calling player 1
int P2 = getplayerproperty(1, "entity"); // Calling player 2
int zmin = openborvariant("player_min_z"); // Calling player's z min
int zmax = openborvariant("player_max_z"); // Calling player's z max
void P1Model = getentityproperty(P1, "model"); // Model for player 1

if(P1Model == "Vega"){ // Player 1 exists?
    changeentityproperty(P1, "z", zmin-2); // 2 steps behind the main z plane?
}
@end_script
    offset    336 293
    delay 1
    frame data/CHARS/Vega/CVS2_Balrog_907.png #time: 1
    @cmd spawnBind2 "Claw" 0 1 1 1 1 0
    @cmd spawnBind2 "Mask" 0 1 1 1 1 0
    #@cmd spawnbind2 name x y z direction flag num
    frame data/CHARS/Vega/CVS2_Balrog_907.png #time: 2

anim respawn #Restart with mask and claw
    offset    336 293
    delay 2
    frame data/CHARS/Vega/CVS2_Balrog_907.png #time: 2
    frame data/CHARS/Vega/CVS2_Balrog_907.png #time: 4

anim idle
    offset    336 293
    loop 1
    bbox 314 192 47 102
    delay 8
    frame data/CHARS/Vega/CVS2_Balrog_907.png #time: 8
    frame data/CHARS/Vega/CVS2_Balrog_908.png #time: 16
    frame data/CHARS/Vega/CVS2_Balrog_909.png #time: 24
    frame data/CHARS/Vega/CVS2_Balrog_910.png #time: 32

anim follow8 #Standing turn

    offset    336 293
    delay 6
    flipframe 0
    frame data/CHARS/Vega/CVS2_Balrog_951.png #time: 6
    frame data/CHARS/Vega/CVS2_Balrog_952.png #time: 12
    frame data/CHARS/Vega/CVS2_Balrog_953.png #time: 18

Item/Weapon 1:
Code:
name Mask
type none
subject_to_minz 0
subject_to_maxz 0
animationscript data/scripts/scenefx.c

anim spawn
    offset    336 293
    delay 2
    frame data/CHARS/Vega/mask/CVS2_Balrog_34.png #time:2

anim respawn
    offset    336 293
    delay 2
    frame data/CHARS/Vega/mask/CVS2_Balrog_34.png

anim idle
    offset    336 293
    loop 1
    delay 8
    frame data/CHARS/Vega/mask/CVS2_Balrog_34.png #time: 8
    frame data/CHARS/Vega/mask/CVS2_Balrog_35.png #time:16
    frame data/CHARS/Vega/mask/CVS2_Balrog_36.png #time: 24
    frame data/CHARS/Vega/mask/CVS2_Balrog_37.png #time: 32

anim follow8
    offset    336 293
    delay 6
    frame data/CHARS/Vega/mask/CVS2_Balrog_72.png #time: 6
    frame data/CHARS/Vega/mask/CVS2_Balrog_73.png #time: 12
    frame data/CHARS/Vega/mask/CVS2_Balrog_74.png #time:18

Weapon 2:
Code:
name Claw
type none
subject_to_minz 0
subject_to_maxz 0
candamage player enemy
animationscript data/scripts/scenefx.c

anim spawn
    offset    336 293
    delay 2
    frame data/CHARS/Vega/claw/CVS2_Balrog_460.png

anim idle
    offset    336 293
    loop 1
    delay 8
    frame data/CHARS/Vega/claw/CVS2_Balrog_460.png #time: 8
    frame data/CHARS/Vega/claw/CVS2_Balrog_461.png #time: 16
    frame data/CHARS/Vega/claw/CVS2_Balrog_462.png #time: 24
    frame data/CHARS/Vega/claw/CVS2_Balrog_463.png #time: 32
    #Shine
    frame data/CHARS/Vega/claw/CVS2_Balrog_464.png #time:40
    frame data/CHARS/Vega/claw/CVS2_Balrog_465.png #time:48
    frame data/CHARS/Vega/claw/CVS2_Balrog_466.png #time: 56
    frame data/CHARS/Vega/claw/CVS2_Balrog_467.png#time:64

anim follow8
    offset    336 293
    delay 6
    frame data/CHARS/Vega/claw/CVS2_Balrog_504.png #time: 6
    frame none#time: 12
    frame data/CHARS/Vega/claw/CVS2_Balrog_505.png #time: 18

I did forget to mention that I also updated the speed of hit sparks, along with its random facing direction, but you don't see it there.

It's going nice. Just a tip: try to make the fade between the rounds a bit faster :)
Thanks (for the tip). I can do that if I use nofadeout 1 in levels. That's gonna be easy-peasy to make entities as fade-in and fade-out transitions. However I have them set so I'll be good to go.
 
Last edited:
New updates:

- 3 rounds in a match
- Hit sound per attack (distant and close)
- Close range attacks
- Turning animations (idle and duck)
- Hit sparks turn to different directions
- Victory condition depends on fighters' health points (win, loss, and draw)
- Throwing animations
- Time over
- Continue screen is now skippable
- Win quotes
- Continuing/Returning to the last level after losing
- The enemy's palette changes differently if the rival (player) is the same character
- Special move flash (hit spark) appears if any special move is used (e.g. Hadoken)

What's not done:
- Blocking
- Enemy AI
- VS screen
- Double knockout
- Stage select
- and lot more.

Note: Characters in the select screen are not finalized.

 
Last edited:
The roster needs more girls. I like how you give limelight to underused characters like Necro and even Joe, so logically choices like Juni/Juli, Falke, Akira, and Menat could be cool to see. Liking the sound design too.
 
Not bad at all. Still a little rough around the edges but you're making great progress. Keep it up @maxman!

DC

Yeah. I didn't have time to put dust, add enemy AI's, and make some refinements since I'm in the post-beginning stages for a one-on-one versus system. I was correcting some stuff such as adding hit sounds and effects for jump and crouch attacks, making Eagle's thrown/fall animation and Ken's win quote. Now that I'm talking about this, I forgot to mention that I have "Ukemi" (safe fall; I don't know if that's the right word for it) which one fighter hits a jumping opponent and that jumping opponent flips back to the ground safe and alive. I think I'm gonna add captions to that video on YouTube. That's probably gonna help describe what's going on. Thank you, sir.

@maxman
continue screen :love:

I know, right? ;) The skipping part is very satisfying to look at. 😊 Thanks.

The roster needs more girls. I like how you give limelight to underused characters like Necro and even Joe, so logically choices like Juni/Juli, Falke, Akira, and Menat could be cool to see. Liking the sound design too.

Thanks, Miru. I'm sure there will be girls in the roster, but not for the initial release. :) I'm not so sure about the new SF5 girls (except Lucia and Akira), but they and the Shadaloo Dolls will be interesting to see. I have plans for the Shadaloo dolls which will turn out interesting, but that will come into discussion later. ;) I haven't tried SF5, but if I have a chance to play it, I will test. Otherwise, I will look at the move list and do my research on the info especially the damage points. The roster will be changed for its initial release, but surely, they will be in the game as update(s) later on.
 
This is just to test on Chun-Li's stage especially groups of bikers and a traffic policeman on the road. Spawning a group of bicyclists in X axis was tricky to do.

I will rearrange the bikers to be distant and separate from each other like the original Street Fighter Alpha 2.

 
Last edited:
This is just to test on Chun-Li's stage especially groups of bikers and a traffic policeman on the road. Spawning a group of bicyclists in Z axis was tricky to do.
I am curious to see how they doesn't flick, as I never managed to fix Avenger's first bonus stage
Avengers - 0034.png
I tried to even use SORTID, but nothing works
 
Spawning a group of bicyclists in Z axis was tricky to do.

You probably shouldn't spawn them at all. Obviously entities will work for this sort of thing, but if you want to optimize, animated layers will do it with a lot less resource cost.

DC
 
This is just to test on Chun-Li's stage especially groups of bikers and a traffic policeman on the road. Spawning a group of bicyclists in Z axis was tricky to do.

I will rearrange the bikers to be distant and separate from each other like the original Street Fighter Alpha 2.

Yeah I remember the bike background has a few layers
this made me amazed the first time I saw it in the arcade back then

big minus fglayer maybe? something like this

C:
fglayer            data/Bgs/mission_start/BG4.png -990 0.65 0 0 0 0 0 -1 1 1
fglayer            data/Bgs/mission_start/BG5.png -980 0.615 0 0 0 0 0 -1 1 1 0 0 0 0 0 0
fglayer            data/Bgs/mission_start/BG6.png -970 0.55 0 0 0 0 0 -1 1 1

I am curious to see how they doesn't flick, as I never managed to fix Avenger's first bonus stage
View attachment 2983
I tried to even use SORTID, but nothing works

I thought your bonus game was perfect,
what is doesn't flick means?
 
Last edited:
Back
Top Bottom