Saturday, July 9, 2016

Side Quest

In the past week, I managed to add another glitch effect to the game - A VHS like corruption lines during the game that can double as a total program meltdown during game over. Originally the "game over" screen was supposed to just turn on red noise that would eventually fill it full, but I think this effect is much cooler, so it stays. I was going to add more to the game, but I got side tracked...

...because I decided to write a Pico8 Zine article! The 5th, RPG themed issue of the zine was struggling with getting enough article submissions. I have seen the call for submission for few weeks now, but I thought that writing such article was beyond my capabilities. This mindset of mine changed when the zine editor, Arnaud De Bock posted an example of a very simple RPG combat system from Choccobo World, that he could use a tutorial for. I thought I can figure out how to write such system...

I am a nerd. Outside of all computer related things, tabletop games, and RPGs in particular, were a big hobby of mine since my teens. I even have a whole blog dedicated to them! Messing with the mechanical aspects of those games still is something I really enjoy and making a fully finished RPG (of both tabletop and computer variety) is still a goal of mine, So I had the background for it, I just needed some time to figure it out.

The Choccobo World system is painfully simple, to the point of not being fun. So I took it as a base and added more interesting mechanics on top of it. On paper, I have a pretty good RPG combat system that takes mixes Final Fantasy's Active Time Battles with a skill system from Pokemon. The gameplay is about more than just chipping away HP, and focuses on choices. In my opinion it would be a pretty fun system...but it is waaaaaaay to big for a tutorial. Mainly because of the character limit of the zine article, which is around 6k characters  I had to scale the whole thing down drastically. So I found the essential parts, scrapped everything else and started coding.

Over the next three days I had a working system. To my surprise coding came to me pretty easily. It seems I have learned a lot of things from making the glitchy breakout game, much more than I thought I did.  Sure, the code was a little janky here and there, but I asked few experienced programmers from the Pico-8 community to give me some pointers on how to fix those. With their help, I managed to trim the code to just over 600 tokens in Pico-8. With some help I managed to make a pretty playable, if bare-bones jRPG combat system that can be expanded pretty easily. That's why I called it: Barebones Action Battle System!

As it is now, it focuses on 1on1 battles with an active timer. So the "faster" your character is, the more turns they can take. Because of the article's space limit, I had to forgo the classic RPG attributes and just used simple variables, but I can see how making those variables dependable on character stats would add to the game. The "meat" of the system are the skills. Different skills will will produce different effects. Sure, you can hurt your opponent's HP, but a better option might be to slow them down, or make them less likely to hit you. Sadly, I only managed to squeeze 4 very basic skills in into the game... even the expanded 8k character allowance does not seem like enough. I plan on expanding this system and making it into a series of blog posts after I finished my first game. On that note, I should get back to it...
Anyway, I hope you will check out the article when it comes out, until then, feel free to try the last build of the system here on the right.

P.S Maybe I should make some skeleton sprites for it... Barebobes? Skeletons? It simply makes sense!


  1. Your game is looking great, I love the glitch effects! Thank you for writing this blog, I hope you continue to share your knowledge. I am also a noob to programming but fell in love with Pico-8. I am slowly learning about how to create carts (games, programs, etc.) and I scour the net pretty much on a daily basis for info that is simple enough for a noob like me. Your blog is great because even though I may not fully understand the code (yet), you put plenty of comments in your example code which helps a lot.

    This blog is a great resource I can keep coming back to as my skills grow. I found #tweetcart thanks to you! Cool stuff. The fanzine is also great, congrats on making an article for it... I just wish the Pico-8 manual was as noob-friendly!
    Good advice on looking at the code from games you want to emulate, I have to do more of that... I'm slowly learning, but it's fun and rewarding so far.

    1. Wow! Thank you for this amazing comment, it made me even more motivated to write more content here!

      From my experience, there are few big hurdles on the beginning of one's journey to learn programming. Once you get those basics, it will be downhill from there. So don't give up!

      I was lucky enough to learn some BASIC when I was a teenager, so I knew the essentials, like that the programs execute code from top to bottom, IF and FOR loops and so on. What got me stumped this time was the concept of tables... it took me a long time to wrap my head around those. But once I got over that, things seem doable.

      Yeah, tweetcarts and looking up code (especially of simple or WIP games) are both a great learning resources. The community is also a huge help. If you havevn't you should check out both the Pico8 Slack and IRC. When I couldn't figure something out, the people there were always a great help.

      Also, your comment inspired me to write some snippets of code that do a particular thing and can be implemented into different games. Then I can explain them in detail on the blog. I think it would be a fun exercise that can help others understand code. Thanks for that!

      And once again, thanks for your readership!