Streets of Rage 2X

In Progress Streets of Rage 2X By Kratus 2.3.1

No permission to download
The project is currently under development.
Kratus said:
pepodmc
Is there a stage select after beating the game 3 times? because if there is, i dont know how to use it  ;D
Yes, need to finish the game 3 times to unlock the "level select" menu. At the new game screen, simply press left or right to change the desired level, highlight arcade/rebellion modes and press attack/start buttons.

Would be better if you put some kind of priority to the walls so the cpu partner goes to hit the walls and let the player hit the bulldozer when needed
Thanks, fixed. Now the CPU partner will priorize walls in the bulldozer stage.
Thanks!!

-----------------------------------------------------------------------------------------------------------------------------------------------------------


And in stage 4, the cpu partner nearly never tries to avoid the machine on the rails

I'm trying to fix it but no solution at the moment. The only solution I tested was to add the machine as a hostile, but even in defensive instance, the CPU partner tries to attack the machine sometimes.

In Bare knuckle 3 vanilla, in that stage, if you do a precise jump, you can jump the machine even jumping in your place  (without walking or running) , you can try to do the same here.
Being able to jump the machine , and doing a script so the cpu partner jump if the machine its going to hit him/her (if possible)

-----------------------------------------------------------------------------------------------------------------------------------------------------

EDIT:
YMB 9 Shinzou
After some tests, I will make some little changes.

- Reduce regular enemie's health's addition according to game progress, but increase health addition according to game's difficult
- Reduce regular enemie's aggression a little, but maintain the same value for bosses
- Change Rage's command from D+F+A2 to A2 only, like the same command used by Rage cancel moves

It will be applied in version 2.1 to see player's feedback. It can be reversed if most players don't like it.
After some tests, I think that these changes are ok, and maybe will be the last time these features are changed.

Thanks for the feedback, buddy!

About this, the changes to agression can be applied to  normal or lower difficulty only? because hard difficulty its perfect as it is, and if someone cant play in hard or mania, its time to train i guess...


About the rage command, instead of using the same button for rage and star attack, why dont you add a new button entirely for rage attack?
Even if you are a keyboard or a joystick player, we have a lot of buttons in each to separate the buttons.
I like the way you put the commands of the star attacks, but if you put the same button to the star and the rage attacks , without any more commands, sometimes you will do one instead of the other.
I think that was the reason why you put the down+foward+energy commands in the first place.
As YMB 9 Shinzou, i consider that down+foward+energy needed a tweak, but as a separate button would be better.



EDIT:


i saw that others openbor games has animated backgrounds in some parts of the menus.

And i saw this infinite gif of Sor 1 streets that would look good in Sor2x after the title screen so its look more vivid.

9460ED0FE71336F973B934E89353CC9A82C39FF2


But this is a miscellaneous thing more than anything  :)
 
However, I can create a new difficult for casual players. Also, I'm thinking about creating two new extra menu options to change the enemy's life ratio and group size multiplier. I always prefer to let the player decide how he wants to play, this is exactly the purpose of the extra menu.
hum, I don't think its a good idea. The game is already perfectly beatable with the current difficult.

Kratus An idea crossed my mind and I think you are the perfect person to try it: Make the select menu works like on fighting games, where you can move the cursor left, right, up and down.
I know its doable because there was an old module which makes it (I think it was one of the Rocket Vipers). Then, after the character selected, you could choose the palette for it.

Its quite a challenge, but if someone manage to do it, this could be very useful for all OpenBOR coders.
 
EDIT:
YMB 9 Shinzou
After some tests, I will make some little changes.

- Reduce regular enemie's health's addition according to game progress, but increase health addition according to game's difficult
- Reduce regular enemie's aggression a little, but maintain the same value for bosses
- Change Rage's command from D+F+A2 to A2 only, like the same command used by Rage cancel moves

It will be applied in version 2.1 to see player's feedback. It can be reversed if most players don't like it.
After some tests, I think that these changes are ok, and maybe will be the last time these features are changed.

Thanks for the feedback, buddy!

About this, the changes to agression can be applied to  normal or lower difficulty only? because hard difficulty its perfect as it is, and if someone cant play in hard or mania, its time to train i guess...


About the rage command, instead of using the same button for rage and star attack, why dont you add a new button entirely for rage attack?
Even if you are a keyboard or a joystick player, we have a lot of buttons in each to separate the buttons.
I like the way you put the commands of the star attacks, but if you put the same button to the star and the rage attacks , without any more commands, sometimes you will do one instead of the other.
I think that was the reason why you put the down+foward+energy commands in the first place.
As YMB 9 Shinzou, i consider that down+foward+energy needed a tweak, but as a separate button would be better.


I wouldn't want Rage to be it's own button because I play on arcade stick and it's already a 6 button game. There isn't a need for it to be any more. I would have preferred that Rage be Special + Energy to prevent any mishaps of wasting your meter but I will take just Energy rather than the QCF input any day

Kratus  Thanks for the changes, look forward to trying it out!
 
O Ilusionista said:
However, I can create a new difficult for casual players. Also, I'm thinking about creating two new extra menu options to change the enemy's life ratio and group size multiplier. I always prefer to let the player decide how he wants to play, this is exactly the purpose of the extra menu.
hum, I don't think its a good idea. The game is already perfectly beatable with the current difficult.

Kratus An idea crossed my mind and I think you are the perfect person to try it: Make the select menu works like on fighting games, where you can move the cursor left, right, up and down.
I know its doable because there was an old module which makes it (I think it was one of the Rocket Vipers). Then, after the character selected, you could choose the palette for it.

Its quite a challenge, but if someone manage to do it, this could be very useful for all OpenBOR coders.

O Ilusionista
Yeah, about these two new menu options (enemy's life ratio and group size multiplier), I tested and didn't like it too.

About the select menu, is a very good idea. I made a few tests in previous versions and liked it too much. The only problem is about how to change the loaded models at the select screen because some functions are disabled there.

The only function that worked to change the model at the select screen is changeplayerproperty(0,"name"). An alternative method is to create a level that simulates a select screen, and then I can change models using changeentityproperty(self, "model"), but I consider it as a second option.

I will continue working on it, and share the progress here. Thanks buddy!

pepodmc
In Bare knuckle 3 vanilla, in that stage, if you do a precise jump, you can jump the machine even jumping in your place  (without walking or running) , you can try to do the same here.
Being able to jump the machine , and doing a script so the cpu partner jump if the machine its going to hit him/her (if possible)
Hmm, sounds good. I will try it

About this, the changes to agression can be applied to  normal or lower difficulty only? because hard difficulty its perfect as it is, and if someone cant play in hard or mania, its time to train i guess...
Don't worry, it's a very little adjustment that makes more effect in normal difficult.

i saw that others openbor games has animated backgrounds in some parts of the menus
I tried it in previous versions but this image refers to SOR1, a content that was not added yet. Maybe in future updates I can add it

pepodmc and YMB 9 Shinzou
I understand your request, I'm doing some tests yet.

However, some information is important to remember. In previous versions, the Rage command was a one-shot button only. This was changed in the newest versions. Also, the Rage cancelation is currently not using QCF input (D+F+A2), it's already a one-shot button since from older versions.

The only thing that is changed is the Rage move during idle/walk instances only. It will not work during "blocking" animation for example, the same goes for "super" because Rage will not work during running animation

About adding more buttons, I think it is not good. After some gameplays on Android, I think that the game needs to have less one-shot buttons and more combo buttons. For example, in the version 2.0 the combo button attack+special does the same thing as the dodge/block button. So, now you can use the entire moveset with 4 buttons only, no need to use 6 buttons if you don't want. This was a DC suggestion and I need to admit that he is completely right

But not all tests are finished, and all changes are easily reversible. I suggest to give a try
 
The only function that worked to change the model at the select screen is changeplayerproperty(0,"name")
Kratus yeah I remember there are some codes that doesn't works on select screen, because - if I recall well - there are some locks about this.
If I am not wrong, for example, settextobject is one of the cases.
 
Kratus

About SOR 1 content, one guy made (for SOR 4) improved sprites of the three SOR 1 playable characters (and looks great by the way) :

5ebebfed77963.jpg


5ec27a4dd1326.jpg


This content is not based in Sorr remake content, so will not be a problem.


You can talk with him to use his sprites (even perhaps doing new ones if the guy is cool)

https://gamebanana.com/skins/177294
 
pepodmc said:
Kratus

About SOR 1 content, one guy made (for SOR 4) improved sprites of the three SOR 1 playable characters (and looks great by the way) :


This content is not based in Sorr remake content, so will not be a problem.


You can talk with him to use his sprites (even perhaps doing new ones if the guy is cool)
pepodmc
Great! I will make some tests first and then talk with the autor. Thanks!

yeah I remember there are some codes that doesn't works on select screen, because - if I recall well - there are some locks about this.
If I am not wrong, for example, settextobject is one of the cases
O Ilusionista
I'm doing some tests using a normal level as a select screen, before the game starts. Overall it's a good way but needs adjustments yet. As soon as I have some progress, I will post here.
 
Kratus


What determines the way a character plays in an openbor?

I mean, is there a kind of general script that determines the way the characters behaves in the game?

Or its the scripts of each player that determines that?

Im asking that because if , for example, someone takes your axel and puts him in another openbor game like for example, "Final Fight & Cadillacs 2.0" , Axel will have all the moves and mechanics of Sor2x, or will play like the characters of that game?

-----------------------------------------------------------------------------------------------------------

Man , i dont know if you know this, but Bomberlink is a member of the bennugd comunitty:

http://forum.bennugd.org/index.php?action=profile;u=5

DsYmw8Y.png


He was active until July 26 , one month ago. Its recent.

You can ask him there about the character sprites, or at least the stages.

I think that he understands english too XD.


--------------------------------------------------------------------------------------------------------

Then i searched for Adrian Matos Rey (adrimus) in the web.

Z5Bo0sa.png



Here its the youtube account of Adrian Matos (adrimus), he is one of the graphic artist of the game: (confirmed in a message)

https://www.youtube.com/channel/UCqZ6_T31xWmwkbWSg8Jpzng


EDIT 3: you already talked with him, i didnt knew XD

----------------------------------------------------------------------------------------------------------------

And Jiwsaw (Josef Axner)

https://www.deviantart.com/jiggeh

It seems that its him, but changed "Jiwsaw" to "Jiggeh", i asked him about Streets of rage remake too but didnt answer yet.


-------------------------------------------------------------------------------------------------------

You can find the user "xdxdav" (sor 1 sprites resprited) here:

https://mugenfreeforall.com/topic/25160-streets-of-rage-bare-knuckle-series/?tab=comments#comment-340549

Or here too:

https://mugenguild.com/forum/topics/cody-travers-final-fight-x-and-xdxdav-180708.0.html






-------------------------------------------------------------------------------------------------

Max as a CPU partner tends to use his offensive special a lot in certain situations and left himself vulnerable to lose a lot of energy at once if he gets hit. (and he being  so slow makes more likely that someone will hit him in situations that perhaps other characters would not get hit)
I see that this problem happens more than anything when you are far from him and you start hitting an enemy, max tries to reach that place the faster he can and use his offensive special as a result.
Max offensive special is  the attack  with more reach in his arsenal, i think that thats why this happens with max.

If you are far of the cpu partner, then start attacking an enemy and the cpu partner goes to reach where you  are attacking the enemy , Axel, blaze and Zan tend to jump with a kick or doing  foward+foward+attack.

Max and sammy , instead, have long reach offensive specials and tend to use them more often to attack and reach a long distance  faster.

Here its a video of max cpu partner making 3 offensive specials in a row:




With sammy the problem is a little less big because he is very fast and the normal attack he does while running has a long reach.
I would even say that would be better, for the cpu partner version of Sammy, to disable his offensive special and let him rely on his defensive special and the star specials, because his offensive special doesnt do decent damage and only makes the cpu partner version of sammy vulnerable to lose a lot of energy in a worthless way if he is hit after doing too much specials.

All other characters use different moves and variants more often when attacking an enemy because their offensive special dont have a long reach compared to sammy and max.


----------------------------------------------------------------------------------------------------------

The cpu partners dont pick up knifes, pipes,etc.

I know that perhaps picking up a sword or knifes would change the way the partner will behave and its more difficult to configure that, but at least zan should be able to pick up knifes,pipes, etc.


When zan picks up a weapon his gameplay remains practically the same, except for his foward+foward+attack that has a longer reach with the ball of energy:
 
pepodmc

Im asking that because if , for example, someone takes your axel and puts him in another openbor game like for example, "Final Fight & Cadillacs 2.0" , Axel will have all the moves and mechanics of Sor2x, or will play like the characters of that game?
Each modder has different ways to program your characters. In SOR2X, it's like 50% in scripts and 50% in character's file. Another difference is the portability. For example, a lot of the character's rules are linked to main SOR2X scripts and will not work in another game. This happens because I'm always trying to save memory/cpu and due to this a lot of scripts are shared between all characters.

Man , i dont know if you know this, but Bomberlink is a member of the bennugd comunitty
Thanks,  I will try to talk to Bomberlink. I already talked to Adrimus and he tested some previous versions of SOR2X for me (he is in my Special Thanks section). He allowed me to use your sprites, but he can't do the same for all sprites of the SORR.

The cpu partners dont pick up knifes, pipes,etc
About cpu partners, I will improve the A.I. gradually according to the player's feedback. However, one thing I need to say, a lot about the cpu partner's behavior is defined by engine rules in the character's file, and only a few rules are defined by script. So, some things can't be changed, but I can adjust a lot of things by changing the character's "range" values in each animation.
I will take a look in Max sna Sammy

About weapons, I have plans to add it for partners in future updates.
 
Kratus

Sorry if i suggest too much things at once.  ;D

One last thing. Do you know how to add a webm as the background in the loading bar screen when you open the game and in the main menu screen?
 
pepodmc said:
Kratus

Sorry if i suggest too much things at once.  ;D

One last thing. Do you know how to add a webm as the background in the loading bar screen when you open the game and in the main menu screen?

pepodmc
No problem man  ;D
Unfortunately I didn't find a way to play a webm video as a background. But it's possible to play it at the title screen using the "playwebm" script function

Another thing that is related to previous SOR2X suggestions. After some tests, I decided to follow the YMB 9 Shinzou suggestion and added ENERGY+SPECIAL combo button to perform rage as an alternative command. Also, those buttons can be pressed at same time or sequentially (ENERGY>SPECIAL or ENERGY+SPECIAL). All commands work together, no need to change in the extra menu. The command QCF (D+F+A2) will remain.

About the cpu partner escaping from the train, it was implemented and now he will detect the train and perform a dodge according to a defined range.
 
Kratus said:
Kratus All commands work together, no need to change in the extra menu. The command QCF (D+F+A2) will remain.


Thats great!


Kratus said:
pepodmc said:
Kratus

Sorry if i suggest too much things at once.  ;D

One last thing. Do you know how to add a webm as the background in the loading bar screen when you open the game and in the main menu screen?

pepodmc
No problem man  ;D
Unfortunately I didn't find a way to play a webm video as a background. But it's possible to play it at the title screen using the "playwebm" script function


I think that this is perhaps the solution, the thing is that it would allow animated backgrounds but without sound using gifs:

https://www.chronocrash.com/forum/index.php?topic=3137.0

You make any background as an "entity"  and let you "spawn" anything you want in any background (something like that)  ;D
Its a shame im a complete ignorant in all this.  ;D



Im asking because im planning to do a spanish translation/version of Streets of Rage 2x, adding spanish cutscenes from Streets of Rage remake for the Sor 1 & 2 routes.

About Streets of rage 3, in 2013, i made a spanish translation of the japanese version of the game (bare knuckle 3) so i will use the cutscenes of my translation.
But for some parts, i will use the script of Sor 3 (like the one present in the good ending cutscene)

https://www.romhacking.net/translations/2001/


I will add somewhere that its not an official release of SOR 2X , so you dont have problems with other authors.

In the official release,  you made webms for "F-games" and "Senile Team" logos, but i think that they are too long. Nearly all people that starts the game will skip them to be able to start playing the stages the faster they can.


So in this spanish release, for the intro videos i tried something really short (6 seconds -- will transform it in  4 or 5 seconds instead of 6 seconds) with all the author mentions:





My first contact with the saga was with the Japanese version of the first game, so, I could not resist to modify a little the intro of the third game and use it as the intro.


These are all miscelaneous things, but its a start XD.


PD: I dont understand that , when you are loading a state, appears "stage" and level"

Because in one save i have it says:

Stage: 0
Level:28

What is this refering to?





 
pepodmc

I think that this is perhaps the solution, the thing is that it would allow animated backgrounds but without sound using gifs
You make any background as an "entity"  and let you "spawn" anything you want in any background (something like that)
Yeah, is a good way to make backgrounds, I'm using it at the select screen in SOR2X. But I thought you want to make webm as background due to the higher resolution, unfortunately is not possible

Im asking because im planning to do a spanish translation/version of Streets of Rage 2x, adding spanish cutscenes from Streets of Rage remake for the Sor 1 & 2 routes.
Great idea! Have my support if you need

In the official release,  you made webms for "F-games" and "Senile Team" logos, but i think that they are too long. Nearly all people that starts the game will skip them to be able to start playing the stages the faster they can
Thanks for the suggestion, all scenes were shortened and others joined in same file in version 2.1

Stage: 0
Level:28

What is this refering to?
It happens when you go to the desired stage by using the "level select" menu and makes a quick appearance at the Stage 0 (the one with left/right arrow routes). The others will be saved normally after that.
 
Kratus said:
pepodmc

I think that this is perhaps the solution, the thing is that it would allow animated backgrounds but without sound using gifs
You make any background as an "entity"  and let you "spawn" anything you want in any background (something like that)

Yeah, is a good way to make backgrounds, I'm using it at the select screen in SOR2X. But I thought you want to make webm as background due to the higher resolution, unfortunately is not possible

Yeah , that was the idea, but if you say that its impossible  it must be.
 
I posted some explanation here
http://www.chronocrash.com/forum/index.php?topic=5152.msg70710#msg70710

But I need to understand better what you are trying to do. This webm you sent appears to be a "press start" scene, not a cutscene. Is this correct?
 
Kratus said:
I posted some explanation here
http://www.chronocrash.com/forum/index.php?topic=5152.msg70710#msg70710

But I need to understand better what you are trying to do. This webm you sent appears to be a "press start" scene, not a cutscene. Is this correct?

Yeah, but only for testing  ;D ;D

Its the custom intro i made, with authors (kratus,f-games- senile team) mentions at the bottom.
 
Please, copy and paste the following code in the file "menu_route.c". This file is in "data/scripts/keyall/" folder.
You will have to erase the entire old code, only let this new code.
Code:
void menuRoute(int player)
{//Change Route menu confirmation between yes or no
	int confirm   = getglobalvar("routeConfirm");
	int hasplayed = getplayerproperty(player, "hasplayed");
	
	if(getglobalvar("activeText") == "Route" && hasplayed == 1){ //CHECK IF ROUTE MENU IS ALREADY ON
		
		//CHANGE OPTIONS
		if(playerkeys(player, 1, "moveleft") || playerkeys(player, 1, "moveright")){
			if(confirm == "no"){
				setglobalvar("routeConfirm", "yes");
			}else{
				setglobalvar("routeConfirm", "no");
			}
			playsample(openborconstant("SAMPLE_BEEP"), 0, 120, 120, 100, 0);
		}
		
		//CONFIRM ROUTE
		if(playerkeys(player, 1, "anybutton")){
			if(confirm == "yes"){
				playsample(openborconstant("SAMPLE_BEEP2"), 0, 120, 120, 100, 0);
				// changeplayerproperty(0, "disablekeys", openborconstant("FLAG_ANYBUTTON")+openborconstant("FLAG_ESC"));
				// changeplayerproperty(1, "disablekeys", openborconstant("FLAG_ANYBUTTON")+openborconstant("FLAG_ESC"));
				// changeplayerproperty(2, "disablekeys", openborconstant("FLAG_ANYBUTTON")+openborconstant("FLAG_ESC"));
				// changeplayerproperty(3, "disablekeys", openborconstant("FLAG_ANYBUTTON")+openborconstant("FLAG_ESC"));
				jumptobranch(getglobalvar("branch"), 1); //JUMP TO SELECTED ROUTE
				setglobalvar("preview", NULL());
				setglobalvar("activeText", 0);
			}else{
				playsample(openborconstant("SAMPLE_BEEP2"), 0, 120, 120, 100, 0);
				changeopenborvariant("nopause", 0); //UNLOCK PAUSE COMMAND
				changeopenborvariant("textbox", NULL()); //CLEAR TEXTBOX TO NOT FREEZE THE GAME
				changeplayerproperty(0, "disablekeys", 0);
				changeplayerproperty(1, "disablekeys", 0);
				changeplayerproperty(2, "disablekeys", 0);
				changeplayerproperty(3, "disablekeys", 0);
				setglobalvar("preview", NULL());
				setglobalvar("activeText", 0);
			}
		}
	}
}

This will remove the "disablekeys" function, for test purpose. You may have some bugs during level trasitions in arrow routes, if any player presses any attack button, but will not crash the game.
I will test another way to let the keys unlocked and avoid bugs at same time. For now, it will solve your problem, I tested and worked.

Don't forget to let all parameters empty in the scene.txt, like this:
video data/scenes/end_a.webm
 
Kratus said:
Please, copy and paste the following code in the file "menu_route.c". This file is in "data/scripts/keyall/" folder.
You will have to erase the entire old code, only let this new code.
Code:
void menuRoute(int player)
{//Change Route menu confirmation between yes or no
	int confirm   = getglobalvar("routeConfirm");
	int hasplayed = getplayerproperty(player, "hasplayed");
	
	if(getglobalvar("activeText") == "Route" && hasplayed == 1){ //CHECK IF ROUTE MENU IS ALREADY ON
		
		//CHANGE OPTIONS
		if(playerkeys(player, 1, "moveleft") || playerkeys(player, 1, "moveright")){
			if(confirm == "no"){
				setglobalvar("routeConfirm", "yes");
			}else{
				setglobalvar("routeConfirm", "no");
			}
			playsample(openborconstant("SAMPLE_BEEP"), 0, 120, 120, 100, 0);
		}
		
		//CONFIRM ROUTE
		if(playerkeys(player, 1, "anybutton")){
			if(confirm == "yes"){
				playsample(openborconstant("SAMPLE_BEEP2"), 0, 120, 120, 100, 0);
				// changeplayerproperty(0, "disablekeys", openborconstant("FLAG_ANYBUTTON")+openborconstant("FLAG_ESC"));
				// changeplayerproperty(1, "disablekeys", openborconstant("FLAG_ANYBUTTON")+openborconstant("FLAG_ESC"));
				// changeplayerproperty(2, "disablekeys", openborconstant("FLAG_ANYBUTTON")+openborconstant("FLAG_ESC"));
				// changeplayerproperty(3, "disablekeys", openborconstant("FLAG_ANYBUTTON")+openborconstant("FLAG_ESC"));
				jumptobranch(getglobalvar("branch"), 1); //JUMP TO SELECTED ROUTE
				setglobalvar("preview", NULL());
				setglobalvar("activeText", 0);
			}else{
				playsample(openborconstant("SAMPLE_BEEP2"), 0, 120, 120, 100, 0);
				changeopenborvariant("nopause", 0); //UNLOCK PAUSE COMMAND
				changeopenborvariant("textbox", NULL()); //CLEAR TEXTBOX TO NOT FREEZE THE GAME
				changeplayerproperty(0, "disablekeys", 0);
				changeplayerproperty(1, "disablekeys", 0);
				changeplayerproperty(2, "disablekeys", 0);
				changeplayerproperty(3, "disablekeys", 0);
				setglobalvar("preview", NULL());
				setglobalvar("activeText", 0);
			}
		}
	}
}

This will remove the "disablekeys" function, for test purpose. You may have some bugs during level trasitions in arrow routes, if any player presses any attack button, but will not crash the game.
I will test another way to let the keys unlocked and avoid bugs at same time. For now, it will solve your problem, I tested and worked.

Don't forget to let all parameters empty in the scene.txt, like this:
video data/scenes/end_a.webm

Hello, I'm found sprites for new boss

https://www.spriters-resource.com/fullview/87351/
 
Back
Top Bottom