You know the saying, when it rains it pours. That’s the story of this newsletter, pretty much. Most weeks I scramble to find a couple links worth writing about. Today I don’t even know where to begin.
For one thing, after long months of intense development, Jason Scott officially announced The Internet Arcade and The Software Library — two huge collections of classic arcade and 8-bit computer games, respectively, playable online right inside a web page. That’s huge; while emulators and old games are available elsewhere (see World of Spectrum for an amazing collection of resources), they’re usually focused on one platform and require some amount of expertise to get running. Whereas here we have a veritable potpourri, as easily accessible as old photographs on Flickr.
I’ve spent the better part of a morning reading this article titled Why mobile web apps are slow. It’s a fantastic read, with citations, benchmarks and thoughtful arguments, and the tl;dr version is that mobile devices simply can’t be as powerful as desktop machines, and if you want performance then you need control over things such as memory management. And certain languages simply don’t give you any.
Now, don’t take everything written there as gospel. As a commenter pointed out, Python uses reference counting, so the argument doesn’t apply to that particular language. Also, this isn’t about ARM versus Intel, but mobile versus desktop. Remember Intel’s Atom line? I have the original Asus Eee PC 701, and believe me, it’s much slower than the 900MHz frequency would suggest. My game Buzz Grid stutters on it, and that’s a game I was able to port just fine to Java ME.
When I first wrote Square Shooter in 2009, use of the canvas element was uncommon enough to earn me entrance into multiple game directories. Fast forward four years, everybody uses HTML5 and my little shooter was long in the tooth. The physics were broken (I had fixed them in the Python edition), it had no sound, and didn’t really adapt to different resolutions as it was supposed to. Worse, many of my friends now had touchscreen devices, and Square Shooter was unplayable on them.
A combination of burnout and indecision caused me to postpone this rewrite for a long time, and then it took quite a bit of experimentation to get things right. But it’s here now! The new Square Shooter runs more smoothly (thanks to the requestAnimationFrame shim from Three.js), looks good on any screen (except it strongly prefers portrait mode) and also runs on modern phones and tablets (though you need a fast CPU). It also features awesome sound effects courtesy of Open Game Art. I can never give enough thanks to the awesome people who make art for the rest of us to use.
So I give you the Enhanced Edition in all its glory. Play it. Fork it. And see if you can reproduce that one weird bug (you’ll know it if you see it), because I can’t figure it out.
Oh, and stay tuned because I plan to add graphics as well. Cheers.
Last time I announced taking a break from programming. And I have… for about a weekend. During which time I caused a pretty sweet raytraced scene reminiscent of a 1990-something adventure game. Reading a book about Myst the weekend before must have something to do with it.
Then, of course, my mood to program came back. Or maybe it was the vitamin supplement I’ve been taking. Fact is, less than a week later I can play Buzz Grid on my Nokia E51. And boy, that makes me happy.
Programmers love to trash programming languages. The more successful a language, the more likely you are to find someone who will, happily and in excruciating detail, explain its many failings to you. One of the favorite victims nowadays appears to be Java. And while Java does have its bad points, most of the criticism appears to focus around a handful of old myths that should have been put to rest long ago.
Myth #1: Java is slow.
A long time ago, on a blog far, far away, I was pointing out that playing games a lot and playing a lot of games are different things. Turns out, this isn’t such an original idea; while preparing to revisit that topic, I ran across this Massively interview with Cory Doctorow, in which he makes the point that games are so ubiquitous nowadays, that many people have played lots of games without ever considering themselves gamers. That puts an even heavier burden on (would-be) game developers, who are supposed to know more about what’s out there than the average gamer, especially in their niche of choice. Well, I consider myself a developer (amateur, mind you), so it occurred to me to check a very simple thing: how many games do I keep around?