Hey buddy, some feedback I would like to share.
I caught a bit of the stream that day (the part between the Abigail fight and the subsequent levels), and it’s definitely great work. You can tell that you and the team poured your hearts into it.
I’m going to focus on things that could be improved rather than matters of personal taste—for instance, the combo system isn't really my cup of tea, though I know there are people who enjoy it.
The new sprites look really good, and Ay did an amazing job with the levels—I especially loved this one, as it brings a new (literal) angle to an old stage.
View attachment 15968
However, a few stages bother me a bit—specifically the bonus stages (which are based on very interesting ideas).
- In this stage (and others), the flying debris pieces are always the same—same quantity, same direction—which feels out of sync with the quality of the rest of the game. I think you could make them more random: vary the type of piece, the direction, and the quantity (and sometimes, not release any pieces at all).
I have some code that might help you; it makes the pieces fly in random directions along the X and Y axes, making everything feel more organic. I use this constantly in my own games, especially in the PDC bonus stages (like the forklift one).
View attachment 15969
The code:
C-like:
void randomJump (int vx, int vy)
{
// Douglas Baldan / O Ilusionista
// version 1.0 - 23/07/13
// makes the entity execute a jump into a random direction
void vSelf = getlocalvar("self"); // Gets the caller
int Xr = rand()%vx+0.5; // Random X vel, between the chosen velocity
int Yr = 2+rand()%vy; // Random Y vel + 1, to ensure a vertical jump, between the chosen velocity
//int Zr = rand()%2;
if (Yr <0){ // If the Y is negative,
Yr = Yr*-1; // Make it positive
}
changeentityproperty(vSelf, "velocity", Xr, NULL(), Yr+1); // Change entity velocity
}
if you want a versiton with 3 directions:
C-like:
void randomJumpZ (int vx, int vy, int vz)
{
// Douglas Baldan / O Ilusionista
// version 1.0 - 23/07/13
// makes the entity execute a jump into a random direction
void vSelf = getlocalvar("self"); // Gets the caller
int Xr = rand()%vx+0.5; // Random X vel, between the chosen velocity
int Yr = 2+rand()%vy; // Random Y vel + 2, to ensure a vertical jump, between the chosen velocity
int Zr = rand()%vz; // Random Z vel, between the chosen velocity
if (Yr <0){ // If the Y is negative,
Yr = Yr*-1; // Make it positive
}
changeentityproperty(vSelf, "velocity", Xr, Zr, Yr+1); // Change entity velocity
}
Given the size of the characters here, I think it would make more sense to change the size of the barrels—since they are smaller in the original game, if you compare the images:
View attachment 15971View attachment 15972
This happens because the barrel asset you're using was ripped directly from the ROM, which uses the standard CPS2 resolution (384×224 pixels); however, the graphics were horizontally compressed to fit a 4:3 aspect ratio—which is why all the SF2 graphics look overly wide.
It’s easy to see if you compare the width of the barrel relative to the character in the arcade version (the character fits inside the barrel) versus your game (practically two characters fit inside it):
View attachment 15973
This is another stage that, in addition to the issue with the fragments I mentioned earlier, has a lighting problem: the sky is quite overcast, which reduces the amount of light hitting the ground. This would make the shadows much less distinct—in the game, the shadows would be more transparent than they currently are, resulting in a softer look.
View attachment 15974
The issue with the pieces happens in this bonus round too (which, by the way, I love). You can clearly see the coins flying in the same direction and emerging from exactly the same spot.
View attachment 15975
Keep the good work!