Assistant to the Lounge-About

The fun begins when you quit your day job.

Contracting Job at Mercury —

In February I was contacted by Mercury, a company that I worked for five years ago, about helping them with a project. The contract would last three months and offered good pay. They caught me at a good time and I agreed to take the job, starting right after we got back from PAX East.

Beyond saying that not a government contract and involved writing a distributed message processing system in Java, I don’t really have anything interesting to say about the job itself. Except for the commute, it was better than many jobs that I have had.

I was surprised by how easily I switched back into the work routine. It made me notice some of the things that are “hard” about being retired. Not that I am complaining about being retired – it is truly a luxury. Read the rest of this entry »

PAX 2014 —

We attended PAX again this year to demonstrate our games at the Mesa Mundi booth. We had a great time playing our games with the attendees and demonstrating Fire Platoon. The Mesa Mundi booth was larger this year and we had a bigger space and a much larger table.

PAX - Waiting for the first visitors



We were on a 60″ table using the new SensaTouch IR sensor and modular wooden table frame. It did mean that we were standing all weekend, but it was actually easier than sitting and leaving over to touch the coffee-table sized screen we were on last year.

From the time the hall opened at 10, till it closed at 6, we were always busy playing games. We mostly played Pair Soup because it is super easy and cooperative. People could walk up and join a game any time. By the end of the weekend we had played 160 games of Pair Soup. That adds up to about 13 hours! We were really glad to have the new tile sets.

There was an overhead walkway above us, and many people stopped at our booth saying that they had seen the game from above and had to try it out. We also played quite a bit of Fas’Jack, Dungeon Raiders, Got It and Yacht with people who stuck around for a second or third game.

We played several games of Fire Platoon and people seemed to enjoy it. People didn’t have trouble learning the game and controls and the tablets worked well. The WiFi was much better than last year, but it was still hard for some people to connect to the game.

PAX - Fire Platoon


The other quadrants of the booth were occupied by d20 Pro; a system for running a role playing game, another game table running a fast paced competitive game called WhackIt, and a demo of the modular table system.

PAX - Modular tables PAX - d20 Pro PAX - WhackIt PAX - DISC













There are lots more pictures of PAX and a few of Boston in my gallery.


Fire Platoon postmortem —

It is a bit early for a postmortem – the game is not really complete and we haven’t released it to the public yet. But the majority of the code is done and I didn’t want to wait to capture both the things that worked well and poorly.

I’ve also been catching up on blogging about my programming projects. I’ve retroactively posted some entries to the date when I did the work. Since that makes it really hard to spot new content, here are links if you are interested:

Read the rest of this entry »

Adding OGG support to Torque 2D —

Prior to being released opensource, Torque 2D supported OGG and WAV files. MP3 support wasn’t included because of licensing issues with the MP3 codec. The opensource version of Torque 2D doesn’t include OGG support. So the only audio support was WAV. This is a problem because WAV is a raw format, so having audio of any length was taking up a lot of disk space. I added OGG support back to the engine and will describe the process in this post. I am not adding it back to the Git project because there are probably open source license issues that caused them to remove OGG in the first place. Read the rest of this entry »

Web controls for Fire Platoon —

We have decided to move the player controls off the touch table and onto individual web-enabled devices in Fire Platoon. There are a couple reasons for this decision. Most importantly, we didn’t have enough space to put even four player’s controls onto the screen and still have legible icons on the main map of the building. Second, we think that players will feel more connected to their in-game fire fighter if they are holding the controls in their hands. With off-screen controls, we can make the game map bigger and support more players (probably 8)

We are going to use web sockets to send messages between the game and the player’s web clients. Web sockets are now supported by all the web browsers, so anyone with a smartphone or tablet should be able to connect to the game and play without downloading an app. Read the rest of this entry »

Violin Recital 3 —

Last night I had my third violin recital. We hosted the recital at our house, and Bill and I played the sonata in F for violin and piano by Mozart. We had both practiced the song for many hours, but we were still nervous when it was our turn to play. The recital went well enough, but I wish I could play in front of people as well as I do alone.

It was also fun to see all the students again and to see their progress since the last recital.

Read the rest of this entry »

Starting Fire Platoon —

We have decided to write a real-time cooperative fire fighting game with the new Torque 2D engine. We have written some real-time games for the touch table before, but so far we have only written real-time action games (like Bubble Defender, Space Shooter and TropicalTreasure). Real-time games are a bit harder on the touch table because the touch accuracy and response time is not quite good enough for a game to depend on quick button pressing. This game will not be an action game and will instead be a strategic board game that plays in real-time. Read the rest of this entry »

Mechanical Keyboard —

I received the mechanical keyboard from my wishlist for Christmas. It is the Rosewill RK-9000BRI. I hadn’t been able to play with the keyboard in person, so it was pretty exciting to open it up to try.

The first few keyboards that I used were all mechanical keyboards. The Apple II computers at school, and my first Tandy had mechanical keyboards. I remember the Apple II keyboard as having a particularly satisfying feel. My first modern computer was a 386 and it had a mechanical keyboard too. All of these machines were relatively expensive compared to a modern computer, and a nice keyboard was part of that cost.

My next couple of computers came from IBuyPower (a discount computer assembler) and then I started assembling my own. All my keyboards since the 386 have been membrane style. There is nothing really wrong with a membrane keyboard; they work pretty well and are very in-expensive. The main disadvantage of a membrane keyboard is that you have to fully depress (bottom out) each key press. This requires you to use extra force to type and increases strain.

Mechanical keyboards have seen a resurgence in popularity and there are quite a few options. The biggest decision to make is which type of switch to get (there is a switch under each key of a mechanical keyboard). The switch type determines how much force is required to activate the key, how much noise a key press makes and whether there is a tactile bump when the key is activated. There is a really good post summarizing the switch types at

I picked the Cherry MX Brown switch. I wanted there to be a distinct tactile bump prior to activation, and I didn’t want an audible click to sound. That left the brown and the clear. The brown is easier to find and requires a little bit less force than the clear. The other big decisions to make are what layout you want and if you want any back-lighting.

I am really enjoying my keyboard (this blog post is really just an excuse to use it more). I am still getting used to the idea that I don’t have to fully depress the keys. I have used membrane keyboards so long that it is hard to adjust. I would say that I am already faster with the new keyboard, but I am still making a few more errors than I used to.

Torque 2D goes open source —

One question that people often ask when they see our games is “How did you make this?” It is a question asked both by people who have very little computer experience and by other professional programmers. When another programmer asks us how we made a game, what they are really asking is: “What set of libraries and code did you start with?” Writing a game (or really any software) is a little like cooking: There are lots of different levels of “from scratch”. Did you buy a pre-made pie and put on the whipped cream? Or did you buy the can of fruit and a crust and bake it? Or did you make your own crust and filling? Or did you harvest the fruit and grind the flour and refine the sugar? Read the rest of this entry »

Take back the data – Part 5 —

I have decided to stop using cloud services and move all my data back to my own computers. Part 1 listed all the cloud services that I use. Part 2 described how I plan to replace my cloud services with my own web server. Part 3 covered the process of setting up the web server hardware and software in more detail. Part 4 covered SSL, setting up my own email server, and the backup system.

This conversion has been an interesting experience: I have learned a lot of details about web servers and Linux that I only knew in abstract; I knew that there was a lot of good opensource software out there, but this project has really brought home how much is out there and how good some of it is; I have been reminded how desktop applications can be so much better than web applications, and of how polished and easy to use modern web applications are.

I love having a local website that is reachable from the internet. My DSL upload rate is pretty slow, so the difference between dropping some files on a local network drive and uploading them is huge. I am looking forward to moving my main website to my local web server. (We will have to improve our upload speeds to support and

I am enjoying having ownership of all of my data, but I am also feeling the burden of being responsible for keeping the data safe and the server running.

In the rest of this post, I will describe how I am using the web server and OwnCloud installation to replace all my remaining cloud services.

Read the rest of this entry »