Status update: Rocket Punch

It’s coming up on 9 months since I realised that my life wasn’t really going in the direction I wanted it to, quit my job, sold my flat, and slowly started working on this game I’d been going on about for years.
It’s been a while without an update, if you follow me on twitter you’ll have seen screenshots and a gif here and there but I guess now is about time for a real run down on what’s going on.

So I moved back to my parents place for a while, got a part time job to pay the bills, and spent the next few months building the basic structure of the game – one of those old faux-3d things you’d see in the 90’s in games like Space Harrier, Outrun, Chase H.Q, and Road Rash.
Sega used to call the arcade boards Super Scaler games, it’s a nice way of producing a 3d effect that can run on piss poor hardware – there were even Game Boy games that used the technique.
It’s a big nostalgia thing for me, I grew up playing these type of games on my Mega Drive, but also it lets me make something with a good sense of motion and speed without needing to rely on someone to make 3d assets for the game. A perfect fit with my requirements.

After getting the super scaler style movement up and running I got all of the basic gameplay elements together, it’s made so that you have to imitate old TV depictions of video games, waving your controller around and mashing buttons to guide your rocket powered fist to punch things in the face as they come at you, it’s simple, but it should allow for a lot of variation and weirdness on the sides.
There’s also.. well.. a bit more to it than that. But I really wouldn’t want to spoil the big surprise now would I?

holy shit!

So with the basics in place I applied to Sony with the game (now called Rocket Punch), and kinda shockingly to me they’re okay with me putting this weird little thing out on PS4. That means that my biggest block is out of the way, and even if I don’t get a publisher lined up then the game will still come out, the time spent developing won’t be completely wasted and I’ll have something to show for the risk I took to do all this.. Whatever I end up doing next..

So after getting approval to bring the Rocket Punch to PlayStation, my next milestone is getting the game ready to take to publishers. That means getting those secret additional mechanics I alluded to finished, a few demo levels polished up, my devkit ordered and the real motion controls implemented, get it running on Sony hardware and then we’re good to go.
With business stuff to deal with at the same time that puts me maybe two months away.
I’ve just moved house and have more of a real work space now, and the Christmas rush at my part time gig is over, so I’m pretty hopeful that I can meet that target.

So I suppose that’s going to leave me a little quiet until I can show it off running on real hardware, then hopefully I’ll be able to take it on the road and let you all start playing the thing!

The current count

Making Twitter Trading Card Game


I think it was about a year ago that I added this to my game ideas note in Evernote:

  • Randomly assign all twitter users some pokemon cards (by twitter id), allow trading by hashtag

Well after a year of having life get in the way, realising that I didn’t know how to use php and having to learn it, switching my hosting, and playing weird GameCube shit, here we are.
Three weeks ago I left my old job, and with a week off before starting at my new place I decided to take on the task of finishing what by then was called #ttcg, or Twitter Trading Card Game, and on the 11th of September 2016 it was set live.

So what exactly is #ttcg?

To be honest I think that note I made a year ago does a pretty good job of covering it. Once you know what cards you have it’s just a case of sending a tweet that looks something like this:

@BulchyC POK79 #ttcg

The site takes care of the rest.

So how does it work?

When you log into the site at with your twitter account the site gets access to your unique user id (I guess this exists so that you can change your account name without it causing problems, as your user id always remains the same), from there it checks your id to see if it already has cards listed in a MySQL database.
If you’re listed in the database, then great! The site loads in all the cards you have. If your id isn’t found in the database however, then your twitter user id is used to seed a random number generator, which then spits out cards for you.
This is a nice set up as using a seeded RNG means that the site only needs to save a user in the database once they’ve sent or received a card, and if someone searches to see the cards a user who hasn’t played yet has, they’ll pull up the same cards that the user will if they ever decide to log in, all without the site needing to keep track of them.


Ok so we’ve assigned everyone a bunch of cards, I decided on 24 each to start with, partly because it seemed small enough for people to easily remember more or less what they have, but big enough to get some variety, and partly because it happened to fit nicely into the three column layout I used for the cards.
So now what we need to do is figure out how to trade. I ended up setting up a cron script to run once every 5 minutes (I would’ve liked it to be more frequent but then you start to run into issues with rate limiting on twitter’s API), this searches twitter for “#ttcg”, which happened to be in use already by some Japanese cinema chain but fuck ’em I guess.
So once we have a tweet containing the #ttcg hashtag we need to look for two other things: a recipient and a card, the recipient is easy, it just looks for the first bit of text following an ‘@’, we can do a similar thing for the card by just pulling whatever follows ‘POK’.

Once we have our tweet containing a recipient, a card and the hashtag, it’s just a case of removing the card number from one user in the database and adding it to the other (after a TON of logic of course).
And that’s it.

I did decide to throw in a little something extra when I saw a fun thing I could do though.
Part way through implementing the twitter user id stuff I realised that I could check those ids against whatever the hell list I felt like. So what could be funnier than actually taking a game away from those annoying cunts on twitter that are always accusing people of trying to take their games away?
So a quick shitlist later (the cron job that runs once a day is actually called updateShitlist) and all of those people are blocked from trading, with only one card assigned to them, as a reminder that they need to quit their macho bullshit 😉