Cool Jams Inc – Making a Pokémon Clone with Crayon Language

14711419_10206155677965726_2926430295036967017_o

Earlier this month, I attended a local game jam called Cool Jams, Inc., which was inspired by (and not necessarily affiliated with) Polygon’s CoolGames, Inc. podcast. The premise of the podcast is to take terrible game ideas from Twitter and flesh them out into a playable game design. The jam’s premise was for people to take random ideas from the show and actually build them, while often adding their own spin to them. The event was hosted at Seattle’s own Indies Workshop, with an itch.io page for submissions.

I was really looking forward to this jam, mostly because I knew a lot of people who’d be there and I was looking forward to hanging out with everyone. I’ve participated in tons of game jams before, so I was excited by this jam’s change of pace. In that spirit, I decided ahead of time that I wouldn’t use Unity for this project. I was originally thinking of using Flash and ActionScript 3.0 just for nostalgia’s sake. But then my friend Blake O’Hare jokingly suggested that I use his Crayon programming language, and I thought, “sure, why not?”

Crayon is literally a programming language that Blake made. It’s not a library. It’s not a translated language. Crayon projects run on their own VM which can be exported to a variety of platforms including Web (JS & HTML5), C#, Java, Python (PyGame), and Android (still experimental). I’ve seen Blake make some pretty cool games using Crayon, and the idea of trying it out sounded pretty fun.

The random theme that I got was: “Whatever your grandma thinks Pokémon is, based on you playing it at her house during the holidays.” There were a lot of hilarious ways to interpret the theme, but most of them sounded really unplayable or just plain boring. I ended up settling on the idea of a standard Pokémon clone that emphasized “poking” by having the battle system involve a lot of WarioWare-style touch-screen minigames.

Drawing to the screen!

Drawing to the screen!

Even though I knew that working with a new technology was going to slow me down a lot, it was still easy to be surprised by how slowly I was able to make progress. Simple things like drawing to the screen and getting menu buttons to work, they all felt like big accomplishments because everything was new. I was pretty impressed by Crayon’s API’s, but I was mostly left to make everything “from scratch,” which was kinda refreshing in its own way even if progress was slow as a result. There were multiple times when I felt pretty proud after a productive hour, but it wasn’t until I literally stepped away from my computer that I realized that I had just spent all that time on something really minor.

A menu! Buttons that react to mouse events!

A menu! Buttons that react to mouse events!

Once you’ve built up enough experience with a particular language or technology or tool, then you feel like you can just “fly” with it. You reach the point where you can truly focus on what you’re making rather than the tools that you’re making it with. Blake has definitely reached that point with Crayon, and I’ve seen him make games terrifyingly quickly with it. I’ve heard people say similar things about my skills with Unity, which makes feel that contrast between learning and “flying” more strongly, and therefore I’m more likely to get impatient when learning new tools.

You can walk around town! And challenge people to battle!

You can walk around town! And challenge people to battle!

I decided not to work with any other programmers since I prefer to learn new tools through solo projects. For art, I put together cheapo placeholders that were eventually replaced by Indiana Buchanan, who was working remotely presumably because the local meetup was maxed out of RSVPs. It’s also worth noting that Indie had a Pokemon-themed avatar on the jam’s Discord server, which I didn’t even notice until after I asked him to work with me on this project.

That charmander!

That charmander!

The music was provided by my friend Evan Witt, who I’ve worked with in previous jams. During this jam, he also worked on two other projects: Blake’s own Where’s Walzyx (yes, another Crayon game) and PranksterWizard.

I expected the game to turn out to be pretty boring, but part of that was intentional just to keep things in scope, considering how slowly I was moving with these new tools. At least the final product feels somewhat like a game with a recurring gameplay loop, even if it is really shallow.

The final product!

The final product!

Overall, I’d say this was a great game jam. The premise for the event was about as weird as expected, but we all had a pretty great time. 🙂

Download Grandma’s Pokemon (Windows)
Read the source code

Leave a Reply

Your email address will not be published. Required fields are marked *