ENCODE/PLAYBACK INSTRUCTIONS: For technical reasons I will explain later, this recording will desync if you look at it funny. As such, regardless of if you are editing, playing back, or encoding the demo, you MUST have the following parameters set:
- Ruffle arguments "-g gl --no-gui" and Force software rendering ENABLED.
- Runtime -> Time tracking -> clock_gettime() monotonic CHECKED.
- The game version used is the updated version with new 2016 Original Soundtrack hosted on Newgrounds as of writing; the SHA-256 checksum for the SWF file: 42AEC70ADAAA70B5FC9D937CF48AFCEC9C5CC0E6A36944DFE142B935498CAE62
- Additionally, although I don't think this is necessarily required, this run was recorded on the following Linux system: Linux ubuntu-vm 6.2.0-32-generic #32~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 18 10:40:13 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
DESCRIPTION: This TAS was an absolute nightmare to record for one simple reason: it isn't actually a Flash game. Yes, it's a game, but it was made before the introduction of ActionScript, and therefore contains ZERO traditional code or logic whatsoever. All gameplay is implemented via hacked-together movie objects hidden offscreen which track information in lieu of real variables, etc. This means that, among other things, almost nothing in the actual game is tied to the SWF file's stated framerate, because movie functionality provisioned directly by the player can run as quickly as the system can allow without an actual game loop to hold things back. Where this becomes a problem is in the boss fights, where you can shoot your gun literally as quickly as you can click, without limits (the muzzle flash will desync, but that's purely a visual artifact)- RTA speedrunners use 5000CPS autoclickers to shred these bosses instantaneously, but I couldn't do that unless I wanted to slog through making a 5000FPS TAS recording that would probably be a gigabyte large and encode to a video a terabyte large. I ended up recording at 240FPS, which is 10x the game's 24FPS stated in metadata; this is also why the syncing is so tenuous, as the timing is extremely precise and the game is very inconsistent about when it actually throws out a new "frame" or not. While the boss fights are still way slower than the RTA autoclicker splits even at 240FPS, I save more than enough time everywhere else to beat the RTA world record by 4.49s. (I ended the timing at the last click required to deplete Cassandra's health, as per the "end at last required input" guideline. The health bar only actually depletes a frame after, but that's because of some framerate jank or whatever, nothing after frame 7601 is necessary.)
However, while the framerate may matter very little for controlling the game, that doesn't mean that time doesn't play a role. That's code for, "if you go too fast everything breaks, thanks Tom Fulp". Everything starts innocuously enough through the Alucard fight, but it all goes to hell when you reach the burning teachers' lounge. Here's a list of all of the problems I encountered:
- If, from using the fire extinguisher in the lounge to reaching the first classroom you do not spend enough time waiting, then the first classroom will not transition to its normal second state where it is possible to use the goggles to see the key. Even now, I do not actually know where waiting is required or how much you need to wait for it to trigger properly, and most of the rerecords are me trying to figure this out since this is a completely novel problem (even autoclicker speedruns don't go fast enough for this to be a problem.) Ultimately, I ended up just enabling slow-motion and pissing around with it unpaused until I got from A to B in reasonably fast time without that issue triggering.
- On the way back to the teachers' lounge, moving as fast as possible will result in Cyclops' ghost coming back and wasting your time with a repeat cutscene- to avoid this, I was able to delay clicking the East button by 1-2 frames and that fixes that.
- If you enter the teachers' lounge too quickly, then the room will be on fire again. Wait some amount of time (not sure exactly how much), then enter and it will be fine.
- While this a version thing rather than a timing issue, one oddity (and a difference between the 1999 and 2016 version of the game) is in how Alucard's fight works. Namely, you can deal damage as quickly as you click, but a cycle ends as soon as you deal a certain amount of damage to him. In the original 1999 version, the amount of damage you can deal is super low, and I almost ragequit making this TAS because I thought I was doing something wrong, but then I tried the 2016 version and I was able to 2-cycle him.
NOTES ON THE GAME ITSELF: Pico's School was absolutely revolutionary, and quite possibly qualifies as the single most important Flash game ever made for how it advanced the medium in ways completely unprecedented at the time it was released in 1999. Prior to Pico's School, Flash games really were just interactive movies; there was no state, and so it more or less amounted to 'click a button to see a funny canned scene'. Pico's School was the first Flash game with actual gameplay, and even is arguably responsible for putting Newgrounds on the map even more than even Club a Seal, Assassin, and Teletubby Fun Land. When I finished this TAS, it occurred to me that the Cassandra boss fight might pose a content issue; while the problematic graphic in question has all the fidelity of a 10-year-old's peurile classroom doodle, it's still definitely on the line. However, talking to a staff member via Discord, I was convinced that it's still worth submitting this, as even if it doesn't get accepted as a publication it can still be preserved as a submission, which I think this game deserves.
ikuyo: Claiming for judging.
ikuyo: Delaying until a proper system to handle content warnings is available.
ikuyo: Well, we have a working content warning system. Thanks to our site developers and publishers! We can evaluate this movie properly now.
And... it appears the movie is not well optimized. As pointed by Spikestuff, input for this rather simple game is sloppy, and loses significant time thanks to lacking optimization techniques common to the genre.
Techno: Despite what my reception to this movie would lead you to believe, I like your work. But I can't help but feel that you have not put enough curiosity or interest in some of these movies. I've seen you do really nice work in the recent past, but not all of your work matches what we've seen you be capable of. You can do better than this, and I want to see you do that.
Rejecting for poor optimization.