Dev Diary 5

·

Murillo Titon de Souza
@titonbrujah
Bugsmith @bossastudios

Greetings, my doughy friends! I am Murillo (a.k.a ‘Breadly Serious’) and I’m a programmer at Bossa who is currently working on I Am Bread. My job is to take all the pretty things the artists make and all the fun stuff the designers create and glue it all together. Sometimes the glue sets well, sometimes it makes you get stuck in the main menu and then people justifiably yell at me.

As you may have heard, for the next update we’ll have the all new Garage level, as well as a new game mode! The Garage level is mostly other people’s work, so I spent this week (and a good chunk of the last) laying down the foundations for the new game mode, Cheese Hunt, while my fellow brother-in-coding Mohammad ‘Master Baker’ dealt with the gameplay for it. Although I probably should, I have no idea what Charles ‘The Bunnisher’ has been doing all week, but I’d imagine he is most likely plotting to replace my desktop background with pictures of Timothy Dalton. Again.

The first step I took was figuring out how to update our save file structure to support that, so I created a new one, and made all the code that updates the old save file version to the current one (This will be important later on, so remember it). This lead to creating concepts of Game Modes in the game code, and from then on it was a big game of chasing around places where this concept needed to be introduced and properly dealt with. Now that the new different Game Modes existed, it was time to start gluing it all together. The ‘Master Baker’ and I discussed about how to reorganize our levels structure, and he went off to make the necessary changes to that. So I went the opposite way to deal with how players would pick the level they wanted to play. Luke ‘Judge Bread’ designed a new level select UX, and Klaudia ‘The Loafely’ adjusted the existing Fridge Calendar UI to reflect it, and I was tasked with implementing it, which was a fairly lengthy but straightforward job, with a couple of odd bugs to sort out.

Yes, I’m aware this might sound boring but I swear programming is fun and if you don’t think so you don’t know what you’re missing.

When almost done with the new calendar, our QA Matt ‘Dough Funny’ (which you might know from the awesome Bread Diaries video series) reported a weird bug with it. Upon investigation, it was caused by *gasp* a corrupted save file!

There is only one thing that will make a player angrier than not being able to play the game (although in the case of I Am Bread, maybe playing the game makes them angrier), and that is losing progress. So corrupted save files are definitely Breadly Serious, and I really really don’t want to be the one that makes you guys lose all your hard earned A++’s. Well, time to investigate what went wrong. At least the changes I made haven’t gone live, so it should be fine. Right?

Nope. The corrupted save file is…

of the previous version. The one currently live.

[Duun duuuun duuuuuuuuun!]

This has now become officially scary, so I ponder whether or not to tell Vince ‘Bread Freud’ about it. His job as a producer is, put simply, to worry about stuff and bother people about it. Frankly, I don’t want him bothering me. He is a professional at it. So I decide to investigate further before that.

I grabbed the offending save file from ‘Dough Funny’, opened it up, and figured out the problem with the data. I dug around the code, but couldn’t make sense of what was causing the corruption, so I turn to trying to reproduce it. I set up some test code to create a new save file and save the same data to see if it happens again. Somewhere down the line, I swear I made it save to a test folder; also somewhere down the line, something went weird and it was changed to save to the actual folder where the game saves, and this ended up giving me the clue that solved the puzzle. I would like to attribute it to my own genius, but I can’t lie: it was simply a happy accident. Skipping the specifics, it was caused by code unrelated to the changes I made, but that hadn’t gone live yet. Crisis averted. Vince will only know about it because he is reading it here, but now there is no reason to worry or bother. All is well.

With that out of the way, I headed back and finished the work on the calendar. It is now ready for release, and hopefully everything else also is.