Image
  • Writing
    • Andy Gavin: Author
    • About my Novels & Writing
    • All Writing Posts
    • The Darkening Dream
      • Buy the Book Online
      • Sample Chapters
      • Reviews
      • Info for Reviewers
      • Press Coverage
      • Awards
      • Cast of Characters
    • Untimed
      • Buy Untimed Online
      • Book Trailer
      • Sample Chapters
      • Reviews
      • Info for Reviewers
      • Press Coverage
      • Awards
      • Cast of Characters
    • Scrivener – Writer’s Word Processor
    • iPad for Writers
    • Naughty Dark Contest
  • Books
    • Book Review Index
    • Favorite Fantasy Novels
    • Andy Gavin: Author
    • The Darkening Dream
      • Buy the Book Online
      • Sample Chapters
      • Short Story: Harvard Divinity
      • Reviews
      • Info for Reviewers
      • Press Coverage
      • Awards
      • Cast of Characters
    • Untimed
      • About the Book
      • Buy Untimed Online
      • Book Trailer
      • Sample Chapters
      • Reviews
      • Info for Reviewers
      • Press Coverage
      • Awards
      • Cast of Characters
    • Naughty Dark Contest
  • Games
    • My Video Game Career
    • Post Archive by Series
    • All Games Posts Inline
    • Making Crash Bandicoot
    • Crash 15th Anniversary Memories
    • World of Warcraft Endgames
    • Getting a Job Designing Video Games
    • Getting a Job Programming Video Games
    • Naughty Dark Contest
  • Movies
    • Movie Review Index
  • Television
    • TV Review Index
    • Buffy the Vampire Slayer
    • A Game of Thrones
  • Food
    • Food Review Index
    • Foodie Club
    • Hedonists
    • LA Sushi Index
    • Chinese Food Index
    • LA Peking Duck Guide
    • Eating Italy
    • Eating France
    • Eating Spain
    • Eating Türkiye
    • Eating Dutch
    • Eating Croatia
    • Eating Vietnam
    • Eating Australia
    • Eating Israel
    • Ultimate Pizza
    • ThanksGavin
    • Margarita Mix
    • Foodie Photography
    • Burgundy Vintage Chart
  • Other
    • All Posts, Magazine Style
    • Archive of all Posts
    • Fiction
    • Technology
    • History
    • Anything Else
  • Gallery
  • Bio
  • About
    • About me
    • About my Writing
    • About my Video Games
    • Ask Me Anything
  • Contact

Archive for Andy Gavin – Page 4

Naughty Dog – A Pedigree Breed

Dec08

Computer and Video Games recently ran a piece on the Naughty Dog as a company and its pedigree of great games.

Founded by aspiring game developers Andy Gavin and Jason Rubin back in 1986, the pair knocked together a number of little-known titles on the Apple II and Amiga before changing their company’s name to Naughty Dog. …a four-game deal with Universal Interactive Studios, starting with Way of the Warrior – a Mortal Kombat-style fighting game for 3DO created using footage crudely filmed in an apartment [led to] none other than Crash Bandicoot on PSone.

…

The original Crash Bandicoot was one of the most important games on the original PlayStation. Not only did it give the then faceless platform a much-needed mascot – and one with bags of charm – but it also really showed what this powerful new CD-based console from Sony could do.

…

Naughty Dog, it seems, is as good at dreaming up new blockbuster adventure franchises as Sony is at making consoles. Fast forward to the present era, and although both of its founders have moved on to new ventures, Naughty Dog remains the name on the box of one of the PS3’s biggest exclusive franchises. Uncharted’s unrivaled cinematics and truly breathtaking set-pieces demonstrate a fantastic developer working at the absolute peak of its creative ability.

Click here for the full article

Or here for more on my video game career.

Related posts:

  1. Making Crash Bandicoot – part 1
  2. All Your Base Are Belong to Us
  3. Way of the Warrior – The Lost Interview
  4. Crash Bandicoot – An Outsider’s Perspective (part 8)
  5. Crash Bandicoot as a Startup (part 7)
By: agavin
Comments (2)
Posted in: Games
Tagged as: Andy Gavin, Jason Rubin, Naughty Dog, Video game, Way of the Warrior

Video Game Page & Book Status

Dec04

I deployed a new video game topic page yesterday. This was a good chunk of work. I use a modified iThemes Builder child theme and so continued to use their custom layout and variable widget systems to build out a special page to replace the older, uglier, video games page. First though, I had to hack into the code and modify the way in which the sharing icons and related posts were being inserted. WordPress plugins often have automatic insertion into the end of the content, but as soon as you start getting a more sophisticated layout with more than one “content” on the same page that starts to be problematic. I had to turn it off and insert it manually into the right templates.

Then I spent an entire day exploring ways to implement different grids of magazine style excerpts for particular types of posts on particular pages. I ended up writing the code myself, but using Builder’s extension system to inject into the layout’s I wanted. I got it working for this page, but I’m only about 90% satisfied. There are still some mysteries. Like how to convince CSS to extend each entry down to the height of the tallest one on a line. I align them with “vertical-align: top”, but I don’t know how to match up the bottoms. I’d also like to improve the handling of the thumbnail photos and I need to figure out how to generalize my extension so I can use it on different pages. That being said, I still think it’s better looking than the old page.

Check out the new page here and let me know what you think.

With regard to my books, busy busy. I’m waiting on a second sketch for my new, professional cover for The Darkening Dream. That should come any day. I’ve pretty much finished up the interior artwork, but I’m not ready to post it just yet — soon. I’ve been working through proofs of the interior book design as well, which is looking great.

I also got back the full line edit of Untimed yesterday. Two of my editors, Renni Browne and Shannon Roberts did a simultaneous full line edit. This is on top of four drafts of higher level discussions. Getting 320 pages of line edit back is a lot to digest in one sitting! Look at the example page to the right. That’s just one page worth of edits. I have to go over them all and decide what to keep, what not, and how to rework anything suggested by the comments. But it’s worth it. Books need editing. It’s essential to have more than one set of eyes on them. And, ultimately, it’s still my book — I decide what stays and what goes.

This will keep me busy for a week or two. Haha.

More about my writing here.

Related posts:

  1. So you want to be a video game programmer? – part 5 – The Method
  2. So you want to be a video game programmer? – part 3 – Getting Started
  3. So you want to be a video game programmer? – part 1 – Why
  4. So you want to be a video game programmer? – part 2 – Specs
  5. New Book Pages
By: agavin
Comments (2)
Posted in: Darkening Dream, Technology, Untimed
Tagged as: Andy Gavin, blog, CSS, Editing, game, Line Editing, The Darkening Dream, Untimed, Video game, Website, WordPress

Developing a Look

Nov29

I’m very busy right now with different stages of both my novels. I’m line editing Untimed and trying to get my first, The Darkening Dream, ready for publication. One of the more fun parts of this is the art design. The book has seven points of view and each chapter is written from one perspectives. To help subliminally differentiate them, I thought it would be cool to commission chapter heading engravings specific to each character.

The book is set in 1913 and packed with occult workings based on extensive research into real religious, pseudo-religious, and just plain magical belief systems. By real, I mean that people before 1913 believed and wrote about them. But in the book, they’re really real. This is a world consistant with ours, but where the creepy sordid and supernatural crawls just beneath the surface. And truth is stranger than fiction.

Given that the images needed to be black and white, I thought a style reminiscent of classical occult engravings of the fifteenth through eighteenth centuries would be perfect. Iconography of demons, witches, and magic from creators who actually believed in them!

Below are historical engravings I dug up (google for the win!). I provided them to my artist to illustrate the mood and style I wanted for my original pieces.












The above examples are for STYLE, not for content. I like to think of these as reflecting the “occult engraving” style I want to emulate. They are engraved with a naive sensibility, hatched shading, awkward proportions, and western occult symbolic motifs. As a stickler for detail, I must confess that some of the above images are actually nineteenth century, such as the demon Baphomet (the goat headed one with one arm up and one arm down). Although these are cool I decided to target my style to the older wood block type (these later ones are probably copper plate) as the nineteenth century artist probably crafted the images more out of a sense of exotic and less out of true belief like the earlier more hysterical age that was prone to burning at the stake.

Unless you’re lucky enough to work with an artist who is willing to immerse themselves in your book and related materials, it’s essential to provide a clear direction, usually illustrated with a group images hinting at the style you want. Without reading your book and knowing as much as you do (fat chance) it’s unlikely that they are going to spontaneously generate a style that is consistent with the feel of your work. In future posts, I’ll show the examples I used to art direct my specific character images, and the results these produced.

Find out more about the writing of The Darkening Dream here.
Or specific articles on the look for: al-Nasir or Parris.

By: agavin
Comments (10)
Posted in: Darkening Dream
Tagged as: Adobe Photoshop, Andy Gavin, Arts, Baphomet, Engraving, Esoteric and Occult, graphics, Icon, Image Editing, Interior book layout, Occult, Photoshop, Religion and Spirituality, The Darkening Dream, Visual Design, Visual effects

New Book Pages

Nov16

Continuing the big upgrades on my website, I’ve built out new pages for my books: The Darkening Dream and Untimed. And I’m in the process of working on a generic “Andy Gavin: Author” landing page too which I should have done in a couple hours. These pages are an attempt to look less bloggy, more like typical author and book sites. I’ll, of course, be continuing to refine and add. One of the nice things about using WordPress is that it’s easy to continually modify. I’ll add reviews and promotional information. Sample chapters, etc. When I get my professional cover art for The Darkening Dream I’ll have to reskin those pages.

Please let me know (via comments) what you think about the new pages. Or any suggestions you might have. Comments are turned off on the book pages themselves, but you can use this one here.

At a technical level, these new templates show off some of the power of the builder platform premium theme I’m using. It has cool layout tools that make it easier to create different layouts in WordPress and then assign them to different pages. Each of these layouts can reference or use separately constructed menus and widgets as well. That way, for example, I have a different more bookish menu on those pages, but it’s shared by a number of layouts. I’ve also been using a quick redirects plugin to create virtual slugs that I can use to build out URL hooks that are independent of the pages themselves. And one of yesterday’s projects was getting that animated jQuery “featured post” slider going. Builder had one that formed the core, but like many WordPress plugins it was setup for a single instance with just one category. I hacked the code to add parameters to the shortcode enabling me to feature different feeds on different pages. Took all of 15 minutes (mad coding skills — and I don’t even really know PHP). One wonders why the authors didn’t build it that way to begin with. I’ve noticed that PHP code is often extremely “non-functional” with an over reliance on global variables. I don’t mean the program doesn’t work, but that it doesn’t adhere to proper functional programming style to allow easy and modular reuse of code.

Check out The Darkening Dream book page.

Check out the Untimed book page.

Related posts:

  1. Website Upgrades Coming
  2. Book Review: The First American
  3. Untimed – Two Novels, Check!
By: agavin
Comments (1)
Posted in: Technology, Writing
Tagged as: Andy Gavin, Author Website, Blogging, Darkening Dream, PHP, Programming, Tools, Uniform Resource Locator, Untimed, Website, WordPress, WordPress Plugin Directory

Website Upgrades Coming

Nov06

Since I’m waiting for both my line edits on Untimed and my proofreading on The Darkening Dream, I’m researching website construction. I have to morph, upgrade, or supplement this blog with a genuine author website and I can’t bring myself to hire someone to do it given that I’ve written far bigger and more complex websites and apps. It’ll just annoy me to no end to not be able to control it all myself. But at the same time, old school coding the whole thing manually (I’d probably use Ruby on Rails for that) is overkill and probably too much work.

So I read this Professional WordPress book yesterday and today to see if it would be reasonable to just extend WordPress. I think it is. A few plugins and some custom theme programming will probably do the trick. The problem is that I host on wordpress.com and they don’t allow you to install extra plugins (they have some installed by default) or add any PHP code. So I’ll have to migrate to a self hosted server. Maybe Media Temple VPS? Rackspace? Research. Research. Research. Anyone have any suggestions/experience with the good hosting platforms?

And I have to teach myself PHP, so I grabbed the bird book. PHP is one of those popular but slightly icky languages like PERL and JAVA that I’ve never been very partial to. It’s like Ruby, but 100x uglier and more primitive. I am a LISP (and Ruby) guy after all. Oh well. This is easy peasy programming, so I’ll just suck it up. Using something like WordPress will make my life much easier maintaining the site as it’s choke full of content management features. If I program it myself I have to go and code everything manually, which really isn’t very efficient.

I even wonder if one of these newer WordPress themes/frameworks like PageLines Platform isn’t a good idea. Anyone use one?

More to come as I get into it.

Related posts:

  1. The hits keep on coming
By: agavin
Comments (7)
Posted in: Technology
Tagged as: Andy Gavin, Author Website, blog, Darkening Dream, Languages, PageLines Platform, PHP, Plug-in (computing), Programming, Rails, Ruby, Ruby on Rails, Untimed, Website, WordPress, wordpress.com

Way of the Warrior – The Lost Interview

Nov02

A Twitter friend of mine dug up this ancient and forgotten interview that I gave from my Cambridge Mass apartment in 1994, during the development of our 3DO fighting game, Way of the Warrior. The original post can be found here, but he gave me permission to repost the whole thing here. It’s certainly one of my older interviews on record. I did a number in the 80s but those are pre-web and certainly long lost (unless I comb through my parent’s basement for old copies of EGM and the like!).

_

Back in May I had a chance to interview Andy Gavin, one half of the team that makes up Naughty Dog Software. The other half consist of Jason Rubin who’s a graphic arts specialist. These guys are based in Cambridge, MA., where I happen to be from, and have created what may be the best fighting game for the 300. I played Way of the Warrior and it definitely blows the first Mortal Kombat away easily. The game is similar to Mortal Kombat in many ways. The digitized characters, fatalities, combos, blood galore, hidden characters, and special attacks are all here. What Way of the Warrior does is take if a step further with an amazing AI(Artificial Intelligence), characters that shrink and grow, over 50 attack moves for each character, 100% 3D scrolling, hidden weapons, interactive backgrounds, bonus items, and so much more. Let’s have a talk with Andy and see what he has to say about Way of the Warrior.

VGT: When did you first start programming video games?
Andy: About 1 0-12 years ago, the first game we made was Ski Crazed on the Apple II, which came out in 1986. It sold a couple thousand copies. Dream Zone was our next game that sold about 15000 copies. Keef the Thief, from Electronic Arts, did much better and sold about 50,000 copies on various machines. We then did Rings of Power, which was our only Genesis cartridge. It’s was very complex and sophisticated and took about 2 1/2 years to produce.
VGT: When was Naughty Dog founded?
Andy: Well , Naughty consists of mainly Jason Rubin and myself . Naughty got its names from a cartoon character that Jason drew. (Andy showed me a picture of an old Naughty Dog logo). Their new logo is on their flyers. The character was created about 8 years ago.
VGT: Is there any downside when programming on the 300 with their CO’s? Does access time and RAM space affect your games?
Andy: Well, first of all the 3DO has 3 megabytes, not mega bits of RAM, which is bigger then the largest SNES cartridge. The CD itself is 660 megabytes . There are technical issues that need to be addressed when programming on the 3DO. One has to use clever designs to reduce and eliminate load times. In Way of the Warrior the entire program was designed in what we call, Asynchronous. The loading is done while you play, by anticipating what needs to be loaded’ in advance with a hardware process called DMA (Direct Memory Access) . There ‘s a short pause going into a fight, but once the action has begun, there is no pause. Players can perform all their moves, with fatalities, 3D scrolling and the stereo music blaring, but with no load time.
VGT: So even though we’re playing continuously, there’s no slow down what’s so ever.
Andy: Yes, the 3DO is capable of loading stuff without any slow down. However, many previous CD games, including the 3DO, have had notable slow delays.

VGT: Like the Sega CD for instance?
Andy: Yes, this is due to sloppy, programming and not being aware of how to program on CD’s. It’s a difficult issue when writing programs that can actually play and load at the same time. It’s a technical challenge. With good program design the load time can be minimized. In turn, the quality of the sound effect, music, FMV, and game play surpass any cartridge game. Cartridge games only have a limited amount of memory in which you can program. CD’s only cost a dollar to manufacture, while cartridges can cost anywhere from 20-30 dollars. CD’s have enormously superior cost to storage ratio.
VGT: Can the access time for the Sega CD be reduced with technical design programming?
Andy: They can definitely reduce the access time. I don’t know that much about the Sega CD though. I don’t think their DMA is better than the 3DO. The 3DO has 4-5 times more memory. It also has a CD drive that’s twice as fast. It has decompression hardware that effectively doubles the speed. It has a unique and extremely powerful custom DMA architecture that can move graphics from disk to memory to screen and back without effecting game play.
VGT: What makes Way of the Warrior different from all the other fighting games?
Andy: As I mentioned before, I have an Artificial Intelligence Graduate degree from MIT. The computer players in WOTW are much more sophisticated then in other fighting games. Whereas they often resorted to patterns to beat the human players, there are no patterns programmed in for WOTW. It uses research grade AI that learns the best way to beat you. It’s extremely cunning and different and actually looks like a real player fighting by adapting to the situation and using all it’s moves.
VGT: Is it always learning consistently more and more each time you play it?
Andy: Yes.
VGT: What about the characters? What makes them so special.
Andy: The characters have around 50 normal moves and about 15-20 special moves. These moves reflect their styles and personalities. There are many secrets that use the background area and hidden characters can also be found.
VGT: So is each character equal in sense or are some stronger then others?
Andy: All the normal human characters are designed to be equal even though they’re different.
VGT: Well, I remember the first Street Fighter II game had very uneven characters. Some had a major advantage over others.
Andy: It’s tough to get the characters exactly even. We tried to get them as close as possible. People also developed different strategies for beaten the other characters. There are a lot of unique techniques and abilities for each character. Like Konotori, which means “stork” in Japanese, can flap and stay in the air longer. Major Gaines has special steroids’ implants that can change his size and therefore the amount of damage he receives become minimal. Nikki Chan is a Chinese Kung Fu artist who can do flips with special moves. She’s very fast and agile. Crimson Glory has close in grabs and special multi-missles that can be fired. Some character has special weapons. Nabu Naga has a sword and throwing stars. Shaky Jake has a staff.
VGT: There seems to be a little bit of everything from all the other fighting games in this game.
Andy: The other fighting games are very narrow. Most of them are to much alike. What we tried to do was take everything good from all the other fighting games and combine them all into WOTW. We’ve added unique features with better graphics, sounds, 3D backgrounds, special magic and potions, panning and zooming, background interaction, and larger more detailed characters.

VGT: Was the process of digitizing the characters the same as Mortal Kombat.
Andy: There are similarities. We’ve never seen them actually doing it. We have seen photos in magazines. They are actually a little more regimented then ours. Their fighting engine is much less sophisticated then WOFW. It requires that every characters moves line up to the exact same position. When each character does a high punch in Mortal Kombat, they high punch at the exact same point. So when they digitize their characters they have to line up perfectly. In WOTW, every character has its own information so not all characters need to have a high punch. Some of the characters punch high, some low, while others are tall, short, big and small. There’s no requirement that the character be the same size. We built the character the same way the actor would appear, rather then force them to convert to our pre-requirements.
VGT: With the 300 having such a small user base at this point, do you think it can increase sales and become successful?
Andy: We think it has a good chance. All game systems start off with a small user base. People forget the Genesis came out in August of 1989 and 2 years later when the Super Nintendo was released it only had 700,000 machines out there and only 23 games after the first year. 300 already has more then that. The 300 is the first of the 32/64bit machines and the difference is academic. Sony, Sega, and Nintendo have all announce 32/64bit systems that won’t be available until 1995. The 300 will be the only significant 32bit machine when Christmas comes. It will have a year of development by then and the price will probably drop some more. So I think it’s in good shape. We hope WOTW with help sell systems.
VGT: Are there any other projects being worked on for the 300?
Andy: We have 2 other projects we’re working on, but we can’t comment on them at this point.
VGT: Do you think that CD’s are the way to go for our future programmers?
Andy: I think this year is the year of the CD’s. It already has the PC market. It offers so many advantages in cost and amount of storage . The access time disadvantage can be overcome with well-designed machines and good programming techniques.

VGT: Are there any other types of games that Naughty Dog will be working on besides fighting?Andy: We signed a deal to put WOTW in the arcades.
VGT: If WOTW does come to the arcade, will it be different then the 3DO version.
Andy: It would be a bit different. The basis of it would be the same. There are different constraints for the arcade version. The 3DO is capable of producing arcade quality games.
VGT: What’s the most outstanding achievement you’ve seen in video games today? What games really blow your mind?
Andy: I have favorites over the years. I tried Ridge Racer which was very impressive looking, but had mediocre game play. In the PC world, “DOOM!” was very good looking. It shows us that 3D games are here and can be produced very well, even on PC’s.
VGT: Well, that’s about it for the questions. Thank you very much for taking the time to be interviewed by VGT. We all hope that Way of the Warrior is very successful and we look forward to reviewing it and any other games that are produced by Naughty Dog.
Andy: Your welcome. Thank you for choosing Naughty Dog as your first interview. We look forward to reading VGT when it’s released.

This is back to 2011 Andy. It’s so worth watching the totally hilarious video from our 1994 masterpiece (LOL). As you can see, we went for over the top.

For more info on my video game career, click here.

For what I’m up to now, click here.

Related posts:

  1. Making Crash Bandicoot – part 1
  2. Thoughts on TV: Lost vs The Love Boat
  3. Book Review: Lost It
  4. Crash Bandicoot – An Outsider’s Perspective (part 8)
  5. All Your Base Are Belong to Us
By: agavin
Comments (2)
Posted in: Games
Tagged as: 3D0, Andy Gavin, Compact Disc, Direct Memory Access, Fatality, Fighting game, Jason Rubin, Naughty Dog, Sega, Video game, Way of the Warrior

Untimed – The Last Draft?

Oct23

I got notes back from my editors concerning my new novel, Untimed. This is the least stressful batch I’ve ever received. Not only are there relatively few changes, but I agree with all the big ones. Granted, this was the third draft they gave notes on, so we changed a lot of things earlier, but it’s good to see the light at the end of the tunnel. It’s been 48 hours and I’m already through the first 25% and I’ll be done by mid-week for sure, then it’s time for another full read and polish (by me) and the line edit (by them and by me).

Suggestions for big changes, particularly big cuts, are a bit like losing a loved one. You have to progress through the stages of grief:

Denial – I won’t really have to do it. Those notes are for someone else’s book.

Anger – They don’t really understand what I was intending!

Bargaining – Maybe if I only do this or that, they’ll “let me” keep most of it. NOTE: Really the author has the power, but when an editor is good, they’re usually right.

Depression – This is going to be so much work! And I loved that stuff!

Acceptance – In the end, it’ll be a better book.

This particular batch of notes only puts a couple tiny babies on the butcher’s block. Not even whole sections of the plot, just a few little scenes or ideas. Not too bad.

Back to work.

For my posts on writing, click here.

Related posts:

  1. On Writing: Yet Another Draft
  2. Weekend Draft
  3. Untimed – Two Novels, Check!
  4. Untimed – The Second Cover
  5. Untimed – Two Novels, Two Drafts!
By: agavin
Comments (1)
Posted in: Untimed
Tagged as: Andy Gavin, Untimed

Dreaming Along

Oct13

I’m plugging away on my “after the gap” read of The Darkening Dream. At the 60% point, so I should hopefully be done by the end of the week. There’s only one scene I need to go back to and give a bit of a rewrite. It’s one that’s always been a bit problematic, where a character tells a bit of a story about a previous encounter with the undead, and while it’s only 800 words (it used to be 3,000 in the first draft) it’s told in dialog. That’s always awkward, and it’s the only place in the book where a happening longer than a couple sentences is dialoged out. I even have to use that long dialog paragraph leave off the terminal curly brace thing. Over the two years since I first wrote the scene, I’ve rewritten it perhaps five different ways. As dialog, as flashback, with sarcastic interrupts, without. It was once a creepy, but over long episode, but now after so much trimming it just lacks punch.

I’ll have to revisit after I get to the end of this pass.

And I finally adjusted to past tense again (only took 20,000 words!). It’ll be interesting to see if my head whiplashes so badly when I flip back to Untimed (hopefully soon). I’m due my third draft notes any day now.

Moving through The Darkening Dream I find it paced like a roller coaster. Literally. Including the slow initial tick tick ascent to the top of the first hill (which crests at about at the 20% mark). The pacing is mirrored by the chapter length and the progression of time. In the first quarter, several weeks pass for the characters and on average the chapters are longer and more linear. Then at the top of the hill, I start to slide in the point of view of first one and the other villain. With that, the chapter length halves and the action is compressed into a small number of hectic and deadly days. Like most stories with a lot of violence, if one actually had to endure the narrative in real life, one would probably drop dead of exhaustion. TVs 24 being the ultimate example.

On a slightly different note, I switched the name on my ghetto cover (my home-brew one on the right, placeholder until I commission a real one) back to “Andy” as opposed to “Andrew.” I keep debating this. At some level it feels slightly odd to be in my 40s, a husband, and a father and not have dropped my nickname. But I just never have, and on the plus side all my SEO points at Andy, not Andrew. The later is what the Gas Company calls me.

For more posts on writing, click here.

Related posts:

  1. Done Again, Hopefully
By: agavin
Comments (2)
Posted in: Darkening Dream
Tagged as: Andy Gavin, Darkening Dream, Fiction, The Darkening Dream, Untimed, Writing

Vocal Whiplash

Oct11

I started a new read through and edit on my first novel, The Darkening Dream yesterday. I’m waiting for feedback on my newer book and wanted to cleanup the first one so I’ll have it ready to be proofread for possible self-publishing. This is the first time I’ve looked at it in eight months (I’ve been working on Untimed) and the difference in voice is flogging my brain.

It’s weird and not a little disturbing to read your “older” work. I started TDD in January 2008, writing the first draft of what’s now the opening twenty percent (before heavy alterations). I stopped (because of work and the birth of my son) and picked up in fall of 2009. Although I’ve done about a zillion (more like ten) drafts, traces of this oldest style remain in these early sections. And boy has my literary voice changed since then. Most dramatically, I no longer detail out as much of the action and setting. Nowadays, I concentrate on sketching and implying important points, choosing my scenes less to block through the whole action than to paint in important moments. These old sections have been heavily trimmed down, edited and reworked, but they are still organized in a stodgier more sequential fashion.

And the beginning of my story is tricky, introducing a period world with a large cast of period characters. I’ve several times restructured the start of TDD, including one late attempt this year to write a number of alternate starts. But I have never found a way to replace the measured build up I currently have with a more hook driven start like Untimed has. It’s easier to start that way. Oh well, live and learn.

The biggest shocker, however, is how difficult it is getting used to past tense again. TDD is written in the normal third person past limited, where different chapters focus on different characters. There is no omniscient narrator but the implied narrator shifts from chapter to chapter. Untimed is first person present. Single narrator obviously. I’ve really grown to love the immediate quality of the present tense. One also gets to ditch most the “hads” used to indicate the past perfect. In past tense, you might say, “He went to the store,” or to indicate prior time “Earlier, he had gone to the store.” In present you’d likewise use “He goes to the store” and “He went to the store.” The normal past tense takes over for the past perfect, and it’s a much cleaner tense.

The first mini-scene of TDD is as follows:

As services drew to an end, Sarah peered around the curtain separating the men from the women. Mama shot her a look, but she had to be sure she could reach the door without Papa seeing her. After what he’d done, she couldn’t face him right now. There he was, head bobbing in the sea of skullcaps and beards. She’d be long gone before he extracted himself.

“Mama,” she whispered, “can you handle supper if I go to Anne’s?” Probably last night’s dinner debacle had been Mama’s idea, but they’d never seen eye to eye on the subject. Papa, on the other hand, was supposed to be on her side.

Mama’s shoulders stiffened, but she nodded.

The end of the afternoon service signaled Sarah’s chance. She squeezed her mother’s hand, gathered her heavy skirts, and fled.

As an experiment, I rewrote this in present tense, a fairly straightforward change:

As services draw to an end, Sarah peers around the curtain separating the men from the women. Mama shoots her a look, but she has to be sure she can reach the door without Papa seeing her. After what he did, she can’t face him right now. There he is, head bobbing in the sea of skullcaps and beards. She’ll be long gone before he extracts himself.

“Mama,” she whispers, “can you handle supper if I go to Anne’s?” Probably last night’s dinner debacle was Mama’s idea, but they never saw eye to eye on the subject. Papa, on the other hand, is supposed to be on her side.

Mama’s shoulders stiffen, but she nods.

The end of the afternoon service signals Sarah’s chance. She squeezes her mother’s hand, gathers her heavy skirts, and flees.

Which do you guys like? I suspect that past tense is more appropriate to this story, being conventional and also given the setting in 1913. But I’ve grown so fond of the present tense that I can’t judge anymore.

For more posts on writing, click here.

Related posts:

  1. Untimed – Two Novels, Two Drafts!
By: agavin
Comments (3)
Posted in: Darkening Dream, Untimed
Tagged as: Andy Gavin, Creative Writing, Fiction, Past tense, Present tense, Simple past (English), The Darkening Dream, Untimed, Voice

All Things Change

Oct05

So I’m about halfway through my last polish pass on my third major draft of Untimed. [Update 7:44pm, finished the polish] This is one of the umpteen revision passes. Only another day or two to go before I send it off again and get down to waiting for feedback (hands down my least favorite part of writing).

The book totally kicks ass BTW — biased opinion but true.

Anyway, this has me planning to spend my “downtime” (waiting) doing some really serious research on self-publishing my first novel, The Darkening Dream, and seeing if I can get it out there before the holiday season.

I’ve been following self-publishing blogs like A Newbie’s Guide to Publishing and Dean Wesley Smith for around a year. These guys — rhetoric aside — have made sense for some time but the arguments for traditional publishing grow lamer and lamer. Check out something like this, which lays it out there — albeit with a lot of flavor. Publishing is in the throws of the cataclysmic “doing digital” change that has or is shaking up all the media businesses. For example, in music the conversion from media (vinyl, cassette, CD) to MP3 during which the labels/studios stuck their head in the sand and found themselves nearly destroyed.

The fact is, the change is coming no matter what any big old-school companies want or try to do. Readers are well on their way to embracing ebooks, the rise of the tablet (aka iPad), and dropping smartphone and reader prices (order your Kindle Fire here! 250,000 preorders in 5 days!), has etched the writing on the wall (in blood). In a few short years print will make up 20 or less percent of the market. Paper books (and I say this as someone who has a two story library with over 15,000 of them!) aren’t going to vanish instantly, but they won’t be majorly relevant for novel sales.

So this basically guarantees completely and without any doubt that print revenues will crater, leaving publishers unable to support their big overheads. Borders (and nearly every independent) going bankrupt will just hasten this. Barnes and Noble is next. They tried with the Nook, but Amazon is going to crush them (again, Kindle fire, not to mention $79 regular Kindle). And publishers, being large old-school companies that employ LOTS of people under the old model are showing lots of signs of panic, but pretty much not a glimmer of adapting to the changing business.

But they won’t have one soon. Because without control of the gates to bookstores, they don’t control anything.

Right now they still make the better product. But as an author they:

1. tie up rights

2. take way too much money (15% vs 70% doing it yourself)

3. take way too long (15 months instead of like 1-2 to market!)

4. charge too much for ebooks

5. don’t actually do any marketing

6. often have really stupid ideas about “marketability” (like “sex doesn’t sell” or “vampires are over” *)

Eventually new meaner leaner packaging companies will make the murky ground of processing books a bit easier, but in the meantime. Time to get researching.

If anyone knows a kick ass indie book marketer, I’m looking to hire one (that’s the only part I can’t really do myself).

For more posts on writing, click here.

* From above: The Vampire Dairies and True Blood both prove both statements simultaneously asinine. And while TDD does have a vampire, he does not ever sparkle in daylight (900 years and he hasn’t seen a glimpse of it) and he is not in the least sexy. He is, however, frightfully smart, cautious, and happy to decorate your house with the entrails of your closest family members.

Related posts:

  1. The Darkening Dream
By: agavin
Comments (3)
Posted in: Books, Darkening Dream
Tagged as: Amazon, Amazon Kindle, Andy Gavin, Arts, E-book, IPad, Kindle, Kindle Fire, Nook, Publishing, Self-publishing, The Darkening Dream, Untimed, Writing, Writing & Editing

Revision Slog – Novel as Algorithm

Sep22

As I slog toward the end of my third major draft of my new novel, Untimed, I felt the need for brief procrastination in the form of detailing the process. Most people seem to discount how much grind and sheer time investment is required in writing (and revising) a novel, even a vey steady workaholic like me. Let’s do a little breakdown.

Untimed is actually fairly short, currently at 83,000 words and 38 chapters. This is MUCH shorter than my first book started out. Length is a factor because you have to iterate (i.e. read through the book a LOT of times).

Think of each major draft as a loop (I am a programmer) with various sub loops.

. Generate Idea (for the most part this kind of happens or doesn’t)

. Character Design and High Level Plotting (you could spend who knows how long on this, I don’t find it that useful upfront, most of it just comes to me while doing other things)

. The First Draft:

. Initial drafting: For each chapter (1..38) loop:

. Plot the beats in the chapter. This takes an absolute minimum of 1-3 hours even if you know exactly what’s supposed to be in there. Sometimes it takes several days of banging your head and talking to others.

. Pound out a first draft. I can do 2000-2500 words of new draft in one 8 hour day. I generally make this a chapter. Occasionally I’ll be on a roll and do two.

. Reread it to catch really stupid typos, phrasing, and make sure it makes sense (1 hour)

. Subtotal. For above book that represents 50-60 workdays (NOTE: if you take days off, it’s chronologically much longer). Notes on finishing the first draft, here.

. High level pass:

. It’s impossible when writing a chapter or two a day to see the big picture in the book, so you have to do at least one faster pass through afterward.

. I can do about 10-15,000 words a day like this, which is actually fairly brutal

. Subtotal. About 7 workdays. 1-2 full reads.

. Quick read:

. If you want to judge pacing you have to read it all in a day or two like a normal book, not on the computer

. Subtotal. 1-2 days. 1 full read.

. Draft total. About 60-70 workdays. 4-5 full reads.

. Wait for feedback:

. Since you have to finish something and send it to someone, even a paid editor will take some time to read it and return feedback. This usually takes several weeks. I try and overlap it with the cleanup passes, but it’s tricky.

. Revision Drafts (I’m currently finishing the third major redraft) so I’ve done two of these so far on Untimed:

. Plan, outline, and organize changes.

. Can take from a couple days to a couple weeks. Some thoughts on this with Untimed HERE.

. I can do about 2-3 chapters a full day of revision. So for each block of 2-3 chapters loop:

. Do the actual revision. This can be fairly grueling, involving initial big surgery, a smoothing pass, then a cleanup pass

. Reread it to catch really stupid typos, phrasing, and make sure it makes sense (2 hours)

. Subtotal. Plotting 7 days, revising 15 workdays. Generates 2-3  extra reads per chapter.

. Medium Quick read:

. Checking for consistency

. Subtotal. 3-4 days. 1 full read.

. Total for each revision draft. Approximately 25 workdays. 3-4 full reads. Notes on the second draft HERE.

. Wait for feekback. You have to find out from others, often people who have never read the book before, how a draft comes across. This takes awhile. A reader who gets back to you in a week is amazing. It often takes several and some gentle (or not so gentle) prodding. Or tossing them some money. Sometimes that doesn’t even work. I had one (paid) unemployed beta reader tell me that they couldn’t start it because it interfered with their watching TV! NOTE: Said individual did not get paid.

. Line Editing:

. When the big picture is all settled out one sends it out to an editor for Line Editing. This involves more editor time than author time, but still chunks of the book come back and one must go over the edits and install them.

. My editor will request a “compression” pass before sending it to her. This is an extra pass to try and self edit it first.

. I can do about 8000 words a day like this. Approximately 10 days. 1 read. This is brutal but can be overlapped chronologically with the editor’s line editing. I.e. I can self edit a chunk and then send it out, meanwhile self editing the next chunk while the editor is working on the previous one, then also fit in the next part (processing) of returning chunks in a pipelined fashion.

. I can “process” returned line editing at about 6,000-8,000 words a day. For each chunk loop:

. Read over the track changes version of the line edit in word, approving and rejecting various edits and making cleanups

. Copy over each scene in into the real draft. Cleanup formatting.

. Do a quick read of the chunk or chapters to make sure nothing got screwed up

. Subtotal. Approximately 12 workdays, but spread across more chronological time as the edits can’t churn out this much per day. 2-3 full reads.

. Quick read:

. If you want to judge pacing you have to read it all in a day or two like a normal book, not on the computer

. Subtotal. 1-2 days. 1 full read.

. Total for line editing. approximately 24 days. 4-5 full reads.

As you can see. This adds up to a LOT of days and a lot of passes. Finishing up the third draft here, I’m already on eight months and at least 12 read throughs, and I can look forward to several more of each.

For more posts on writing, click here.

Related posts:

  1. On Writing: Yet Another Draft
  2. Untimed – Two Novels, Two Drafts!
  3. Untimed – Two Novels, Check!
  4. Done Again, Hopefully
  5. Middle Madness
By: agavin
Comments (5)
Posted in: Untimed
Tagged as: Andy Gavin, Beta reader, Creative Writing, drafts, edit, Fiction writing, Novel Writing, novels, Proofreading, Revision (writing), Untimed, Writing, Writing & Editing

So you want to be a video game programmer? – part 5 – The Method

Sep11

…CONTINUED from PART 4. Or start at Part 1.

This post is presents an algorithm of sorts for learning to program. It applies not only to the fundamentals, but to all aspects, including the acquisition of small component skills. Thirty years after learning, I still follow the same basic procedure. To tell the truth, modified, it works for leaning most things.

Step 1: Goal. Invent some manageable goal that excites you (in a later context as a profession “excites” is often replaced/supplemented by “need”). My first program was a text-based dungeon master (see here). If you want to be a video game programmer, there’s nothing better than a game. If it’s one of your first programs, make it damn simple. Copy some REALLY REALLY old and simple game like anything from before 1981 (Pong, Breakout, etc.). Truth be told, using text only for a couple weeks/months might not be a bad idea. Graphics just complicate matters. They’re awesome — and you’ll need them soon enough — but first the fundamentals, like variables, flow of control, scope, etc. Any individual task should take no more than a few days. If your goal is bigger than that, subdivide.

Step 2: Environment. All programming is done in the context of some environment, and you must learn about it. You need to start with a simple one. In my case it was mostly AppleSoft BASIC. For learning interpreted is good. Some decent starter environments today are Python, Ruby, Flash, Lua. DO NOT START WITH A LANGUAGE LIKE C. I will elaborate on this environment question in a separate full post, as it’s a large topic and highly religious for programmers.

Step 3: Research. This means reading. If you don’t like to read, either learn to or find yourself a new career. I’m serious. Reading separates the Neo Cortexs from the gibbering marsupials. I’m serious. Be a New Cortex. Your love of reading must be so extreme that you can stomach slogging through 900 page Library Reference Manuals (maybe not at first). Programming is full of details.

Step 4: Theory. Get out a pad of paper, a text file, Evernote, or whatever. Design what you are going to do. Later, you might or might not skip this step (and do it in your head), but it’s useful for the beginning programmer. You don’t need to write out the entire program, but you should design your data-structures and modules or functions. If it’s one of your first programs, you should hardly HAVE data-structures. You might instead write down the modes and loose flow chart between them.

Step 5: Code. Actually try coding your program. This is best done in an iterative way. My advice is generally to start with creating your core data-structures, and then the functions or methods that support them. Test each of these individually. Interpreted languages with a listener are the best because you don’t have to write test suites, but can just test the components as you go at the listener. Time spent debugging individual functions and groupings (say all the methods that belong to a data-structure) pays for itself 100-fold. I still do this. The less code you are testing, the easier it is to spot and find bugs. If you know that your functions are reliable (or semi-reliable) they provide robust building blocks to construct with.

Step 6: Debug. See above in “code” because they are heavily intertwined. Coding and debugging happens together in small loops. Again. The less NEW code you have to debug, the better. Debugging is hard for novices. Do not write an entire big program and debug it all at once. If you are using a language that syntax checks, check each function after you have written it. Fix the syntax errors (typos) and then test and debug the single function (or component of a program). Baby steps. Baby steps.

Step 7: Iterate and improve. Just keep adding things to your program to get it to where you want. Add a new feature. Improve an old one. Rip out some system and replace it. Add graphics. Upgrade them. Try to keep each of these changes as small as possible and test after each change. The longer it has been since it ran, the harder it will be to make it run.

_

I can not emphasize how important baby steps are. They are the key to avoiding fatal frustration. I have a law that helps define the size of subtasks: DO NOT EVER LEAVE THE COMPUTER IF YOUR PROGRAM DOES NOT RUN. You can take a piss or stretch. That’s it. I lived by this rule my entire programming career. You can’t always follow it, but try. Get your ass back in that chair. Mom wants you for dinner. Shrug. Your co-workers call you for a meeting. Snarl. I always think of a program like a car engine. You can sometimes merely tune it up, but a lot of times you have to take apart the engine to fix/add something new. That time when the engine is apart (the program does not RUN!) is very important, and should not be very long. If it is, you are not subdividing your tasks enough. I write all sorts of custom code to allow the engine to run again (even if in a half-assed way) while big changes are going on. These intermediate constructs are intended as throw-aways. But they save time. Having your program broken, writing more than a couple hours of new code that has not been tested, is a recipe for disaster. You could easily reach the point where you have no idea where the problem is. If you test in small bits as you go debugging is MUCH easier. Bugs are perhaps 80% likely in the most recently stuff. It’s the smoking gun you goto (haha) first.

You can do a lot with ASCII graphics!

A starter example of this whole process: My first game was a text based D&D type RPG game. I wanted to include a number of “cool” (to a 10 year-old) encounters. So I structured it as follows: There was the “character.” This was to be just a number of global variables (this is long before object oriented programming) like G (gold), HP (hitpoints) etc. I wrote a couple “methods” (functions – but they didn’t have names in BASIC, just line numbers) like “takes a hit.” This subtracts from HP, and if <= 0 branches to the “you are dead” part of the code (not really a function in those days). Then I wrote a number of “encounters.” These were the main flow of control in that program. It popped from encounter to encounter. They might be like: You have met an orc. draw orc on screen with text graphics (aka print statements). present options: “attack,” “run,” “use magic,” etc. wait for input and apply logic. If you are still alive send the player back to the main navigation loop (the place that doesn’t have a particular encounter).

That’s it. I expanded the program by doing things like: Adding more encounters. Adding resurrection as a pay option when you died. Adding an actual map to the main loop. Moving the “combat” logic from individual encounters into a function. Then adding to the character attributes like strength and dexterity which influenced combat. Beefing up character creation. Etc etc. These are all tasks that can individually be accomplished in a few hours. This is key. It keeps your program running most of the time. It provides good feedback on what you are doing.

The entire above “goal” -> “debug” loop can be repeated endlessly. Example: “add a save game.” You now have to save and restore the state of your player (various global variables). But to where? Disk presumably in those days. So you crack the BASIC manual and read about file I/O. First you go simple. There is one save game. It’s always named “adv.sav”. You write a function to open the file and write the vars into it. You examine the file to make sure it put them there the way you want to. You write another function to read the file. You add options to the game menu to call these functions. Then test.

Next baby step. Allow multiple save games. You add “filename” (or save slot or whatever) to the load/save functions. You hardwire it to something and test again. Then you add interface to the game’s main menu to specify which slot. You test that.

Iteration is king! Good luck.

_

Parts of this series are: [Why, The Specs, Getting Started, School, Method]

If you liked this post, follow me at:

My novels: The Darkening Dream and Untimed
or the
video game post depot
or win Crash & Jak giveaways!

Latest hot post: War Stories: Crash Bandicoot

Related posts:

  1. So you want to be a video game programmer? – part 3 – Getting Started
  2. So you want to be a video game programmer? – part 2 – Specs
  3. So you want to be a video game programmer? – part 4 – School
  4. So you want to be a video game programmer? – part 1 – Why
  5. Making Crash Bandicoot – GOOL – part 9
By: agavin
Comments (78)
Posted in: Games, Technology
Tagged as: Andy Gavin, BASIC, Breakout, Computer program, Control flow, Data structure, Debugging, Game programmer, Languages, Learning, Programming, Programming language, pt_career_advice, Python, Ruby

Crash Memories

Sep09

In honor of Crash’s 15th Anniversary I wanted to make a post whose primary purpose is to serve as a repository for comments from you — the fans — about your first and favorite Crash Bandicoot impressions. Please make them in the comments. This is the place to tell that story of how you got your Playstation and Crash Bandicoot for Christmas when you were five, etc. etc. So to that effect, I’ll start it off with a brief tale that begins the night Crash Bandicoot launched.

In September 1996 all of Naughty Dog flew to New York for the combined Crash Bandicoot / Playstation 1 year anniversary party. It was on a big rooftop deck in the meat packing (hehe Beavis, you said meat packing) district. All of us got pretty drunk. There was a loud band. Very loud. Simultaneously, Ken Kutaragi (father of the Playstation!) decided to engage me in a highly technical discussion — against the 120 decibel background — using his rather broken English and my exactly zero command of Japanese. But in any case I didn’t sleep — we saw dawn in some New York greasy spoon.

About four hours later, Jason and I were on a plane to London. I didn’t sleep — why waste good reading time.

We arrived in London for ECTS and various Crash launch promotional meetings. We were immediately conducted to small hot smoky cubicles and interviewed by a variety of game journalists in numerous European languages for about eight hours — also against about 100 decibels of trade show. We then went to the bar (scotch). Then to dinner (wine). Then to a night club (more booze). Then a cigar bar (more scotch). Then to our hotel room (with about 15 or so European marketing and sales folk). There we consumed every single item in our minibar. We called down to the desk (4 in the morning) and had them bring us a NEW minibar. Yes, a complete refill of all items at 4 in the morning. We consumed that. Except for two miscellaneous tiny liquor bottles I can’t remember. The cost of just one minibar was 800 pounds sterling. We ate/drank two.

We didn’t sleep.

But we did spend another eight hours giving interviews. Then we went out again. That night I think we got 2-3 hours of sleep. But interviews again starting at 8am.

Somewhere in there I visited Westminster Abbey.

By day three we discovered that a number of our new friends (English) had never left the Island of Great Britain. So we all boarded the Chunnel and went to Paris (from Waterloo to Napoleon stations specifically, which is amusing). In Paris we started drinking at 10am. We kept drinking (many bars). We ate dinner (more wine). We went to someone’s apartment (more drinks). There was no sleep involved. After staying out all night (drinking) after the day of (drinking) we boarded the Chunnel back to London. I might have dozed. We went straight from there to the airport and got on a flight back to LAX.

Ah, first class. There were scones with clotted cream. And perhaps an hour or three of sleep. But we landed in LA at 7am. I was on the beach jogging by 8:30am. In the office at 10am. Back to work on the Japanese version of Crash. I went home early that day. Midnight.

Making video games builds stamina.

Don’t forget to put your own Crash memories in the comments section!

If you liked this post, follow me at:

My novels: The Darkening Dream and Untimed
or the
video game post depot
or win Crash & Jak giveaways!

Latest hot post: War Stories: Crash Bandicoot

Related posts:

  1. Making Crash Bandicoot – part 1
  2. Old Crash 20 Questions
  3. Crash Bandicoot – An Outsider’s Perspective (part 8)
  4. Making Crash Bandicoot – part 6
  5. Crash Bandicoot as a Startup (part 7)
By: agavin
Comments (184)
Posted in: Games
Tagged as: Andy Gavin, Beavis, Crash Bandicoot, Crash Bandicoot Launch, Ken Kutaragi, London, Naughty Dog, New York, Playstation, pt_crash_history

Middle Madness

Sep08

I think I’m over the hump with the third major draft of my new novel, Untimed (for a quick blurb see here).

Story structure is hard. And while this book is much better structured than early drafts of my previous novel, it had two major problems: the ending and the first part of Act II. Late (very late) in the second draft I cracked the ending. So that just left the middle.

Therefore, I wasn’t surprised when the biggest comment from my awesome freelance editors’ (I use three: Renni Browne, Shannon Roberts, and R.J. Cavender) involved problems in this middle section. It’s not that the scenes wen’t good or exciting, but mostly that I fell prey to a personal need to sneak Napoleon into the story (time travel seems to call out for the most pivotal personality of the modern era) and this resulted in a bad case of “Double Mumbo Jumbo” (or a variant thereof).

So what is the dreaded Double Mumbo Jumbo? Most specifically it’s the phase coined in Blake Snyder‘s Save the Cat book (which I discuss here). DMJ is invoked by throwing two unrelated implausible things into the same story. However, my specific problem is really a cousin, what my editor Renni calls “1+1=1/2”. This is, the idea that doing the same improbable thing twice in the same book isn’t twice as good as doing it once, but actually half as good. Even if the thing is cool. So a kind of DMJ.

And I was doing it in my middle.

Still, this section of my story accomplished a lot of other things too. And I had to figure out how to rework it to keep as much of the good as I could, avoid a DMJ — and not make TOO much work for myself in terms of repercussions later in the book. Thinking about various ways to restructure, particularly given the constraints of my story, my elaborate time travel scheme, and history itself, was quite the brain buster. I thought on it all day for at least a week. So hard one Friday that I literally gave myself a migraine headache! I found myself pondering time travel so aggressively that I became confused as to what year it was — and then my vision began to shimmer (migraine).

I probably outlined 15 different scenarios and talked about countless more. This part of the writing process is very peculiar. I often end up with a half-baked scenario that satisfies some goals, but just doesn’t really work. One quickly reaches a point where no new ideas surface internally and you need to shake it up. I then find it extremely useful to talk with a limited pool of friends who have read the book in it’s latest incarnation. This allows me to efficiently go over the possible elements. Then we talk out the problems. By vetting numerous failed scenarios it’s often possible to collect enough different disconnected ideas that a single coherent new plot can be jig-sawed together. Or at least coherent enough to polish out in the writing.

This last week, I even twice resorted to writing out (as prose) incomplete outlines to see if they worked. The first revealed itself as a miserable failure. The second made it to the finish.

Now it’s off to friends and editors to see how it passes muster.

For more posts on writing, click here.

Related posts:

  1. Untimed – Two Novels, Two Drafts!
  2. Untimed – Two Novels, Check!
  3. Beginnings and Endings
  4. Peace in the Middle East? – Mezze
  5. Margarita Madness – The Mix
By: agavin
Comments (1)
Posted in: Untimed
Tagged as: Andy Gavin, Blake Snyder, books, Creative Writing, Fiction, Headache, Migraine, Napoleon, Napoleon I, Novel in Progress, Novel Writing, novels, Structure, Time travel, Untimed

So you want to be a video game programmer? – part 4 – School

Sep01

…CONTINUED from PART 3. Or start at Part 1.

There are two basic approaches: home training and school. Personally I’d recommend both.

Let’s talk school. In my day (1980s) pre-collegiate computer classes barely existed, and if they did they were mostly about Pascal programming and data-structures. They often used p-System pascal, an old-school predecessor to Java!

College Computer Science programs followed (and I imagine they still do) a traditional regimen of stuff like Algorithms, Data-structures, Architecture, Compilers, AI, Theory of Computation etc. They rarely taught or emphasized programming itself. Personally, while I have this training myself (several years at the M.I.T. AI Lab working toward my PhD) I got it long after teaching myself to program and after having 5 published video games on the market.

What I was taught at M.I.T. (1992-94) was way too theoretical to make a good starting place for a young programmer. Don’t get me wrong, I learned a tremendous amount there and it really upped my game. But it was best digested in light of several years practical experience. So I don’t personally think that traditional CS is the way to start. But if you are really serious about computers it is a very solid choice for your higher education. You just need to be ready for it.

And here is the dirty secret about the University Education system: It’s made up of classes. Yep. Your four (or more) year educational experience will just be the summation of eight semesters worth of classes, usually 4-5 per semester. The exact order of these, which topics, and how they are taught will be at the whim of all sorts of varied factors. For example: scheduling, major and general requirements, teacher sabbaticals, friends, personal choice, etc. The school itself will have broad requirements (like you must have 3 science and 2 history classes). You major/department will have more specific ones (like requires 14 classes in the major, with 7 out of the 10 “core” classes — as defined by the department). So everyone’s education is different. That can be a good thing, but it’s less coherent.

And even within a particular class type, like say: Computer Architecture, the classes vary wildly and are rarely designed to work with each other or be taken in a particular order. The school and department might have determined that it should have a Computer Architecture class, but each teacher is free (somewhat) to determine the specific content and style of his or her class. Teachers vary wildly in teaching ability. I mean WILDLY! Even at the best schools. In fact, the teaching quality at M.I.T. was considerably lower than at my undergraduate school, Haverford College. It’s not that the M.I.T. professors weren’t as smart — they were plenty brilliant — but they leaned more toward being famous researchers while Haverford selected people who excelled first and foremost at undergraduate education.

In any case, even within a particular major, say Computer Science, the slate of courses you take might not form a coherent picture. There isn’t much effort made to ensure this. It’s more like, “we need a Compilers course, who wants to teach it?” and then that professor goes off and builds their plan. I’m sure there are constraints and feedback, but it being part of a single coherent program doesn’t seem to be one of them. And teacher style so heavily influences the experience. Now, don’t get me wrong, many of these courses are really good. But they require that you, the student, do a lot of the work integrating the bigger picture. Which really, for first rate minds trying to absorb advanced modalities of thought, is totally fine. It’s just not exactly the same as learning a complex practical field like programming.

But let me speak briefly about the classic topics:

Theory of Computation – Is the cool (but highly esoteric) field of math that endeavors to prove things about what can and not be computed. It includes a lot of discussions about theoretical computers like the Turing Machine and what sorts of computational problems are equivalently complex. This is actually very useful, but only if you have already encountered practical programming tasks. Otherwise it will probably just confuse the bejesus out of you.

Compilers – Is about writing compilers, and how computational semantics are transformed. This is bordering on totally useless for the novice programmer. I myself found it fascinating, but I wrote several compilers. Again, you want to study this several years into your career.

Algorithms – Is the formal study of different methods of problem solving. This is where stuff like the difference between a bubble and an insertion sort goes. Every programmer should know the basic algorithms, but you can read a beginning book fairly early in the learning process and pickup the basics. The college version is much more rigorous. But in the early stages you can lean on libraries which encapsulate these solutions.

Data-structures – These relate closely to Algorithms, but are methods for actually storing data in computers. Different data-structures lend themselves better to different algorithms. The mistake made by a purely academic approach is in thinking that they make a lot of sense without some practical knowledge of the kind of things that you do in normal computing. Still, Algorithms and Data-structures are essential at all levels of programming beyond the totally trivial, and these are the most practical of the classic topics.

AI (Artificial Intelligence) – Can be extremely useful to the game programmer. Games, after all, need enemies that appear intelligent, and in addition have to solve all sorts of big computational problems which use AI techniques (like moving the camera around etc.). But as taught in school it’s pretty theoretical and you need at least a couple years of practical skills first.

Architecture – Is the study of computer hardware, usually micro-processors. A lot of people hate this topic, not being hardware guys. And although you can learn this anytime, you really should. It’s impossible to be a truly great programmer without knowing something about the hardware that makes it all happen. If you are into compilers, this is even more true. I personally loved these classes.

I also want to mention the subject of Programming Languages. Most schools rightfully view the choice of specific programming language as fairly “academic” (or not actually). In the above classes advanced CS guys learn that all normal computer languages are “Turing Complete” and therefore equivalent to each other. Any program in one could be converted to a program in another by automated means (this is what compilers do). Languages all have the same basic features. And if it’s missing one you can write the feature within itself. So who cares which one you use?

This makes a certain academic sense, but in practice, the choice of programming language is vital. And the budding programmer should be introduced to a wide variety of them at a steady yet-not-overwhelming pace so that they learn the fundamentals common to all and do not become one of those lame-ass programmers who are afraid to learn a new programming language. I can be programming in any new language in one day, proficient in a week, expert in a month, master in six. It’s just not that hard.

Schools often have a particular language that they favor. These days it might be Java. In my era it was either Pascal or C. For many schools it’s still probably C/C++. At M.I.T. it was Scheme/Common Lisp! But often professors are also free to just teach a class in a different language. I had an undergraduate AI class all in Prolog. For the gifted student this is a good thing, having a whole class in a new language, as it’s a decent enough emersion to actually learn a new mode of thought (the Prolog class substantially improved my programming even though I’ve not used Prolog since). But also some professors will try the new language for each assignment approach, which is retarded, as there isn’t enough time or depth to master anything, and so the whole assignment becomes about learning the minimum information needed to get it done. The net net is that there is rarely a coherent plan to get you programming and then to have you learn a wide range of practical languages. In said plan, you might start learning with an easier interpreted language like Python, then be taught to master four or five others that are both practical and varied (say C/C++, Java, Javascript, at least one assembly, a “fancy” or two like Ruby/LISP/Scheme/Prolog/Smalltalk etc.) That doesn’t usually happen. You might get lots of Java and a smattering of 10 others.

College professors also don’t usually think that classes that directly and specifically teach programming languages and practical programming are very cool. There is no research or terribly theoretical aspect to them. I.e. the subject isn’t very academic. They are rarely themselves very good programmers (if they were, they’d be off working for Google or whatnot 🙂 but seriously the personality type for “programmer” and “professor” are different — albeit both bookish). This leads to professors rarely adding this kind of class to the curriculum unless someone makes them.

_

Having heard about all these more practical Gaming majors that colleges now have, but which I know nothing about (they didn’t exist 20 years ago), I asked a friend of mine who just finished her CS degree yesterday! Lauren is a fellow blogger, programmer, WOW fan, and budding game designer-programmer. Big congratulations! Her comments:

Having just completed my degree yesterday, I can confirm that not as much has changed in Computer Science education as one might expect, especially given the exponential growth of the field. Aside from the specific languages taught, which for me was mainly Java instead of Pascal, the curriculum is much the same. The breadth of languages taught is still very much dependent on what you choose to seek out yourself; were it not for honors opportunities or research, I never would have become as familiar as I am with functional programming or the MVC architecture.

After the first two years, programming takes a back seat to theory; upper division classes, while useful and offering a degree of specialization, can be light on actual coding. There are still opportunities to improve your skills, though. Project classes, at least at my school, offer a chance to really show your programming chops, so to speak; with the exception of one I personally considered, all required the completion of extensive coding projects in ten weeks or less to the exclusion of lecture material.

The biggest factor that affected the quality and extent of the education I received was the professors. Sometimes, you will get a truly horrible lecturer, someone who isn’t fair or just doesn’t care. For me, this happened more often than not. The best advice I can give is: Be able to teach yourself. To be honest, I didn’t bother attending classes where the professor was incapable of teaching — I don’t want to waste my time. I went home and read the textbook, or taught myself using tutorials or information online.

“Bad” classes will happen, and the most important thing I learned in college, or even before, is that you need to take active control over your education. Even if the teacher sucks, you can’t blame a failing grade on him; you have the power to learn the material and should do so to the best of your ability. This isn’t to say that poor professor performance doesn’t raise my hackles (it does, a lot), just that self-directed learning is a necessity for succeeding as a student and a programmer, especially since the number of future employers that will accept “The teacher sucked!” as an excuse for a failing grade must be pretty small.

Even if you’re taking the so-called “structured” or “formal” education path, no one will hold your hand. You need to look out for yourself, and find opportunities to broaden your knowledge. I learned firsthand that often these opportunities will not be supplied to you, or even pointed out. You need to be responsible for your own education, especially at large universities. Self-directed study and college are not mutually exclusive.

In that spirit, in addition to my CS degree, I also took a Concentration in Game Culture and Design. This was an interdisciplinary program in conjunction with the art school which, did add a nice game “focus” to my studies. I think these types of programs can be helpful, though to say this improved my coding skills would be more than a stretch. Mostly, it gave me a bit more insight into the game pipeline, and the scale of the work that goes into making a game. I’ve gained some skills which I otherwise wouldn’t have been exposed to; for instance, I’m now comfortable finding my way around game design docs and I’ve had practice giving pitches.

While not a value traditionally espoused as part of a CS education, some gaming or art courses can help your creativity. I can’t speak for the more technical games programs out there, I think there is merit in learning a bit about the industry even prior to leaving school.

This fresher opinion confirmed my belief that no school can be as rigorous as GOOD self training like I gave myself, and under no circumstances should you want until you’re 18 (unless you already are!).
The basic message: Start as early as you can, preferable at age 8-12.

Given that college is roughly age 18-22, and adds a lot of value an education begun at home, it can actually dovetail perfectly with said self education. This will be the topic of a later post in this series.

CONTINUED HERE with The Method!

_

Parts of this series are: [Why, The Specs, Getting Started, School, Method]

Read more from guest blogger Lauren here.

If you liked this post, follow me at:

My novels: The Darkening Dream and Untimed
or the
video game post depot
or win Crash & Jak giveaways!

Latest hot post: War Stories: Crash Bandicoot

Related posts:

  1. So you want to be a video game programmer? – part 2 – Specs
  2. So you want to be a video game programmer? – part 3 – Getting Started
  3. So you want to be a video game programmer? – part 1 – Why
  4. Making Crash Bandicoot – GOOL – part 9
  5. Crash Bandicoot – Teaching an Old Dog New Bits – part 2
By: agavin
Comments (36)
Posted in: Games, Technology
Tagged as: Algorithm, Andy Gavin, Artificial intelligence, Colleges and Universities, Computer architecture, Computer Programming, Computer science, Crash Bandicoot, Data structure, Doctor of Philosophy, Education, Haverford College, Machine learning, Programming, pt_career_advice, Student, Teacher, Theoretical, Video Game Programming

So you want to be a video game programmer? – part 3 – Getting Started

Aug30

…CONTINUED from PART 2. Or start at Part 1.

Some kid is always asking me, “I love video games, how do I learn to program them?”

First of all, a warning. Reaching the skill level to be a professional video games programmer takes years. There are no shortcuts. You can not possibly go from nothing to professional grade skills in less than perhaps 2-3 years — and for that you’d have to be an uber-genius — usually it takes 5-10.

The good news is that you can start very young (8-10 — I started at 10) and you can do it on your own with common equipment and readily available information.

There are two basic approaches: home training and school. And while I personally recommend both, I’m going to use this post to give my own “origin story.” In followups we can apply these lessons to the present (programming itself hasn’t changed all that much in 30 years — there are just more libraries).

[ BTW, if you’re new to the blog and wondering who the hell I am in this context, click ]

Rewind to 1979. Some of my favorite things in the world were Dungeons and Dragons and arcade games. I was really too young to actually play D&D accurately, but I loved reading the books and modules (besides my regular diet of fantasy novels). I went to the Apple Store (not actually owned by Apple or nearly as glamourous as they are today — in fact, the owner resembled Gandalf) and saw the game Akalabeth running on an Apple II (not a + or an e, but an old school II). Boy did that set me to dreaming!

Then in 1980 my science teacher brought into class a Heathkit H8 her husband built (yes built). This early computer ran a lousy version of BASIC and possesed the world’s worst storage device: the audio tape drive. Actually punch cards were worse, but with the tape drive, saving your program bordered on impossible (at least for the sharing audio tapes with the rest of the class) and so you had to type it in repeatedly. We were given a single mimeographed sheet of paper with the BASIC commands. I read this a couple times and then wrote out longhand the first draft of a text-based RPG where you wandered around and fought orcs and trolls for gold and tretchure (this is how I spelled treasure at 10). During lunch I typed in and debugged the game, editing my paper copy as needed. I used my friends as beta-testers. It may seem overly ambitious to try and recreate D&D as one’s first program, but it illustrates the programmer principle of: program what you love.

Then my best friend got himself a brand new Apple II+ (just released). This was a slick update of the Apple II. It had a whole 48k, came with BASIC, and was often (but not always) accompanied by a 143k floppy disk drive! Low low price of $900 just for the floppy drive! In any case, the II+ was so much more awesome than the Heathkit. It even had graphics!

So I began pestering my father for an Apple. This took 9-10 months of continuous harassment — the machine was expensive — and all sorts of creative techniques to convince him. I offered to mow the lawn for free. I explained how various accounting software would make balancing his checkbook a breeze, etc. Once I was victorious (Jan 1981) we got the accounting software, but he never used it, leaving me to my own devices on the machine. And I think I kept getting paid for the lawn. Still, this episode illustrates another important programmer principle: persistence.

After the Apple arrived, I spent nearly all of my free time (perhaps 6-8 hours a day) on the thing for years. This is essential. You must offer up blood onto the alter of the programming gods. Principle: sacrifice. I used this time in many ways. I played a lot of games. I used every piece of software. I taught myself to program. I hacked. Principle: market research. But I couldn’t afford as many games as I wanted and in those early years the available library was small, so I was always trying to make my own.

I wrote totally lame versions of nearly every arcade game ever made. In BASIC at first (we’ll get to the issue of environment later). I would generally spend a day or three banging these out until they were marginally playable and then move on to new projects. Lesson here: practice. I chose more and more ambitious games and would use each one to teach me something new. I did this in incremental steps, mostly 1-2 day projects. By way of example, I might upgrade something or I might add a load/save system (requiring learning about I/O). My early games didn’t have much in the way of collision, later ones did. I started with text, then moved up to lores graphics, then highres, then shape tables, then bits of assembly language subroutines for blitting. Principle here: baby steps.

Baby steps are incredibly important. You can’t learn everything there is to know in computers in one shot. Each little area takes multiple projects and days — at least — to learn and master. Take file I/O. I’m sure I got something up and going the first day or two back in the early 80s when I decided to add a load/save system, but I was still learning about file I/O 25 years later on Jak 3 (of course then I was inventing new ways of doing stream I/O, but it was learning nonetheless). Your first pass might work, but often you barely understand any of the principles involved.

You have to start simple, build up blocks, and go from there. That’s why interpreted languages and text programs are a good way to begin. You need to learn about variables, scope, and flow of control before you can jump into 3D graphics. And forget about complex unforgiving environments like C/C++ or assembly to begin with. Those come later and are just one more thing to spend a series of baby steps on. Just learning about makefiles or projects and compile options could stop a novice dead. So don’t — yet. Each task (and thing to learn) should be broken into some chunk that only takes a couple days at most to digest — or at least make some headway on. This leads to a virtuous feedback loop of progress and learning.

I kept writing those lame little games for about 3 years (100s of them). Of all my friends with computers (we all programmed in that era because computers didn’t do much if you didn’t program) my games were the coolest. I used them to invent all sorts of excuses to develop new skills. I wanted to learn about interpreters so I made an engine to allow the creation of text adventure games using a custom scripting language. Once I got this going I upgraded it to graphic adventures, which proved to be a perfect excuse to implement an idea I had seen in the Sierra games where line drawing and fill commands were used to compress images to a fraction of their raw size. On the Apple II a raw graphics screen was 8k. So a floppy only fit 17. A normal compressor (ancestor of zip) might squeeze this to 3-4k but that is still only 30-35 images. This “save the drawing commands” style made them a fraction of that. But for it to work I not only had to create the “renderer” (including an assembly fill routine) but I also a whole “paint program” to allow the recording/creation of these proprietary images.

However, each of these sub-steps resulted in satisfying progress on its own. Principle: chunking. For example that fill routine. It took several days, and my mastery of recursion in assembly wasn’t the best so it left little corners unfilled, but it was cool in of itself. My first fill routine (in BASIC) took 5 minutes to do a fill, and the assembly one only a second or two. Plus, I was to keep using it in all sorts of programs for years (with improvements). Principle: reuse. Building on the tools you make is essential to programming.

In 1982, I met Jason Rubin. He also programmed. He was an amazing (by the standards of the time and our age) artist and his games LOOKED REALLY COOL. But they crashed a lot. Mine rarely did. From the beginning I hated crashing. Still can’t tolerate it. I have trouble leaving the keyboard if a crash bug is still outstanding. Principle: perfectionism. My programs also did much cooler “programming” stuff. They just didn’t look cool. When we combined our talents, things really took off! Our games now looked cool AND ran decently. Impressive stuff. Lesson: partnership. Not everyone can be good at every aspect of computers. Nor even of programming itself.

CONTINUED with Part 4 – School!

_

Parts of this series are: [Why, The Specs, Getting Started, School, Method]

If you liked this post, follow me at:

My novels: The Darkening Dream and Untimed
or the
video game post depot
or win Crash & Jak giveaways!

Latest hot post: War Stories: Crash Bandicoot

Related posts:

  1. So you want to be a video game programmer? – part 2 – Specs
  2. So you want to be a video game programmer? – part 1 – Why
  3. How do I get a job designing video games?
  4. Matsuhisa – Where it all started
  5. Making Crash Bandicoot – GOOL – part 9
By: agavin
Comments (27)
Posted in: Games, Technology
Tagged as: Andy Gavin, Apple, Apple II, Apple II series, Apple Store, BASIC, Computer Programming, Dungeons & Dragons, Floppy disk, Game programming, Heathkit, Origins, Programming, pt_career_advice, Steve Jobs

So you want to be a video game programmer? – part 1 – Why

Aug29

This post is a sequel of sorts to my How do I get a job designing video games. The good new is — if you’re a programmer — that nearly all video game companies are hiring programmers at all times. Demand is never satisfied. And the salaries are very very competitive.

The bad news is that it takes a hell of a lot of work to both be and become a great game programmer. Or maybe that isn’t such bad news, because you absolutely love programming, computers, and video games, right? If not, stop and do not goto 20.

I’m breaking this topic into a number of sub-posts. Although this is the intro, it was posted a day after the second, number 2, on types of game programmers, but I’m backing up and inserting this new number 1 (I’m a programmer, I know how to insert). Other posts will follow on topics like “how to get started” and “the interview.”

_

So why would you want to be a video game programmer?

Let’s start with why you might want to be a programmer:

1. Sorcery. First and foremost, being a programmer is like being a wizard. I always wanted to be a wizard. Given that magic (as in the D&D variety) doesn’t seem to be real (damn!) programming is the next best thing. Computers are everywhere. They’re big, complex, and all sorts of cool everyday devices (like iPhones, set-top boxes, cars, and microwaves) are really basically computers — or at least the brains of them are. 99.9% of people have no idea how this technology works. As the late great Author C. Clarke said, “any sufficiently advanced technology is indistinguishable from magic.” Yay computers! If you actually know the arcane rituals, incantations, and spells to controls these dark powers then you are… drum roll please… a wizard.

2. Career security. Computers are the foundation of the 21st century economy. Nearly every new business is based on them. Knowing the above incantations is secret sauce. All the growth is in high tech (product possibility frontier and all that). Hiring is supply and demand too. The demand is for programmers and other high tech specialists.

3. Even more career security. Programming is hard. It requires a big New Cortex style brain. This means lots of people can’t do it. It takes years of study and practice. I’ve been programming for 30 years and there is still an infinite amount for me to learn. Awesome!

4. It’s a rush. Creating stuff is a rush. Making the infernal machine bend to your warlocky will is a huge thrill. It never gets boring and there is always more to learn (related to #3).

5. It pays really well. This is related to #2 and #3. People need programmers and they can’t get enough, so they have to pay competitively for them. Even in the late 90s early 00s at Naughty Dog it was very rare for us to start ANY programmer at less than $100,000, even ones right out of school. Good ones made a lot more. And if you’re a total kick-ass grand master wizard (nerd) like Bill Gates or Mark Zuckerberg you can even start your own company and make billions. Take that you muscle bound warriors!

6. Solo contributions. You like spending time with machines and find all day dealing with illogical humans at least partially tedious. Sorry to say it, but even though most professional programming is done in teams a lot of time is spent at the keyboard. For some of us, this ain’t a bad thing.

7. Socialization. You need an excuse to hang out with others. On the flip side, because of this team thing you’ll be forced to socialize on and off between coding. This socialization will have certain structural support. This is convenient for the would-be wizard, master of demons but terrifying forces, but afraid of starting conversations.

So why would you want to be a video game programmer specifically?

8. Video game programming is really hard. Probably the hardest of the hard. It combines cutting edge graphics, effects, the latest hardware, artistic constraints, tons of competition, very little memory, and all sorts of difficult goodies. The really serious wizards apply here.

9. Other types. Video game teams have artists, musicians, and designers on them too. Lots of tech jobs don’t (although they sometimes have those pesky marking folks). Artists etc are cool. They know how to draw or compose cool stuff which makes your code look and sound much cooler.

10. Consumer driven. If you make it to work on a professional game they often sell lots of copies and people will have heard of what you do. This is much much cooler than saying “I worked on the backend payment scheme of the Bank of America ATM.” It’s so cool that it might even get you laid — which is an important concern for bookish wizards of both genders.

11. It’s visual. Seeing your creations move about the screen and spatter into bloody bits is way more exciting than that green text on the bank ATM. Talented artists and sound designers will come to you with said bloody bits and all sorts of squishy sounds which will make your coding look 1000x more cool than it would by itself. If you aren’t into bloody bits than you can work on a game where enemies explode into little cartoon rings. It’s all cool.

12. It’s creative. For me, I have to create worlds and characters. I’ve been doing so my whole life. Right now I’m not even programming but I’m writing novels, which is also about creating. Programming in general is pretty creative, but game programming is probably the most so.

13. Love. You love video games so much that working on them 100+ hours a week seems like far less of a chore than any other job you can think of!

I’m sure there are more reasons, but the above seem pretty damn compelling.

CONTINUED HERE with Part 2: “The Specs”

_

Parts of this series are: [Why, The Specs, Getting Started, School, Method]

If you liked this post, follow me at:

My novels: The Darkening Dream and Untimed
or the
video game post depot
or win Crash & Jak giveaways!

Latest hot post: War Stories: Crash Bandicoot

Related posts:

  1. So you want to be a video game programmer? – part 2 – Specs
  2. How do I get a job designing video games?
  3. Crash Bandicoot – Teaching an Old Dog New Bits – part 2
  4. Making Crash Bandicoot – part 6
  5. Making Crash Bandicoot – part 5
By: agavin
Comments (56)
Posted in: Games, Technology
Tagged as: Andy Gavin, Bill Gates, Console Platforms, Crash Bandicoot, Game programmer, Game programming, Games, iPhone, Mark Zuckerberg, Naughty Dog, New Cortex, pt_career_advice

So you want to be a video game programmer? – part 2 – Specs

Aug28

…CONTINUED FROM PART 1.

There are a couple of broad categories of programmers working on video game teams. If programmer is your player class, then the following types are your spec. Programmers are all warlocks and mages so instead of “demonology” or “frost” you can choose from below. (NOTE: if you don’t get this joke, you don’t play enough video games) This is the real world however, and many programmers dual (or even triple) spec — i.e. they handle multiple specialties.

1. Gameplay programmer. Programs enemies, characters, interfaces, gameplay setups etc. Probably also does things like AI and collision detection. These programmers are sometimes a little less hardcore technical than some of the other types, but this is the sub-field where the most “art” and experience are often required. Learning how to make a character’s control feel good is not something you can read about in Knuth. It takes the right kind of creative personality and a lot of trial and error. In a lot of ways, this is the heart and soul of game programming, the spec that truly differentiates us from the more engineering programming disciplines.

2. Tools programmer. Works on the extensive tools pipeline that all games have. This is the only branch of game programming where you don’t absolutely have to know and breathe video games inside and out, and it’s a little closer to mainstream applications programming. That being said, life at most video game companies is so intense, you better love them. Tools programmers tend to be very good at practical algorithms, data processing, etc. For some reason, perhaps because it’s more “behind the scenes” this spec is often viewed as less glamourous and there are fewer programmers who want to go into it.

3. Sound programmer. A very specific niche. Here you have to not only know how to program well, but you have to care about the esoteric field of sound. You need the kind of ear that can tell if there is a one sample glitch in some audio loop, and you need to care if the 3D audio spatialization is off or the sound field isn’t balanced. This is often a fairly low level area as audio programming is often done on DSPs.

4. Collision programmer. This is a really specific spec, and often overlaps with Graphics because it involves totally intense amounts of math. You better have taken BC calculus in tenth grade and thought “diffy-q” was the coolest class ever if you want to go into this.

5. Network programmer. In this era of multiplayer and networked gaming there’s a lot of networking going on. And programming across the internet is a bit of a specialty of it’s own. In general, video game programming takes any sub-field of programming to it’s most extreme, pushing the bleeding limits, and networking is no exception. Games often use hairy UDP and peer-to-peer custom protocols where every last bit counts and the slightest packet loss can make for a terrible game experience. If this is your thing, you better know every last nuance of the TCP/IP protocol and be able to read raw packet dumps.

6. Graphics programmer. Some guys really dig graphics and are phenomenal at math. If you don’t shit 4×4 matrices and talk to your mom about shaders, don’t bother. This sub-specialty is often very low-level as graphics programming often involves a lot of optimization. It may involve coming up with a cool new way of environment mapping, some method of packing more vertices through the pipeline, or better smoothing of the quaternions in the character joints (HINT: involves imaginary math — and if you don’t know that that means the square-root of -1 then this sub-field might not be for you).

7. Engine programmer. For some reason, most wannabe video game programmers hold this up as their goal. They want to have created the latest and greatest video game engine with the coolest graphics. Superstars like Tim Sweeney,John Carmack, and even myself are usually seen as falling in this category. The truth is that superstars do all kinds of programming, and are often distinguished by the fact that we are willing and able to handle any sub-type and tie it all together (see lead below). In my mind engine programmers are jacks-of-all-trades, good at building systems and gluing them together. The top guys often blend with Graphics and Lead below. There’s also tons of stuff like compression (nothing uses compression like games, we’d often have 8-10 different custom compressors in a game), multi-threading, load systems (you think seamless loading like in Jak & Daxter is easy?), process management, etc.

8. Lead programmer. People also dream of being the lead. All the great programmers are/were. This is the hardest spec, and no one ever starts out in it. You need to be able to do any of the other specs, or at least judge what approach is best. You need to be able to roll up your sleeves and dive in and fix crap anywhere in the program. You need to live without sleep (4 hours a night every day for years baby!). You need to be able to squint at the screen and guess where the bug is in others people’s code. You need to know how to glue systems together. You need to be able and willing to trim memory footprints and optimize (no one else wants to do it). In fact, you have to know the entire program, even if it is 5-10 million lines of code, and you have to do all the crap that no one else wants to do. Plus, you often have to manage a bevy of other personalities and waste lots and lots of time in meetings. Still want the glory? Being lead is all about responsibility!

CONTINUED with Part 3: Getting Started

_

Parts of this series are: [Why, The Specs, Getting Started, School, Method]

If you liked this post, follow me at:

My novels: The Darkening Dream and Untimed
or the
video game post depot
or win Crash & Jak giveaways!

Latest hot post: War Stories: Crash Bandicoot

Related posts:

  1. How do I get a job designing video games?
  2. Making Crash Bandicoot – part 3
  3. Making Crash Bandicoot – part 5
  4. Making Crash Bandicoot – GOOL – part 9
  5. Crash Bandicoot – Teaching an Old Dog New Bits – part 2
By: agavin
Comments (43)
Posted in: Games, Technology
Tagged as: Andy Gavin, Artificial intelligence, Character class, Console Platforms, Crash Bandicoot, Digital signal processor, Game design, Game engine, Game programmer, Game programming, Games, History, Jak and Daxter, Programming, pt_career_advice, Video game

Old Crash 20 Questions

Aug17

This is an old Crash Bandicoot 20 questions that used to be on Naughty Dog‘s site a long time ago. I’ve gotten a lot of messages looking for them, so I dug them up, but I haven’t done any editing except for trivial formatting. They are served up “as is.” Additionally, the links in here are ancient and might not work.

_
1) Q: Are you all insane?
A:
Technically…yes.
2) Q: Help! I’m stuck in Crash! Can you give me some help?
A: No. But GameSpot
has a full walkthrough of Crash 2 online. Game Informer
Online also has good ones for Crash 1, 2, and Warped.
Or you can pony up a few more shekels and buy the
hint guides to Crash 1 and Crash 2 from Dimension
Publishing, or the strategy guides to Crash Bandicoot:
Warped and CTR (Crash Team Racing) from Prima. They
are the only ones with pictures of Crash on the cover.
Don’t be taken in by one of the unofficial hack jobs
out there, though. They all have errors. (ed.
note: Links to sites mentioned above were removed
because they are no longer active… sorry, that’s
the web for ya.)
3) Q: In Crash Bandicoot: Warped, what times are needed to earn each relic?
A:
  • “TOAD VILLAGE” sap 1:03:00 gold 0:57:53 plat 0:44:06
  • “UNDER PRESSURE” sap 1:46:00 gold 1:17:93 plat 1:10:50
  • “ORIENT EXPRESS” sap 0:41:00 gold 0:27:80 plat 0:18:10
  • “BONE YARD” sap 1:45:00 gold 1:40:21 plat 1:21:00
  • “MAKIN’ WAVES” sap 1:08:00 gold 0:58:23 plat 0:53:26
  • ——————-
  • “GEE WIZ” sap 1:35:00 gold 1:22:73 plat 1:05:93
  • “HANG’EM HIGH” sap 1:24:00 gold 0:52:66 plat 0:43:80
  • “HOG RIDE” sap 0:45:00 gold 0:41:46 plat 0:35:06
  • “TOMB TIME” sap 1:42:00 gold 1:10:00 plat 0:53:93
  • “MIDNIGHT RUN” sap 0:53:00 gold 0:38:23 plat 0:18:20
  • ——————–
  • “DINO MIGHT!” sap 1:34:00 gold 1:25:76 plat 1:03:00
  • “DEEP TROUBLE” sap 1:47:00 gold 1:25:16 plat 1:18:36
  • “HIGH TIME” sap 2:12:00 gold 1:04:12 plat 0:56:96
  • “ROAD CRASH” sap 1:25:00 gold 1:20:73 plat 1:17:10
  • “DOUBLE HEADER” sap 1:27:00 gold 1:21:16 plat 0:59:43
  • ——————–
  • “SPHYNXINATOR” sap 1:42:00 gold 1:22:66 plat 0:56:70
  • “BYE BYE BLIMPS” sap 1:09:00 gold 0:58:43 plat 0:51:50
  • “TELL NO TALES” sap 1:42:00 gold 1:25:66 plat 1:05:26
  • “FUTURE FRENZY” sap 2:01:00 gold 1:34:00 plat 1:19:66
  • “TOMB WADER” sap 2:44:00 gold 1:45:06 plat 1:24:00
  • ———————
  • “GONE TOMORROW” sap 2:05:00 gold 1:25:60 plat 1:02:13
  • “ORANGE ASPHALT” sap 1:36:00 gold 1:31:30 plat 1:21:80
  • “FLAMING PASSION” sap 1:43:00 gold 1:13:10 plat 0:59:40
  • “MAD BOMBERS” sap 2:08:00 gold 1:55:23 plat 1:38:16
  • “BUG LITE” sap 1:49:00 gold 1:34:86 plat 1:14:93
  • ———————-
  • “SKI CRAZED” sap 1:16:00 gold 0:50:50 plat 0:33:33
  • “AREA 51?” sap 1:53:00 gold 1:49:83 plat 1:44:50
  • “RINGS OF POWER” sap 1:20:00 gold 1:01:46 plat 0:51:76
  • “HOT COCO” sap 1:00:00 gold 0:30:10 plat 0:19:96
  • “EGGIPUS REX” sap 0:55:00 gold 0:50:03 plat 0:44:83
4) Q: (a) What is a Bandicoot?
(b) Why is Crash a Bandicoot?
(c) Why is he named “Crash?”
A:
(a) Crash is a Perameles gunnii, of the order POLYPROTODONTA,
family Peramelidae, commonly known as the Eastern Barred
Bandicoot. He is a marsupial, which means that he is born with a
built in fanny pack. They live in Tasmania, a small island south
of Australia, as well as on the Australian mainland. The
Parameles gunnii is, on average, 320mm from head to rump, and has
a 80mm tail. They weigh about 950g. Crash’s family, on the other
hand, tend to be about a meter tall, orange, walk on their hind
legs, and wear big shoes. They have, therefore, earned a good
living in the Parameles gunnii circus sideshow spinning real fast
and the like.
(b)Because both of his parents were.(c) Because that is the name his parents gave him.
5) Q: We want toys and stuff. When will we get them?
A: Where have you been? A toy company
named Resaurus recently released their second series of Crash Bandicoot
posable action figures! They made the Duke Nukem and Quake toys, so
you know they are good. Other stuff is in the works as well. Check
’em out!
6) Q: (a) Why did you choose to make Crash Bandicoot for the
PlayStation?
(b) Are there plans to port any of the Crash games, or make original Crash games for other systems?
A:
(a) Picking a game system, or “platform”, at the beginning of a
project is like picking horses before a horse race. It is more
of an art than a science. When we began Crash 1, the only 32 bit
systems available were the 3DO and the Atari Jagauar. There were
rumors about the coming PlayStation game console and the Sega
Saturn, and distant rumblings about the N64. It was easy to toss
the 3DO and Jaguar, neither had the power. And the fact that the
N64 wasn’t going to have a CD ROM drive made it ineligible. In
the end, we chose the PlayStation game console because it had the
best mix of power and storage. Based on its worldwide sales,
game players have picked the PlayStaton game console as well.
Looks like we picked the winning horse!
(b) Until recently, PlayStation has been the only system capable of
handling the sophisticated graphics and gameplay of the Crash Bandicoot
games. The Saturn doesn’t have the power. N64 cartridges cannot hold
the data. Also, Crash likes the PlayStation. Naughty Dog has no idea what
Crash’s future holds. We do not control his destiny. You’ll have to ask him.CTR (Crash Team Racing) is our last game working with Crash (and our last title
for the first generation PlayStation). Naughty Dog’s future lies with
completely new characters on PlayStation 2.

7) Q: What are Naughty Dog’s favorite games?
A:
We wish the following games had never come out. They have
killed our productivity:
Goldeneye(N64)Gran Turismo(PlayStation)Command & Conquer(PlayStation & PC)Tekken 3 (PlayStation)

Mario Kart 64 (N64)

Spyro (PlayStation)

Point Blank (PlayStation)

Beatmania (PlayStation)

Metal Gear Solid (PlayStation)

Banjo & Kazooie (N64)

8 ) Q: What other developers do you respect?
A: We don’t sleep well because we know
that Rare, Miyamoto san, the Gran Turismo team, and the Gex 2 team
are out there. So we’ve hired the lead programmer and lead designers
from the Gex 2 team (Dan
Arey
, Daniel
Chan
, Evan Wells.)
They don’t frighten us anymore. Miyamoto
san
, on the other hand, keeps turning our offers down!
9) Q: Does Dr. Neo Cortex use Rogaine?
A:
Yes, but only on the sides of his head.
10) Q: (a) What is it like to work at Naughty Dog?
(b) Are you hiring?
(c) What is it like to work with Sony?
A:
(a)We don’t know. Nobody here considers what we do to be work.
(b) Check
our job opportunities page
.(c) We don’t know. The people we interact with at Sony are
so good that we don’t have to work at it. Seriously, we just
make the game, they take care of the rest.
11) Q: Naughty Dog created the first software z-buffer for the PlayStation. How did you do it?
A:
Greg coded it. We don’t know how it works. It just does.
12) Q: Where do the Naughty Dog artists come up with their ideas?
A: The Naughty Dog artists are so used
to Crash’s world now that it doesn’t seem like designing, so much
as just making 3D models of a world that already exists. Still, there
is a lot of exploration on paper, as well as on the computer before
the final locations and characters exist. Take a look in our Art
Gallery
for some samples.
13) Q: (a) How many polygons is Crash?
(b) How many frames of animation does he have?
(c) How do you animate him?
A:
(a)532 triangles.
(b) In Crash 2, Crash had over 9000 individual
frames of animation @ 30 frames per second. In Warped,
Crash had around 30,000 frames! We believe this to
be more than any other console game character. If
we are wrong, e-mail usand we will change this answer.(c) We attach motion capture equipment to Crash and ask
him to do the moves we need for the game.
14) Q: What is your favorite food?
A:
The artists like sushi and Chinese, as well as Mexican. The
programmers are on the “flat diet”. We lock them in their room
until they finish a project and only give them whatever food fits
under the door. Pizza – yes. Pancakes – Yes. Hamburgers – Yes,
one layer at a time. Chicken – Yes, but it tastes horrible after
all of the shoving. They are very thristy.
15) Q: Crash doesn’t have any graphic violence. Are you against graphic violence?
A:
No, and if you ask us that question another #$@! time we’ll kick
your @#X* and rip your !@% off! Crash doesn’t need violence.
It’s that simple.
16) Q: How do I become a video game programmer?
A: All of the Naughty Dog programmers
started programming when they were very young. They all had computers
at home, and they would all spend a good deal of time in the basement
doing what was called “hacking”. Some of them took computer-related
courses in High School, but at that time you didn’t need to know that
much about computers to teach the computer lab teacher a thing or
three. Andy got
a post graduate degree in Artificial Intelligence, but one of the
biggest arguments in Artificial Intelligence is whether or not it
even exists. All the Naughty Dog programmers work very hard, keep
long hours, and have the ability to say things that make you confused.
17) Q: What percentage of the PlayStation’s power are you using for each Crash game?
A:
All of it. 110 volts. Exactly what is in your wall socket. But
there is a lot more that we can do with the 110 volts in the
future. Look for the next PlayStation games we work on to look
better and better.
18) Q: Is Crash related to the Tasmanian Devil?
A:
The Tasmanian Devil refuses to do blood tests, so we may never
know.
19) Q: What kind of shoes does Crash Bandicoot wear?
A: Big red ones. Though
if Nike would like to sponsor Crash and start a line
of shoes like “Air Jordans” called “Spin Crashes,”
we are open to offers.
20) Q: Are there only twenty questions?
A:
Yes, so far.
21) Q: I thought there were only 20 questions. Why is there a 21?
A:
Because Naughty Dog is firmly AGAINST antidisestablishmentarianism.
Go look it up.

The Making Crash series: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

If you liked this post, follow me at:

My novels: The Darkening Dream and Untimed
or the
video game post depot
or win Crash & Jak giveaways!

Latest hot post: War Stories: Crash Bandicoot

Related posts:

  1. Crash Bandicoot – Teaching an Old Dog New Bits – part 3
  2. Crash Bandicoot – An Outsider’s Perspective (part 8)
  3. Making Crash Bandicoot – part 1
  4. Making Crash Bandicoot – part 6
  5. Crash Bandicoot – Teaching an Old Dog New Bits – part 2
By: agavin
Comments (5)
Posted in: Games
Tagged as: 20 Questions, Andy Gavin, Crash Bandicoot, Crash Bandicoot 20 Questions, Crash Bandicoot 2: Cortex Strikes Back, Crash Bandicoot 3: Warped, GameSpot, Naughty Dog, Playstation

Crash Bandicoot – Interviews “R” us

Aug13

These are answers (of mine) to a series of interview questions from Russian game site  www.crash–bandicoot.ru. They’re a major Russian Crash fan site, hence the bad pun in my title. If you happen to speak Russian, they’ve it here.

The questions are in bold, and my answers in normal.

Crash Bandicoot (series)

Image via Wikipedia

_

There was the soundtrack of Komodo Bros. boss on the CB1 CD. Does it mean you planned to bring this boss to the first game? What the fight was like and why have you dropped this idea?

Time. We ran out of time, plus we already had six bosses. They ended up in Crash 2. The Crash 1 battle plan was about 30% larger than the game we shipped – which was plenty big enough – as we planned too much. Everything extra ended up in Crash 2. But we didn’t actually make it during the Crash 1 development, we realized before then that there was too much in the plan and shelved it for later. It takes much less time to write on paper, “cool snow level where crash can slide around on the ice” than it does to design, model, and program said level.

Why the cut levels from CB1 beta like Cavern, Cliff and Waterfall haven’t reached its finish point in the final version of the game? According to the video they were well developed.

These were two early levels. The Cliff and Waterfall are the same level (jungle1). The cave was (cave2). These were the first two levels we built in Spring 1995, and they just didn’t work. The designs were too open, showing too many polygons and not channeling the player well enough for proper gameplay. If the space was so big that Crash could just walk around the enemies it wasn’t very fun.

There is the screenshot on crashmania where you can see the fruit similiar to pineapple instead of wumpa. Is it right and was it planned to add different fruits to the game?

Originally (for over a year in development) we had an elaborate fruit currency for pickups. Different fruit were worth different “points.” The only problem with this was that we only had so much texture memory and so each fruit got very little, and didn’t look that great. We eventually decided to spent all that memory on one fruit (the Wumpa fruit) and make it look really good. We rendered it out rotating and stored all the angles. Doing the fruit in actual 3D wasn’t feasible because fruit are round (hence lots of polygons) and we wanted to have many of them on screen.

What the bosses’ heads of Pinstripe, Koala Kong and Papu were for in the bonus rounds in the early version of the game?

We experimented with different “bonus head” currencies. I can’t remember which. In the end Tawna, Cortex, and Brio won out.

What the famous platform with plants from the level Air Crash (CB2) was for? Lots of players used to think it could take you to some secret place however there was the published video where Crash stayed on the platform and nothing happened.

That is just a video of some uncompleted area in some unfinished version of the game (say for a tradeshow). It was under construction and was never intended to be seen. Under construction levels can display any kind of whacky behavior.

The returning characters of Crash Tag Team Rac...

Image via Wikipedia

Why Nitros Oxide wasn’t brought to playable characters in CTR?

We only had room for so many, and the consensus (particularly of the Japanese) was that the cute characters were better choices (like the polar bear cub).

Is it true that there was a secret character called Hippo in the beta of CTR? Why weren’t all the characters from original trilogy included? It’d been nice to see Koala Kong and Nitrus Brio there.

Time and space. Each character was a lot of work and took up a lot of memory. I don’t remember the hippo though.

Why did you choose Mutato Muzika as the music composer to the all games of Crash Bandicoot?

We auditioned a number of composers to give us sample music for the game. Theirs was the coolest. And we were in a hurry J. But it worked out great!

Why CB1 takes all space on CD while CB takes only 1/3 of disk space? It’d be nice to see CB2 on mini-CD.

There is a huge fake file on the CB1 CD (the data.wad) which the game doesn’t care about. The file is full of random numbers and it was there to fill out the disk. The reason for this was twofold. First of all, the outside of the CD is faster, so by putting the useless file on the inside the game would be pushed to the outside. Second, we thought that pirates would be irritated by and less likely to download a 650meg game than a 150meg game. Less pirate copies is a good thing when you make games for a living.

Why have you deleted your official site of Crash Bandicoot on www.naughtydog.com? I’d like to read 20 questions and answers for Crash Bandicoot one more time.

I don’t control or influence www.naughtydog.com in any way, and haven’t since 2004.

What do you think about the bug which allows player to take the red gem in CB2 in an alternative way, not through the secret warproom?

I don’t 🙂 But it’s just a bug. In 1996 it would have pissed me off (mildly), now I shrug and smile.

Why do Brio and Cortex quarrel so that Brio looks for the way of destroying Cortex Spaceship in CB2?

Brio turned out to be surprisingly sympathetic (because Cortex picks on him) so we thought it would be amusing to develop that a bit. The Crash series, however, is not exactly The English Patient in terms of character depth.

It is very interesting what was planned to develop and what plans of that came true in CB2 and CB3?

For Crash 1 we had this huge three-part Island and all sorts of ideas for different areas and levels. Crash 2 was to a large extent those that didn’t make it in the first game plus lots of extra cool ideas we had. There was more time for new mechanics like the surf board, zero-G, sliding on the ice, etc. For Crash 3 we needed something a bit different and came up with the time travel idea (mine!). But truth is that we all loved that idea, and both Jason and I adore time travel. My second novel is about time travel! So the idea naturally led to putting in favorite times and places as levels for Crash 3.

Have you ever regretted of selling the rights of Crash Bandicoot franchise to another company? If there was a chance would you like to return on developing this franchise?

It made sense at the time, but I love Crash. Of all my creations it’s still my favorite and it’s sad to see him drop to his current lows. As Jason puts it, like discovering that your sweet High School girlfriend is now a street walker in Atlantic City.

_

Why did you call your company just “Naughty Dog”?

We liked dogs. Plus Jason was always drawing these cool cartoon characters (in the mid 80s) and one of them was “The Naughty Dog” a studly 80s shades wearing dog who always got the chicks. So he became the mascot and source of the name.

Why Crash Bandicoot and Jak franchises are so similiar? I mean it includes the way of games (1, 2, 3 and racing). The first game of Jak is very similiar to CB1, the attack of Jak is like Crash’s one, we are destroying the crates and so more. Dammit, you can also see the Plant from CB1 in the beginning of the game?

The same people made them. Sometimes you like your own ideas 🙂 Certainly there is plenty new stuff in Jak.

Why have you developed Action-Adventure but not the platformer on PS3 as it lacks of them? I have read your Making of Crash Bandicoot series where you have said Naughty Dog was always looking for the opportunity ways, don’t you think the nice platformer could worth it?

I myself didn’t really do much PS3 development. I left Naughty Dog when Uncharted 1 was in its infancy. But market wise there seemed to be less support for pure platforming. It was seen as old fashioned.

_

What are you interested in besides the video games?

Lots of stuff. Look at my blog http:all-things-andy-gavin.com.  Food, history, travel, writing, fiction of all sorts, technology. I’m very much a fantasy geek in the broad sense of the word.

What is your favorite game?

World of Warcraft. Even though I “quit” (again) after six years. Told you I’m a fantasy geek.

According to Facebook you like classic music. What are your favorite compositions?

I like a lot of music. In pure classical everything from Mozart to Stravinsky. But I listen to a wide variety of things, from weird folk music to industrial techno.

Have you ever been to Russia or the countries of post-Soviet Union. If yes did you like them? If no then are you going to visit them some time?

The closest I’ve been is Budapest and Prague. I’d love to visit many places in the former USSR. St. Petersburg is high on my list because I have a palace and museum fetish and I must see the baroque palaces there. Jason’s been to Moscow too – and I’d love to go there myself.

How do you think if Crash Bandicoot is relevant nowadays?

Current (or recent) Crash games are not relevant, but the character is. The response I get from my blog proves this. People still love the character, his world, and the games. I’m sure if they got an opportunity to play good Crash games in an updated format — millions would.

Any wishes to the users of Bandicoot Internet Zone?

I’d like to thank all the fans. It’s always been so gratifying how much people enjoyed visiting and playing our whacky cartoon universe. We brought it to life because it was just this super silly place that we thought would be a fun to inhabit (even if virtually), and it’s so great that millions and millions of players agreed and had a blast there!

_

The index of all Crash posts is here.

The Making Crash series: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

If you liked this post, follow me at:

My novels: The Darkening Dream and Untimed
or the
video game post depot
or win Crash & Jak giveaways!

Latest hot post: War Stories: Crash Bandicoot

Related posts:

  1. Making Crash Bandicoot – part 6
  2. Making Crash Bandicoot – part 1
  3. Making Crash Bandicoot – part 5
  4. Crash Bandicoot – An Outsider’s Perspective (part 8)
  5. Making Crash Bandicoot – part 2
By: agavin
Comments (52)
Posted in: Games
Tagged as: Andy Gavin, Crash Bandicoot, Fan Sites, Games, Mutato Muzika, Playstation, Time travel, Video game
« Newer Posts
Older Posts »
Watch the Trailer or

Buy it Online!

Buy it Online!

96 of 100 tickets!

Find Andy at:

Follow Me on Pinterest

Subscribe by email:

More posts on:



Complete Archives

Categories

  • Contests (7)
  • Fiction (404)
    • Books (113)
    • Movies (77)
    • Television (123)
    • Writing (115)
      • Darkening Dream (62)
      • Untimed (37)
  • Food (1,771)
  • Games (101)
  • History (13)
  • Technology (21)
  • Uncategorized (16)

Recent Posts

  • Too Much Bland Beef
  • LQ House Party
  • Republique of Tomatoes
  • Stellar Stella
  • Si Mon!
  • Tomato Wednesday!
  • Happy Hibi
  • Eating Naples – Palazzo Petrucci
  • Eating San Foca – Aura
  • Eating Otranto – ArborVitae

Favorite Posts

  • I, Author
  • My Novels
  • The Darkening Dream
  • Sample Chapters
  • Untimed
  • Making Crash Bandicoot
  • My Gaming Career
  • Getting a job designing video games
  • Getting a job programming video games
  • Buffy the Vampire Slayer
  • A Game of Thrones
  • 27 Courses of Truffles
  • Ultimate Pizza
  • Eating Italy
  • LA Sushi
  • Foodie Club

Archives

  • June 2025 (3)
  • May 2025 (7)
  • April 2025 (4)
  • February 2025 (5)
  • January 2025 (3)
  • December 2024 (13)
  • November 2024 (14)
  • October 2024 (14)
  • September 2024 (15)
  • August 2024 (13)
  • July 2024 (15)
  • June 2024 (14)
  • May 2024 (15)
  • April 2024 (13)
  • March 2024 (9)
  • February 2024 (7)
  • January 2024 (9)
  • December 2023 (8)
  • November 2023 (14)
  • October 2023 (13)
  • September 2023 (9)
  • August 2023 (15)
  • July 2023 (13)
  • June 2023 (14)
  • May 2023 (15)
  • April 2023 (14)
  • March 2023 (12)
  • February 2023 (11)
  • January 2023 (14)
  • December 2022 (11)
  • November 2022 (13)
  • October 2022 (14)
  • September 2022 (14)
  • August 2022 (12)
  • July 2022 (9)
  • June 2022 (6)
  • May 2022 (8)
  • April 2022 (5)
  • March 2022 (4)
  • February 2022 (2)
  • January 2022 (8)
  • December 2021 (6)
  • November 2021 (6)
  • October 2021 (8)
  • September 2021 (4)
  • August 2021 (5)
  • July 2021 (2)
  • June 2021 (3)
  • January 2021 (1)
  • December 2020 (1)
  • September 2020 (1)
  • August 2020 (1)
  • April 2020 (11)
  • March 2020 (15)
  • February 2020 (13)
  • January 2020 (14)
  • December 2019 (13)
  • November 2019 (12)
  • October 2019 (14)
  • September 2019 (14)
  • August 2019 (13)
  • July 2019 (13)
  • June 2019 (14)
  • May 2019 (13)
  • April 2019 (10)
  • March 2019 (10)
  • February 2019 (11)
  • January 2019 (13)
  • December 2018 (14)
  • November 2018 (11)
  • October 2018 (15)
  • September 2018 (15)
  • August 2018 (15)
  • July 2018 (11)
  • June 2018 (14)
  • May 2018 (13)
  • April 2018 (13)
  • March 2018 (17)
  • February 2018 (12)
  • January 2018 (15)
  • December 2017 (15)
  • November 2017 (13)
  • October 2017 (16)
  • September 2017 (16)
  • August 2017 (16)
  • July 2017 (11)
  • June 2017 (13)
  • May 2017 (6)
  • March 2017 (3)
  • February 2017 (4)
  • January 2017 (7)
  • December 2016 (14)
  • November 2016 (11)
  • October 2016 (11)
  • September 2016 (12)
  • August 2016 (15)
  • July 2016 (13)
  • June 2016 (13)
  • May 2016 (13)
  • April 2016 (12)
  • March 2016 (13)
  • February 2016 (12)
  • January 2016 (13)
  • December 2015 (14)
  • November 2015 (14)
  • October 2015 (13)
  • September 2015 (13)
  • August 2015 (18)
  • July 2015 (16)
  • June 2015 (13)
  • May 2015 (13)
  • April 2015 (14)
  • March 2015 (15)
  • February 2015 (13)
  • January 2015 (13)
  • December 2014 (14)
  • November 2014 (13)
  • October 2014 (13)
  • September 2014 (12)
  • August 2014 (15)
  • July 2014 (13)
  • June 2014 (13)
  • May 2014 (14)
  • April 2014 (14)
  • March 2014 (10)
  • February 2014 (11)
  • January 2014 (13)
  • December 2013 (14)
  • November 2013 (13)
  • October 2013 (14)
  • September 2013 (12)
  • August 2013 (14)
  • July 2013 (10)
  • June 2013 (14)
  • May 2013 (14)
  • April 2013 (14)
  • March 2013 (15)
  • February 2013 (14)
  • January 2013 (13)
  • December 2012 (14)
  • November 2012 (16)
  • October 2012 (13)
  • September 2012 (14)
  • August 2012 (16)
  • July 2012 (12)
  • June 2012 (16)
  • May 2012 (21)
  • April 2012 (18)
  • March 2012 (20)
  • February 2012 (23)
  • January 2012 (31)
  • December 2011 (35)
  • November 2011 (33)
  • October 2011 (32)
  • September 2011 (29)
  • August 2011 (35)
  • July 2011 (33)
  • June 2011 (25)
  • May 2011 (31)
  • April 2011 (30)
  • March 2011 (34)
  • February 2011 (31)
  • January 2011 (33)
  • December 2010 (33)
  • November 2010 (39)
  • October 2010 (26)
All Things Andy Gavin
Copyright © 2025 All Rights Reserved
Programmed by Andy Gavin