Poll

How much would you be willing to contribute towards a joint HLP pledge? ($2500 is the target)

$1
6 (5.6%)
$3
5 (4.7%)
$5
12 (11.2%)
$10
21 (19.6%)
$20
27 (25.2%)
$50
20 (18.7%)
$75
1 (0.9%)
$100
9 (8.4%)
$200
4 (3.7%)
More (Please Post)
2 (1.9%)

Total Members Voted: 93

Author Topic: This makes me giddy  (Read 70094 times)

0 Members and 1 Guest are viewing this topic.

Offline Herra Tohtori

  • The Academic
  • 211
  • Bad command or file name
Well, the APNG ASM is working pretty well but it seems to be specifically designed to create a very specific type of animated PNG with a narrow range of customization options, and rather the program is allowed to decide how it should handle the changes between frames, etc.

The most advanced stuff you can do with the APNG ASM at the moment is set variable delays for specific frames, to "halt" the animation for a certain duration. Other stuff - like specifying frame disposal methods - are left for the program to deal with.

I don't actually know much about how the interface operates, but it would seem like the APNG need to have the same frames as the ANI, and the game needs to be able to access all the frames in the same ways that it could from the ANI. So if you have a button that has a default state and a lighted up state (like when hovering mouse over it), then you need the program to be able to call the correct frame in that context.

If you have an animated button, like the background on mainhalls or a fade-in fade-out blinking button, then you'd either need to be able to drive the animation backwards from the same APNG file, or you would need the same APNG file to contain the animation in forward and then in reverse to create a loop.


Basically, at its simplest, what we need is a way to use APNG in all the ways that ANI can be used on FS2Open (specifically in the interface context), except it doesn't need to use green as one-bit alpha since APNG supports native 8-bit alpha channel. But I'll let those actually familiar with the interface code to craft that specification...
There are three things that last forever: Abort, Retry, Fail - and the greatest of these is Fail.

 

Offline zookeeper

  • *knock knock* Who's there? Poe. Poe who?
  • 210
I think the integration is actually quite a bit simpler than people assume. Animations are just sequences of frames, and it doesn't matter much what format they originally come from. You can already use EFF almost everywhere, right? And even if currently some specific things (mainhalls, heads, etc) can only be done with ANIs, that's a silly archaic limitation by the engine and dealing with that shouldn't be within the scope of APNG integration as such. I think a more reasonable expectation is for APNG's to be interchangeable with EFF's.

With that in mind, a very possible best-case scenario is that the only place the integration needs to hook up into existing code is in bm_load_animation().

 

Offline Herra Tohtori

  • The Academic
  • 211
  • Bad command or file name
Yeah as long as the game can actually read the APNG files.

They do have a patch for libpng released at http://sourceforge.net/projects/libpng-apng/, I would assume* that needs to be included as well?


*if the game currently utilizes libpng to read PNG images, that is. "i know very little about the engine and make random guesses..."
There are three things that last forever: Abort, Retry, Fail - and the greatest of these is Fail.

 

Offline niffiwan

  • 211
  • Eluder Class
*if the game currently utilizes libpng to read PNG images, that is. "i know very little about the engine and make random guesses..."

Yeah, it does.

Code: (libpng/png.h) [Select]
/* png.h - header file for PNG reference library
 *
 * libpng version 1.6.12 - June 12, 2014
 * Copyright (c) 1998-2014 Glenn Randers-Pehrson
 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
 * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
 *
 * This code is released under the libpng license (See LICENSE, below)
(etc)
Creating a fs2_open.log | Red Alert Bug = Hex Edit | MediaVPs 2014: Bigger HUD gauges | 32bit libs for 64bit Ubuntu
----
Debian Packages (testing/unstable): Freespace2 | wxLauncher
----
m|m: I think I'm suffering from Stockholm syndrome. Bmpman is starting to make sense and it's actually written reasonably well...

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
FSO very cleanly handles EFFs in just about everywhere, including mainhalls. Even using EFFs, the engine already knows how to rock the animation back and forth for doors, so that's something FSO controls and not something APNG would deal with. Loop points, is something to think about. You can do this with ANI and EFF... by setting a keyframe, the animation can play frames like...

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 5, 6, 7, 8, 9, 10, 5, 6, 7, 8, 9, 10

In fact, if we can get FSO to get all the same information from an APNG that it does from an EFF, we'd be good to go. See here. I'm confident that FSO already handles special use animation cases with it's own code outside of the container format.
Cutscene Upgrade Project - Mainhall Remakes - Between the Ashes
Youtube Channel - P3D Model Box
Between the Ashes is looking for committed testers, PM me for details.
Freespace Upgrade Project See what's happening.

 
I dunno. Certain parts of his response (highlighted below) give me pause.

Quote
Hello Mike,

We had some contact quite a while back but there wasn't much progress. I'll dig up the messages but basically we haven't had the best luck building the project and we also wanted to know the details of where/how you want APNG integrated. I'm assuming for interface textures etc. but more specifically what kind of implementation are you looking for.

Thanks,
-Rei

The campaign page had an estimated delivery of December 2013, a year and a half ago. :doubt:

Marketing at its finest

 
Sorry, I've been in and out of contact with various members here. We haven't forgotten you!

How should we go about organizing this?

Specifically we need to know how you want this implemented and where in the code you want it. If we can have someone to contact from the development team to ask questions it would be a big help.

*Side note: we're still having some issues compiling things. I'll try again this afternoon to get a clean build going.

-Rei

 
I dunno. Certain parts of his response (highlighted below) give me pause.

Quote
Hello Mike,

We had some contact quite a while back but there wasn't much progress. I'll dig up the messages but basically we haven't had the best luck building the project and we also wanted to know the details of where/how you want APNG integrated. I'm assuming for interface textures etc. but more specifically what kind of implementation are you looking for.

Thanks,
-Rei

The campaign page had an estimated delivery of December 2013, a year and a half ago. :doubt:

Marketing at its finest

Just to clear things up:
> but there wasn't much progress
We were contacted by a few people here but we never got a clear idea of *what* you wanted us to do. We need someone involved in dev to point us to what you want and more importantly where in the code you want it. This is a big and unfamiliar codebase to us.

> we haven't had the best luck building the project
I'm trying a build right now actually. Last time I had some issues compiling but at the moment it's gone past that and seems to be compiling fine. I'll report on if I got it up and running a little later.

 
FSO very cleanly handles EFFs in just about everywhere, including mainhalls. Even using EFFs, the engine already knows how to rock the animation back and forth for doors, so that's something FSO controls and not something APNG would deal with. Loop points, is something to think about. You can do this with ANI and EFF... by setting a keyframe, the animation can play frames like...

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 5, 6, 7, 8, 9, 10, 5, 6, 7, 8, 9, 10

In fact, if we can get FSO to get all the same information from an APNG that it does from an EFF, we'd be good to go. See here. I'm confident that FSO already handles special use animation cases with it's own code outside of the container format.

It was my assumption APNG would be used as the container format. I'll investigate the EFF code and see what I can do. I expect I'll have some questions though.

 

Offline The E

  • He's Ebeneezer Goode
  • Moderator
  • 213
  • Nothing personal, just tech support.
    • Steam
    • Twitter
APNG will be the container format, or rather, be used alongside the other two container formats (.ani, the old animation format from FS2 retail days, and .eff, our own, homegrown pseudocontainer [pseudo because .eff is just a textfile and a series of image files]).

The code you'd have to look at starts with the function bm_load_animation in bmpman.cpp.

I hope you have seen our github repo; That's where you should get the code and through which any pull requests should be issued.

Finally, if there are any questions, you can either direct them to me, or join the #scp channel on irc.esper.net, that's where most of us coders hang out.
If I'm just aching this can't go on
I came from chasing dreams to feel alone
There must be changes, miss to feel strong
I really need lifе to touch me
--Evergrey, Where August Mourns

 
APNG will be the container format, or rather, be used alongside the other two container formats (.ani, the old animation format from FS2 retail days, and .eff, our own, homegrown pseudocontainer [pseudo because .eff is just a textfile and a series of image files]).

The code you'd have to look at starts with the function bm_load_animation in bmpman.cpp.

I hope you have seen our github repo; That's where you should get the code and through which any pull requests should be issued.

Finally, if there are any questions, you can either direct them to me, or join the #scp channel on irc.esper.net, that's where most of us coders hang out.

OK! I'll get on it.

I have full build of that repo from github working. I just need to get the assets extracted (I think) to actually run it. I'll hit up IRC if I have any issues.

 

Offline Spoon

  • 212
  • ヾ(´︶`♡)ノ
Bye money
Urutorahappī!!

[02:42] <@Axem> spoon somethings wrong
[02:42] <@Axem> critically wrong
[02:42] <@Axem> im happy with these missions now
[02:44] <@Axem> well
[02:44] <@Axem> with 2 of them

 

Offline z64555

  • 210
  • Self-proclaimed controls expert
    • Minecraft
    • Steam
Oh don't be like that, spoon.

Niffiwan said he'd be willing to act as ambassador of sorts at one point, but it looks like he hasn't been very active on IRC.

Kagetsuki: If you haven't gotten a bare set of assets to run FSO, you might be able to look at ST:R if you don't want to shell out $5 or so for FS2 (which can be found on GOG). I think ST:R is standalone, and maybe the most recent version of WoD is standalone as well.
Secure the Source, Contain the Code, Protect the Project
chief1983

------------
funtapaz: Hunchon University biologists prove mankind is evolving to new, higher form of life, known as Homopithecus Juche.
z64555: s/J/Do
BotenAlfred: <funtapaz> Hunchon University biologists prove mankind is evolving to new, higher form of life, known as Homopithecus Douche.

 

Offline niffiwan

  • 211
  • Eluder Class
yeah, work is kinda nuts at the moment. I'm still happy to answer any questions Kagetsuki has to the best of my ability, just probably better to post them in this thread if there's no one around on IRC.

Also, ST:R (Silent Threat: Reborn) isn't standalone.  The new WoD (Wings of Dawn) is, as is Diaspora.
Creating a fs2_open.log | Red Alert Bug = Hex Edit | MediaVPs 2014: Bigger HUD gauges | 32bit libs for 64bit Ubuntu
----
Debian Packages (testing/unstable): Freespace2 | wxLauncher
----
m|m: I think I'm suffering from Stockholm syndrome. Bmpman is starting to make sense and it's actually written reasonably well...

 

Offline Axem

  • 211
Only issue might be that the new Wings of Dawn requires a custom build (for things like multilock), I don't know if using that as a prototying platform for APNG might be the best idea.

If Kagetsuki needs a copy of the game, I'd gladly gift a copy on GoG for him so we can see this through!

 

Offline jr2

  • The Mail Man
  • 212
  • It's prounounced jayartoo 0x6A7232
    • Steam
Only issue might be that the new Wings of Dawn requires a custom build (for things like multilock), I don't know if using that as a prototying platform for APNG might be the best idea.

If Kagetsuki needs a copy of the game, I'd gladly gift a copy on GoG for him so we can see this through!

I was going to say the same.  Who knows, maybe he'll like it enough to stick around!  ;)

Anyways, Installation of FSO is easiest with www.fsoinstaller.com after you get the GOG.com setup package.  (Up at the top of the forums here, under "Installing FreeSpace Open")  Then you'll have everything set for your compiled version or whatever you coding wizards call it.  Just be sure to run the wxLauncher (recommended) or Launcher.exe (outdated) as admin once if it complains about registry settings so it can set the Volition registry entries for you, after that, everything should run fine -- just select your compiled FSO build or one of the other builds in the launcher.

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
So.... I know it sucks because we were promised help with integration, but is there a reason we can't pull their completed libraries into FSO ourselves?
Cutscene Upgrade Project - Mainhall Remakes - Between the Ashes
Youtube Channel - P3D Model Box
Between the Ashes is looking for committed testers, PM me for details.
Freespace Upgrade Project See what's happening.

 

Offline z64555

  • 210
  • Self-proclaimed controls expert
    • Minecraft
    • Steam
So.... I know it sucks because we were promised help with integration, but is there a reason we can't pull their completed libraries into FSO ourselves?

There isn't, other than nobody other than niffiwan has volunteered to go through with the integration. Looks like we've pretty much gotten scattered over the past few months doing our own projects and trying to recover from the demands of our paying jobs.

Uh... I could give it a look-over sometime soon. But I have a bunch of other projects and house repairs so I can't really guarantee a commitment at this point.  :banghead:
Secure the Source, Contain the Code, Protect the Project
chief1983

------------
funtapaz: Hunchon University biologists prove mankind is evolving to new, higher form of life, known as Homopithecus Juche.
z64555: s/J/Do
BotenAlfred: <funtapaz> Hunchon University biologists prove mankind is evolving to new, higher form of life, known as Homopithecus Douche.

 

Offline chief1983

  • Still lacks a custom title
  • Moderator
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Yeah, I mean, if someone could take a look at it, and have some good questions for them, it might help get the ball rolling with integration cooperation.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 

Offline AdmiralRalwood

  • 211
  • The Cthulhu programmer himself!
    • Skype
    • Steam
    • Twitter
The real problem is that it'll require mucking around in the parts of the codebase nobody really wants to touch if they can avoid it. ;)
Ph'nglui mglw'nafh Codethulhu GitHub wgah'nagl fhtagn.

schrödinbug (noun) - a bug that manifests itself in running software after a programmer notices that the code should never have worked in the first place.

When you gaze long into BMPMAN, BMPMAN also gazes into you.

"I am one of the best FREDders on Earth" -General Battuta

<Aesaar> literary criticism is vladimir putin

<MageKing17> "There's probably a reason the code is the way it is" is a very dangerous line of thought. :P
<MageKing17> Because the "reason" often turns out to be "nobody noticed it was wrong".
(the very next day)
<MageKing17> this ****ing code did it to me again
<MageKing17> "That doesn't really make sense to me, but I'll assume it was being done for a reason."
<MageKing17> **** ME
<MageKing17> THE REASON IS PEOPLE ARE STUPID
<MageKing17> ESPECIALLY ME

<MageKing17> God damn, I do not understand how this is breaking.
<MageKing17> Everything points to "this should work fine", and yet it's clearly not working.
<MjnMixael> 2 hours later... "God damn, how did this ever work at all?!"
(...)
<MageKing17> so
<MageKing17> more than two hours
<MageKing17> but once again we have reached the inevitable conclusion
<MageKing17> How did this code ever work in the first place!?

<@The_E> Welcome to OpenGL, where standards compliance is optional, and error reporting inconsistent

<MageKing17> It was all working perfectly until I actually tried it on an actual mission.

<IronWorks> I am useful for FSO stuff again. This is a red-letter day!
* z64555 erases "Thursday" and rewrites it in red ink

<MageKing17> TIL the entire homing code is held up by shoestrings and duct tape, basically.