Thoughts on Frameworks and Isometric 3D

I’ve now downloaded and compiled a few examples from openFrameworks. I did that on Ricky’s recommendation. openFrameworks seems to provide everything that SDL offered, but in an easier to understand and more comprehensive package. It also seemed quicker to get it going.

Now you have to understand, all of you modern programmers, that I’m not a modern programmer. I’m a seriously old-skool programmer. I like solving simple problems. I’m not used to standing on the shoulders of giants who have solved some seriously heavyweight problems. I’m more interested in building something close to the ground. A hut, say, and not a pyramid.</p>

The RAM in my development machine was 48K. That seemed huge at the time. 25 years later, I have 4GB RAM in my development machine. That’s 87,000 times more RAM. That number is beyond mind-boggling. I can’t conceive of it.

The only thing that hasn’t changed is that I’m targeting the same machine that my development environment sits. What has changed massively is that my application can crash with gay abandon without disrupting my development environment in the slightest. This encourages iterative development and experimentation. Not that I have an awful lot of time to waste on mistakes.

What openFrameworks does for me is it abstracts the hardware, without building anything to do with a game, or any other framework. Old-skool programmers coded to the metal. I can’t do that now, but I can get close enough. I don’t want huge frameworks in the way. I haven’t got time to learn huge frameworks. I’m not competitive in the modern-day-programmer market, so there is no point in me pretending to be. I couldn’t get a job as a front-end-screen programmer. What I like is a blank slate. I don’t care that I have to re-invent the wheel. It’s 25 years on, I don’t have my source code anymore (not that Z80, 6502, 68000 or 80386 assemblers would be of much use to me now anyway) so I might as well start from scratch. I want to build a model in my head. It has to be my model and it has to be simple. I don’t want to get into somebody else’s head. I don’t have time to learn 25 years worth of programming paradigm shifts and methodologies. I couldn’t give a flying fig about MVC, though I might have done 25 years ago. I don’t want exception handlers or message handlers or any of that, though I did manage to do some of that in the early ’90s,  I just want to move stuff on the screen.

Now, I’ve been questioned about my commitment to isometric graphics. I can’t help that. I saw Knight Lore and Alien 8 and part of me changed forever. That part of me has never recovered. I’m still kind of beating myself up for not going with isometric for Pandora. I know it has problems, the least of which is that it doesn’t lend itself to basic orthogonal controls and can be confusing, especially when trying to calculate tricky jumps.

My answer to “why iso?” in part is (somewhat facetiously):

  • Baldur’s Gate
  • Cannon Fodder
  • Command & Conquer
  • Diablo
  • Civilization
  • SimCity
  • The Sims
  • StarCraft
  • Syndicate
  • Theme Hospital
  • X-COM
  • Age of Empires II
  • Knight Lore
  • Alien 8
  • Head over Heels

To which the obvious riposte is that these are mostly strategy games, which kind of lend themselves to this style. Chimera, by my own admission is not a strategy game, even if there is to be some strategy element to managing the resource of energy. So why will it work?

I don’t have a good answer for that. This really is an emotional decision. Isometric graphics are not particularly hard to put on the screen, so I’m certainly not doing it to be flash in any way.

Ricky has an interesting argument. That people who play the 25th anniversary edition are unlikely to have played the original, so why stick to the same look?  And I’m not even thinking about using any of the modern techniques to make the game look prettier at all. No lighting, no shaders, no shadows even, so why stick to isometric?  I have to think about my player. I want to reach those who played the original and don’t want an artsy re-expression of it. They want more of the same, but better, I hope. They don’t have as much time to waste as they used to, but they don’t want their memories trampled on either.

That’s my player. I might well do a straight 2D game at some point, but first, I have to do this. I don’t know why I have to do it, maybe I am trying to do this for the person I was 25 years ago (my fingers automatically typed 256 BTW, before I had to correct the number, so ingrained is binary in my mind). Maybe that’s why the subtitle for the blog is “This Time Get it Right”.