20 Jun 2011
The Flying Developer is a Street Fighter
One of the popular ways to unwind at the office is a quick round or two of Street Fighter IV on our XBox 360. Street Fighter is serious business at Shopify, we have fight sticks and everything. Unfortunately for me, most people have been playing it for way too long and trounce me every time I play. To rectify this, I’ve bought my own copy of the game to play on evenings and weekends.
Learning the basics of a new video game is a lot like learning a new programming framework. In fact, getting to grips with Street Fighter has been a lot like my experience learning Rails. Rails is all about ‘convention over configuration’, and SF is no different. Special moves vary between characters, but there are common themes that run through the controls: Moves requiring you to swing the thumbstick in quarter-circles, half-circles and zig-zags are everywhere. Even if you’ve never played a character before you can usually guess one or two of their moves based on these conventions.fKnowing these gives you a good head-start and provides a base for developing more complex strategies. Further down the line, mastering these shapes results in the ability to pull of crazy combos. I’m not at that stage yet.
If you want to get really good (just as in software development) you need to do more than just fiddle around. After playing with a few of the characters I decided to do some background reading. Unfortunately the second-hand copy of SF I bought only came with a French manual, so I picked up a strategy guide from Chapters and got reading. Beyond the basic ‘punch and kick til the opponent stops moving’, there’s definitely an underlying framework that can be learned and taken advantage of. Once again, the parallels with programming are apparent. Moves all belong to one of several primative types, and characters can be classified by their play-style.
Speaking of playing styles, watching people play is an interesting experience. There are two dominant schools that I’ve observed. The aim of the first seems to be to press buttons as fast as possible, and the second instead values frugality. It’s funny to watch the two battle it out, one person tapping buttons at machine gun speed, while the other seems to move in slow motion by comparison. I’m not sure which is the ‘better’ method, and I suspect at this stage that there are characters that cater to each.
After playing about 6 hours of the game over the last two weekends, I’m pleased to say that I managed to beat the game’s arcade mode. Online play is still looking pretty scary, so I think I’ll test my mettle against my co-workers over the next few days and see if my research and practice stands up to human opposition.
Thanks for reading! If you like my writing, you may be interested in my book: Healthy Webhook Consumption with Rails
David at 10:00