Progress Report
Added 2022-12-09 14:03:57 +0000 UTCGreetings, everyone!
As Christmas approaches, it feels like these progress reports are happening more and more often. Obviously, they aren't, but it sure feels like it.
Since last time, my work has been focused on tiny things that I seldom had to concern myself with in Long Live the Princess. These are mostly UI related in ways that don't matter much for a visual novel. For a card game, however, they are absolutely vital. And I'm discovering that some things are more challenging than one might think.
Perhaps most importantly, this week saw me doing crucial optimization work on the Supermodel prototype. I never needed to optimize LLtP, but during my latest tests of the card game's final turns, the framerate was dropping alarmingly low when the screen was filled with cards. Keep in mind that my computer is quite powerful and up-to-date, yet it was seeing framerates almost as low as 20 FPS. Clearly, I could never allow myself to publish a game in this state, so I set about optimizing.
Essentially, I wrote a system that keeps track of graphics from previous frames and reuses them unless something specific has changed. This eliminates almost all the need to generate new graphics for the card between turns, leaving the engine to simply draw what it already has available. The effect was dramatic, to say the least. I went from around 22 FPS to more than 144, probably way more. The framerate is locked to my monitor's frequency (144 Hz) now, and no matter how many cards I put on the screen, it doesn't go below that. As far as optimizations go, they can't get any better than this.
I also worked on UI design for the card game. One of the basic design philosophies I have for this game is that it shouldn't feel like a Ren'py game, even if it runs in that engine. I'm taking significant steps to hide the typical Ren'py symptoms, instead making the game look slick and professional (I hope) in ways you might be unused to seeing in the adult gaming industry. The downside is that I'm not particularly good at creating individual UI elements, so it takes time, and not everything is a success on the first attempt.
This week, the big UI challenge was to make what I call the "Heat bar," a part of the UI that looks like a progress bar (but cooler). It is always visible during the card game and allows you to track Heat, the most crucial resource in the game. I've been going back and forth on how I wanted this to look and act, but I finally took the plunge and created it. The results are very promising, making it almost look like something you'd see on a photo camera's LCD screen (it's thematic!). It's also instantly readable, giving you a quick overview of your current status and where you are in relation to your goals.
I've still got a few things to tweak with the Heat bar, but it's almost finished. Phew!
Finally, I've spent a little time daily working on the music. I still have nothing to show for all my efforts in this field, but that's because so much of it is front-loaded in terms of difficulty. My latest work is at an advanced stage already and sounds really cool. I'm planning to feature this as one of Vanguard's (Ida Yasuda's) themes in the game, specifically during the card game itself. And since I compose the music, I can pull off some cool tricks I would otherwise have been unable to. For example, I plan to progress the music in stages. At the beginning of a card match, the intro section loops continuously until turn 1 begins. At this point, the main theme kicks into action and continues to loop seamlessly until the match is over. I couldn't have done that with licensed music.
In addition to these big (?) features, I keep making small Quality of Life-adjustments here and there. For example, I changed how cards are dealt on the opening turn so that you are guaranteed to get at least one card of the type you need to get your Heat engine going. Without this change, you might have had bad luck during your initial draw that might as well have doomed you to failure, no matter how well you played. I want the game to be fun and satisfying to play, not frustrating. Challenging, to be sure, but always fair.
And that's it for this week. This whole mess of a design puzzle is coming together meaningfully, leaving the path to the prototype's backer release ever shorter. I long to put this baby in your waiting hands, but there's still work to do.
Until next time!