(Link to video)
Microidvania is a short Mentroidvania-style game that's played all on a single screen (excluding the boss fight) in which the player's power has disappeared and must regain it by collecting the 5 crystals and defeating the boss to restore balance to the cosmos. Or we can just regain a fraction of our power by exploiting a large hitbox and defeating the SKRAAGHRHSCH in record time.

Game objectives

  • Emulator used: BizHawk 2.8
  • Aims for fastest completion

Comments

Normally you'd need to go around the screen and collect all 5 crystals which give attacking power, walking through walls, super jump, acid protection and rocket boots in their intended order. However, all we need to defeat the boss is attacking power and rocket boots (to get up there) which are inconveniently placed in acid which requires acid protection which requires the previous two abilities to even unlock. Conveniently though, for some odd reason, the rocket boots crystal has an abnormally large hitbox and can be accessed from outside the acid.
All that's left is the boss fight where I found the most timesave over my previous attempt a few months ago. Its pattern is completely preset and infinitely loops and it starts also in a really convenient part of the loop. I was never actually able to work out exactly how much damage is required to defeat it but I split it up into two phases: when it comes down and when it charges towards the acid.
The first phase is spent dealing as much damage as possible. It seemed that the projectiles despawned after a certain amount of sprites where on the screen so working out the max damage possible was a little tricky but I think the most amount damage possible in phase 1 leaves just two remaining hits that can be quickly dealt in phase 2.
You can get the game here: https://juzek.itch.io/microidvania

feos: Claiming for judging.
feos: I should stop trying to improve submissions I judge!

ThunderAxe31: Claiming for judging.
ThunderAxe31: Replacing file with a 206 frames improvement, and adding feos to the authors list.
This is a cool little game. I've tried a lot for improving it but I couldn't, despite the fact that it felts like there is still something that can be squeezed somewhere!...
Accepting for Standard.

despoa: Processing...

TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14776
Location: 127.0.0.1
This topic is for the purpose of discussing #7834: Cephla & feos's GBC Microidvania in 00:13.24
Alyosha
He/Him
Editor, Expert player (3514)
Joined: 11/30/2014
Posts: 2713
Location: US
You are awarded the weapon after collecting the boots even if you don't already have it, so you can skip collecting it and save ~1 second.
Cephla
She/They
Skilled player (1079)
Joined: 8/7/2021
Posts: 92
Location: Southern England
https://tasvideos.org/UserFiles/Info/638052470398915167 (total timesave of 105f (somehow, didn't expect the textbox to take up so much time)) That's interesting, I'd noticed that the acid also didn't affect the player after getting rocket boots so I'm thinking that after acid and rocket boots are collected, a different scene is loaded that has no death triggers in the acid. I'm unsure why it'd unlock shooting but not the other two. Thanks for the suggestion btw, I really didn't expect 105 frames to be saved, especially with having to wait for the enemy to move
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
MarioAtWork wrote:
https://tasvideos.org/UserFiles/Info/638052470398915167 (total timesave of 105f (somehow, didn't expect the textbox to take up so much time))
Improved by 2 frames https://tasvideos.org/UserFiles/Info/638057037840915321
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Cephla
She/They
Skilled player (1079)
Joined: 8/7/2021
Posts: 92
Location: Southern England
feos wrote:
Improved by 2 frames https://tasvideos.org/UserFiles/Info/638057037840915321
After an hour+ of trying, I wasn't able to improve upon this is any way. I don't think the movement can be improved because of the enemy and having to wait for it. For the boss fight, it seems like the two left presses are the main contributing factors to the two lag frames and moving these around or getting rid of them changes how many/where the lag frames are but only enough damage is dealt with the L presses here so that can't be changed. My next big idea was to reduce air time after the initial jump to be able to get out of the acid earlier to be able to walk earlier but doing the final B press just one frame earlier doesn't work. Just thought I might share my thought process on this
Alyosha
He/Him
Editor, Expert player (3514)
Joined: 11/30/2014
Posts: 2713
Location: US
Console verificaiton of feos' improvement: Link to video
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14776
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [4983] GBC Microidvania by Cephla & feos in 00:13.24
Joined: 12/9/2022
Posts: 2
Location: USA
Hi! Dev here. I was browsing my analytics, and found that my highest visits this month are from a website I had never heard of. and I thought "how curious". Nice to meet you all. To fill in some gaps: I was having trouble getting the switching lighting between areas on the screen to register, so at the last minute I was forced to lower the hitbox of the acid to match that of the rocket boots. SKRAAGHRHSCH has 10 hit points, but I don't think that matters too much for you. Yes the "one screen" is a little bit of a lie, as there are in fact 10 scenes. Your character's items and such stay with you, but there is no hitbox in the boss room to test for acid. https://imgur.com/a/NpKz6bQ I have a unique scene to show the player moving upwards. In this "RocketShoes" scene, all collisions except for getting up to the top and most of the player input is turned off, and then the scene switches to the "FinalBoss" scene. This is likely why the first B press gets eaten, because you are not in the final boss scene yet. I am honored that my game has been the subject of such activities, and I am curious about where you found it, and what makes a game a good candidate for TAS? I suppose it is easier to do GBC ROMs because you could play them in something that manipulates time, etc, where as a browser-based game is a little tougher, or a game with a truly random generated world may be difficult to maintain consistency between runs. (for instance, https://juzek.itch.io/cellracer is probably not very possible as it currently is, although it would be easy to make an off-line build that is more consistent for you all. I would recommend another game of mine that was actually designed as a speed-run : https://juzek.itch.io/portal-hurdle
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
juzek wrote:
Hi! Dev here. I was browsing my analytics, and found that my highest visits this month are from a website I had never heard of. and I thought "how curious". Nice to meet you all.
Hello!
juzek wrote:
SKRAAGHRHSCH has 10 hit points, but I don't think that matters too much for you.
Can you tell us how initial hit detection works? I only found that the boss kinda collects bullets until a certain point, and only then their damage is registered in the HP meter, which adds some annoyance to movement testing, because you have to emulate farther ahead to see the effect of your hits. But how does the game decide "yeah I've been hit, keep stacking the damage until later".
juzek wrote:
I am honored that my game has been the subject of such activities, and I am curious about where you found it, and what makes a game a good candidate for TAS? I suppose it is easier to do GBC ROMs because you could play them in something that manipulates time, etc, where as a browser-based game is a little tougher, or a game with a truly random generated world may be difficult to maintain consistency between runs. (for instance, https://juzek.itch.io/cellracer is probably not very possible as it currently is, although it would be easy to make an off-line build that is more consistent for you all.
If it's a Flash game, we run Ruffle in libTAS. But its input editor is not as advanced as one in Wiki: BizHawk. Randomly generated game would indeed be hard to figure out, but dedicated people can still work with them in theory, by simply rerunning it with a different initial seed until they like the result (the most advanced users may even disasm it).
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Joined: 12/9/2022
Posts: 2
Location: USA
Can you tell us how initial hit detection works? I only found that the boss kinda collects bullets until a certain point, and only then their damage is registered in the HP meter, which adds some annoyance to movement testing, because you have to emulate farther ahead to see the effect of your hits. But how does the game decide "yeah I've been hit, keep stacking the damage until later".
I am developing in GB Studio, so the granular of what is happening each frame is a little hidden, I can't easily determine how many times a script is being called and run at once, but the script attached to the boss is like this: On Hit with collision group1 (bullet), •Change the sprite to the negative color •Wait for 0.2 seconds •Change the sprite to normal. •Increment the damage by 1 •Check for boss death Obviously the whole script can't run each frame (otherwise a "Wait" would just pause the game), but I don't think it forces the entire script to happen for each time it was called. While this script is waiting for the 0.2 seconds, other bullets can be fired off. So my guess is that the 0.2 Seconds you have to wait for the animation is making it not able to continue on to the Increment and Check Death parts, but if multiple script calls are happening at once, it might just do portions of it. If the animation is tied up, it may be incrementing the damage, but if you can't get all 10 hits in at once, you may have to wait for the second hit animation. GB Studio limits the number of actors and sprites to avoid memory issues, so it limits the number of projectiles to 5 at any one time by default. If the dev wanted more, they would need to modify the engine code, and make sure that other aspects weren't using up much memory.