February 13th, 2008

The Past of the Real Time Strategy Game

During class recently, someone mentioned an article they read on Gamasutra about how Real Time Strategy games should really be called something else, like Real Time Tactics games. Being a big RTS fan, which should probably be apparent from my past writings, I decided to dig up the article and take a look. You can find the article here.

While an interesting article, I think that the premise is rather fundamentally flawed, for a variety of reasons. One is a misappreciation for the depth and complexity of strategy, and the other is a misappreciation for the depth and complexity of strategy games themselves. I’m going up against some tough competition here, since I can’t cite people like Clausewitz or Sun-Tzu, and I’m going on memory for my primary strategy source, which is the book Strategy by B.H. Liddell Hart. It’s an excellent book, and I recommend you check it out if you happen to be interested in strategy (now would be a good time to have an Amazon referrals account, but I don’t, so buying it won’t give me any money).

The rest of the argument after the cut.
Read the rest of this entry »

February 7th, 2008

Backseat Game Design

While browsing around the C&C community for interesting news, I happened across an article which includes a design for the “perfect” C&C game mode for Tiberium. For those who many not know, Tiberium is a first person shooter set in the Tiberium universe (created by the original Command and Conquer, along with Tiberian Sun, and Tiberium Wars). It’s not part of the C&C franchise, it instead shares the same universe setting-wise, but is a separate branch. This allows a lot more freedom.

While the game mode in the article is interesting, it has two major flaws.
1. It doesn’t fit with what the apparent design goals of Tiberium are.
2. It sounds an awful lot like Renegade.
For some people, #2 isn’t really so much a problem as a great thing, but Tiberium isn’t Renegade. Renegade was an attempt to create an FPS that was a C&C game. Tiberium is an FPS that happens to be in the same universe as the C&C games. They’re not really the same at all.

My own design for a team based multiplayer mode for Tiberium comes after the cut.
Read the rest of this entry »

February 6th, 2008

LinQ

About a year ago I said I would make a post about LinQ. Now that Visual Studio 2008 is out, and LinQ is a released technology, I think I can get around to it. I still haven’t built a project that makes a good use of LinQ, but I’ve got a fairly good understanding of it, and found some interesting ways to use it.

Now, you may be wonder what LinQ is, and what it stands for. The answer is that it stands for Language INtegrated Query. It is an extension to C# and VB.NET that allows you to use a SQL-like syntax for constructing queries against a wide variety of data sources. The most obvious example is XML, but you can also use most of the built in data structures in the .NET framework as well.

With that out of the way, on to an example or two of how I’ve managed to use LinQ, and what the challenges that I’ve run into are.
Read the rest of this entry »

February 1st, 2008

Why All Games are Educational

During my work at the GAMBIT Games Lab, the topic of educational games came up. The question was whether or not educational games were a valid genre. That got me thinking, which led to this. My conclusion is that in fact, all games are educational. Some have a more explicit purpose, teaching concepts which are applicable outside the game realm (whether this be games like Number Munchers, Word Munchers, or Mavis Beacon Teaches Typing), but any time you are playing a game, you’re learning.
Read the rest of this entry »

December 1st, 2007

Commanding and Conquering

This past summer, I had the opportunity of a lifetime (at least for me). I was working as an intern on an unannounced RTS at EALA. Suffice it to say, due to NDA, I can’t say much about what I did. I can say that I was doing multiplayer gameplay design. An example of the sort of thing I was doing can be seen in the various multiplayer modes for C&C 3 on Xbox 360. They have things like capture the flag, conquer and hold, and a few others. I was designing modes like that for the project I was working on.

The real reason for finally coming out about this is that I had the opportunity to do an interview with Aaron Kaufman, the C&C Community Manager at EALA about my experience. I think it makesĀ a good read (despite my rather obvious bias), and even has a photo of me at the end, for those of you interested in seeing what this mastermind looks like.

I suggest you check it out if you happen to be interested in working in games, or even just what it is like behind the scenes of a major studio. I know that I really wanted to work in the games industry going in to my internship, and I came out knowing that I’d found what I wanted to do. I loved every day of it, and was terribly sad to leave. The guys at EALA were amazing, and I just had an amazing time. Peace through power!

October 11th, 2007

Five Minutes Five Games Episode One


Video thumbnail. Click to play
Click To Play
First episode of a potentially monthly (or bi-weekly if I get really ambitious) podcast. It was done originally for 21L.015, one of my classes, but if people like the idea, I could probably put in the effort to spend a little more time on it. This epsiode has reviews of Battlefield 2142, Medal of Honor Airborne, Pokemon Pearl, Portal, and Team Fortress 2.

April 17th, 2007

Spirituality as an Evolutionary Advantage

It often happens that the early morning just before I go to sleep can yield some interesting thoughts, and as such, I’ve decided to create a section for such musings. The first such musing is on the idea that spirtuality could actually be an evolutionary advantage. This idea originated with the idea that religion could be an evolutionary advantage, but through reading “Is God in Our Genes?” from Time Magazine lead to the refinement to spirituality as the advantage rather than religion. First, my original reason for considering religion as an evolutionary advantage, then we’ll get into the reasons in the Time article (which I will summarize and quote as appropriate).
Read the rest of this entry »

April 14th, 2007

Command And Conquer 3

Command and Conquer 3: Tiberium Wars

Command and Conquer 3: Tiberium Wars launched in the US on March 27th 2007. I picked up a copy of the Kane Edition (aka the Collector’s Edition) on release day, and spent most of Spring Break playing the game. It’s time for a full review. I will try to avoid spoilers, but you might consider some of the full text a spoiler. I’ll put it as part of an exceprt so that you don’t need to read potential spoilers if you don’t want.

Read the rest of this entry »

April 14th, 2007

Battlecode Wrapup

I was hoping to have more information for this post, but I’ll have to settle for posting our team document. The Battlecode organizers never got around to updating the website, and so I don’t have the actual final results. You can grab the PDF at the bottom of this post. Overall our team worked out reasonably well. We needed more time to tweak and optimize behaviors, and a lot of the strategy just didn’t work out as well as it should have. Still, I’m happy to settle for winning an award and getting the credits for the class.

Battlecode Strategy Writeup

February 22nd, 2007

C#: Programming Made Fun

I realize I’m rather off the schedule I had planned. I blame the holiday weekend, my laziness, and Robocup. The international qualification deadline is at midnight on February 22nd. For those of you unaware of what the date is, that is in less than 24 hours (it’s 2:15am at the moment). That means it is somewhere close to crunch time, which means that I’ve been working. The new look for the RFC Cambridge site was rolled out tonight, and I’ve been helping with the team description paper (both writing sections, and proofreading it). With that out of the way, on to the actual topic of this post…

C# is one of the primary languages supported with the .NET Framework. C# is a strongly typed, managed language. This means that the language runtime is responsible for memory allocation and deallocation (garbage collection is the technical term). This saves a lot of hassles and helps to reduce (but not eliminate) memory leaks (memory that has been allocated, but is no longer pointed to, but not deleted). The .NET Framework is also important, as it provides C# with a powerful class library.

C# also has the capability of using essentially the entire power of C++ through something called Platform Invoke (or PInvoke for short). PInvoke allows you to call essentially arbitrary C++ (with a few requirements for how it is written) from within C#. This is hugely powerful, as you can access unmanaged memory, and do operations that are inherently more efficient in C++ than in C#. There are also a few features of C++ that aren’t available in C# (such as memory mapped files) which are useful.

Another powerful capability of C# is called reflection. Reflection is essentially the ability to examine and modify objects at runtime. This allows you to determine the capability of an object, and even to extend it programmatically, at run time, rather than at compile time. C# can also programmatically invoke a C# compiler (through the .NET framework) which can allow for things like dynamically compiled modules, and other interesting features. With Reflection, you can then discern properties of the runtime compiled code, and integrate it into an existing system. This allows for a theoretically powerful plugin system, which can at the same time be limited for security purposes. When compiling code at runtime you can specify the assemblies (code components more or less, some of these terms are almost another post in themselves). This can lead to some very interesting ideas (an XML Parsing system based solely on object structures, or an easily extensible editor are a couple that I’ve had), and allows for very powerful capabilities.

The last, and one of my favorite features of C# (well, more correctly Visual Studio) is the GUI (Graphical User Interface, ie what you see) designer. I originally began programming with Visual Basic (save the hate, I’ve moved on to “better” languages), and I always enjoyed the ease of building a GUI with Visual Basic, even if the language behind it was a little quirky. It was actually common to use Visual Basic to build a GUI, and use COM (Component Object Model, a rather nasty complicated Microsoft technology) to hook up C++ code for the actual program component. With C# you don’t have to go that far, as the GUI designer is part of C# as well.

This is getting long enough, even though there is a lot more to cover. I guess this will have to become a multiple part series (to be continued on Friday I suppose). I’ll close with a link to Visual C# Express Edition, which is a free fully featured C# IDE (Integrated Development Environment, I need a little extension to let me just link to wiki pages for these) for Windows. It’s fun to play with, and gives you most of the power of Visual Studio 2005 for free.

« Previous Entries