Avengers United Battle Force

In Progress Avengers United Battle Force 2.7.41

No permission to download
The project is currently under development.
msmalik681 I havent tested this version yet.
This idea had crossed my mind before, but this would let a lot of resource on the memory, wasting it. This is why I never used it.
I remember the version I was using didn't have your unload function.

I will test it an report.
 
msmalik681 said:
Just removed the "3" flag from all load commands. So did this version still crash ?
From a quick test, the bug isn't happening, but I am not sure if happened on that version, because its a very old build (4432).
I've removed all the "3" flag from the current version and started to test it, and I will report the result.

If this is the culprit, its an OpenBOR bug anyway, but an easier one.

edit: msmalik681 I've tested the current version removing all "3"flags. The crash still happens.
I think I will send you a private version to test.
 
msmalik681 I was talking with Kratus and he was able to pin point what is the culprit of this issue: SKIPSELECT and SELECT.
We haven't found WHY this happens, but we manage to bypass it. The only thing I know is: skipselect is saved on your save game (openbor.c, line 130009)

This is what he had found - I am using a translator to translate what he said to me:

Kratus said:
I was able to isolate the bug, I still don't know where the error is in the source code but I know it is related to the "skipselect" or "select" functions when used throughout the gameplay.
First I tried to reproduce the bug and I managed to do it exactly following its instructions, so I saw that it really exists, and it doesn't write anything in the log, exactly as you said.

By the way, I analyzed the following message:
Code:
FileCaching System Init......	Warning: pak header is too large: 571392 / 524288
I found that it only appears when the game is loaded in PAK format. After extracting your game and using the data folder, this message is gone. I will do a more in-depth analysis on this, but I can say that it has nothing to do with the bug.

After the bug happened, I made a copy of the save to be able to repeat the tests. I was gradually isolating all events that were related to the "Sky Stage" level (before, during and after) and only after removing the lines with the "skipselect" and "select" commands within levels.txt, the game stopped closing and went on. I even removed the "skipselect" function and left only "select", the bug occurred the same way.

I analyzed the previous levels to see what is different from the other levels and realized that they usually have at least 1 event that precedes "skipselect" and "select" respectively. Some have the "next" event and others have the "scene" event.

#----------------------------heliport bonus
z 110 182 0
file data/levels/portobonusgame.txt

next

#--------------------------------------------------#sky stage

skipselect
scene data/scenes/history/scene02m.txt
scene data/scenes/unlock/unlock_namor.txt
select data/select/sel1.txt

#Sky Stage 1
z 60 210 0
file data/levels/sky1.txt

After copying any line of "scene" and pasting it before "skipselect" and between the levels "Sky Stage" and "Maggia", the game proceeded normally. I did the same thing by placing a line with the "next" function in the same place and also proceeded normally, without bugs.

#Sky Stage 1
z 60 210 0
file data/levels/sky1.txt

#--------------------------------------------------#Maggia ship
scene data/scenes/history/test.txt
skipselect
select data/select/sel1.txt

#Maggia pt 1
z 135 220 0
file data/levels/maggia.txt

Therefore, we can understand that:

1) The command "skipselect" may not need to be declared every time a "select screen" is triggered throughout the gameplay, it may be done to be used only on the first "select screen"
2) The "select" command used in levels.txt also has some problems, as it just didn't have any problems when I added a "scene" or "next" event before a "select screen" was loaded
3) This explains why the bug happened in your test after finishing the level "ngreece-ramp", because the select screen comes right after the end of the level, and only after that the cutscene is loaded.
#Greece Ramp
z 840 880 0
file data/levels/ngreece-ramp.txt

skipselect
select data/select/sel1.txt

scene data/scenes/targets/target_ares.txt

#Greece Ares
z 174 220 0
file    data/levels/greece1.txt

The point is that I created an empty cutscene (black screen) in gif with 2 frames only and 50ms each (very fast). It was enough for the game not to present the bug, I believe that we can use this technique to circumvent the problem at least until it resolves in the source code. But if you already have a cutscene to put before each select screen, that would also work.

Finally, I had never seen this problem in my game because I have no other "select screen" than the first one. I even use the "skipselect" but only on the first select screen, but it was good to know why I'm going to look for a way to solve this on the engine.

Probably, I am using SKIPSELECT wrongly - as the manual says to use skipselect {name} {name} {name} {name} but I've learn to use this way and I though it was right.
plus, if I am not wrong, if I don't use it, the engine was displaying two select screens - one default (with the default select bg) and one from that file, which uses an animated bg.

Damon Caskey do you have any info to share about skipselect?

TL;DR: To solve this issue, you need to add a fake scene (like one blank image with 50ms of duration) before the SKIPSELECT
Edit: side note - you if you add a scene before the first skipselect of a set, the engine will display TWO select screens, one after the other.
Video by Kratus
 
O Ilusionista said:
Damon Caskey do you have any info to share about skipselect?

The only thing I know about Skipselect is that it's a mess. The following is all working from memory. As I recall it was added by @Orochi_X (later just OX), a really good guy who I wish was still around. Unfortunately, there was a huge debate over what it was meant to do in the first place. Ostensibly you'd want it to force specific characters in a given level, but according to him that's misuse. This caused a lot of confusion, cause predictably, that's exactly what everyone thought it was for, and I don't blame them - what else would you do with with it?

There was quite the thread going on, and at points it got a little dramatic. No matter what anyone tried to do with it, he'd explain that's not what it's meant for. No one ever did really figure it out. Over the years threads would pop up, but I usually ignore them because I didn't have anything useful to offer.

In short, Skipselect is originally meant to do something specific that is entirely different from what it appears to be, but only OX really knows what that is and sadly he's gone. I kind of wish it didn't exist or had a different name.

Sorry I can't offer any better insight than that. Best I could do is start picking through the source code of it, but I can't do that right now.

DC
 
msmalik681 said:
Glad you got it fixed still avoid using flag 3 on load it can cause crashes.
Doing that will keep all the resources on the memory, something I don't want to unless there is no other way.
I haven't updated the game build to use your unload function yet. When I do, I will make some tests.
 
And here is a full stage gameplay with Iceman, played and recorded by my friend and a damn good player Psykai


Passive Iceman skills:
- Full immunity to freezing attacks (cannot be frozen, does not take damage)
- Absolute Zero - recharges part of the power when hit by freezing attacks
- Ice Pick - High resistance (75%) to cutting attacks
- Ice armor - 25% increased resistance to all types of attacks, except flaming.
- Knockdown resistance - Resistant to the first attack that knocks a character down (some attacks still drop him on the first hit)
- Pyrophobia - 45% more damage when receiving fire attacks.

⚠️ ⚠️ Also, showing a very important change on the game: ⚠️⚠️
Now your power meter does not recover on its own over time, which directly affects the difficulty of the game.

Ways to recover your power:
- When hitting an enemy with any normal hit * - all
- When hit by enemies * - all
- Power items (blue or yellow crystal) - all
- When hit by certain types of attacks (only a few, such as Iron Man against electrical attacks)
- When using the CHARGE command (hold jump + special, just a few)
* the amount of power recharged varies from character to character.
 
O Ilusionista said:
Now your power meter does not recover on its own over time, which directly affects the difficulty of the game.

Everything looks awesome except that. O Ilusionista, I get what you are going for but IDK, but no innate recovery always felt illogical and not very heroic to me. Sure, it makes sense from a balance perspective, but you can find other ways to do that. One solution might be to only allow automatic recovery to a point (maybe half MP). The engine supports that natively, no script needed at all.

I do like that you added a manual charge though. It's always hard to balance that because players just charge up between fights, but I think it's too cool an ability to deny. Note the engine can natively disable charging when enemies aren't around. I think that makes about as much sense as needing to punch someone in the face to recover your mojo, but just giving you the FYI if you didn't know already. :)

DC
 
Everything looks awesome except that. O Ilusionista, I get what you are going for but IDK, but no innate recovery always felt illogical and not very heroic to me.
Damon Caskey to be honest, I am no 100% convinced about it yet. From my early tests, this makes the game harder, but opens possibilities for some extra balance - like chars having charge, or recovering more MP per hit.
Yeah, not full MP recover over time would be a good idea too - I know I haven't used this method thanks to something not working the way it should be, but I can't remember exactly what.

I am still testing waters here. I will update the game with this and see people's opinions about the subject.
I still want this game to be different from the others (even though this game is already quite different from all other superhero games).

Note the engine can natively disable charging when enemies aren't around.
Yeah? how?
 
O Ilusionista said:
Yeah? how?

It's a bit flag somewhere, I can't remember where. When it's enabled, the charge animation won't play unless there are active enemies. I'm not a fan, not only because of the arbitrary nature, but also because there's no clue given to player. The charge command just doesn't work.

DC
 
What an arcade feeling, this new video!

About the hitting recovery, I don't know how much it's parameterable but I hope there is no cheated technique in the game to recover too easily. I mean I remember a mod where some multiple attack of special attacks could get the jauge completed too fast. Thus it wasn't good balanced.

Damon Caskey said:
Note the engine can natively disable charging when enemies aren't around.
Oh? Is it in the manual?
 
Its the way linux works if you compile openbor it will only run on the distro your using or one very similar. The appimage is more like a windows exe it will work on almost any linux distro.

Just add a readme explaining to make the file executable before running it.


Tell me what build you prefer to use and i will make a appimage for you.
 
I gave a links a few posts back download the .appimage file and replace the .exe file with the .appimage instead. It should work on all linux variants as long as the cpu is x86 or x64
 
Back
Top Bottom