My adventures with Global Game Jam 2019 and the Bitsy Museum Hack


SCROLL DOWN TO SEE HOW THE BITSY MUSEUM HACK GETS FIXED!

If you're reading this you know I was part of a bitsy anthology a.k.a a collab, alongside Felipe N. Cassina, Julián Kopp, Nicolás Delfino, Leno, and Pablo F. Quarta. Most collabs are put together in the span of months, but this collab was made in 48hs for Global Game Jam!

The way we went about this is, each one of us made a bitsy that represented what home meant for us, and I put them together using the bitsy museum hack. For the neighborhood map I told everyone to make an extra room on their bitsies with their home drawing, and then I took the data from said room and put it in a single unifying bitsy. This meant I spent a ton of time messing with bitsy data. I most def don't recommend this, even though I learned a ton about bitsy guts this weekend. Also, I might automate this process in the future, because I don't want people to go through what I went through. I'm just unsure of how to go about this.

By Sunday at 2pm I had:

  • Done two bitsies. One was a single room kitchen with a very odd vision about victorian kitchens, but it still counts.
  • Integrated everyone's work into the neighborhood.
  • Added music to every bitsy.

Things were looking good until I uploaded the game to itch.io and I noticed the bitsy museum hack was broken. You could access the homes from the world map, but if you tried to exit the homes, you would be caught in a redirect loop that would eventually freeze your browser. Oh, no!

This bug was terrible and super tricky, because the whole bitsy worked just fine if you just downloaded the bitsies and opened the "index.html"file on your browser. So we made a downloadable game, and I spent the remaining bits of Sunday, and my spare time of this Monday to tackle the issue. I loathe making people download games, and I loathe it even more when people have to download something that normally works on the web.

I took me forever, but I fixed it. You can read how, at the end of this post =D

Even though I had to fight a very weird bug from the hack I chose to use, this was the chillest global game jam I've ever been to. A lot of my team were using bitsy for the first time, and now have a very good grasp of the tool, I'm now a bitsy wizard. Besides, very wholesome stuff was made that weekend, and I got to pet tons of cats <3

I definitely want my future Global Game Jams to be more like this one <3

Here's the reworked version of the hack:

The hack grabs several exported bitsies, which are html files, and uses a bitsy called "index.html" to tie them all together. For starters go through steps 1 and 2 of the original hack.

In your museum bitsy replace:

if (end) {        
    startNarrating( ending[end.id], true /*isEnding*/ );    
}

with:

if (end) {
    /*    BITSY MUSEUM HACK:              
        jump to the apprioprate game! */        
    window.location.href = [end.id] + ".html";    
}


Now in each of the games you want to showcase search:

var isEnding = false;

and replace it with:

var isEnding = false;
var redirectBitsy = false;

Now in those same files search for:

else if ( isEnding ) {        
    if (input.anyKeyPressed() || input.isTapReleased()) {           
         /* RESTART GAME */            
        reset_cur_game();        
    }    
}

and replace that with:

else if ( isEnding ) {        
    /*     BITSY MUSEUM HACK:                            
        instead of reseting on ending it takes player back to the museum               
        also removes need to click button to reset */        
{            
    if (!redirectBitsy){
        redirectBitsy = true;
        window.location.href = "index.html";
    }   
}

You're now done and your game will work everywhere!

You might wonder why the original hack breaks on hosted servers like itchio, but works fine locally. My hypothesis is that it's because the isEnding check runs in the update loop. Locally, it's easy for the browser to open the museum bitsy before the update loop runs again, but in a hosted version, this load takes longer. So the game keeps calling the redirect and the browser never gets to actually take you back to the museum and it overflows, freezing your browser in the process =D

The window.open function was replaced with window.location.href, because there's less risk of the browser recognizing the redirect as a pop-up and blocking it. I hope all of this gets merged into the original hack.

I would say that debugging this was fun, but it was actually hell, and without using lunafromthemoon as a sounding board and rubber duck debugger, I might have nerve cracked it. A ton of time was lost, because I was super sure a policy toolkit update, like the audio one we have in chrome, was to blame. I was wrong! I'm glad I was.

Get Home is...

Comments

Log in with itch.io to leave a comment.

(1 edit) (+3)

hi! Thanks for debugging the museum hack!!

I got it working! Though, now that we are in Bitsy version 7.2, a few things have changed that I thought I would mention here in case anyone else wants to use your fix for the hack!

The first code to replace in the Bitsy Museum should look like this:

if(end){
    startEndingDialog(end);
}

and be replaced by:

if (end){
    /*    BITSY MUSEUM HACK:
    jump to the appropriate game! */
    window.location.href = dialog[end.id].src + ".html";
}

Then just one more small note, I think in the last code block you have here on this page (the one above "You're now done..."), there is an extra open bracket after the comments.

Other than that it works for Bitsy v. 7.2!! I tested it online in itch too and it works! Hooray!!