Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Auto-generated credits / Update the credits from IndieGOGO #458

Merged
merged 25 commits into from
Nov 23, 2024

Conversation

NQNStudios
Copy link
Collaborator

@NQNStudios NQNStudios commented Sep 26, 2024

Fix #377 / Fix NQNStudios#1

First of all, I've made a file, DONORS.md pkg/credits/Funding.txt, which contains the confirmed names of every IndieGoGo backer who responded so far. There's also pkg/credits/Programming.txt and pkg/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:

  • A startanim.png that stitches together the original credits and new OpenBoE credits
  • rsrc/dialogs/about-boe.xml containing all of the new OpenBoE credits. pkg/credits/about-boe-template.xml defines 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.

@CelticMinstrel
Copy link
Member

CelticMinstrel commented Sep 26, 2024

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.

@NQNStudios NQNStudios force-pushed the credits-overhaul branch 7 times, most recently from e4d2d15 to 2194b0a Compare October 13, 2024 15:48
@NQNStudios NQNStudios force-pushed the credits-overhaul branch 4 times, most recently from bb6570b to 0235bee Compare November 9, 2024 16:50
@NQNStudios
Copy link
Collaborator Author

NQNStudios commented Nov 10, 2024

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.

@NQNStudios
Copy link
Collaborator Author

NQNStudios commented Nov 10, 2024

@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/*.txt for 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.

@NQNStudios NQNStudios marked this pull request as ready for review November 16, 2024 23:55
@NQNStudios
Copy link
Collaborator Author

NQNStudios commented Nov 16, 2024

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.

@NQNStudios NQNStudios changed the title [WIP] Update the credits from IndieGOGO Auto-generated credits / Update the credits from IndieGOGO Nov 17, 2024
@NQNStudios
Copy link
Collaborator Author

NQNStudios commented Nov 17, 2024

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.

@NQNStudios
Copy link
Collaborator Author

@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.

@NQNStudios
Copy link
Collaborator Author

image

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.

@NQNStudios
Copy link
Collaborator Author

image

Copy link
Member

@CelticMinstrel CelticMinstrel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Various thoughts in no particular order…

  • I guess the bitmap font is fine. It's too bad we can't find the original font, but whatever.
  • Stitching the startanim as a build step is an interesting idea. I'd entertained the possibility of composing on the fly at runtime, but I guess this works.
  • I don't think there's a need to save a copy of the "original" startanim. It's not even the original one – it's been modified several times.
  • In startanim-pt-2 it looks like there's enough room to show the names in two columns.
  • It's not like I have an issue with using ImageMagick, but…
    • if you're doing it in Python it kinda makes more sense to use pillow instead? Though I'm not sure if pillow can actually do the things you've done there.
    • Even if pillow won't work or is too much effort, can it at least be done without requiring git bash on Windows?
    • Using cat to 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.
  • There sure is some excessive indentation in the generated about-boe.xml? This isn't really a big deal, but it might be nice if it can be avoided.
  • It seems you've added a new align attribute, so please update the dialogxml documentation.
  • Can we have a better way of detecting "this dialog has hyperlinks" than "it's the about dialog"? Though I suppose that could be done in a separate PR. There already is at least one other dialog that has hyperlinks though, does it not go through that particular code path?

@NQNStudios
Copy link
Collaborator Author

I don't think there's a need to save a copy of the "original" startanim. It's not even the original one – it's been modified several times.

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.

@NQNStudios
Copy link
Collaborator Author

I guess the bitmap font is fine. It's too bad we can't find the original font, but whatever.

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"

@NQNStudios
Copy link
Collaborator Author

NQNStudios commented Nov 19, 2024

In startanim-pt-2 it looks like there's enough room to show the names in two columns.

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.

@NQNStudios
Copy link
Collaborator Author

Can we have a better way of detecting "this dialog has hyperlinks" than "it's the about dialog"? Though I suppose that could be done in a separate PR. There already is at least one other dialog that has hyperlinks though, does it not go through that particular code path?

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.

Copy link
Member

@CelticMinstrel CelticMinstrel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at the generated result, it feels that the second line of ADoS's could be indented a bit more.

@CelticMinstrel
Copy link
Member

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.

Ah, fair point.

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"

Even if he remembers, I can't guarantee that it hasn't been changed by us at some point.

@CelticMinstrel CelticMinstrel merged commit df0c46d into calref:master Nov 23, 2024
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Credits overhaul Credits overhaul
2 participants