Filmspiration and the three reasons to make a game

Film was a love of mine before games were. My first theatrical memory is sitting at the drive-in watching Luke Skywalker battle a Rancor. That kind of thing leaves a lasting impression on a young child’s mind! The magic of Star Wars back then was that I think many adults felt like I did…the wonderment of a child all over again. It was many years before another movie hit that mark again.

That movie was The Matrix and it brought philosophy and technology to the mainstream (not necessarily in that order). Although hailed for its action cinematography and bullet time, nearly every action film device they used was pioneered in Blade before the Matrix’s release. Blade did not capture the mainstream and therefore was lost in cinematic history. It isn’t who does it first, it is who does it in front of enough people to count. But what do these two movies have to do with making games?

Since these are the kinds of stories that got me inspired I was trying to think of what the equivalent in the gaming world it was and it occurred to me that there were largely three “reasons” or “types” of games to make.

My initial gaming inspirations would probably be titles like: Wing Commander, X-Wing/Tie-Fighter, Space Quest, Kings Quest, Wolf 3D, Doom, Duke 3D, Dune 2, Warcraft 2, etc. Some of these genres have basically died (space and point/click adventure) and others are at the top of their game (first person shooters) and yet others dominate new markets (World of Warcraft). What is the secret to why these games are great? Tonight I was having a few ideas I would like to share to categorize: Fantasy enablers, Brain Teasers and New Experiences.

  1. Fantasy enablers: Let the player do things they always wanted to. Some examples: Wing Commander (live star wars), GTA (do whatever you want in a city), Star Craft (be a military commander), World of Warcraft (fantasy archetypes in an altered world), Rock Band (be a star). Games are interactive, the biggest strength is by giving into players desires. If you are trying to mimic the real world, enabling what people want to do/experience is a good way to target players.
  2. Brain teasers:The brain is a muscle, people like to exercise it. Some game examples: Tetris, Brain age, Bookworm.
  3. New experiences: This is the meaty one that is more like film. Star Wars showed people a new world/place. The Matrix did as well. In a craft like film, doing Fantasy enablers or brain teasers was done in the first years of the genre because it WAS new. If you look at modern film, it is more about how a story is told than the structure of the story itself. Writers don’t make the huge bucks. Actors do because it is how the story is executed and perform that counts. I think you are starting to see that crafting in games. What games have you played lately that took you someplace new? For me the only really new world that I played in a fictional sense was Bioshock. In a play sense, it is every iconic first game in a genre (Wolf 3d, Dune 2, Tetris, etc.). I haven’t played a new one of these in a long time. Are games so close to art progression that the realistic is gone and the new experience will need to be surreal? Personally I don’t think so…especially since most the innovation in this area is in controls. I listed Rock Band in Fantasy Enabler but the accessories also make this a new experience for most. It makes music more accessible.

Perhaps Rock band/guitar hero are examples of all three in unison. Fantasy of being a rock star combined with a puzzle/coordination packaged in a new control experience. Sounds like a formula for success!

Do you have films or games that have inspired you? I would love to hear your thoughts on them and why they captured your attention.

Posted in Game Design, Industry Commentary | Leave a comment

Star Destroyer Part II – Failure to block in

I’m forcing myself to blog once a week and sometimes it is tough! However, much like working out it feels good once you are done.

Failed Star Destroyer Block In

Failed Star Destroyer Block In

Today I attempted to block in the geometry for a star destroyer. You can see it in the image attached. At first glance I was fairly happy about how the top of the ship turned out and was going to spend some time on the back and bottom. Then I noticed a disaster at the rear of the ship. I had connected the top of the ship to the bottom by selecting the wrong vertex for an early split! Luckily I had only put in about 20-30 minutes of work which was mostly figuring out the tools to split the geometry where I needed it to be. If I learn how to do mirroring and know all the tools I think I could do this in about 10-15 minutes. I learned a lesson in always checking what vertex you have selected when splitting because the rear of my start destroyer is a dogs breakfast! I ended up splitting along the wrong face and have a rogue vertex sticking out in the middle of nowhere and I’m not sure how to repair it. Detail is the last step when modeling, I should have gone for a rough in of the rear of the ship and bottom before focusing on the top.

At this point I think I would rather just try it all again and learn the tools better. I’ll give Star Destroyer Part II another try in an upcoming post and hopefully have better results. But who knows…I might take this incorrect model and texture it just to figure out the texture tools.

p.s. I mentioned trying to model last week without a mouse. WOW, what a difference having a mouse makes!

Posted in Art, Speed Modeling | Tagged , , | Leave a comment

Star Destroyer Part I – Geometry reference and setup

Stardestroyer Top

Stardestroyer Top

I love Star Wars. Return of the Jedi is the first movie I remember watching, Star Wars novels got me reading science fiction, and Star Wars model kits were the first ones I built. I still remember the hours it took me to put together my AT-ST walker and how daunting the Millenium Falcon was! Not only did you have to spend hours to put the model together, you also had to spend hours painting it if you wanted it to look anything like the real ship! On top of that there wasn’t really any painting reference available. Those were some fun times and I thought I would try and relive a little of that digitally.

Please consider this a complete newbie tutorial as I’m fumbling my way through modeling myself. Today is all about setting up the modeling environment.

Software: Silo 1.4 + Firefox + GIMP. I’m using Silo 1.4 to start the tutorial because I had to use my laptop to start the modeling process and Silo 2.0 doesn’t really run on my laptop (selection issues).

Stardestroyer Side

Stardestroyer Side

Plan (rough outline, subject to change)
Star Destroyer Part I – Geometry reference and setup
Star Destroyer Part II – Geometry block in
Star Destroyer Part III – Details and UV unwrapping
Star Destroyer Part IV – Texturing

stardestroyer_front

Stardestroyer Front

Although I’m not an artist myself I read lots of tutorials and work with lots of artists. The first step is ALWAYS finding reference images. The better your reference images or concepts, the better your chance at succeeding. Take as much time as you need for this part of the process. Google images makes this incredibly easy! Simply type in Stardestroyer and you get lots of examples to draw on. I found a top/side/front/rear gif and chopped it up into a unique image per view using GIMP.

stardestroyer_back

Stardestroyer Back

These kinds orthographic drawings are the perfect images to start your modeling. Time to fire up Silo.

Although I’m working on a small laptop, I still switched to a four pane view to setup the reference images. The top left pane is the top view. I added the top down view of the star destroyer (using the Display->Set viewport Image menu item) and had to rotate it 90 degrees and move it to the origin to align correctly. I then used the same rough process to put the front (top right) and side (bottom right) views, making sure to center the images equivalently.

After dropping in a rough cube and pulling its shape to match I noticed the front view was way off.

Adding in some geometry helped me notice the misalignment and fix it at this early stage. Now I’ve got this:

adjustedfrontimage1

Stardestroyer Silo Setup

With this setup I thought this would be like a paint by numbers from this point for modeling! Then I tried pulling the view around with the trackpad on my laptop…YIKES! Looks like I will need to bring a mouse along for the next part of the modeling. I also noticed that the take screenshot code looks like it has a bug in that the view of the viewport image in the top right doesn’t align when the screenshot is taken. Odd…

Posted in Art | Tagged , , , , | Leave a comment

What do you code for fun?

Sometimes it is fun just to write something for the sake of writing it rather than to have a useful end result. I was out for dinner with a group I used to work with and one of them is currently writing a game for the Sega Genesis. You would think that programmers would see how illogical writing a game for a “dead platform” is. Obviously the end result isn’t the point, it is the journey. Non-programmers might not get that sometimes the point of coding is having fun.

What coding do I consider fun? For me I have always had a fascination with minimalism. Small executable and efficient code have always been fun for me. I even lost marks on one of my exams in University because I made a mistake on my third iteration of optimizing the code to answer the question. The solutions weren’t even rated on their performance or size! Did I learn a lesson from that? Other than being correct is more important than speed, I continue to enjoy writing a small amount of code that can do more.

Minimal Executable
So…how do you make a small executable? I remember reading about a contest to write the smallest application that could download code off the Internet and run it. The author of the program was able to do this in something crazy like 138 bytes or something like that. I’m not interested in going THAT small, but I am interesting in looking at what you can do with a modern compiler like CL.

How big is the following code when compiled with Visual Studio 8’s (Visual C++ Express 2005) compiler?

int main(int argc, char* argv[])
{
return 0;
}

Step 1: Simple compile with CL.exe – 45,056 bytes

cl main.cpp

Seems like a lot of space for not doing very much. What should we trim next?

Step 2: Turning it to a windows program – 2,048 bytes
Modified the code a little:

#define WIN32_LEAN_AND_MEAN
#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR cmdLine, int nShowCmd)
{
MessageBox(NULL, “Small Test”, “Small EXE“, MB_OK);
return 0;
}

cl main.cpp /link /SUBSYSTEM:WINDOWS /ENTRY:WinMain /DEFAULTLIB:user32.lib

2kb is about as small as I would be looking for. The trick moving forward is avoiding anything that uses the standard library and static constructors. I still need to dig into more of what overriding the standard entry point does before I start writing stuff that is “useful” with this framework. Do I recommend anyone actually does any of the above? No, it is just for fun to see what you can do with small exes. Might add some rendering stuff next.

Posted in Technical | Tagged , | Leave a comment

Game Breakdown – Resistance: Retribution vs. Syphon Filter: Logan’s Shadow

I had high expectations for Resistance: Retribution (RR) given that it was Bend Studio’s follow up title to Syphon Filter: Logan’s Shadow (SF:LS). Syphon Filter blew my socks off in showing me what a shooter could be like on the PSP. I thought even having the same game with a new skin would have been a great experience. What I got was a similar quality game, but targeting a different audience that is much more into action/run and gun than they are into stealth tactics.

I’m going to compare Syphon Filter against Resistance in the following areas:

  1. Shooting Mechanic
  2. Story Telling
  3. Achievements
  4. Presentation

1. Shooting Mechanics
At first I hated the auto-targeting system that RR had because they took away the most impressive element of SF:LS – the ability to target precisely. At first I mentally fought with this and hated it until I realized it services a different kind of gameplay. In SF:LS I would creep around and because the mixture of the control system, world design and animation design allowed it, I would target precisely where people would poke their heads out and BOOM, headshot. Using the PSP controls (challenging at best) and being able to support precise shooting was incredible.

Cover Sharp Shooting (SF:LS)
The key ingredients to this shooting experience are:

  • Stealth approach to combat (they might not know you are there)
  • You and your enemies spend majority of time in cover, timing when to shoot
  • You aim from cover
  • Head’s are always at fixed crouching or standing height
  • Significant reward for a head shot, great animation feedback on it
  • Any weapon can be fatal, focus is on player movement and aim

Hose them down (RR)
The body count in RR is probably 5 times higher per minute of play than Syphon Filter (if not more).

  • Easy cover
  • Auto aim
  • Allow called shots for special enemies that need their heads removed
  • Strategy based on weapon selection and fire mode selection

At the end of the day, I prefer to have my tactics be movement or aiming based so I much preferred SF:LS for these mechanics. However, knowing why the design was changed, it did match the play experience.

2. Story Telling
Both games use a mix of videos and in game cinemas to tell their stories. I’m using my memory to recall the amounts of the story but I think the mix was something like this for each game:

SF:LS Story breakdown
Story Telling 20%

  • Pre-rendered cinemas 10% (explicit story telling, briefings)
  • In game cinemas 10% (mission context)

Gameplay 80%

RR Story breakdown
Story Telling 40%

  • Pre-rendered cinemas 10% (Introduction, per act cinemas)
  • Concept Art naration cinemas 20% (Mostly maps and narrated story telling)
  • In game cinemas 10% (in mission cinemas, small stories)

Gameplay 60%

I enjoyed both stories but I found RR had WAY to much attitude and forced naration through the story. They did a great job of telling the story and describing the motivation. The voice acting in the concept artwork told story was excellent as was the writing. I really didn’t like the main character until about the last quarter of the game. Logan’s shadow had more of a simple and cliche’d story, but the ensemble cast made me care more about the crew and let me focus more on the game itself.
3. Achievements
Both games have hidden documents and various achievments throughout the level. The key difference between the two games for me is that I have NO IDEA what the achievements in RR are whereas the achievements in SF:LS were very clear to me. To be fair I gave SF:LS more replays, but througout that play experience I was getting feedback on achievements. Replays were very clear and very fun to attempt. The focus was on using weapons and the environment properly and collecting hidden documents. The presentation in SF:LS increased the play experience. I didn’t find any game enhancing elements in RR.

4. Presentation
Both games really show off what the PSP can do. I think that RR probably takes the edge in technical difficulty and variety (mech levels) and also dealing with red/browns on PSP is very hard to make it look good with the low responce time on the LCD. SF:LS had more natural environments and more blues and whites. For my own taste LS:SF was again the better game.

Conclusion
Obviously I liked SF:LS much more, but both games are good. I find it fascinating that the same studio made a similar if not the same quality game but that choosing a more action based focus made the game less interesting to me. From what I can tell, this is an example of where choosing your audience really does dictate design changes. I hope that RR is more successful than SF:LS because I don’t think the previous games got the sales they deserved.

Posted in Game Breakdowns | Tagged , , , , , | 4 Comments

Digital palate cleanser

I had an awesome opportunity a few years ago to watch Andrew Glassner do a talk on story telling. I learned a lot about story telling in that presentation however, the thing that stuck with me the most was how he broke up his presentation with beautiful images (digital sherbert) that he called palate cleansers (at least I think that is what he called them). It fascinated me because they would hit at precisely that moment when your mind starts wandering and is fatigued in his presentation. I don’t know if they were 10 or 15 minutes apart or what the magical formula was but it made the entire presentation fascinating.

What does this have to do with making games? I’ve been a bit stressed out in the last couple of weeks and decided to take a break and search for a good palate cleanser to get me back into the swing of making things. I took some time to research what classes are available around my area that aren’t in my direct area of expertise (programming/managing). There are some fascinating classes I am considering in everything from 3D modeling/animation, Sound design, stop motion animation and even acting. A little cross training or trying something new may just be the palate cleanser I need to really hit my hobby projects. At the same time I can grow a breadth of skills that will help me eventually live up to the I, Game Maker moniker.

It is kind of silly to forget how exciting the potential of learning new things is. As I was reading through course descriptions I was finding myself getting more and more energized. Rather than signing up immediately, I decided to relax for the weekend and try and play through a game: Resistance: Retribution for the PSP. I am near the end and will do a writeup when I am finished. Come Monday or Tuesday I’m hoping I will sign up for a class or two!

Posted in Uncategorized | 2 Comments

Detours based on complexity

Lasts weeks design treatment was really exciting for me. It made me really think through what I wanted to make. This week I was comparing my progress against that design and my lack of progress made me worry. Why not do a really quickly check to see if I was on the wrong path by implementing another style of game in a hurry? Why write a design document that is meant to focus me on something and then run off and do something else?

Thinking through the design treatment made me realize that I will probably take a LONG time to finish the game for the treatment that I had just done! I want to find something I can do faster. Having played iDracula for the iPod Touch and knowing that it is basically a 100% re-skin of Crimsonland made me wonder if this kind of game would be easier to accomplish in my limited time-frame. So I sat down to convert my space game to a man walking in 3 hours or less. Needless to say…I didn’t finish. I didn’t even get close by a long shot. But I got a way better feel than I did flying a ship around!

So what do I have? I have the worst animation of legs and arms I have ever seen with shooting controlled by the mouse and the guy flying around like a space ship in space. The demo is so comically bad in its current state that I thought I should post it expressly so that I am forced to make it better! Steer your feet with “WASD” or the arrow keys. Aim using the mouse and the left mouse button to fire. Remember…I warned you it is BAD, but if you want to try, grab it here.

Posted in Downloads, Tests | Tagged , , | Leave a comment

Design Treatment

In preparing for battle I have always found that plans are useless, but planning is indispensable.

  • Dwight David Eisenhower quotes (American 34th President (1953-61). 1890-1969)

Today I was working on a a design treatment as described in Game Developers Marketplace. This book breaks down documentation into a few sections:

  • Design Treatment – Small (on paragraph to one page) overview
  • Design Document – Multi-page document describing everything in more depth and getting into specifics
  • Design Specification – Working with everyone to actually specify how things are being built and how much time/resources it will take.

Design Treatment
One of the most influential games in making me want to create games for a living was Wing Commander. I would like to create an experience that is like Wing Commander but from a top down perspective with a simple approachable interface. This should be along the lines of Star Control II, but with a much more directed level structure and a more directed story exposition. Less exploration and gathering and a large focus on combat. Each mission should be 10-30 minutes and an act should be achievable in 5 missions (either a week or one long 1.5-3 hour sitting). Target audience is people that miss these old school experiences that don’t have time for 3D space simulation but still enjoy storytelling.

Game Story
The year is 2492 and humanity is at war amongst the stars against a deadly alien race. Things are not looking good for humanity and you are a fresh recruit at the top of your class assigned to a small task force in your region. All attacks to date have been 100% ineffectual and you are sent in with new weapon systems that may be humanities last hope for a counter attack.

Game Play and Look
The play is broken down into two sections: On ship life and combat missions.

Ship life is comprised of one or two rooms on the ship and hot spot locations that you can click on characters and talk with them. This will reveal extra information about the world to the player and create a story and connection with the other pilots on flights with you. The interface will be simple 2D environments with fixed outcomes based on where you are in the story and how well you are doing.

Combat missions start with a preallocated ship specifically chosen for the mission you are going on. These ships will very in speed and fire power and may also involve having more crew with you. You will control the ship with a keyboard or mouse and drive it around. Most missions will either be protecting ships or destroying enemy vessels or bosses. The objective is to successfully destroy, protect or rescue depending on the circumstances. Each mission will have multiple sub points and in game conversation will be handled by a small pop up.

Development Spec

The game is initially targeting windows only, will either be written in C++/Lua using the PopCap Framework or in a 3rd party engine (Torque or Unity). Game should support a wide range of PC configurations (anything made in the last 4-5 years).

Commentary

Writing the design treatment has solidified what I want to build more in my mind. The next couple of weeks will probably be fleshing out the design more and then digging in to build the first examples of each area.

Posted in Game Design | 2 Comments

Back to paper planning?

The deeper I get into coding, the more I am finding that I have to ramp up to get into the groove. I cannot just go from a clean slate and code whatever I would like; I have loose ends to tie. My first reaction was to think that my code is terrible and that I was fighting against spaghetti but upon further reflection I think that I am simply up against the equivalent of task switching to rapidly in a work day. My interruption is the week I spend between working on my game rather than the quality of the code. I thinking about what I should do about it.

I could do one or all of the following:

  1. Larger chunk of time: Find one larger chunk of time so that I can get into things and get more meaty progress.
  2. Preplanning: I could do more than a two minute list of what I am going to do.
  3. Remove distractions: I confess…I’m an Internet addict.

Larger Chunks of Time

Anyone that has gotten into a creative groove understands how important immersion is. I find that I’m just getting into interesting territory when I have to call it quits. I think the ideal amount of time to work would be about a four hour chunk. With the hour or two I spend I find that I take most of the time to figure out where I was and then I’m just remembering everything when I have to stop. Therefore I am going to try and find a bigger chunk of isolated time to work.

Pre-planning

Although I’m on a big kick of just “do” things rather than planning, I am finding that I don’t have enough structure for my work. I think I need to take the time to do a quick design treatment of my game so I know what I am building with a few design briefs and then I think I should write up a few brief technical notes on how I am going to approach the systems. This way I can have a quick paragraph or two that should remind me of why I am building a system to do something. If I can this will be separate from the time to implement the plan even if I have to alternate weeks.

Remove distractions

How many of you out there are internet addicts? I find that since my project is a hobby and is on my free time I often drift toward searching for things I would like to buy. Current interests are Paradigm Atom Bookshelf speakers, MacBook/MacBook Pro, Intel X25-M SSD and a new house. Only one of these would help with my project and even then only if I invest the time to install windows or restart my project in a Mac friendly way. How do I avoid these distractions? I think I’m going to plan enough that I don’t need an internet connection and then switch it off to work. Any tips out there for avoiding internet addiction?
What did I actually get done?

I took the very raw and basic “particle” class and message system that I had and changed it so my asteroid explodes into a bunch of other asteroids in “sort of” an explosion. The reason this caused me to look at my planning was because I should have a rough outline of how I want the particle effects to work before I just start hacking away at explosions. I think I would have been better off posting my particle strategy rather than fighting the code for a 1/2 hour and not being sure it was a waste.

Next Week

I am hoping that I can use a template from an older book I read called Game Developers Marketplace and write up a design treatment for my little game.

Posted in Uncategorized | Tagged | 1 Comment

How many novels of code does it take? (Part 1: 90’s commercial games)

I have been following a few iPhone/iPod Touch developers and at the 360iDev conference two presentations from game programmers that used to be part of large “conventional” teams caught my eye. The topic of the slide was about the relative team sizes and how drastically smaller the iPod game teams are than current game development (200:1). This made me interested in how project code base’s have changed over time. This kind of information is relevant to me making games because it lets me look at what is achievable for one programmer. Most iPhone games are possible with that, but I also like comparing to games from 10-15 years ago.

The best company I could think of to compare to the current iPhone explosion is id software. They released Wolf3D and Doom at a similar time when BBS games were taking off. Their teams started at about 5 people and the kept the same staff making games for years. They are an interesting company to look at because while other teams staffed up to enormous sizes, id only scaled its content team staying at between 2-4 programmers for years! Since their code is available I thought I would do a lines of code comparison between their projects. Here is what that looks like:
idloc
It is hard to tell how much development time went into each game. I’m going to do the simplest thing and assume that each game was worked on the entire time between release dates. That gives the below chart of the number of lines of code, per programmer, per year of development. Is this a useful statistic? I don’t know, but I thought I would compare it to writing a book as an example in effort.

idlocperprgperyear

(*note: I know I am missing Doom 2. I didn’t find source on that tonight but I didn’t count its time in development so these numbers are off base a little)

I read in a few places online that an average book is between 90,000 and 140,000 words. At 250 words a page that breaks down to about 360-560 pages. If you go with roughly 40 lines a page to convert to a code comparison, that is between 14,400 and 22,400 lines. So in essence, the average programmer at id went from writing half a novel of code a year to writing a large and a small novel a year. Or put another way Wolf3d was the equivalent of a 560 page novel and Quake 3 is close to 15, 560 page novels.
idnovel

I do not think that ID was the norm in the 90’s with not growing their programming team. This may also be why Epic Games eventually overtook them with the Unreal Engine (not in the 90’s, after). There was a large shift away from game code to tool development and I think that ID missed that with Doom 3/idTech 4. Odds are id won the effecient development competition. I think the teams at id are still relatively small and I wouldn’t be suprised if their costs are much lower than Epic’s. That said I’m sure Epic is taking in more these days but you still have to admire a company that stays lean even if they lose from a Wallstreet perspective.

The data I have provided above is completely subjective and filled with inaccuracies so please do not think that I am presenting the above as actual “research”. The main reason I posted this without thorough investigation is because I still think it paints a picture of how much work is involved in a commercial game. There are some legendary programmers involved in those games. Making games has gotten somewhat easier with better computers, software and debuggers, but projects are growing rather than shrinking. I’m interested in looking at any statistics people will share on these smaller iPod games so I can see if there is hope for the lone indie programmer.

Posted in Industry Commentary, Uncategorized | Tagged | 4 Comments