Age of Empires II & Longevity

September 14th, 2011 | 2,559 views | 8 Comments » |

Age of Empires II is a real-time strategy game developed by Ensemble Studios and published by Microsoft in 1999. After it came out, it was the standard by which all other RPG games were measured for many years. Some say it still is.

Age of Empires II

What’s so crazy about this game is that people still play it at LAN parties, over 12 years after it came out. Talk about longevity! Of course, they’re now playing it on Windows 7, instead of Windows 2000.

It’s hard to believe it, but Age of Empires II was originally released for Windows 98 and 2000 — it came out a whole two years before Windows XP existed! Its requirements were a 166 MHz processor, 32 MB memory, and 200 MB disk space. It’s hard to believe that a video game — or any program for that matter — could possibly run with just 32 MB memory! How times have changed…

And four OS releases later, it still runs flawlessly on Windows 7. If Microsoft excels at any aspect of software development it’s definitely backwards compatibility.

8 Comments | Leave a comment » More posts about: Video Games

Cheating in Video Games

May 5th, 2011 | 3,583 views | 7 Comments » |

I recently received an out-of-the-blue email from the owner of GameHacking.org. He said that he enjoyed an article I wrote about hacking video games for Christine Alfano‘s Stanford Rhetoric of Gaming class.

His email made me realize that I never posted the final version of that research paper here on my blog. My writing style has changed a lot since 2009 when I wrote this paper. I like to think I’m less verbose now. Also, I’m not sure that I still agree with all my main points. Still, it’s a pretty cool paper and definitely a fun read — especially if you’re a gamer.

So, without further ado, here it is.

Read the rest of this entry »

7 Comments | Leave a comment » More posts about: Essays, Video Games

San Francisco Symphony Orchestra

July 16th, 2010 | 2,679 views | No Comments » |

Tonight, I listened to the San Francisco Symphony Orchestra play, and wow. What an amazing concert! It was called Distant Worlds: Music from FINAL FANTASY. All the music was composed by the Japanese video game composer Nobuo Uematsu and conducted by Grammy award-winner Arnie Roth.

This was my second time attending Distant Worlds (I also went last year), and it was even better than I remembered. Nobuo Uematsu was in attendance again, and as expected, the crowd gave him an extremely warm welcome. At the end of the concert, Uematsu got a 4-minute standing ovation from everyone in the Final Fantasy fan-filled hall.

Here’s my favorite song from their CD:

Zanarkand (Final Fantasy X)

Final Fantasy Distant Worlds II

Here was the evening’s setlist:

  • Opening~Bombing Mission (FINAL FANTASY VII)
  • Don’t be Afraid (FINAL FANTASY VIII)
  • Memoro de la Stono (FINAL FANTASY XI)
  • Medley 2002 (FINAL FANTASY I-III)
  • Main Theme of Final Fantasy VII (FINAL FANTASY VII)
  • Prima Vista Orchestra (FINAL FANTASY IX)
  • Kiss Me Goodbye (FINAL FANTASY XII)
  • Zanarkand (FINAL FANTASY X)
  • FINAL FANTASY series: Main Theme
  • The Man with the Machine Gun (FINAL FANTASY VIII)
  • Theme of Love (FINAL FANTASY IV)
  • JENOVA (FINAL FANTASY VII)
  • Ronfaure (FINAL FANTASY XI)
  • FINAL FANTASY XIII medley
  • FINAL FANTASY XIV medley
  • Opera “Maria and Draco” (FINAL FANTASY VI)
  • Terra’s Theme (FINAL FANTASY VI)
No Comments » | Leave a comment » More posts about: Music, Video Games

GCC Undefined Behavior

March 28th, 2010 | 74,085 views | 14 Comments » |

Check out this little GCC gem that I just discovered read about.

In GCC 1.17, when the compiler encountered specific forms of undefined behavior (unknown/not implemented #pragmas), here’s the code it executed:

execl("/usr/games/hack", "#pragma", 0); // try to run the game NetHack

execl("/usr/games/rogue", "#pragma", 0); // try to run the game Rogue

// try to run the Tower's of Hanoi simulation in Emacs.
execl("/usr/new/emacs",  "-f","hanoi","9","-kill",0);

execl("/usr/local/emacs“,"-f“,"hanoi“,"9“,"-kill“,0); // same as above

fatal("You are in a maze of twisty compiler features, all different");

When GCC identified “bad” C++ code, it tried to start NetHack, Rogue, or Towers of Hanoi. Failing all three, GCC printed out a cryptic error message. Wow.

This just goes to show you that when the official C++ specification talks about undefined behavior, they mean business:

[Undefined behavior is] behavior, such as might arise upon use of an erroneous program construct or erroneous data, for which the Standard imposes no requirements

No requirements indeed.

Update: It turns out this is actually implementation-defined behavior, which is slightly different than undefined behavior. Implementation-defined behavior actually requires the compiler to document what it does, but there are no requirements on what it can do.

14 Comments | Leave a comment » More posts about: Computer Science, Video Games

Living with First-Person Shooter Disease

August 20th, 2009 | 2,727 views | No Comments » |

The story a man afflicted with Duke Nukem’s disease and his life as a first person shooter.

No Comments » | Leave a comment » More posts about: Best of the Web, Video Games
Fork me on GitHub