Rainbow Squadron

A-wings are one of my favorite ships from Star Wars.  In the X-wing Miniatures game, there are two paint schemes for the A-wing: red and blue.  A while back I painted up a green-themed A-wing.  Last week I finished up a yellow-themed one. I really weathered this one up, too – maybe too much so. Meh. I guess it’s just seen a lot of action.

awing_yellow_0 awing_yellow_1Working with yellow in my previous “Camaro A-wing” was a real pain, but I think I got the hang of painting yellow properly now. As advised by others, I painted bright white the areas I eventually wanted to paint yellow. The yellow paint worked really well when applied over top the white.

awing_yellow_2

“Rainbow Squadron” is coming along nicely.  (Note: The blue and red ones are the factory-painted ones)
awing_yellow_3 awing_yellow_4I guess an orange and a purple one are next.

X-wing Repaints

I painted up a couple of my X-wing minis.  Here are the two best ones so far:

HWK-290

I was never a fan of the original color scheme of the Moldy Crow.  I thought something darker and stealthier looking would look good.

Original:

hwk290origRepaint:

20161125_235301 20161125_235342 20161125_235655 20161125_235621 20161125_235500 20161125_235724

20161125_235731Inspiration:

hwkcomic

A-wing

The fastest ship in the X-wing Miniatures game deserved to be repainted to look like my Camaro.

Original:

awingorigRepaint:

20161125_234945 20161125_235016 20161125_235028 20161125_235208 20161125_235123Inspiration:

20160929_081210

The Great Escape

A week ago, some friends and I finally tried out one of those “escape rooms” that have gotten popular over the past couple of years. The concept of an escape room is a sort of game that a group of people play in a single room.  The players are presented with a series of puzzles that they need to solve in a limited amount of time in order to effect their escape.

There’s usually some sort of dire theme involved: you have to defuse a nuclear bomb, or escape the clutches of torturers, or something like that.  Furthermore, no electronic devices are allowed (you’re provided with a locker to stash your smartphones in before the game); it’s just you and your brains.

Companies set up and maintain these rooms, designing the puzzles, renting the rooms out for an hour or so, and resetting the puzzles between uses.  There’s very little to it, and I think that’s part of the reason why there are so many places that offer various “escape” experiences. There are over half a dozen such companies in my city alone, and each one appears to offer multiple rooms (and even portable rooms).

The particular theme of the room we “played” was a situation where we were trapped in a room in an insane asylum by some psycho — somewhat akin to the Saw series of movies.  We had one hour to solve a series of puzzles, each of which led to a clue to solving the final puzzle that would free us from the room. It was the most challenging room this particular company offered, and it had an 18% success rate.

When we first started, it took a while for us to get accustomed to how the whole thing worked.  None of us had done an escape room before, and although we knew they consisted of puzzle-solving, we had no idea what form these puzzles would take.  We all went in pretty confidant, but during the first twenty minutes I seriously started to doubt whether we’d even get close to escaping the room.

After some time of confusion and cluelessness, we suddenly had a rapid series of breakthroughs that led to us solving a couple of the puzzles.  Our confidence restored, we spent the rest of our time in the room working on the rest of the puzzles with vigor.

Near the end of the hour we entered another progress-drought, and I started thinking we would just not have enough time to figure out the few puzzles we had yet to solve.  With about ten minutes to go, we split into groups and attacked multiple puzzles simultaneously instead of combining all our brainpower on one puzzle at a time.

With five minutes left on the clock we managed to solve all but one of the puzzles in the room.  Despite missing one of the puzzles, the clues we got for the puzzles we did solve were enough for us to figure out the solution to the final puzzle which led to our ultimate escape.  We successfully beat the sadistic kidnapper at his own mind games and won our freedom.

Escape Room SuccessWe’re definitely going to try more escape rooms in the future.  Most of them seem to be geared toward groups of four to six people, but there are a couple that are apparently pretty large and which require a dozen people or more to play.

Because of the low startup and maintenance overhead, I can see the concept of escape rooms and similar sorts of amusements staying around for a while.

With the dawning of AR and VR technologies, escape rooms and similar “false reality” games could become quite an incredible experience. Case-in-point: check out the Ghostbusters Experience at Madame Tussauds Wax Museum in New York.  In it, players are given VR goggles, a “proton gun”, and a proton pack (which contains a portable computer) and immersed in a virtual world of spooks and spirits.

I firmly believe we’re at the dawn of a new type of entertainment experience where people will essentially be playing the parts of characters in true 3-D movies themselves instead of watching moving pictures on a screen.

 

Atari 2600 Programming

atari 2600When I was a kid, our family had an Atari 2600 Video Computer System, as did many of our friends and relatives.  We had a good number of games, and many great memories were made playing them.

A few years back I got a book (Racing the Beam: The Atari Video Computer System, by Nick Montfort and Ian Bogost) that talked about how those old games were programmed.  It was quite fascinating.  The approach to programming the Atari 2600 is quite a departure from what I do every day as a software developer.  I gained a lot of respect for the old Atari game programmers; they performed incredible feats of coding.

More recently, on a whim, I decided to read up on Atari 2600 programming about a month ago.  Here’s a little bit of what I’ve learned:  To run games, the Atari 2600 uses a MOS Technology 6507 microprocessor (a variant of the MOS Technology 6502, a generic 8-bit microprocessor which was first produced in 1975 and is still used in hundreds of millions of devices to this day).  This is the central processing unit: the chip that executes the software written by Atari programmers.

The central processor interacts with two other chips.  One is the MOS Technology 6532, another generic chip designed to provide RAM (only 128 bytes — your computer probably has at least eight billion bytes or more), a couple of I/O ports for interfacing with peripherals (e.g. joysticks), and a timer. The other is a custom chip called the Television Interface Adapter (or TIA), nicknamed “Stella”.  The TIA is responsible for generating the signals that are sent to a TV in order to generate images and sound.  The TIA was designed to keep costs down, and cost-cutting measures led to the chip exhibiting some very peculiar behaviors which required arcane knowledge and carefully timed commands to effectively control.

After learning about programming the 6507 to control the TIA, I’ve discovered that the Atari’s reputation for being notoriously difficult to program games for is not overstated.  First of all, in 1975 we didn’t have computers powerful enough to provide layers of abstraction between the programmer and the hardware which act to simplify programming tasks. The Atari requires coding in an assembly language — literally the lowest level of programming possible in a computer (sometimes called “bare-metal” programming because of the programmer’s metaphorical proximity to the physical hardware).

To illustrate the difference between modern software development and programming in assembler, imagine that you want to write a poem on a piece of paper.  Modern programming is like you grabbing a pencil, then manipulating that pencil to write the desired words on a piece of paper.  With assembly programming, if you want a pencil, you can’t just grab one — you have to first chop down a tree to get some wood, mine some graphite out of the ground for the lead, etc.  Programming in assembler for the Atari’s Stella chip is like you having to time those axe and pick swings in step with your heartbeat or you die.

The ultimate testament to the skill of the original Atari programmers is the fact that the games for the Atari 2600 could not be longer than 4096 bytes.  The entire text of this blog post you are reading takes up a little bit more than that!

So, I decided to try my hand at doing a little Atari 2600 programming myself. I followed a tutorial by Andrew Davie to get started.  Unfortunately, some of the code examples had bugs in them that made learning Atari programming very frustrating at times — I had to debug code that I was in the process of learning!

Here is my first Atari 2600 program (hosted on Google Drive — please leave a comment if there’s a problem with the link).  All this program does is display a Canada flag.  It might not seem very impressive, but if you’re familiar with Atari programming you’ll know it’s no trivial task.

canflag0 screenshotThis zip file contains the compiled ROM that you can load up and run in an Atari emulator like Stella (named after the Atari’s custom chip).  If I had the hardware, I could literally burn this ROM file into a writable Atari cartridge and run it on an actual Atari 2600 machine.

Also included is the source code to which I’ve added copious amounts of comments to make it easier to follow (feel free to tinker with it), and a symbol dump file generated by the program that compiled my code which shows exactly how each command in the source code is converted into numbers that the 6507 can understand.

Also, if you’re interested, here is a PDF of the 1979 Stella Programming Guide.

Edit: Spiceware has also put up an excellent programming tutorial as multiple topics on the AtariAge forums.

How I Made the X-wing Miniatures Death Star Trench

A couple of people have asked me about the dimensions of the Death Star Trench playmat I made a year ago. The image below shows the board both flat (with all measurements labelled) and with the trench folded down (with width measurement labelled only).

x-wing trench

I bought two triple-packs of 20″x30″ foam boards from Staples, giving me six boards in total.

The board is made up of three separate pieces: two identical side pieces and one center piece.

The two side pieces are each made of one 20″x30″ board taped to another 20″x20″ board, resulting in a foldable 20″x50″ board.

The center piece is made of one 18″x30″ board taped to another 18″x20″ board, resulting in a foldable 18″x50″ board. The center piece was also scored lengthwise into three, equal sized, 6″ wide segments. These segments can then be folded to make a trench 6″ deep with 6″ high walls.

After the boards were all cut, taped, and scored, I printed out multiple pages of the Warscapes: Star Base Trench-Run PDF and used a high tack spray adhesive to affix the pages to the board. I stupidly tried using white glue at first, but the glue severely warped the boards after it dried. The spray adhesive just left a sticky surface to which the pages stuck nicely. To help place the printed pages, I used an extra-thick marker to draw a grid onto the board where the edges of each page would be. This black line also helped hide gaps between the sheets.

To raise the side boards to give depth for the trench, I just bought several plastic containers that were about the right height. You could use books or whatever.

The turbolasers were made out of this “paper-craft” turbolaser printed onto cardstock. The barrels of the turbolasers were made with spray-painted straws.