Ben Deutsch's Blog

Game programming and engines – top-down or bottom-up?


There are two directions from which to approach writing a game: starting bottom-up from the most basic library calls, or top-down by using a preexisting game engine. And I don't know what to do.

Working on WebGL for 2D games


I'm working on WebGL for 2D games. The goal is to build a smallish engine for several game ideas. As usual, the process of writing this is not as straightforward as I would like.

I made a game!


As has been foretold, I have created, and published, a web game. And it was all that I imagined.

I will make a game


I'm a hobbyist game designer. I've designed hundreds of games in my head, I have plenty of programming knowledge, enough resources and some spare time, and even web space to do with what I want. So why can't I finish a single game?

HashRefs as lookup tables in Perl


One of my favourite memes in Perl is using HashRefs for lookup tables, replacing if-then-else-like assignments and nested ternary for the same purpose.

The difference between strong and weak ETags


The ETag header of HTTP is used to control browser caching. ETags come in "strong" and "weak" versions. How exactly do they work, and what is the difference between the two?

Currently playing: Anomaly: Warzone Earth


I'm playing Anomaly: Warzone Earth. It's a neat real-time strategy "tower offense" game, cross-platform, and on the Humble Weekly Sale at the time of writing.

I just finished Portal for the first time


I've just played – and finished – Portal for the first time. On Linux. A very nice game, no technical problems, and I'm considering creating some maps for children.

You can be a newb at anything


I take the train to work every day. About a year ago, I ordered a yearly subscription to monthly tickets: I get 12 tickets, one for each month, for the price of 10.

The first time the conductor asked to see my ticket, I held it up. She then asked me to move my fingers: I was obscuring exactly the most important part of the ticket, namely the month it was valid for. Now that I know, I make sure that part is always visible every time.

I guess you can be a newb at anything.

This is it!


I'm starting a blog! I've wanted to do this for quite a long time, but circumstances were never perfect. I needed to create a platform… no wait, I should pick an existing blog hoster, but which one… no wait, I should write it myself after all… which means I'll need to write my own web framework, and should finish my templating engine, and…

Circumstances will never be perfect. So this is it, right now, in plain old static HTML. After all, as Steve Jobs said: Real Artists Ship.