Thanks to everyone who played it, shared this little experiment on twitter and especially to those who commented on the game in one way or another. Thanks to you guys BIT.bash got two pretty significant updates since the last post: sound and music (courtesy of adrian09_01) and different behaviors for different viruses/bosses in the game. If you haven't played the updated version, check it out either on the BBS or SPLORE inside your Pico-8.
Sound is hard, you hear me?As someone who stayed mostly with the comfy constrains of the visual media, I had no idea where to start with sound. I mean, I know how the sound maker works in Pico-8 (after all, I have watched a tutorial about it), but I had no idea how to create the sounds I wanted. Fortunately, Pico-8 has an amazing community and in minutes after posting, I had two offers from people who were happy to make the music and sounds for the game. Because Adrian was first to volunteer (and because I knew him from Pico-8 Slack) I chose to work with him on this project. He brought some good ideas to the table and I am quite happy with how the game sounds. What's more important, tweaking Adrian's sound effects got me over my fear of the sound creation. For the next game I will attempt making the sfx on my own.
If you are like me, and you are not sure where to even start with sound effects, but you want to give it a try, do what I did - tweak others' sfx. I started with tweaking what Adrian made for my game, but soon after I was running other games and checking out their sfx. I am still grateful that I can do that in Pico-8 (however, it seems that you can't copy&paste sounds between two instances of Pico-8 running at the same time, so you have to key the sounds yourself).
Of course, adding sounds highlighted some otherwise undetectable bugs. There were things running in the background of my game that shouldn't have (my text scrolling function was the big offender here) and things that technically should be playing sounds that weren't. I still found it fun to debug those (and it made me re-familiarize myself with my 2 months old code, you'd be surprised how much you forget) and it pushed me to code more, which is always a good thing.
Back to the CodeThe addition of the sound to the game was a huge milestone for me. It made me want to finish the game even more. I checked my TODO list to see what I want to tackle next. As I was still kinda lost in my own code, I thought that tackling something smaller would be the way to go. This is why I went with the virus/boss abilities.
Each level of the game has a timer at the top. The higher the level, the faster the timer depletes. When it reaches 0, something bad happens. Originally, the bricks shifted down closer to the paddle. This was an ability of the DROP.DAT virus, who is this big and heavy thing that slowly moves down this fictional computer system. It was implemented first because it was the easiest to do. Honestly, the basic code behind it is: for bug in all(bugs) do bug.y+=8 end.
While the block drop is a decent addition to the breakout formula, there are four viruses in the game the player needs to tackle. I wanted each of them to have their own distinctive feel. This is where the abilities come into play. After an evening of coding, I added new ones to the remaining viruses. BRE3D-V8 now spawns little copies of itself that walk back and forth. CYSTA_B grows new "dummy" bricks (something, something "brick the computer" joke) and HAPPY.84 scrambles the bricks on the playfield.
Now that I have the abilities in, I am planning on tackling implementing the Boss levels this week. This is the biggest thing that is left on my todo list (as I have scrapped the extra enemies akin to the BRE3D "spider", I want the game to be more streamlined than full of random features). I already got a head start, as I have all the code for the breed-v8 viruses on the board already in place after implementing its ability. So, wish me luck that I can figure out all the code :)
After that, there is only some flavor text and a little bit more polish and I will call it done! Can't believe that I am that close to actually making a game. Feels good.