Plombo's to-do list

Plombo

OpenBOR Developer
Staff member
Since I have a bad memory, I'm using this thread to keep track of the things I want to do on the engine in the near future.

  • 3DS port (work in progress):
    • Audio playback
    • WebM support
    • Pak selection menu
  • Look into the possibility of using 24-bit PNGs for backgrounds (not sprites).  The framework for this is already in place, we just don't have a 24-bit PNG loader even already have a 24-bit PNG loader which we use for the OpenBOR logo/menu graphics. Done for out-of-game backgrounds only (12/1/2014, r4094)
  • Done! (2/3/2015, r4102) Fix the apparent memory leak with .ogg
  • Done! (2/3/2015, r4103-4106) Fix the various other memory leaks detected by valgrind
  • Commit script memory reduction changes from spring 2014
  • Done! (11/24/2014, r4090) Look into generic collision struct as described by DC in the post below this
  • Finish GUI for tool to create alpha masks from 24-bit PNGs
  • Look into measuring frames per second with better precision
  • Done! (12/11/2014, r4096) Look into alpha masking for bglayer/fglayer (note: will be incompatible with 24-bit bg/fg images)
  • Actually verify that alpha masks match their corresponding sprites, and fail well in the case of a malformed mask instead of having "undefined behavior" that includes possible engine crashes.
  • Implemented! (4/22/2015, r4134-4161) Look further into the feasibility of decoding an actual video format for cutscenes.  Initial research shows that WebM/VP8/Vorbis decoding seems doable, and is portable across all platforms we care about via libvpx (VP8 decoder), nestegg (WebM demuxer), and libvorbis/libtremor (already a dependency of OpenBOR).  Need to look into performance implications for the less powerful platforms like the Wii.
  • Fix SDL joystick support.
  • Improve WebM playback, i.e., implement A/V sync in a less crude way.
  • Look into supporting some form of arrays in script.
 
There is something I'm hoping you could help with. I have tried and tried again to move the attack and bboxes from magic number indexed arrays (UGH!) to a generic collision struct, but it has blown up in my face each and every time. Perhaps a fresh pair of eyes could have better luck if you'd be willing.

Getting that done would open the door to a lot of clean up, feature adds, and other niceties.

DC
 
Look into the possibility of using 24-bit PNGs for backgrounds (not sprites).  The framework for this is already in place, we just don't have a 24-bit PNG loader even already have a 24-bit PNG loader which we use for the OpenBOR logo/menu graphics.

So we DO have the 24bit png support for background or cutscenes? This is new to me.
 
O Ilusionista said:
So we DO have the 24bit png support for background or cutscenes? This is new to me.

No, we don't.  But all of the pieces are in place to make it happen easily.  We already have a 24-bit PNG loader because we use it in the startup menu where you select a game - specifically, it's used to decode these images, which are stored in the executable as 24-bit PNGs:

ybqsfnn.png


pjvXwFn.png


It's not currently used in the actual game part of the engine, but it easily could be with a few not-too-difficult changes.
 
Im definitely backing this idea up, it means we could use pngs with alpha channel on background pieces ? That could improve look of the games a lot if people can use it to their advantage.Of course if it wont cause major slowdowns.
 
Alpha blending in backgrounds still won't be supported even with 24-bit PNG support.
 
Plombo said:
Alpha blending in backgrounds still won't be supported even with 24-bit PNG support.

So...we will have 24bit PNG (non indexed), but without alpha blending, right?

Plombo, care if I make a offt-topic question? Some weeks ago, I asked DC why you can't use scripts to spawn entities in select screen (and others) while if you spawn it using subentity it works. DC said there is a way to do it, but it require a special configuration/setup, which he doesn't remembers.

Do you remember it?
 
Plombo said:
No, we don't.  But all of the pieces are in place to make it happen easily.  We already have a 24-bit PNG loader because we use it in the startup menu where you select a game - specifically, it's used to decode these images, which are stored in the executable as 24-bit PNGs:

The first thing that confused me and eventually figured out when I gone to StackOverflow and asked it. Eventually found the Perl script to do this afterwards. The script just compresses the PNGs into headers so that they would become smaller when added to the compiled application, but the picture is as is once viewed on the app.
 
O Ilusionista said:
So...we will have 24bit PNG (non indexed), but without alpha blending, right?

Yeah.  That is, if/when I get around to implementing it.

O Ilusionista said:
Plombo, care if I make a offt-topic question? Some weeks ago, I asked DC why you can't use scripts to spawn entities in select screen (and others) while if you spawn it using subentity it works. DC said there is a way to do it, but it require a special configuration/setup, which he doesn't remembers.

Do you remember it?

Nope, sorry.
 
Damon Caskey said:
There is something I'm hoping you could help with. I have tried and tried again to move the attack and bboxes from magic number indexed arrays (UGH!) to a generic collision struct, but it has blown up in my face each and every time. Perhaps a fresh pair of eyes could have better luck if you'd be willing.

Getting that done would open the door to a lot of clean up, feature adds, and other niceties.

I just did that and committed it as r4089.  It really is impressive how much more readable it makes the code.
 
CRxTRDude said:
BTW, how do i compile in windows only, do I edit the build.bat?

Yeah, just change the line "bash.exe build.sh all" to "bash.exe build.sh 5".
 
Plombo said:
I just did that and committed it as r4089.  It really is impressive how much more readable it makes the code.

Awesome! Thanks a lot, that one should have been simple but I kept looking over one thing or another and it was driving me nuts!

DC
 
Guys, did you try to compile this one or this isn't meant to be compiled and needs to be associated yet, because when I compiled it using the current tools, this happened:

Code:
Compiling WIN Port: openbor.c...
Compiling WIN Port: openborscript.c...
openborscript.c: In function `openbor_getentityproperty':
openborscript.c:4835: error: subscripted value is neither array nor pointer
openborscript.c:5061: error: incompatible types in assignment
..\tools\bin\make.exe: *** [openborscript.o] Error 1
 
CRxTRDude said:
Guys, did you try to compile this one or this isn't meant to be compiled and needs to be associated yet, because when I compiled it using the current tools, this happened:

Code:
Compiling WIN Port: openbor.c...
Compiling WIN Port: openborscript.c...
openborscript.c: In function `openbor_getentityproperty':
openborscript.c:4835: error: subscripted value is neither array nor pointer
openborscript.c:5061: error: incompatible types in assignment
..\tools\bin\make.exe: *** [openborscript.o] Error 1

That's my fault, sorry.  Do another svn update and try again.
 
It's compiling now and it works. @DC what do you mean by a collision struct, just using struct variable instead of the MMs?

Edit: The next paragraph here was moved to developer discussion.
 
Tusubasa said:
Will it be possible to change the menu openbor? Have we have the opportunity to make our own menu?

That's something I've tried to implement at least 4 or 5 times before, and never succeeded.  It's a nice concept, but there's no good way to do it from an implementation or interface standpoint.  Maybe we'll have something better in ChronoCrash.
 
Back
Top Bottom