Auto-generated credits / Update the credits from IndieGOGO #458
Reference in New Issue
Block a user
No description provided.
Delete Branch "credits-overhaul"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fix #377 / Fix nqnstudios#1
First of all, I've made a file,
DONORS.mdpkg/credits/Funding.txt, which contains the confirmed names of every IndieGoGo backer who responded so far. There's alsopkg/credits/Programming.txtandpkg/credits/Graphics.txt.I'm going to email every backer and make sure they get a chance to verify their name, change it, and if they didn't select the reward, maybe it was an accident, so I'd add those names later.I've emailed the backers several times for name confirmations. Only 5 backers have not yet confirmed. I've pulled their names and will add them later when I get ahold of those folks.The script,
pkg/generate-credits.py(which depends on ImageMagick) must be run manually whenever we change the names in the credits.This script generates 2 things:
pkg/credits/about-boe-template.xmldefines how the generated dialog will look.So if the credit names change, or about-boe-template.xml changes, we run the script again. And we stage the files that it changes.
I think it's better for this to be manual, not integrated with the build, because ImageMagick shouldn't be required for building the code, and integrating scripts into 3 different builds (scons, visual studio, xcode) is not worth the time and nightmare it take.
I've created #469 to track more names we need to hunt down to credit all the programmers and artists that have been missed.
If you don't hate the approach that I've taken/the look of the new startanim.png, then this should be ready to merge and close the issue. It handles all the meat of the overhaul.
Definitely need to verify exactly what name they prefer to be referred to by. Maybe there are some who'd like to use a pseudonym instead of (or in addition to) their real name.
With that many names, it seems iffy to put them in the scrolling credits (though I wouldn't say it's impossible). Regardless of whether they go in the scrolling credits, they should also go in the about dialog… which probably means the about dialog will need to be cleaned up to avoid the "two overlapping text blocks that properly line up based on mutually exclusive whitespace" mechanic.)
I don't really like the idea of parsing this file to pull out the bullet points, but I guess there are worse ways to do it? There is also the possibility of parsing it at build time though, and dumping the output into the strings folder.
The approach I'm working with now, is to parse the file and generate the image and DialogXML from a bash script that we will have to run manually when we change credit metadata. Then we stage the generated files.
I think manually is better than build-time in this case, because every time we add a build-time step, we have to implement it for Scons, Xcode, and Visual Studio, which is a nightmare every time.
Edit: Also ImageMagick would become a build dependency in that case, which it shouldn't be.
@CelticMinstrel The start animation with added credits doesn't look great, but I think I'm all done with the automation required for us to extend the about menu and start animation with lots of missing open-source credit information.
I started collecting this in
pkg/credits/*.txtfor each type of contribution. Each text file can have a Not Confirmed: heading where I've put backers who haven't confirmed yet, but also where I've put repo contributors who might want their real name instead of GitHub username. And I know that more people might have contributed art that only you would know how to try getting in touch with them.If you pull and build this branch, you can see how it looks with the confirmed names that I have in so far.
I cleaned up the git history and edited the PR description to cover most everything.
tl;dr Every name this adds has been confirmed, and adding new names is trivial now.
Actually--it's not gonna be very hard to make the credits font match, even without knowing what the original font was. Enough letters are present to extract a bitmap font from it, and only be guessing at how a couple letters might have looked.
EDIT: For context, I asked a lot of knowledgeable people and did a bunch of digging to identify the startanim font but came up with nothing.
@CelticMinstrel I've just gone and made a proper bitmap font out of the startanim letters that we have. The only ones that I had to create myself were
QXYZ,0,(),jq, and I think they look pretty good and fit in. If we get more contributors with numerals in their names, accent marks, etc. we will have to expand the font. I made it with FontForge on Mac.This makes the generated startanim look way better, more cohesive, and I think turns this PR into all upside.
Now that I think of it, I think I want to change this so it says "Created 1997" and remove the "All Rights Reserved". Maybe instead of "All Rights Reserved", "Free and Open Source", or "Community-owned" or something although this scripty font is trickier to mess with than the smaller one and has less baseline letters to work with.
Various thoughts in no particular order…
catto receive keyboard input is kind of terrible… though I guess it's being piped in programmatically so at least it's not confusing for the user.alignattribute, so please update the dialogxml documentation.When I changed the header to "Created 1997, free open source", it eliminated some examples of letters in that specialized font. We might wanna hold onto those.
We could ask JV if he remembers, and maybe get access to the full font later. I bet he won't be quick in responding, likely forgot, and/or the answer could be "it was a custom bitmap font to begin with and I lost the file"
The Almighty Doer of Stuff's name is the only one that goes past 50% of its width. Splitting it into 2 lines with the second one indented, would make 2 columns possible which I agree would be better.
EDIT: Off the top of my head, I don't know if wrapping overlong names can be done automatically in ImageMagick (especially using a pre-calculated line count to get the height for the image) so detecting overflow and manually wrapping names would become part of the updating-the-credits flow. Pillow might have that feature? I've never used Pillow, though. Eliminating ImageMagick and/or the Git Bash requirement is something I'd like to put off for the future also.
The other dialog with hyperlinks was the only one, and handled specially. I've gone ahead and made it so all hyperlinks are wired up automatically.
This could go in the cpp, right? Should probably also have
extern.Looking at the generated result, it feels that the second line of ADoS's could be indented a bit more.
Ah, fair point.
Even if he remembers, I can't guarantee that it hasn't been changed by us at some point.