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.
@DC

Thanks for the tips they will definitly be useful.

@Ilu

As far as I am aware updated.c run on every tic after everything else has completed but should still only be used when you really have to.  And removing that file did not stop the updates.
 
msmalik681 said:
Report stuff like this to: http://www.chronocrash.com/apps/wiki/obor/index.php?title=Category:Wii_Compatibility_List

and I will try to update the mods that do not load or work.

Edit:  :o 336MB this may be a bit too big for the Wii maybe.
Okay, I did it ;)
I tried a bit your lite version of this and now it loads. Do you noticed that gray line that appears at the bottom of the screen when video files are being played? Are they caused by the downgrade or are they there in the original release? It's nothing very important but it looks bad, so if that line could be fixed or cut, the game would look perfect. Apart of this, as it has been said, the game crashes at the beach level and it has some slowdown at the Alien Funhouse and the Cargo Ship. I don't know if you can free-up a bit these parts without loosing the special effects of the level to make the game smoother.
Other small things I noticed:
-The money bag and the gold doesn't play its sound.
-When you skip the score screen after finishing a level, the music doesn't stop, so it makes some cuts while it's still playing over the loading screen.

Other small things I noticed playing this game, but that are not specifically of this game:
-Something is wrong with the controls, sometimes when I start a level the character moves automatically to one direction (up, down, left....). Maybe the controls are not cleared well after beating a level. It doesn't happen always but I noticed it in other games too.
-When an enemy is being hit agaisnt a wall, you can hit it infinitely on the air... this can make things easier (and bored)... although I don't know if this is intentional. I like to make combos on the air, but hit infinitely an enemy agaisnt a wall is a bit annoying sometimes...

Thanks @kratus for this great game, it's one of the best for sure, and thanks @msmalik681 for making it work on the Wii :) I hope you can polish that small things to make it fully work.
 
When an enemy is being hit agaisnt a wall, you can hit it infinitely on the air
I remember Malik had fixed this issue some time ago and when I tested this game on Android, there was a limit for that - you can't hit the enemy forever on the air.
 
TheGamePlayer said:
if you are planning to add more characters to this game, please add

Robert Garcia

Ryo Sakazaki

From King Of Fighters Series.

They just do not fit in this game.

@ilu

I just fixed infinite juggles when the developer uses jugglepoints.

Edit: I am still working on the light version and found a way to cut down enough to fit even the psp by removing all players from memory it is a bit over the top but the game should play to the end.  I will be finished with it soon.
 
The game is a technical masterpiece but the Jet boss fight is still laughably stupid. They are borderline UNTOUCHABLE because of how fast they move. Even with a fast character like Skate, I can't keep up with them or get a single move to hit them. I remember beating them (eventually...) in a previous attempt but it's just not worth the stress.

I don't even know why you made them so hard? It's not like Jet was ever ridiculously easy in the original games and needed a buff. Stuff like this really breaks the game for me, which is a shame because up until this fight I was really enjoying it :/
 
^ This and also I feel they float too high up and are hard to get to hit them there in the first place.
I feel plenty of people will have a tough time trying to beat them when they first appear early in the game as a duo and not a single jet. They have a predictable pattern I'll give you that, but they have all the odds in their favor as a duo, along with their speed and hard to reach place. These ridiculous advantages makes them harder to beat than many of the other bosses in the game.
 
@Miru
After the game is more stable and with less problems, I will make some alternative versions and start SOR1/SOR3 projects

@DintheAbary
I will check every scene to realocate some enemies. I will accept your suggestion, now Barbon boss use more goons. About stage 2, I´ve played the original game and this scene really have only one Jet, not two (except for mania). Sorry man, it´s my fault and I will follow original game with only 1 Jet (except for mania or with two/three/four players).
Thanks!!

@MaxBeta
I accept your suggestion and cleaned up the floor. Now the K.O. count is shown along with C.Hit/M.Hit(combo hit/max hit) or in pause screen. About Jet it´s may fault, sorry. Have only 1 jet in stage 2 now (except for mania or with two/three/four players) and the other Jets have your health halved, with add of 1 jet for each player added too. And plus, reduced flying speed a little
Thanks!

@erf_beto
Thanks for the report

@DC
Thanks for the info, I will pay more attention in the scripts and correct some

@O Ilusionista
Wow, very nice my friend!! Thanks for the suggestion for Ruivo

@msmalik681
It´s true, KOF characters not fit in this game. However, I will improve the old SF vs KOF game with new sprites and mechanic after SOR2X is finished.
And again, very nice work with lite version. Thanks!
 
Yeah man. I agree with keeping them on mania which has to be hard as nails on purposes. Thank you for the minimal fixes to an already excellent game @Kratus! Cheers!
 
I am so done with this game @Kratus you use update scripts way too much as a result the PSP can only run this game at about 5fps but the WII can manage so here are my lite versions.

SOR2X v1.4 Lite *FIXED
This is the recommended version it is the same game just lighter I hope it can play the game to the end on WII.

SOR2X v1.4 Super Lite
This is me going too far I added a new feature to the engine to reduce the memory used so it will only work with the new  OpenBOR v3.0 Build 6412 or above.  This version will remove every model from memory besides the character(s) you picked.  It should save about 10mb but if the lite version works I do not recommend this version as it has to reload all character every time you come back to the main menu.

@Kratus

I know you are comfortable with your version but just to let you know I did a lot of work to remove the load from your update scripts and the select menu I moved to a ondrawscript called "u_select.c" that links to the entity "select_back" look it over you might like it.  and I moved everything to "updated.c" and removed "update.c"

@Kensu

I had no issue with the video files showing a grey line.

@Ilu

Sorry "alwaysupdate 1" is needed to runs scripts in menu I removed everything else from that scripts.txt file.
 
msmalik681 said:
I am so done with this game @Kratus you use update scripts way too much as a result the PSP can only run this game at about 5fps but the WII can manage so here are my lite versions.

@Kratus
I know you are comfortable with your version but just to let you know I did a lot of work to remove the load from your update scripts and the select menu I moved to a ondrawscript called "u_select.c" that links to the entity "select_back" look it over you might like it.  and I moved everything to "updated.c" and removed "update.c"

@Ilu
Sorry "alwaysupdate 1" is needed to runs scripts in menu I removed everything else from that scripts.txt file.

Nice!! I´ve seen a lot of work with scripts, great job! Although the game is focused on the PC, I will learn a lot with your changes and will apply in the next update to reduce memory and space usage.

About update/updated.c, I was wrong about them. Did not write everything in one file because I thought it would overload them, but understood now that is better only one file working to use less CPU. I like the ondrawscript usage in the select screen, will learn how to use and apply too. This can limit the script usage only if the entity sprites is drawn on the screen, very good. And cleaned the script.txt file only using "alwaysupdate 1" now, saving about 35mb of memory usage.

Tested media files like sound and videos. Removed all and no change in the fps or memory usage... But I don´t know about psp, android or wii

In the next versions I will test in others platforms too. I don´t have psp/wii console but will use emulators for that
Thanks my friend!
 
As I did so much work with your mod I may just make a ultra lite version compatible with the psp port I have only noticed this now but the first lite version and this new one (with my code optimisations) have a big difference in ram usage so I guess less code means less ram used. The psp is a very weak cpu with only 333mhz but I think my tekken mod is heavily scripted and that runs fine but I try to avoid update scripts whenever I can.

The dolphin emulator can run openbor but it is buggy I would not recommend it.  If you want to tailor for psp/wii just keep used ram low, use 8 bit samples, avoid too many update scripts and do not use 24bit background images (wii displays them with a weird tint).

Finally I updated the Lite version to work with older wii builds: http://www.mediafire.com/file/52g9dzhx1lu238f/SOR2X_v1.4_Lite.zip/file
 
Thanks @msmalik681 ...
Now i will to play this game and others on PI :p
Some guys are working to make it possible in a near future ... so excited :)
 
Psykai said:
The game is a technical masterpiece but the Jet boss fight is still laughably stupid. They are borderline UNTOUCHABLE because of how fast they move. Even with a fast character like Skate, I can't keep up with them or get a single move to hit them. I remember beating them (eventually...) in a previous attempt but it's just not worth the stress.

I don't even know why you made them so hard? It's not like Jet was ever ridiculously easy in the original games and needed a buff. Stuff like this really breaks the game for me, which is a shame because up until this fight I was really enjoying it :/
Sorry, some adjustments is in progress for the next update. I don´t have too much time to test the entire game and your feedback is very important to me. I don´t have the intention to make him an unbeatable boss

msmalik681 said:
As I did so much work with your mod I may just make a ultra lite version compatible with the psp port I have only noticed this now but the first lite version and this new one (with my code optimisations) have a big difference in ram usage so I guess less code means less ram used. The psp is a very weak cpu with only 333mhz but I think my tekken mod is heavily scripted and that runs fine but I try to avoid update scripts whenever I can.

The dolphin emulator can run openbor but it is buggy I would not recommend it.  If you want to tailor for psp/wii just keep used ram low, use 8 bit samples, avoid too many update scripts and do not use 24bit background images (wii displays them with a weird tint).

Finally I updated the Lite version to work with older wii builds: http://www.mediafire.com/file/52g9dzhx1lu238f/SOR2X_v1.4_Lite.zip/file

I´ve learned a lot with your changes and now all updates will have always a lite version. If it is possible, I suggest to add some new event scripts to detect many different situations and use less update/ondraw scripts. Some like on-grab, on-grabbed, on-framechange, on-anichange, on-aiflagchange, on-takeaction etc can be useful and let you go directly to the event that you want.

Another suggestion is to have a scripted "touch" flag to the entity take itens only touching and not changing subtype status. It can be useful to give this status separately in any frame or animation. I have a lot of problem to make Jet character take itens touching in only 1 animation, but solved it with custom itembox values that only he can reach.

One more suggestion is a second Npc type, something like Npc1/Npc2. It can be useful to have one of them supporting the player and the another supporting enemies, and help to configure Candamage more easily. I can use NPC for Players but it is a bit confuse to use Type_Enemy for all enemy related entities because some of them I don´t want to allow players to hit.

Tested my experimental lite version on ppsspp emulator and works fine. The only issue is with webm files, don´t run. For Wii, tested on dolphin emulator but it crashes at start, I don´t know what it can be

I´m moving all update scripts possible to ondraw scripts. Tested and can see that ondraw use less cpu and is more stable.

Thanks for all help my friend!
 
Kratus said:
I´ve learned a lot with your changes and now all updates will have always a lite version. If it is possible, I suggest to add some new event scripts to detect many different situations and use less update/ondraw scripts. Some like on-grab, on-grabbed, on-framechange, on-anichange, on-aiflagchange, on-takeaction etc can be useful and let you go directly to the event that you want.

Kratus, most of the suggestions are either not really practical with the way the engine works, or already exist. It might help you to do some research about the available events and how they work:

  • on-framechange / on-anichange: That's exactly what the animation script is. It executes whenever a frame is changed, and by proxy, that means it also is executed when animations change.
  • on-aiflagchange / on-takeaction: There are too many break points to catch an AI flag change and only execute events when it occurs. However, there is an onthink event that is executed when the AI is updated, and does basically the same thing. I suggest you have a look.
  • scripted "touch" flag: There is - the collision system, and it has event scripts too (doattack). You can easily leverage this to make a very efficient touch or proximity detection. It will be even eaiser very soon, once I open up the multiple collision box system to authors. 

One more suggestion is a second Npc type, something like Npc1/Npc2. It can be useful to have one of them supporting the player and the another supporting enemies, and help to configure Candamage more easily. I can use NPC for Players but it is a bit confuse to use Type_Enemy for all enemy related entities because some of them I don´t want to allow players to hit.

This is a good idea in theory, but ultimately a typeless system is what we really need and are working toward. For now I will not allow more entity types to be added because it will just make it that much more difficult for us to move to a typeless system and deal with compatibility issues.

I´m moving all update scripts possible to ondraw scripts. Tested and can see that ondraw use less cpu and is more stable.

Keep in mind - there is nothing intrinsically wrong with update scripts. In a few cases, they are more efficient than other techniques. The problem is that authors tend to abuse the update event because it's so easy and obvious. It's all in how you use a given event, and how the the code is written (see my earlier post in this thread). One thing that will help a lot is to look into the oncreate() and ondestroy() functions. Those are part of every event and can be HUGE resource savers if you know what you're doing (and we'll help with that part).
 
@DC
Some resources of the engine I did not know yet, like onthink, doattack, oncreate and ondestroy, that's why I gave these suggestions. The only exception is about on-framechange because sometimes I want to run a script in each frame of the a specific animation without write a lot of "@cmd" with the same function. I think that this may leave the character files more clean and precise to read and edit.
It will work like update scripts in each tick, but for each frame change.

About types I understand your point, if will be removed in the future no need to add more.

Thanks for the explanation, I see that I still have a lot to learn yet and will explore more this functions ;)
 
Kratus said:
The only exception is about on-framechange because sometimes I want to run a script in each frame of the a specific animation without write a lot of "@cmd" with the same function. I think that this may leave the character files more clean and precise to read and edit.
It will work like update scripts in each tick, but for each frame change.

That IS how animation scripts work. You just need to use the right tags. @script and @end_script tags run on every frame of an animation they are in. I normally don't recommend them, but that's only because authors tend to use way too much inline code in their text files. But when used to call functions instead, they are great - clean, and efficient.

Code:
@script
some_function();
@end_script
frame ...
frame ...
frame ...
frame ...

Now some_function() will run on every frame of the animation. Simple as that. No need for @cmd clutter.

So basically, if you want to run functions on a specific frame, use @cmd. If you want to run one or more functions on all frames, use @script / @end_script. When you want to insert code directly into the model's text file, don't. Write a function, and see previous statement.  ;)

DC
 
Damon Caskey said:
Kratus said:
The only exception is about on-framechange because sometimes I want to run a script in each frame of the a specific animation without write a lot of "@cmd" with the same function. I think that this may leave the character files more clean and precise to read and edit.
It will work like update scripts in each tick, but for each frame change.

That IS how animation scripts work. You just need to use the right tags. @script and @end_script tags run on every frame of an animation they are in. I normally don't recommend them, but that's only because authors tend to use way too much inline code in their text files. But when used to call functions instead, they are great - clean, and efficient.

Code:
@script
some_function();
@end_script
frame ...
frame ...
frame ...
frame ...

Now some_function() will run on every frame of the animation. Simple as that. No need for @cmd clutter.

So basically, if you want to run functions on a specific frame, use @cmd. If you want to run one or more functions on all frames, use @script / @end_script. When you want to insert code directly into the model's text file, don't. Write a function, and see previous statement.  ;)

DC
Very interesting, this is exactly what I need.
Really I still have a lot to learn.

Thanks DC!
 
I would like to thank you for the mod. To me this is the best remake of Streets of Rage 2. It's even better then SoR Remake, and I hope to see an 1X, and 3X, and maybe Adam's Story X. 
 
Back
Top Bottom