Sponsored By

The Masochistic Programmer

An introduction to me, the game engine I'm developing, and why I call myself the masochistic programmer.

David Maletz, Blogger

December 28, 2010

3 Min Read
Game Developer logo in a gray background | Game Developer

My name is David Maletz, and I am a self-proclaimed masochistic programmer. Why am I a masochistic programmer? Because whenever I have a choice between using an existing utility or creating the utility myself from scratch, I almost always choose the latter. Determining what tools to use, and what tools not to use is critical for all game and software development. Choosing the right tool could save months, perhaps even years of development time, but the wrong tool could come with a poorly documented API, bugs or the have the wrong tools and utilities. A smart programmer carefully chooses his tools and learns how to use them well. I prefer to make my own tools, reinventing the wheel, and making it better. Why? Partially for the learning experience. Every tool I write gives me hands on experience with the inner workings of that tool. However, the main reason is because that's just who I am, the masochistic programmer. And isn't it fitting that I am now working in game engine development?


I wont go into details about my history in my first post, but to put it briefly, I'm a graduated computer science major who has been programming, and developing computer games since I was 12 and have made (and failed to make) many games. One of the failures I'm most proud of is Aero Empire, as even though it was not completed, I learned a lot while making it, and was also the first time I tried making a game with a large team. I also enjoy telling people about the pseudo 3D maze-crawler RPG I wrote entirely in x86 assembly code, but that's another story. In graduate school, I developed rendering algorithms and wrote papers as a research assistant (my portrait image is a screenshot from an interactive algorithm I developed), but decided I preferred hands on development to research.


A screenshot from the indie game Aero Empire.


After graduating from college, I decided that I should make a game engine. I've had plenty of experience making the utilities games need because, as a masochist, I have written them from scratch more than once. I also have a lot of experience with advanced rendering algorithms because of my time as a graphics researcher. And making a game engine satisfies my desire to design and program all of the utilities from square one, exactly how I think they should be (to be honest, I use external libraries for model and texture import and export, although I did write a DDS texture import/export tool from scratch as I couldn't find a free one that fit my needs).


I have been working on a game engine for six months now, and am just finishing up the core, which includes just about everything needed for general scene management and rendering with plenty of utilities to make things easy. The core is designed to be incredibly flexible and dynamic, and has integrated animations, accurate collision detection and instancing. It's pretty interesting - but a long way from completion. It doesn't have any rendering effects yet, so it renders basic phong shaded models. A game engine is a lot of work for one programmer, but as the self-proclaimed masochistic programmer, I look forward to doing it all from scratch, and even torture myself with writing good documentation.


Anyways, I'll continue to post updates with more masochistic coding, interesting thoughts that come up during development, and even news on some small game projects I'm making on the side.

Read more about:

Blogs
Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like