csanyk.com

video games, programming, the internet, and stuff

Category: games

Debugging TARJECTORIES: a Ludum Dare 38 postmortem epilogue

If you haven’t played TARJECTORIES yet, I encourage you to download and give it a try first.

Next, I encourage you to read the project postmortem article I wrote about the experience I had creating TARJECTORIES over a 48 hour period.

Back? OK.

In the wee hours of Sunday morning, in the midst of my debugging hell hours, I posted this on Facebook:

Debugging a program sometimes is like converting one system of thinking into an equivalent system of thinking, only one that works where the other one fails.

Since you can do this only one keystroke at a time, it’s pretty rough when you’re looking at transitional code and are looking for signposts to remind you of where you are. It’s common when you get distracted briefly to come back to looking at your code, desperate for these signposts.

This can end up making you very confused and waste a lot of time.

How to avoid this?

To put it in more familiar terms, pretend you’re writing a novel, and you want to change some of your characters around, so you need to update the text so that everything Smith says is now said by Roberts. Halfway into this, you’ve forgotten who’s who anymore, and there’s nothing in the manuscript that can help you tell what’s been changed already and what still needs to be changed.

If you keep versions of files, you can run a diff of the current manuscript against the most recently checked in version. If you check in versions at the right time, when things are self-consistent, not in a transitional state, this can be very useful.

If you don’t have, or don’t make use of, these tools, you’re putting a massive cognitive burden on yourself that prevents you from higher order thinking about the problem you’re trying to solve. If you get distracted in the midst of your transitional revision work, it’s like a juggler dropping their balls. One hiccup in the routine and the entire thing falls apart, and the only thing left to do is try to pick it all back up and start over.

The hardest thing is when you keep having ideas and thoughts about what else you’re going to need to do next. Often times a change will have a cascade of changes. Not necessarily code changes, but feature changes, or new features. Each one of these is like someone throwing another ball at the juggler. Even the best juggler can only handle so many things before they slip up and have to drop it. And while a person is juggling, there’s very little else they can do.

If you want to get real work done, don’t be a juggler. They spend most of their time repeating a cycle of familiar tasks that just maintain a status quo, and hardly have time to make any progress with anything else. It looks impressive, but it’s monumentally wasteful.

Learning not to juggle is even harder than learning to juggle, though.

The thing is, when you’re doing game development, design and development are tightly interwoven. It’s not even iterative, it’s sub-iterative. You’re figuring out what’s possible, what’s fun, what you can make work, and figuring out how to make it work, making it, and then seeing what else it needs — all at the same time. It’s inevitable that you will have ideas at every step in that process. And each idea is a ball to juggle. I found it works best to leave myself “TODO” comments throughout the code whenever I have an idea come to me while I’m still in the middle of working on something else, and keeping a notepad handy for things that I observe at runtime. Otherwise, you need to be able to split your conscience like a fractal if you want to have any hope of being able to do all the things that occur to you while you’re in the middle of development.

Holy s—. I’ve been at it since 10pm, and I think I finally just fixed a bug that I’ve been puzzled by for several hours. I can’t even begin to explain all the stupid details that I’d need to in order to convey what I just did.

But here goes anyway.

In my project, I have a planet which has a player on it. I had this working just fine with a single planet.

I wanted to create mutli-planet levels, but when I added a second planet to the game all kinds of things started going wrong because of all these hidden assumptions my code was making about there always only ever being one planet.

So I started disentangling the planet, which was really doing a lot of extra stuff that it didn’t really have any business doing. This stuff was managing other game state, and when you had multiple planets, they ended up screwing with each other as they both were updating the game state. Sort of like a race condition, I guess.

It caused some REALLY bizarre bugs, though.

The level counter went up smoothly until it hit 11, and then it started repeating itself a few times, then skipping a head several numbers, like 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 11, 11, 14, 16.

It also had a strange tendency sometimes to not spawn any player at all, on the second level 11.

I fiiiinally got the problem solved, without realizing that was what I was doing. I just started to give up and work on other problems, when I decided that the planet object should not create its own player. I’d done that early on because it made sense when there is only one planet. With two planets, each would create its own player instance, and then I’d have to go back after and delete one of them at random. This SEEMED to work, but somehow became responsible for the weird level number glitch, and the missing player object on the second level 11.

I STILL don’t get how that exactly worked. It still doesn’t make any sense to me. But when I decided to de-couple the player-spawning duties from the planet object, and instead of two planets each creating a player on it, and then randomly selecting one of those two to delete, I re-did the code to spawn two planets, then randomly choose one of the planets to spawn a single player on.

That fixed it. Like, whoa.

Update: A day later, it finally occured to me what happened, and why. This may not interest many, but for posterity, here’s what was going on:

When I made the game, I started out with a 1-planet room. I had this working so well that I didn’t want to screw it up, so when I was ready to start work on a 2-planet room, I created a new room so I could mess around in it. I had my level counter set up in such a way that after level 8, it would switch rooms to the 2-planet room for planet 9.

I had some code in the LevelUp object that handles this. But the thing about the Level Up object is, it doesn’t do those things when the game room loads. So on the transition into the 2-planet room, there were certain things that weren’t happening. To compensate, I (this was a bad move on my part) copied some code out of the LevelUp object and put it into the Creation code for the 2-planet room, and then failed to maintain this code adequately as I continued to make further changes on the LevelUp object.

So what happened was, when Level 8 is cleared, the LevelUp object does its end=of-level thing, and increments the global level variable, and creates new planets for the next level. It then checks to see if the level is 9, and since it is, it moves to the 2-planet room. The 2-planet room starts, and there’s 2 planets there from the room editor, not from the LevelUp object resetting the level. So nothing weird happens until after Level 9 is cleared, because that’s the first time the LevelUp object levels up in a 2-planet room.

I’m still unclear why the level incrementer goes from 9 to 11 — it seems obvious that it has something to do with there being two planets, but I didn’t have the level incrementer tied in any way to the number of planets. And it’s more mysterious to me still that it gets stuck on level 11, and so displays level 9, 11, 11, 11, 14. If GameMaker Studio had a better debugger, I might have bothered to trace through the script and watch the variables change to understand what’s going on, but I figured out enough to fix the problem without completely understanding it (well let’s hope so).

As to why there was no player at all on level 12, I do understand that. The planet’s Create event creates a player instance, and stores its ID in an instance variable, so it can update the player’s x,y position as the planet rotates. In the two-planet world, of course, I ended up with a player instance on each world. I didn’t need or want both of them, so I figured I’d just randomly destroy one of them, rather than fix it so that there would only be one. So I used a for loop and iterated over an array that should have been as long as the number of planets (2), and picked 1 array index to keep, and destroy all others. I figured I might want to make a 3-planet room at some point, and was trying to make the code work for N-planet rooms, rather than solve the 2-planet problem and leave a 3+ planet problem still unresolved. But sometimes the random chooser picked an array index that was out of bounds for the “keeper”, and so the for loop would go through and destroy all of the player instances. This happened to happen on level 12. It happened consistently on level 12 because the RNG seed value was always the same, and the same number of calls to random() always happen between the start of the game and getting to level 12.

I fixed the code by removing the player create from the Planet object, and put it after the planets are created, using choose() to select which planet if there’s more than 1.

The code works and appears to be bug free, but from a design standpoint it’s still messy. When I get around to doing it over, I will clean things up by removing the 2-planet room, which was only ever supposed to be an experimental room, and re-writing the code so that rather than move to that room when the level incrementer hits 9, it will spawn two planets, instead. This will enable move to remove the duplicate code by getting rid of the now-obsolete experiment room entirely. In retrospect that’s what I should have done in the first place, but because I was so concerned about not screwing up my working 1-planet room, I didn’t want to risk it. But really, all I needed to do was check-in to source control and create a fork to experiment in.

As easy and fast as the progress I made Friday night was, Saturday night was an absolute nightmare of a debugging session, just to figure this thing out and get it working. It’s SO weird how it was sortof almost working. Sometimes it’s a lot better to have something completely not working and obviously wrong. Those kind of bugs are much easier to fix.

The good news, though, is that I kept my Friday momentum through Saturday until I took my long break. I implemented a lot of features and had the game 95% complete, or so I thought. Just that last little bit of debugging took about 7 hours, and now the game is basically done.

So I made excellent progress Friday, and most of Saturday, although I unwittingly introduced this nasty puzzling bug during that progress, which stalled me for the entire night. But I still got so much done so quickly that I’m basically done now.

I have until 9pm Sunday to work on it, but I think it’s pretty good right now.

Ludum Dare 38: A Small World (TARJECTORIES)

Tarjectories by csanyk for LD48-38: A Small World

Tarjectories by csanyk for LD48-38: A Small WorldMy latest release is called TARJECTORIES, and it’s my entry for Ludum Dare 38, A Small World.

Play and Rate TARJECTORIES at Ludum Dare

The title is a mashup of “target” and “trajectory”. It’s also an easy misspelling of “trajectory”.

You control a little gun turret on a little world, shooting little projectiles at little targets. Use the planet’s spin, and your shot power and gun elevation to put shells on the target.

Destroy all targets on the planet to advance to the next level.

You will need to use your judgment and instincts to know how much power to give the shot, and what angle to fire at. Most targets can only be hit by indirect fire, relying on the trajectory of the shot as its path curves due to gravity. Here’s an early work-in-progress screen capture:

TARJECTORIES - Early work-in-progress

Controls

Adjust your turret’s gun elevation by the left/right arrow keys, or A and D keys.

Adjust gun power by using up/down arrow keys, or W and S keys.

Fire using the Space bar or Enter keys.

Scoring

  • Direct hit: If you hit a target directly with the shot, you will score a base amount of 1000 points. This is doubled for each consecutive hit you make: 2000, 4000, 8000, 16000, 32000, etc.
  • Indirect hit: If you hit the ground near a target, the explosion from your shot may destroy the target anyway. But you will lose your consecutive hit score multiplier, since when your shot hit the ground, technically that was a miss. This will score you 1000 points, and count as your first hit on your next consecutive hit multiplier.
  • Bonus timer: There is a timer in each level, and if you manage to destroy all the targets before it expires, you’ll get bonus points.
  • Perfection bonus: If you mange to hit all the targets in a level without missing (all direct hits), you will earn a perfection bonus. The base perfection bonus is 10000 points * the number of hits scored in the level, raised to an exponent equal to the number of Planets in the level. This is how you get the truly astronomical scores. If you get a perfect bonus on a multi-planet level, you deserve it.

Winning and Losing

The only way to lose in TARJECTORIES is to accidentally shoot yourself. This can happen if your shot orbits your planet and comes back around to hit you, or if your planet is rotating fast enough that it puts you in the path of your shot as it falls back to the ground. Don’t do that.

To win, you must complete every level of the game. You can play again; the game will be re-randomized on your subsequent re-plays.

Download TARJECTORIES

TARJECTORIES is currently able to run on Windows.

The source code is also available for you to download, if you wish.

TARJECTORIES was built using GameMaker Studio 1.4, Bfxr, and Audacity. It took about 22.5 hours of development time for me to built. Everything was built from scratch, by me.

Version History

1.0.0.0

Initial release

Bug reports:

  1. One user has reported a bug whereby two worlds appear on level 1. Unable to replicate. There should be no way for more than one world to be created on level 1, and even if there were, the oPlanet object has collision detection with other oPlanets, and re-positions them in the event of a collision until they are no longer in collision.
  2. FATAL ERROR in
    action number 1
    of Step Event0
    for object oGround_explosion:Push :: Execution Error – Variable Get -2.t_angle(100033, -2147483648)
    at gml_Object_oGround_explosion_StepNormalEvent_1 (line 11) – ex.t_angle = other.t_angle;
  3. Stats tracker fails to count a miss when a shot destroys itself due to timeout.
1.0.1.3 Bug fixes:

  1. Stats tracker fails to count a miss when a shot destroys itself due to timeout. FIXED.
  2. oGround_explosion error referencing non-existent other in Step Event when a collision is detected with a target. Replaced other with the id of the target instance.
1.0.2.4 Numerous tweaks, mostly to the level_timer, minor bug fixes, and polish.
1.0.3.5

“GE” edition released. Feature complete.

1.0.4.8 Fixes the graphical bug some users were reporting where on the first level it looks like there’s two worlds overlapping each other. The bug was the result of using surface and draw functions in the Create event, rather than in the Draw event where they belong. I guess it affects certain users who have certain video cards, because I was not able to replicate the problem on my machine, but a user who did experience the bug confirmed that it was fixed by this release. Final build for Compo entry.

Classic Videogame Quotes

Metal Gear I feel asleep!!

Since their invention, almost overnight videogames have made a lasting impact on the greater culture. Here are a few of my favorite memorable quotes from video games.

It’s dangerous to go alone. Take this!

It's dangerous to go alone! Take this.

Game: The Legend of Zelda

System: Nintendo Entertainment System

Year: 1986

It’s the mid-80’s. The NES is new, and a chip shortage has made this already-hot game a hard to find must-have for the holidays — despite being released in February. Limited quantities of the special gold cartridge meant that a lot of kids had to wait a long time to get their copy of the game everyone was talking about: The Legend of Zelda. In Link’s first encounter, he finds an old man in a cave with a gift and some memorable advice.

Welcome to adventure, kid.

It’s a secret to everybody.

It's a secret to Everybody.

Game: The Legend of Zelda

System: Nintendo Entertainment System

Year: 1986

There’s something seedy about taking free rupees from a cave-dwelling Moblin. Is this a legit offer? What’s the catch? Why is this overworld enemy helping us? But yes, it’s true. Everyone knows that the secret to getting ahead in the world is to have a little money. It can get you into places, and out of jams. You can never have too much, but you can only carry $255. Don’t spend it all in one place, unless it happens to be the hidden shop that sells the Blue Ring!

Uh Oh. The truck have started to move!

Uh-oh! The trick have started to move!

Game: Metal Gear

System: Nintendo Entertainment System

Year: 1987

Most videogames for the NES were developed in Japan, and accurate translation never seemed to be a high priority. So many memorable quotes from mid-80’s videogames are remembered for their quirky, incorrect grammar and hilarious misspellings.

In Metal Gear, you sneak about a military base attempting to keep a low profile lest you be discovered and create an international incident. While looking inside a few parked trucks for supplies to aid you in your mission, one of them happens to start up with you inside! Better lie low and hope that you will not be discovered, and that wherever it takes you doesn’t bring your mission to a premature end. Fortunately for you, the blundering enemy has in fact just made it easier for you to succeed, by taking you to an area on the base where you could not get to otherwise.

Earlier in the game, you encounter this tired guard, who, if you wait out of sight long enough, will fall asleep. Oddly, before nodding off he announces, to no one in particular, “I feel asleep!!” Either the designers meant to say he fell asleep, which makes no sense because he’s already asleep, or perhaps they meant to say he feels sleepy. Either way, it’s pretty funny.

The NES port of Metal Gear was a bug-ridden mess, but since most of us didn’t have an MSX to compare against, we had no idea, but we didn’t care. The sneaking about, using stealth tactics to infiltrate the base while quietly eliminating guards, and finding an arsenal’s worth of gear to blow up a nuclear-armed super-weapon were too important to let some bad English stop us.

I feel asleep!!

Congratulation.

Congratulation.

Game: 1942

System: Nintendo Entertainment System

Year: 1986

A number of early Capcom NES games rewarded the player who successfully beat the game with this stingy accolade, “CONGRATULATION.” What, just one measly congratulation? Isn’t plural, multiple congratulations nearly always in order when complimenting someone’s happy success? After dogfighting your way through thirty-two (!) stages of bland, slow-moving shoot-em-up “action” against an unbearable monotone soundtrack, this is the thanks we get?

Literally, this is the entirety of what you get when you beat the game. Screw you, Capcom!

Fortunately, they more than made up for this with the sequel, 1943, which features improved everything, including one of the best soundracks on the NES. Capcom went on to produce some of the best titles on the NES, and found even greater glory in the 16-bit era with Street Fighter II. All is forgiven.

A winner is you!

A winner is you

Game: Pro Wrestling

System: Nintendo Entertainment System

Year: 1986

Pro Wrestling is one of those games that is pretty dumb, and yet really fun despite that, with a one of the hardest boss fights to win, the championship bout against Great Puma. But each time you manage to win a wrestling match, your reward was this message: A winner is you! All right! It really pumps up your self esteem!

You are in a maze of twisty passages, all [alike|different].

You are in a maze of twisty passages, all alike.

You are in a maze of twisting passages, all different.

Game: Colossal Cave Adventure

System: DEC PDP-10, and others

Year: 1976

There’s so much quotable in Colossal Cave Adventure, considering the entire game is entirely text, and one of the first computer games ever. But this quote from the Maze is the one that I come back to the most. To create the feeling of being lost in a maze, the game just repeats the same text in each room, until you manage to solve the maze. There’s no feedback to tell you where you are, or to give yourself a reference point to have some idea where you are. After puzzling over this conundrum, successful players eventually figure out that if they drop an item from their inventory in a room, it will help them to make that room in the maze stand out from the others, enabling them to map out the maze with pen and paper.

To this day, whenever I’m in a confusing situation where there are many options and I don’t know which is the right one, I’ll think back to this one.

I am Error

I am Error.

Game: Zelda II: The Adventure of Link

System: Nintendo Entertainment System

Year: 1987

A genuine WTF moment in gaming occurs when you meet the infamous Error. This is all he ever says to you, “I am Error.” Is that his name? Or is he just a chronic screwup? Or is the game telling you that it has an Error? This was a matter for deep contemplation in 1987.

What a horrible night to have a curse.

What a horrible night to have a curse.

Game: Castlevania II: Simon’s Quest

System: Nintendo Entertainment System

Year: 1987

Castlevania II attempted to innovate by introducing adventure and RPG elements into the action-platformer formula. There’s a level-up system, and shops where you can spend money that you spend hours grinding for… so much grinding for XP and hearts in fact that this game is usually remembered as the least-liked of the NES Castlevania titles. Luckily the music was excellent. Unlike the first Castlevania, rather than having a linear progression through a series of stages, the game featured an open map that you could go back and revisit, and likely would need to several times while trying to figure out some extremely obscurely hidden secrets. Another innovation the game features is a day-night cycle, where during the nighttime hours, the enemies were stronger, doing twice as much damage, and taking twice as many hits to be defeated. Every couple of minutes, day would turn to night, or night to day, and every time the game would freeze and display this message to you… one character at a time… for about 30 seconds. It was… memorable, let me tell you.

Winners don’t use drugs

Game: Various arcade games

Year: 1989-2000

If you went to an arcade in the 1990s, you surely saw this message on a regular basis. I don’t know whether it ever stopped anyone from trying drugs who wanted to, but we sure did know who the Director of the FBI was.

It is pitch black. You are likely to be eaten by a grue.

It is pitch black. You are likely to be eaten by a grue.

Game: Zork

System: PC

Year: 1980

The early text adventure games borrowed liberally from one another. In Colossal Cave Adventure, you could die if your torch went out, falling into a pit in the pitch black darkness. In the Zork series, there were locations where you could die without a light source, but it made no sense to have a hole that you could fall into. Enter the Grue, a loathsome fell creature that inhabited only the darkest reaches, and had never been seen by anyone who lived. But what is a Grue? No one knew. Some speculate that the name derived from the word gruesome, which is certainly a likely sounding explanation. On the other hand, the term “grue” is also found in the philosophy of Nelson Goodman, which might have been familiar to the MIT students who formed Infocom. But they’re also a monster in the Dying Earth novels by Jack Vance. So which is it?

Fight, Megaman! For everlasting peace!

Fight, Megaman! For everlasting peace!

Game: Mega Man

System: Nintendo Entertainment System

Year: 1987

After winning the original Mega Man, we are informed that Mega Man has to continue to fight (basically telling you that you could now play the game again, enjoying it for “replayability”). “Fight, Megaman!” the game extolls us, “For everlasting peace!” What? How? That oxymoronic statement always gives me a chuckle.

President Ronnie has been kidnapped by the ninjas! Are you a bad enough dude to rescue Ronnie?

President Ronnie has been captured by the ninjas

Game: Bad Dudes vs. Dragon Ninja

System: Arcade (Data East)

Year: 1988

What could be more 80’s than a President named Ronnie? In the last year of Reagan’s presidency, this 2D beat-em-up gave us the attitude of cool badness that we all needed. Are you a bad enough dude? The game play in Bad Dudes wasn’t necessarily great, consisting of mostly standing around on platforms as the level slowly scrolled by, delivering repetitive one-punch or one-kick knockouts to an endless supply of cookie cutter Ninjas, without a great amount of depth or variety to the entire affair. This was a game anyone could beat, pretty much regardless of their skill level, as long as they had enough money. But the giant-sized, 16-bit sprites and (somewhat) challenging boss fights were enough to suck us in and drain the quarters from our pockets.

Barf!

Barf!

Game: River City Ransom

System: Nintendo Entertainment System

Year: 1989

The famous last words of many dying students at River City High school, uttered as they blinked out of existence and left behind their bouncing pocket change. It’s funny that they apparently literally say “Barf!” rather than making the sounds of barfing, such as “Bleaugh!”

Finish him!!

Finish Him!

Game: Mortal Kombat

System: Arcade

Year: 1992

The voice narration gave these words a chilling malevolence. When you hear this, having won two out of three rounds in the Mortal Kombat tournament, it’s time to unleash the combo that triggers your fatality move, giving your opponent a death worthy of the game’s title. Or, if you’re the loser, it’s time to endure the indignity and shame of having your body torn asunder, in the most unpleasant way imaginable. Yet, no matter how many times they die in the MK tournament, you everyone still gets to fight again in the endurance rounds.

Game Over

Game Over

Game: Just about every one, ever.

System: All of them.

Year: Eternal

Game Over, man. Game over!

To be sure there are many more memorable videogame quotes that I’ve left out. What are your favorites?

Achievement unlocked: $100 in revenue on GameMaker Marketplace

On July 20, 2014, I released my first asset for GameMaker Marketplace, MMap Mini Maps.

Today, nearly three years later, I have finally reached the $100 author revenue milestone, meaning I’ll finally get paid.

In celebration, I’ve put all of my paid assets on the GameMaker Marketplace on sale for just $0.99 for one week, ending 4/10/2017. Update: I’ve decided to extend the discounts by one day per asset sold during the sale. So currently the sale will run through 4/12/17. We’ll see how long we can keep this going.

You can buy them here.

Enjoy! And share! And thanks!

YoYoGames: Major GameMaker roadmap announcement

YoYoGames posted a major, detailed update to their roadmap for GameMaker Studio 2 this morning. Seemingly not an April Fool’s joke.

The announcement contains lots of exciting, long-awaited new features and improvements, but not much detail as yet about when most of these might be forthcoming. And the usual disclaimers that these are plans, not promises.

There’s even more at the link above, but here’s what I think about these in particular: (more…)

Game design evolution during the cartridge era of consoles

Someone asked a question on the AtariAge facebook community:

For those of you that grew up on the 2600, you know that the system was constantly improving.

Did you ever look for any benchmarks in games, improvements that let you know the “next big step” had occurred?

For me, I always thought that games with any sort of text were huge back in the day (like the Activision logo at the bottom of the screen), as were multi-segmented, multi-colored humanoids in games (such as Pitfall Harry).

This became very important for playground bragging rights as the Intellivision became more and more popular and us VCS acolytes had to ‘defend’ our system.

As a kid, were there any big “steps” you guys used to look for in your 2600 games to know Atari had reached its next level?

This is an interesting question.

I got an Atari 2600 when I was in first grade, in 1981. By that time the console had been out for 4 years already. We played it until the Atari 7800 came out, in 1986, but then switched over to NES, about a year later.

There wasn’t much in the way of a “bragging rights” war on the playground where I grew up.

Most kids who had any video game system at all had an Atari 2600, and we were happy to have them. I think many of us didn’t have anything (apart from arcade coin-ops) to compare with. I knew one or perhaps two family friends who had an Intellivision, and one family friend who had a Colecovision. I knew a lot of kids who didn’t have any videogame console at home. And I knew a few kids who had a home computer of some type (PC, Apple ][, Commodore 64, Atari 8-bit).

And some kids just had those little handheld LED games made by companies like Coleco, that weren’t quite videogames, but pretended to be.

We played all of them, although the LED handhelds were obviously inferior, and we grew tired of them quickly. Everyone just thought that video games were cool and fun, and we didn’t pay much attention at all to whether one system had better graphics. It was enough that it existed at all, and if it was available, we played it as much as we could.

The Intellivision households had a console that offered better graphics, but had awkward controllers and a smaller library. Colecovision had the Atari 2600 adapter and slightly less awkward controls compared to the INTV, but still a far cry from the simple, rugged Atari 2600 joystick. It also had a 10-second delay when booting, which we found annoying. We maybe noticed that the graphics were a bit better, but overall it didn’t matter as much as you might think. Graphics were important, but gameplay was by far the most important quality.

And of course we were well aware that the original arcade game always had much better graphics than an Atari 2600 port of the same title. That was understood, to be expected, and forgiven, most of the time (Pac Man and Donkey Kong not so much). But also the arcade games were harder, and were designed to suck quarters out of our pocket, while Atari games were designed to be challenging without being too frustrating, and to give hours of enjoyable play.

Bottom line: If a game was fun, it didn’t matter if it didn’t have the best graphics, but a game with amazing graphics that wasn’t fun to play was something we looked down upon. This has always been true, and always will.

Since the 2600 had been out a few years before my family got ours, I wasn’t all that aware of the release date of different games. Games existed, and when I learned about them for the first time I wasn’t even thinking about whether the game had just come out, or if it had been out for a while, and I had only just heard of it. Games existed; they just were.

I paid a bit more attention to publishers, and liked games by Atari, Activision, Imagic, and M-Network, and Parker Bros. the most. But even the publisher didn’t matter so much as the quality of the game. I would play anything and everything I could get my hands on, and continued to play what I liked, and returned to re-play games that I enjoyed frequently.

That said, we did take note of certain games that seemed to evolve through sequels, such as Pac Man > Ms. Pac Man > Junior Pac Man, Defender > Stargate, and Pitfall > Pitfall II.

Sure, some games did have poorer graphics, or simpler play, or just sucked, but aside from the direct sequels where it was obvious, we weren’t all that aware that one game was older or newer, or that one game had extra chips inside the cartridge that enhanced the circuitry inside the console. That was something that I learned about much later, when I was old enough to appreciate the technology and understand it a bit better.

But for the most part I didn’t think of game technology improving over time, I just thought “Hey this game is better” or “They really packed a lot into this game” or “This game is very sophisticated compared to that game.” In other words, to me it felt more either a design choice to make a game more or less sophisticated, or a matter of the developer’s skill or work ethic to make a game better or worse, than what the technology allowed.

It only became apparent to me that newer hardware could do stuff that simply wasn’t possible on older hardware when the Atari 5200 came out. I don’t remember when I first played the 5200, but my cousin had one, and I got to play on it a number of times when we’d go over to visit. He was the only kid I knew who had one, and its graphics were amazing compared to the 2600, but again the library was limited and the controllers weren’t as good as the 2600’s joystick. We speculated at the time that the 5200 games could have better graphics because the cartridges were physically bulkier, but the reality was this had nothing to do with it. Although, reinforcing this errant belief, NES cartridges also were bulkier, and had better quality games overall. We would have been very surprised back in the day to see just how much empty space was inside those plastic shells.

It still didn’t occur to me that there could be extra chips inside certain carts that made them capable of more sophisticated graphics and game play within the Atari 2600 library. It was certainly one of the factors that enabled a popular, older 2600 to continue to stay relevant in the market years after newer consoles had been introduced. But it wasn’t like we knew why the games that came out in 1982-84 often had better graphics than games that came out in 1977-81; we just knew they were good games and it seemed like maybe the developers were getting better at making them as time went on, but it wasn’t like the best of the old games weren’t still great. And there was certainly a lot of titles that were released on the 2600 late in its life cycle that were inferior to games that had been released years earlier. What was possible continued to improve over time, but actual quality varied quite a bit over the life span of the system, and seemed to have more to do with how much the developer cared (or had budget for) than with the year the game was produced in.

When the 7800 came out, we felt that it was the best Atari to have, as it had backward compatibility with the old 2600 library (that was still every bit worth playing) plus decent joysticks (at least they centered automatically!)

Of course when the NES came out, it was obvious immediately that it was a quantum leap over even the 7800, due to its vastly superior sound capability, which allowed all games to have a musical soundtrack to it that could not be equaled on any Atari console. At first I didn’t care for the NES gamepad, which didn’t have a joystick, but instead featured this odd thumb-cross we didn’t yet know to call a D-pad, which at first I found very uncomfortable and even painful to use, although my hands quickly adapted and got used to it. Again, the quality of the game play was what hooked me and got me to play through the hand cramps and blisters until my hands developed the stamina to hold the uncomfortable little rectangle. NES games didn’t just offer superior graphics and music, but more sophisticated types of play, where exploring and adventure became the dominant style of play, ascending to on par with twitchy hand-eye coordination skill and action. When the NES came out, everyone knew that a new age had dawned, and that the venerable Atari was obsolete. Most of us moved on, but a few never forgot.

Nintendo announces Switch launch date, price

Yesterday, Nintendo had their big announcement about their new console, Switch. It will be $299 on March 3, region free, online play will be paid, launch titles have been announced. The Joy-con controllers are more sophisticated than initially shown in the teaser video Nintendo released a few months ago. Joy-con have motion control and “HD” vibration features, and even a camera on the right side. Onboard there’s only 32GB of storage, which is expandable with SDHC the built-in screen is “only” 720p (which to be fair is plenty on a handheld screen, and should help with battery life to a degree) but does support touch.

The new Zelda title looks amazing. New Zeldas always do, but this one really does look very impressive. The new Mario looks a bit weird, like they put Mario in a GTA world, or that Halloween episode of the Simpsons from years ago, where Homer went through some dimensional warp and ended up in the 3D world. But also amazing. It won’t be out until later this year, unfortunately. There will be other sequels — surprised? Splatoon 2 is happening, as expected. Mario Kart 8 is being revised somehow and brought along for the Switch. Surprisingly, no word on whether Super Mario Maker is going to be ported as well. It really should be.

The biggest criticisms of the announced launch titles are how few they are, and that not enough Big Names have been announced. It seems Nintendo may be playing a game to maximize sales by spacing out their major releases so that each gets full attention.

I have some new questions. Because the Switch hardware is so reconfigurable and flexible, how will games adapt to it? Will Switch games be designed with the intent that the Switch be in one particular configuration in order to play them? Or will they have multiple modes, which can be played depending on which configuration you have your Switch in at the moment? I imagine it will probably be a bit of both. Although, if it drives costs up to make the software flexible enough to handle whichever mode the Switch is currently in, that could end up backfiring as developers target one specific mode only per title. How will supporting all of these different modes with one game work for developers?

There’s been a certain amount of WTF and ridicule following the announcement among Nintendo naysayers. Accessories for the Switch seem to be pricey. Over the last few months, since the initial announcement, there’s been a considerable amount of second-guessing among gamers. Initially the Switch seemed very exciting and innovative, a do-it-all, go-anywhere console with loads of innovative features and potential, but that initial impression wore off quickly as gamers wondered just how good the graphics and battery life would be, and what sort of capability the hardware would have relative to the competition.

Does Switch offer enough to get me to buy one? Maybe… Zelda: Breath of the Wild is the most attractive draw to the new console for me, by far. If they had Super Mario Maker, and maybe a new 2D Metroid game, that might be all it takes for me to put it on my want list. Hmm, how about a Super Metroid Maker? Or Mega Man Maker? Or literally any 8-bit franchise maker for that matter? I’d buy Switch in a heartbeat if they had something like that in the works. The small number of titles at launch isn’t that small, although the number of games that actually interest me is.

That’s a concern, but I’ve rarely been an early adopter when it comes to videogame consoles. My first console, the Atari 2600 had been out for several years before I was old enough that my parents bought one. I had no input into that decision, but it was a happy one. I think we got our NES in 1987, after a year of the Atari 7800, maybe we got a SNES the year it came out, the N64 came out when I was in college and my brother had one but I didn’t play it all that much compared to when I had free time.

I wouldn’t have bought myself a GameCube, which came out when I was probably the least interested in videogames that I’ve ever been in my life, but I received one for Christmas one year, 2002 or 03, I think, and didn’t buy a Wii until they stopped instantly selling out of stores…

I still haven’t, and likely won’t, buy a Wii U, ever, despite how much I’d like to play with Mario Maker.

And while I thought the Switch had an exciting design when I saw the trailer video for it a few months ago, I don’t feel all that excited about it. It’s capability as a mobile game platform doesn’t do anything for me — I’ve never been into mobile gaming. Its reconfigurable controllers are clever, but I don’t know that they truly offer anything new. And the multiplayer aspect, which seems to be another big part of Switch’s appeal, doesn’t do much for me, because I’ve always been more of a solitary gamer. For much the same reason, I haven’t been very into network games, either.

I just haven’t found much compelling about AAA games, really, for many years. A few exceptions, to be sure, but probably not even 1/year. I’m pretty deeply rooted in the old school, you might say. These days, I’m much more into retro-styled indie games, like Shovel Knight, Hyper Light Drifter, and Daniel Linssen’s brilliant Ludum Dare platformers, and classic 8- and 16-bit era games.

These days, I find I just don’t care as much for 3D games, analog joysticks, and voice acting and cutscenes in videogames. These things can be done well, but are so hard to do well, and age so poorly, compared to 2D games with low-res graphics, which seem timeless. Truthfully, most modern 3D games either feel crude and lacking in polish, or else cookie-cutter affairs lacking in soul, offering little that their predecessor didn’t also.

As such, I don’t feel that Switch is necessarily aimed at me. That’s fine. I’m pretty niche in my interests, and am served well by my existing library, as well as by the indie market. And I don’t know that that’s a miss on Nintendo’s part. I expect that if the exclusive titles are there, Switch will be a hit. But if Nintendo don’t get a lot of great first-party hits, and attract a strong lineup of 3rd party developers to release games on their platform, it could be a repeat of the Wii U.

I fully admit I know nothing about videogames as a business. I really liked the Ouya, and I still do. Time will tell.

Getting ready for Game Jam Weekend, part 2

Take inventory

Ahead of the weekend, it’s good to take a personal inventory. Conceptually, I like to break this into three main areas: Skills, Tools, and Supplies.

Skills

Skills are your personal abilities, your strengths that you will bring to the project. Are you a good designer of rules and systems? A good programmer? Visual artist? Audio designer? If you don’t really know what your strengths are, it’s time to reflect on what your capabilities are, and think about how they might be applied to the project. Even if you think you know what you’re good at, or what you’re going to be doing, it’s good to review everything you know how to do, just in case you might have overlooked something or taken it for granted.

Really, just about any skill can be useful in game development. It’s not just design, programming, art, audio, and project management. Things like math, physics, psychology, humor, and acting are all important skills that have obvious application to different parts of game development. Be open minded and creative, and ask your friends what they think you’re good at or what your strengths are. You might be surprised by what they see, that you wouldn’t have thought of.

Tools

What are you working with? If it’s equipment, get it all together before jam weekend and make sure it’s in good working order, that any cables or accessories that you need are not lost, and so on. Musical instruments, microphones, game controllers, and any other hardware that you can think of should be on a list, and packed up ahead of the Jam weekened. Do you need batteries? Are they charged? Do you have enough of them?

If it’s software, check for updates and make sure it’s installed and launches, that the license is activated, and so on.

Are there other things you can set up ahead of time, like your version control repository, project website, mailing lists, etc? Get it together ahead of time.

Supplies

Supplies are things that you’re going to need for the weekend that are consumable. Things like food, sleeping bag/blanket and pillow, toilet paper, etc. Or things like paper, pens/pencils/markers, and post-it notes. Or game pieces like dice, pawns, cards, and so on.

Make a list, and get everything together ahead of time. If you’re running around last minute, you’re going to forget something, and at the very least you’ll be more stressed out than you would be otherwise. Preparing everything ahead of time means you can relax, clear your mind, and focus on having a productive weekend.

Set goals

Although I said in my previous article that you should approach your physioligical preparation for Jam Weekend like you’re gearing up for an intense athletic competition, a Game Jam really isn’t a competition. The experience is what matters, not just the outcome. Failing is fine! It’s only a weekend, and part of the reason it’s only a weekend is to set the stakes low enough to allow you to take risks. So take them! Do something that might not work, or that you’re not good at, or that you haven’t tried before.

My first Global Game Jam, I wanted to simply complete a project in a weekend that was playable. I didn’t care how good or bad it was, although obviously I wanted to put my best effort into the project, and did. But my main goal was to have something to show for the weekend that I could call “finished” and show to others. That was a fine goal to have.

But there are other goals that you could have. And it’s entirely up to you what those are. Just think about them, and let them guide you. Your goal could be to work with or learn about a specific tool or technique that you have never used before. Or you could make your goal be to make the best game you know how to make, and so focus on execution rather than learning or experimentation, sticking with what you know and what you do well, and simply be as productive at what you’re already good at as you possibly can.

Your goal could be to focus on team work and collaboration, or on being a good project planner/coordinator. Or your goal could be to have a good time, or to ensure that someone else has a good time with their first jam experience, by creating a positive atmosphere and giving encouragement. Maybe your goal is just to find out whether this is something you can really do.

There are many, many dimensions to a game jam, and you can set goals respective to any of them. It doesn’t matter what your goals are, it matters that you have them.

Teaming

I see basically three approaches to participating on a project: solo, on a team, or as a freelancer.

Solo developers, do everything for their project themselves. This works well if you’re well rounded enough in your skills inventory to handle everything yourself. But most people are strongest in one or two skill areas, and are weaker or nonexistent in other areas. It can be limiting to work alone, or it can be liberating. But it all falls to you.

A Freelancer is a jammer who focuses on a particular skill, and provides services to as many teams as need it. This often works well for musicians or artists. Rather than remaining a dedicated resource for a single team, they will work on several projects. This keeps them busier than they might otherwise be. Oftentimes the artists are idle in the early stages of a project, prior to the game design being at a point where it’s ready for the artists to start working on things. And often they can finish the assets for a game quickly, and then have little else to do, and so are able to provide assistance to other projects.

Teams are when a group of people work together on a project. If you’re teaming, either you’re aware ahead of time who you plan to work with, or you’re not.

If you know your team members ahead of time, that’s great, because you can plan and coordinate and prepare ahead of the jam. Just knowing what your capabilities and skill levels are helps, but it’s also good to know what your goals and tastes are. Get together and go over your skill and tool inventories and figure out what your team’s strengths, weaknesses, goals, and interests are.

Get an idea of what role each team member will play, and then each team member can focus their preparation more narrowly in support of that role. If you have more than one programmer, make sure they’re on the same version of the tools that you’re using, and that you all have access to the version control repository that you’re using. Pre-jam is a great time to do stuff like set up your web site, your version control repository, Trello boards, Slack channels, and so on. Make sure that everyone on the team has access to any common tools that they will need to function on the team, and that they have at least some familiarity with them.

If you don’t know who you’ll be working with, and just go into the weekend intending to work with whomever has an interesting project and needs help, you can still prepare by getting to know the people who’re going to be at your jam site ahead of time. Make friends, and see who you might feel like you can work well with.

You can also prepare inwardly, too, and work on your presentation skills, and social skills. Practice pitching ideas, focusing on being brief, interesting, and persuasive. It can be hard to articulate ideas and explain them to other people, but practicing doing that can help.

A good exercise is to think of a game that is familiar to you and that you like, and describe it in less than a minute to someone who has never seen the game before in a way that would give them an understanding of the game and make them want to play it. Or focus on one aspect of a game and explain why it is successful at what it does. Being able to clearly describe a thing that does not yet exist is a critical skill in the early stages of developing a game. If you can do this clearly, succinctly, and compellingly, it’s more likely that you’ll be able to get others on board and aligned with your ideas.

It’s equally important to be good at listening to the good ideas of others, and to be able to negotiate compromises. Think about what it means to be a good listener, a good mediator, and a good conflict resolver and problem solver.

Another critical skill for teaming is managing the team and the project. How do you keep everyone on track, keep tabs on what each member is working on, and ensure that what they’re working on will integrate with the other pieces the team is working on? Communications should be ongoing throughout the weekend, with frequent check-ins to report status, verify that everyone understands what is needed and who’s responsible for it. How do you like to hear feedback? How can you help someone to understand what you’re telling them when they’re not clear?

In short, think about all the interpersonal dynamics of working with others, and ask yourself what kind of person would you want to work with. Remember that when you’re working with your team, and be that person! Thinking about it ahead of time will help you hit the mark, and avoid getting caught up in being short sighted in the moment.

Getting ready for Game Jam Weekend, part 1

Global Game Jam 2017 is coming up soon. I’ve been talking with my fellow game developer friends about how to prepare. It seems like a good topic for a blog post or two.

Preparing mind and body for the game jam

In this article, we’ll cover the mental and physical preparation you should think about doing ahead of time, and during the weekend, to maximize your performance and your potential.

Approach Jam Weekend like you’re getting ready for a major athletic competition.

(Normally this means a season’s worth of training on specific skills and physical conditioning, but we only have a few days, so I’m going to skip that part of it. It is what it is.)

A game jam is more a mental activity than a physical one, but the same ideas apply. Just as you would prepare for a chess or poker tournament, or a triathlon or ultra-marathon, you should strive to enter Jam Weekend at your peak. That means healthy, well rested, energized, and in top condition.

Be well rested and well nourished. Jamming for a whole weekend is seriously taxing on the mind, and the brain needs energy and rest, just as the body does.

Sleep

DO count on getting good sleep during the weekend.

Some people will stay up all weekend, but I don’t recommend it. You’re more productive when you’ve gotten adequate rest. If you can’t sleep well at the Jam site, and it’s pretty unlikely — there’s a lot of noise and chaos and activity going on at all hours — I recommend going somewhere you can get good sleep when it’s time, and if that means off-site, then so be it.

“Crunch time” is a common anti-pattern in software and game development, and is almost always unnecessary and detrimental in the long run. In the short run, people can and do get away with it — mostly when they’re young enough that their bodies and minds are able to withstand such stresses and recover from them.

Because it’s only 48 hours, a lot of people treat Jam weekends like they’re crunch time, and will stay up 36 or even 48 hours. I did that during my first Global Game Jam (in 2011) and learned from it that I wasn’t a 20-something college undergraduate who could pull consecutive all-nighters anymore.

My brain was determined to complete a project by deadline, and due to buggy beta software corrupting my project files, I ended up having to start over twice, redoing my entire project, which really sucked, and meant I basically had no choice but to stay up all weekend or else drop out, and I elected to stick it through to the end.

I finished my project, but my mind was not working anywhere near optimally during the last 12 hours or so, and at times I could’t keep a train of thought going. I’d stare at the keyboard trying to remember what I was trying to do, and what the next step was. If I’d just taken a couple hours for a power nap, I probably would have been better off, made fewer mistakes, and gotten more done. Although my project compiled and ran, I discovered that it was buggy and unwinnable, and had to fix it after deadline. Every project is likely to be buggy, of course, but working under extreme sleep deprivation is only going to make that worse.

Still, some people do seem to thrive on short term sleep deprivation, and become more creative, more focused, or just more crazy, and if that’s you, and you know what you’re capable of, do what works for you.

Nutrition

Eat good food beforehand, and bring or order good food for the weekend.

At my local Global Game Jam site, there will be food provided, and probably they’ll take orders for delivery from somewhere, but a lot of it is junk food or comfort food, and not necessarily what’s best for being well nourished. So consider doing better by yourself.

Preparing a healthy balanced meal is a lot better than eating convenient junk food and caffeine. I wouldn’t dream of specifying a recommended diet, but if you don’t know what’s healthy, look at physical trainers and what they recommend for athletes. A lot of starchy food like pasta or potatoes can be good for storing energy. Fresh vegetables and good lean protein is also an excellent choice.

You don’t want to spend a lot of time on prep and cleanup during the jam, so if you don’t have non-jammers supporting you with food service, then either order out for yourself, or prepare meals to bring that you can reheat easily.

No outside distractions

It goes without saying, perhaps, but try to have your outside life well in order so that it doesn’t intrude on your weekend. Anything can happen of course and if you have to bow out due to some family emergency or something, well, you do what you have to do. Always have your priorities in order, and follow them. If something comes up, hey, that’s life. But plan ahead, and do what’s necessary to keep your plate clear so you can focus on the one thing, and keep yourself free of distractions and other responsibilities as much as possible.

Galaxian is a triumph on the Atari 2600

As a child of the 1970’s, I’ve been attracted to arcade video games since I was tall enough to reach the controls. This was 1981-84, during the heyday of the arcade’s Golden Age, a time when games like Pac Man, Dig Dug, and Galaga were new, hot, and everywhere. Grocery stores, gas stations, seemingly anyplace people might spend time, you’d find a couple of arcade games, ready to suck the quarters out of anyone who passed by.

Just slightly older than these games were the ever-popular Space Invaders, and its evolutionary next step, Galaxian. Although these titles were top shelf games in their day, I found that I didn’t enjoy them very much.

Space Invaders was just frustratingly slow at first, but then sped up to an unfair pace by the end, and I could never manage to destroy that last invader on the first wave. You had to have perfect aim to hit it, and it moved so fast it was seemingly impossible to track, so you had to be lucky. If you missed, the slow-moving missile took forever to disappear at the top of the screen, and you couldn’t fire again until it did. Usually this delay meant your death, as the hyper-paced final invader would reach the ground, ending your game. Plus, it was black and white. It felt old. I respected it — even then I could tell that it was a important game — but grudgingly, I had to say that I just didn’t enjoy it that much, although I wouldn’t have admitted it to anyone back then.

Galaxian, too, was a game I found too slow and frustrating to play at arcades. It seemed like the next step in the vertical space shooter. Graphics were now in color. A formation of aliens marched back and forth across the screen, but this time instead of descending toward the earth, they stayed at the top of the screen, while one by one, or in pairs, individuals would peel off from their formation and dive bomb you. Their bullet patterns and flight paths seemed to make it all but certain that they would hit you if you didn’t hit them first. I could usually survive for a while, maybe clear a screen, but it never failed that if I happened to miss a dive bombing enemy, it would corner me in the side of the screen and crash into me, or hit me with too many bullets to dodge. You could always dodge one, but there’d always be another one following up, and your first dodge would put you right in its path. It seemed unfair, and so, not very fun. I always gravitated toward the games that I could last a bit longer on, so I could get my money’s worth out of my quarters.

I had a cousin who owned an Atari 5200, and played Galaxian on it once or twice while visiting them. The 5200 port was a very faithful reproduction of the arcade experience, not exactly arcade-perfect, but nearly so. I still didn’t care much for it, because it suffered from the same shortcomings. It wasn’t as bad to lose at home, since it cost nothing, but I still preferred to play games that felt fair.

It never entered into my mind that maybe I just wasn’t very good at Space Invaders or Galaxian. But probably, I was. Ok, not probably. I sucked. But in my defense, I was like 6, and just tall enough to reach the stick and see the screen. But back then, I blamed arcade games for being “greedy” in contrast to home consoles, which seemed to reward players with longer games that were still challenging, but more fun because they weren’t so brutally ass-kicking hard.

I never played Galaxian on the Atari 2600 back in the day. I’d played the 5200 version and was impressed with its arcade-quality graphics, and I remember seeing the pictures on the back of the box on the 2600 version, and being unimpressed. Since I never particularly enjoyed the game, I didn’t have any interest in owning it on the 2600, never knew any kids who had it in their collection, and so never played it. At some point, we had an Atari 7800, which had Galaga, the sequel to Galaxian, and one of my very favorite games, so I played a lot of that.

I’m not sure when exactly, but at some point I picked up a copy of the 2600 port of Galaxian, probably a few years ago. I recognized it was a significant title in videogame history, and so I wanted it for my collection, despite not having favorable memories of it from its heyday.

I finally got around to playing it today, and came away very impressed. Here’s a video review so you can see what it’s like:

The 2600 port plays much better than I remember the arcade. The motion is extremely fluid, which, considering the limitations of the Atari 2600 hardware, is nothing short of amazing. Maybe I’m just better at videogames than I was at ages 5-8, but I found that the game felt very fair, with divebombing enemies that are actually dodge-able. I’m sure, the horizontal aspect ratio of the screen plays into this somewhat, as you have more room to dodge, and also your shots that miss take less time to leave the screen, meaning that you can fire follow-up shots that much faster.

I was always a fan of vertical shooters of the Atari 2600, my favorites being Megamania, Phoenix, Threshold, and Tac-Scan, and Space Invaders. Galaxian is every bit as good as the best of these, and is still fun to play even now.

Playing Galaxian tonight, I found that my strategy was different from how I played the arcade original some 35 years ago. My old strategy was to try to shoot the enemies still in formation. They were easier to hit, since they didn’t swoop or shoot at you, and it seemed to me safer to eliminate them before they could turn into a threat. I’d try to shoot the divebombing aliens as they flew over me, and dodge out of the way of them and their shots, but mostly I concentrated on blowing away he ranks of Galaxians in formation, much as I approached Space Invaders.

My new strategy was much more successful, and rewarding: I ignored the galaxians in formation, since they don’t do anything that can hurt me, and focused on the divebombing aliens. It turns out, this has many advantages. First, by focusing on the divebombers, you are focusing on the only thing in the game that can threaten you. Shooting them is a much more reliable way to avoid them than dodging. You will need to dodge sometimes, but if you focus on developing skill in shooting the moving enemies, it gets pretty easy to pick them off before they can collide with you. The green Galaxians are simple, slow moving, and easy to hit. The purple ones are harder to hit, but with a little bit of practice the timing becomes easily mastered.

Hitting divebombing enemies in mid-flight makes you safer in two ways: enemies are destroyed before they’re low enough to collide with you, and they can’y get all their shots off. Typically, you’ll hit them as they cross ahead of you, and so you’ll be moving in the same direction, to track them, and the shots they do get off will fall harmlessly behind you, and by destroying the alien as it passes directly above you, you prevent it from getting ahead of you where it can drop bombs that would be dangerous to you.

Additionally, by hitting them as they’re diving toward you, your shot has less distance to travel, which means that you can get off more shots — since you can have only one shot on the screen at a time, when they hit something low on the screen, the shots don’t have as far to travel, meaning they hit the target sooner, meaning that your bullet is consumed and you can then fire another shot more quickly. If you miss one of the bombers, you might still end up hitting one of the galaxians still in formation, especially early in the stage, which isn’t so bad either. But the lower your shots are when they connect with an enemy, the faster you can shoot.

This in turn sets up a rapid flow of firing, hitting a dive bomber, then hitting the next dive bomber with a rapid follow-up shot. Once mastered, you can mow through the entire formation in quick succession in this manner. This turns out to be very enjoyable. You feel more skillful, since you’re targeting the fast-moving enemies, getting more points for them, and it looks more risky, since you’re often hitting the enemies pretty low on the screen, when it looks like they’re most dangerous — but at the same time you’re actually playing the least risky style of play. Of course, that’s what skill is — finding the right pattern of actions to minimize your risk, while doing what looks the most daring.

It’s clever, because the more intuitive way to avoid risk would be to try to avoid the dangerous enemies and attack the enemies that aren’t a threat. But counter-intuitively, when you focus on the dangerous enemies, and take the aggressive approach of destroying them rather than running from them, it minimizes the risk they pose to you, while the enemies that aren’t a threat remain a non-threat.

At this point, I recognized what a truly well-designed game Galaxian for the Atari 2600 is. I’m curious to see whether this strategy applies to arcade Galaxian. Since I don’t have ready access to an arcade with Galaxian in it, the next best thing is to watch a YouTube video of a skilled player.

And it looks like this is indeed the strategy to employ, although this player also has enough time to target plenty of enemies still in formation. I think the 2600 and arcade versions are different enough in their game play that they feel like different enough that while the basic strategies are more or less the same, the specifics are different. In the arcade, there’s much more space between the bottom of the screen, where you are, and the top of the screen, where the enemy formation is. But ultimately, I think the Atari port gives you less time to target the enemies in formation, forcing you to spend most of your time focusing on the swooping divebombing enemies.

In any case, Atari 2600 Galaxian is a fantastic game, and if you’re into vertical shooters is a must have, being one of the finest examples of the genre on the Atari, as well as an outstanding port of a historic and classic game.

csanyk.com © 2016
%d bloggers like this: