New features?

oldyz

Well-known member
???

After working with it i have found some problems with he way the levels are scripted, & it also made me wonder if there is already solutions for them...

First, i propose a coordinates system tweak that allows you to have enemy spawns work well regardless of resolution.

While editing NIghtslashers X, i have found many conflicts when trying to preserve 4:3's aspect ratio's gameplay, that could easily be resolved with modified commands.

Coords & at currently seem to be completely based on where the left edge of the screen is. if your aspect ratio is  480w by 240 and the game was originally 320w by 240, you have to program every single spawn point accordingly & conflicts arise when you use blockades & wait values or you want enemies to exactly match their point & time of entrance in all resolutions.

example: some enemies must appear at a an exact point over the ground & at the same time the left edge of the screen locks, but with wide screens that situation is complicated  because this makes the enemy spawn out of nowhere. I made some workarounds, but it makes the scrolling behave odd in those situations

I propose the following:

16coords, PLcoords, REcoords, 16at, PLat, REat.

if you input 16coords, each enemy that was supposed to jump at you from either edge of the screen will do so from 95 pixels more or less then stated from the original value.

PLcoords will make the enemy spawn relative from the center of the screen (usually the point where the player is exactly in the middle and makes scenes scroll.) this would make most mods resolution-proof, you can choose any resolution and spawn points for enemies that are intended to rise or appear at specific points will always do so.

REcoords calculate the spawnpoint based on the right side of the screen instead, it is useful in very rare circumstances, like music change or dynamic music programming.

16at, takes the original value & subtracts 80 automatically
PLat, engine checks the resolution that is used & automatically adds the value needed to match the center of the screen (like PLcoords, this would solve a lot of resolution compatibility problems)

REat, allows the engine to base the spawn points on the right side of the screen.

this next part is problems i found:

Multilayer entities: there is a section of the game where an enemy with a Back & front layer appears in the OG game, i could not figure out how to do it.

Music continues on - i can't find a way to have a Music file continue to play from one level to the next (no cut-off, you start the next level & the same music should keep playing with no interruption)

Dynamic music:  the use of sound layers to allow level areas to have different instrumentation, this can be done already by using invisible enemies with sound files blaring (if they feature a volume control that depends on the distance or panning) , but syncronization problems could arise.

https://youtubeloop.net/list?infoId=22650&pl=W3sidmlkZW9JZCI6Ild5YTM1N1dtLXpjIiwicGxheWVyTmFtZSI6Inl0UGxheWVyMSIsInNsaWRlclZhbCI6WzE2LDU2XX1d

DYnamic shadow: I noticed that in NIghtslashers X,  a could manipulate the shadow position at various points, but there was no way to make shadow transition smoothly from point a to point b, it seems that scripting shadows has to be done at certain points & and is dependent on enemy spawns, instead of a global independent range.
Implementing this could also help to implement dynamic sound

Background animation - it can be done with additional text files, but it seems limited only to the panel layer.

Dynamic background animation -  Making a series of frames animate based on the way the screen scrolls:
https://youtubeloop.net/list?infoId=22651&pl=W3sidmlkZW9JZCI6Ild5YTM1N1dtLXpjIiwicGxheWVyTmFtZSI6Inl0UGxheWVyMSIsInNsaWRlclZhbCI6WzE2LDU2XX0seyJ2aWRlb0lkIjoiSjhESUxBeTQwQmsiLCJwbGF5ZXJOYW1lIjoieXRQbGF5ZXIyIiwic2xpZGVyVmFsIjpbMCwzNzY2XX0seyJ2aWRlb0lkIjoiSjhESUxBeTQwQmsiLCJwbGF5ZXJOYW1lIjoieXRQbGF5ZXIzIiwic2xpZGVyVmFsIjpbMCwzNzY2XX0seyJ2aWRlb0lkIjoiSjhESUxBeTQwQmsiLCJwbGF5ZXJOYW1lIjoieXRQbGF5ZXI0Iiwic2xpZGVyVmFsIjpbMTQxMSwxNjY4XX1d

basically as the screen scrolls a "video" plays forward or rewinds
i don't know why Mugen nor Ikeman have it yet.

& finally APNG support (animated PNG files) this can help cut down coding time considerabl, since you can use a single APNG files with transparency instead of a series of frames for the dynamic background animations
 
With no offense, I think you need to study the manual a bit more because many of tht things you are suggesting are already possible, you the issues you are having is not engine fault - you are doing it wrong - specially in the spawn case.

I know it will sound rude but it's a common error: some users blame the engine for their own errors.

basically as the screen scrolls a "video" plays forward or rewinds
i don't know why Mugen nor Ikeman have it yet.

It's the same for Mugen: They already have it. It's not a video, it's a Delta trick. This is why I told you about the manual.

Download this stage, made by Immortal of my team eons ago, and see

stairs.gif

http://brazilmugenteam.com/stages/stages-the-immortal/endless-stairs/

- it can be done with additional text files, but it seems limited only to the panel layer.

They are not limited. At all. Openbor can do somethings that many other engines can't, like this:

https://www.youtube.com/watch?v=LmOrbPZYTFM&feature=youtu.be

It's all done by coding. No animation required.

& finally APNG support (animated PNG files) this can help cut down coding time considerabl, since you can use a single APNG files with transparency instead of a series of frames for the dynamic background animations

No it won't. It would skyrocket the files weight. Plus, almost nobody uses APNG. Use panels for that.

You can do pretty much all you want with OpenBOR already. You just need to read the manual and try ;)
 
Well obviously you don't really fully understand how the levels and their commands work and why things are the way they are. And as a result you also don't really understand what you are asking and how less sense it makes.
I don't blame you for that since i know that levels and spawns can be overall a bit complicated and even people with way more experience than you still have trouble figuring out things when comes to levels/grouping/spawns.
Now if you need more precise explanation on all that i will leave it to others.
 
O Ilusionista said:
With no offense, I think you need to study the manual a bit more because many of tht things you are suggesting are already possible, you the issues you are having is not engine fault - you are doing it wrong - specially in the spawn case.

That may be, i read the manual but either way i was never able to figure out how to "shift" or offset the "at" value to the center of the screen.
if i can find out how to do it, the mod basically becomes resolution-proof (for width)

I know it will sound rude but it's a common error: some users blame the engine for their own errors.

basically as the screen scrolls a "video" plays forward or rewinds
i don't know why Mugen nor Ikeman have it yet.

O Ilusionista said:
It's the same for Mugen: They already have it. It's not a video, it's a Delta trick. This is why I told you about the manual.

I am aware, i studied the Dam level for Mugen , but this same level does not work with IKEMEN.
It also breaks if you use Zooming in or out. the text file that controls it has hundreds of lines that could easily be replaced by just one pointing to a folder....
There is even an alleged creator for this but it did not seem to work right.

Instead of Relying on tricks, why not just add the code to easily implement it?

i can't code, but if anyone can point me to the right direction, a programmer on fiver or such i will happily pitch in to have it made.


O Ilusionista said:
They are not limited. At all. Openbor can do somethings that many other engines can't, like this:

https://www.youtube.com/watch?v=LmOrbPZYTFM&feature=youtu.be

It's all done by coding. No animation required.
And no offense , but the backgrounds still look very flat....


& finally APNG support (animated PNG files) this can help cut down coding time considerably, since you can use a single APNG files with transparency instead of a series of frames for the dynamic background animations

O Ilusionista said:
No it won't. It would skyrocket the files weight. Plus, almost nobody uses APNG. Use panels for that.

You can do pretty much all you want with OpenBOR already. You just need to read the manual and try ;)

yes, i forgot
I did not mention
animated fglayers
animated Bcklayers

as an example, here is an independent text file that helps animate monitors in a  background (panel)
--------------------------------------
name diody
type none
setlayer 1
remap data/bgs/library/b1a  data/bgs/library/b1b 
alpha 5 
anim idle
        loop 1
delay 50
offset 160 240
        bbox    0 0 0 0
        frame data/chars/misc/empty 
        frame data/bgs/library/b1a 
        frame data/chars/misc/empty       
        frame data/bgs/library/b1c 
etc
-----------------------------------------------------------------------------------------
this means that if i want these monitor or buttons to play loping video screen with 560 frames, i have to code 560 lines.
(b1a, b1c, etc)

Id rather just use this:

music data/music/lab.ogg
bossmusic     
notime 1
settime 0
background data/bgs/lab/back2.apng
bglayer        data/bgs/lab/back1b 0.3 0.3 0 0 0 0 100 1 1 0
bglayer        data/bgs/lab/back1a 0.3 0.3 0 0 0 0 100 1 1 6
fglayer data/bgs/lv4/swc5a 4 1 0 0 0 99999999 0 2 1 1 2
panel data/bgs/lab/empt
order aaa
spawn1 100 45 0
spawn2 80 70 0

----

or if you want to keep it old school

music data/music/lab.ogg
bossmusic     
notime 1
settime 0
background data/bgs/lab/back2.gif
bglayer        data/bgs/lab/back1b 0.3 0.3 0 0 0 0 100 1 1 0
bglayer        data/bgs/lab/back1a 0.3 0.3 0 0 0 0 100 1 1 6
fglayer data/bgs/lv4/swc5a 4 1 0 0 0 99999999 0 2 1 1 2
panel data/bgs/lab/empt
order aaa
spawn1 100 45 0
spawn2 80 70 0

exporting a video or rendering frames to either one of the formats is not difficult.

Code is still not to be set aside tho, it is helpful if a code master uses it to make a fully randomized animation that has infinite combinations.

but i think that for regular animations, point a to point b, the process does not need to be so complicated.

Either way, i'm not above asking for help, it just that i'm aware every one is doing their own thing & have no time for "Noobs"
with their dumb noob concepts, that can obviously be made with scripts, 
& here we are in 2019  And for some reason no mod has yet implemented
Killer instinct MUgen or Openbor version out there yet? or at the very least backgrounds?

So what i propose is not so far fetched. it saves coders time on their own projects, and it spares stablished members of the community to waste their time to help inexperienced fools, who try to do things that have been basic staples of 2d & 2.5d games for years.

Back in october i asked a simple question, none of the answers helped, i worked my own solution , but so far i can conclude that the engine has no simple & dynamic way to adjust to the different screen formats.
If there is a simple way to do it , then why is it that older mods don't get a 16 by 9 update?

heck pick 10 & ill do it myself if its simple.
 
oldyz said:
That may be, i read the manual but either way i was never able to figure out how to "shift" or offset the "at" value to the center of the screen.
if i can find out how to do it, the mod basically becomes resolution-proof (for width)

Okay let me explain a little bit. You are right, there is no way to "shift"  the "at" value to the center of the screen. But even if it was, this alone would not never ever make a game "resolution-proof (for width)" as you think.

oldyz said:
Back in october i asked a simple question, none of the answers helped, i worked my own solution , but so far i can conclude that the engine has no simple & dynamic way to adjust to the different screen formats.
If there is a simple way to do it , then why is it that older mods don't get a 16 by 9 update?

heck pick 10 & ill do it myself if its simple.

I understand your furstration but you are just trying to change something that might look easy on surface, but it's not due to many technical reasons. I also wish some times for an "simple & dynamic" way to do/change things, but this is simply not always possible. Many people on the beginning are looking for the "easy button" that does everything, but once they work more with the engine and starting to understand things better, only then they realise why there is not such "easy button".

And yes i know how nasty task this is since i did that for two of my older games but it's not that hard if you know what you are doing. And yeah, the Night Slashers game you choose to do so, must be even a more difficult one for this change.

Edit: Oh by the way, about why there is not animated .gif background command. Simply you will get alot of color loss and artifacts on your animated .gif image(even if it is a apng). While the animated background entities we are using now they are not suffer the same issue(if you know how to work with color palettes of course). Also the entity is giving you overall more flexibility to do more things.
 
Thanks,

anyway good news, the NIghtslasher's mod transformation is done (the game is improved a little bit too)

BUT

there is some extras that i want to add in before Xmas.
NO  - not the dynamic animations or other things i mentioned earlier (that would be for a SUper update)

but i have a list of small issues that i could not fix (and that Bonus Jz was not able to make work himself at the time apparently)

I would like some help. But the thing is  - if anyone helps, me the surprises would be spoiled for you

It is bad enough that i spoiled the game for Myself (never played it, i wanted my first time playing it to be in its best condition)
so it would stink for anyone helping me to  have the same thing happen....

If anyone wants to help go ahead and send me i PM & ill share the to do list
i will try - still - to solve them myself in the next 2 weeks

anyway , what i propose is for the engine to help retro-actively make the games 16 by 9 compatible with a reduced effort.
That way that a lot of issues can be fixed by quickly editing just a few lines with the find/replace function the level'x'.txt file & nothing else.
the goal...
to minimize & OR avoid editing of character/enemies/objects/backgrounds internal offsets or scripts one by one

As for future proofing mods.... yes , characters have to be created to accommodate further edges from the get go -
backgrounds have to be bigger, dummy objects or extra scripts with that in mind have to be created....

indeed a pain.
 
magggas said:
Edit: Oh by the way, about why there is not animated .gif background command. Simply you will get alot of color loss and artifacts on your animated .gif image(even if it is a apng). While the animated background entities we are using now they are not suffer the same issue(if you know how to work with color palettes of course). Also the entity is giving you overall more flexibility to do more things.

Thanks, i did have a 'gut feeling"  that layers/panels should work just like entities, i don't know if the engine will eventually do this out of the box  without additional scripts , but for now this is a good solution.

still, the scripts i have found so far involve hundreds of lines for each frame, if i find a way to automate this or .BAT file that will generate those lines, i will share it right away, but the best would be for the script to just point at the folder that contains the frames.

looking around the forum & i still cant find anything for a dynamic animation tho...
tell you this,  it has to work in a similar fashion to walking animations or whatever values/magic numbers/code controls mode 7 floors skew effect...
& i think the same should apply for MUGEN, backgrounds as entities

& no i don't know how to work with the palettes well, i have been relying on pasting things from Gimp to fighter factory & viceversa and then saving & renaming using bulkrenamer or acdzee.

Fighter factory is useful for batch resizing images.
 
I agree with magggas  here:
Many people on the beginning are looking for the "easy button" that does everything, but once they work more with the engine and starting to understand things better, only then they realise why there is not such "easy button".

This.

no i don't know how to work with the palettes well,
So you see what I mean? You don't understand the basic foundry yet you blame the engine. I see this behavior here and there, but users who do this fail to see that the problem is with them and not with the engine. And this is why they start to get ignored quickly.

You could be asking for help and people would try to help you. Instead, you prefer to blame the engine. Don't be surprised if people start to ignore you.

That is exactly what I will do from now on, sorry.
If you want help, here are here to help. But I don't have time for this type of behavior.

See ya.
 
The wording of that was very harsh O Ilusionista. That said, he does have a point oldyz. We are happy to field questions on how to do things. That's what the forum is for. But challenging the engine design when you don't even know the basics of how it works won't go very far.

The better approach is coming to us with what you are trying to do in the game. Then we can show you how to make it happen.

DC
 
Damon Caskey I do prefer to be straightforward. I am kinda tired of this type of behavior - people blaming the engine for their own errors.
But yeah, sometimes I reply as an user but I forgot I am an admin and - sadly - I can't sepate both.
 
I understand, i get it , the engine works.
Its not a challenge to the engine

The only point im trying to make is that it could be a bit more user friendly, if its at all possible.

If not then, what can be done is to share some example levels, or things to that effect so frequently asked stuff that has to be done trough a script is easy to implement.

For example , i want to share a visual "tool" level with many layers of parallax so new users can have an idea of what different parallax values look like.
And another tool to help people do their own 16 by 9 conversions.

last night i ran into a weird problem with the music
& even tho instincts tell me that if there is a command called :
musicfadein
or musicfadeout
we have
musicfade, that controls how a song ends & that's it, there seems to be no opposite command (as far as i know)that commands how a song begins

the closest i can see is this one

fademusic(fade, name, loop, offset)

    ~With only fade as parameter, it fades the music in or out. Adding parameters, it will replace the current music.
    ~fade volume (0 ~ 128)
    ~name: pathname
    ~loop: toggle 1 or 0. 1 for loop music
    ~offset: start music offset

that seems to work only within a script, & so far i have not been able to make it work.

i asked about it yesterday, in a new thread, based on an old thread that had a similar problem, that at the time seemed to be hard to answer, because for some reason a hard-coded command of the engine was forgotten (or maybe it did not exist?)
@
Damon Caskey: with the release of the MOD i will share all notes & bugs & a list of things that the mod needs to be perfected.
if anyone wants to fix those issues they are welcome to it,  or a sample script or small demo level with the element is also welcome.
then i will take sometime to do it myself
I will consider the game to be work in progress,  because there is more stuff that i want to add to it, including a mode that only a few can actually enjoy.

Also - i don't think i'll do any other Mod. I think  Nightslashers will keep me busy for a couple of years...
 
Youre not supposed to do what's You did With this game And its similarbprocess to starting from scratch when placing entities onscreen, news extra commands You suggest are waste od timer And only useful for You on this particular case bringing nothing new to the gameplay, i Think you coupe Just edit en3mies spawn animations themselves And detect edge of the screen to calculate where original spawn location was And add pixels to IT to Compensate for new ratio.
That background animation feature was already done but IT needs z min And max to be the same if the floor is included
 
bWWd said:
Youre not supposed to do what's You did With this game And its similarbprocess to starting from scratch when placing entities onscreen, news extra commands You suggest are waste od timer And only useful for You on this particular case bringing nothing new to the gameplay, i Think you coupe Just edit en3mies spawn animations themselves And detect edge of the screen to calculate where original spawn location was And add pixels to IT to Compensate for new ratio.
That background animation feature was already done but IT needs z min And max to be the same if the floor is included

I'd would have to say i disagree.

At the end of the day the new commands would replace some script/entity combos that are currently a necessity.
An example from the NIghtslashers game itself:

The hidden lab where you fight the Doctor has a computer background that has animation, but in this case the animation can only work if you use an entity.
to load an entity, you have to "register" it in the models.txt file & that is where i see a problem IF openbor can only support one models.txt, doing several animated elements in background will quickly fill this up & like you said - add no game-play.

A level X.txt line with this:

Anibglayer {path} {1stframe} {xratio} {zratio} {xposition} {zposition} {xspacing} {zspacing} {xrepeat} {zrepeat} {transparency} {alpha} {watermode} {amplitude} {wavelength} {wavespeed} {bgspeedratio} / background {path} {xratio} {zratio} {xposition} {zposition} {xspacing} {zspacing} {xrepeat} {zrepeat} {transparency} {alpha}

replaces an entity & a script -

a precedent for this type of thing is found in project 64's rice plugin for animated textures, all you needed for the animation to work was to indicate which was the first frame & the speed.

Same thing with  stereoptical animation background layers, Currently i have a  brutal method to make it work, but it it involves making 500 entities for each frame & it only works in one direction, sure in this case a single entity may do the job, but a script for it has to be figured out.

but i think something like this would be better:

Dianibglayer {path} {1stframe} {lastframe} {xratio} {zratio} {xposition} {zposition} {xspacing} {zspacing} {xrepeat} {zrepeat} {transparency} {alpha} {watermode} {amplitude} {wavelength} {wavespeed} {bgspeedratio} / background {path} {xratio} {zratio} {xposition} {zposition} {xspacing} {zspacing} {xrepeat} {zrepeat} {transparency} {alpha}

About character-based/center-screen based coordinates, they come in handy when you have an animated background element - like a statue with a head that turns/looks  at you as you walk in an area that no longer scrolls, be it because it is at the end of the level or it has a wait command or blockade.

Another example of a stage that has a "dynamic/stereoptical" animation , but the screen wont move, & may need a character based coordinate is this one:
https://youtu.be/uFx-tszgXCc?t=63

During the widescreen modification, i had to make compromises, 4 to 7 enemies come out with the wrong timing compared to the 4:3 version.
A known workaround for this is the "timing" entity, & i believe that you can also use activation tile entities, at the time i did not find them.
but
If the coordinates had been character-based/center-screen , those problems would not have been there.
From what i have experienced with 3d games is that it is better to load a character but not have it react or move until you are a certain distance from it, if OpenBor can do that , then the problem with the aspect ratios are a non-issue.
think Goldeneye, characters react the same in 16 by 9, 4:3, or in panoramic mode, because they detect you using distance from where you are, instead of relying on screen edges.
But for that to work well & not tax the memory, some kind of "culling" method has to be implemented, you don't want 30 baddies to graphically spawn if you can't see them.

Lots more adjustments where necessary to the some of the Bosses, the change in aspect ratio made them easier & less aggressive for some reason.

I understand most of what i suggest is mostly aesthetic, & coding it into the engine might make it a bigger file, so i hope i'm wrong about the models.txt limitation,
as i see it currently, entity/script based solutions seem to be the only way to do it.
 
Back
Top Bottom