I still remember when they announced changing the onboard computer of the Hubble Space Telescope in 1999. The new one had a 486 CPU running at 25MHz and 2M of RAM. Ridiculously more powerful than that of the Space Shuttle… and much weaker than what I had back then: a 66MHz 486 with 16M of RAM. Which was already obsolete, yet could still run Opera 7 and Word 6 (or was it 7?) as well as all the classic games of the early 1990es.
This isn’t a “get off my lawn” rant. It is, however, a plea for moderation.
Pretty much every modern computer has 3D hardware acceleration, right? Smartphones and tablets invariably come with OpenGL, and even older feature phones (remember Java ME?) have some sort of 3D support. They put 3D video chipsets in servers, for crying out loud — it’s cheaper than operating separate assembly lines.
Well, my trusty laptop, which has served me so well since 2006, doesn’t have one. It just doesn’t. I know, right? Deal with it.
No worries, though, there are plenty of 2D games still being made. Or so I thought, until I started stumbling across newer titles that wouldn’t run at more than one frame per second or so. Turns out, they were made with OpenGL. Not just that — OpenGL itself doesn’t assume hardware acceleration — but they were obviously unconcerned with performance. And since a Celeron CPU isn’t too beefy either…
What in the world happened to good old 2D acceleration? Video players use it; the HTML5 canvas uses it. The near-ubiquitous SDL library takes advantage of it whenever possible. It’s all you really need for a game such as, say, Cave Story.
OpenGL, however, can’t use it. Not even in orthographic mode. It’s a 3D API through and through; absent 3D hardware acceleration, it will revert to pure software rendering.
Now, that shouldn’t be a problem either. The first game in the Thief series famously used a software renderer, despite coming out in 1998, and did just fine. Think about it for a moment. My smartphone has twice the CPU speed and RAM of a typical PC from that era. Multiply by two again for the aforementioned laptop.
Why can’t it run a mere platformer decently? Frogatto, I’m looking at you here.
Listen, if you’re making a 3D game that genuinely pushes the state of the art in computer graphics then by all means, require the latest and greatest hardware: dual GPUs, quad-core CPUs, gigabytes of RAM, you name it. But if you’re not, for the love of computing, don’t use more resources than you have to. You may find yourself requiring OpenGL for an ASCII-based roguelike.
At least libtcod only requires plain SDL. And that’s still too much for people who, for some reason, prefer to work in text mode.
A different kind of optimization by Felix Pleșoianu is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.