TSEngineer 的个人资料Rolling日志列表网络 工具 帮助

Rolling

The Train Sim engineer spoutpoint
12月18日

On Signals

 

In the past sprint I worked on investigating what it would take to use the existing animation tech for signals.  I was primarily focused on signal lights, how to deal with blinking lights, etc.  If you don’t care about the details, the result is that the existing tech will allow us to implement signal lights using effects.

 

There were two approaches that I considered, colored texture and effects.  Using effects is the preferred approach since that is how lights work in the existing system.  Here are some of the issues with each approach.

 

Colored Texture

This is what was done for the test signal in the Big demo last month.  The colored texture is on a multi-faceted piece of geometry which is rotated to change the aspect of the signal.  This is simple a texture, so it is very static.

 

                Issues

·         No way to turn off the signal.

o   One workaround is to create a dark texture for one of the facets of the geometry.

o   Another way is to implement a visibility event which can be inserted at specified animation time to trigger the visibility of a part.

·         No easy way to create a blinking light.

o   The animation must be driven by a sim var and it somehow needs to be controlled by either modeldef.xml or some new file.

o   The animation needs to be updated every frame in the blinking state instead of just when the state changes or is changing.

·         If the signal is too far away, the small part reject kicks in and doesn’t draw the signal light.

o   The instance renderer will fix this problem, so this won’t be an issue later.

 

Effects

This will enable blinking lights without extra work.

 

                Issues

·         A bug in the code which causes effects to be facing the wrong way.

·         A bug in the code which causes attached objects of attached objects to be positioned wrong.

·         No way to turn off an effect once its attached.

 

I decided to see if we can get effects to work.  After lots of poking around, with help from various people, I ended up adding a new visibility tag to the animation event manager which allows parts to be turned on or off at the specified time.  Adrian will be fixing the max scripts to support this.  Steve H also helped fix a few of bugs to get everything working.  There is also a draw order problem in the instance renderer that needs to be fixed.

 

Using effects to do signal lights looks promising and Steve H2 created a test model that works using it.  If artists want to use the colored texture to do it, that’s ok as well, but they won’t be able to get blinking lights.

 

--Gary

3月17日

GDC 2007

A little backstory

The last Game Developers Conference I attended was in 1996.  Back then I was working at Apple and leading the development team for the Game Technology Group.  Some of you may not remember the Apple of the ‘90s.  Imagine John Hodgman (aka PC Guy) trying to play the role of the Mac in the PC vs. Mac commercials.  Decidedly not cool.

We were making an effort to get games on the Mac (cool).  Apple funded the Game Technology Group whose charter was to produce a Mac game platform (Game Sprockets) and help developers port their games using it.  The trouble was the ROI didn't make sense for developers (not cool).  A publisher could make more money on less investment by localizing a game to FIGS or Japanese than doing a Mac port.  It didn't help that Microsoft was doing a great job evangelizing DirectX, a Windows-only platform.   Apple imploded in '97 and the Game Technology Group was no more (not cool).

 

EXT. SAN FRANCISCO - PRESENT DAY

I went to GDC '07 wondering how it would be different from my last visit.  I'd heard that it had "been commercialized," so I was imagining lots of sessions "brought to you by..."  Perhaps some presentations heavy on flash and light on content.  People at the lunch tables divided into Microsoft, Sony, and Nintendo camps.

After some initial stumbling around Moscone South and North I finally found West, which hadn't existed last time I was there and which happened to contain the registration tables.  A $3 bottle of water and $2.50 bagel later I was ready for my first session-- "Controlling the Entire Theater of War: The Development of Supreme Commander".

I'm not a fan of RTS in general (I'm one of the few gamers I know who never really liked "Age of Empires"), but I enjoyed the epic mayhem that was "Total Annihilation" (Chris's first RTS).  Trailers for "Supreme Commander" had impressed me enough that I am considering a return to the genre.  Rumor has it I might get a copy for my birthday from my former TA-sparring buddies.  I was looking forward to getting the inside scoop on its development.

Turns out I didn't get that.  Chris Taylor is an interesting guy and he spins a good, colorful yarn.  But the session was a lot less about "Supreme Commander" than it was about his personal journey to make it on his own terms.  The most memorable take-away from the talk was an admonition to have a life.  Don't let the industry suck up every waking moment.  Don't pay for the success (or more likely, failure) of your product with your marriage, family, health, or friends.

I can pretty much guarantee that no one was saying anything like that in GDC '96.  It was a message I wholeheartedly believe in, and I left the session having forgotten all about my initial concerns about the commercialization of GDC.

I skipped CliffyB's presentation on "Gears," opting instead to listen to another industry titan (and Microsoft employee), Peter Molyneux give a talk on yes, the dog from "Fable 2."  I don't think I could do justice to the topic.  I was skeptical.  I was rolling my eyes.  Peter knew I was skeptical.  He knew everyone in the audience was rolling their eyes, but he also knew something we didn't-- that it works.  It really, really works.  As Peter portrayed it, there are three levels of character interaction:

  1. The AI character responds to you
  2. The AI character cares about you
  3. The AI character wants you to care about them

Peter passionately and desperately wants to make you cry when you play his game.  As a huge fan of story and character-based games, I laud this ambition and I hope he can pull it off.  I've never played "Fable."  Haven't heard good thing about it, to be honest.  But you can be sure I'm going to check out "Fable 2."

After poking my head in on the work that Chris Hecker was showing off for character animations in "Spore" (more awesome stuff-- you haven't lived 'till you've seen the all-Spore chorus line dancing to Britney), I went on to Shigeru Miyamoto's keynote.

Did I say I went to it?  What I meant to say was that I left Moscone West and headed to South with the intent to go to the keynote, but instead I queued up in a line.  I wasn't really sure at the time what the line was for.  I thought it might have been for the keynote, but that wasn't for 45 minutes and it seemed a bit extreme.  Still it was a big line and I figured I'd be better off just getting in it and waiting to see what happened.

It was the line to get into Miyamoto's keynote and it wrapped AROUND THE ENTIRE BUILDING.  MORE THAN ONCE.  Susan and I tried to figure out our relative positions in line over cell phones.  Good thing our bosses weren't there to listen in on the conversation.  How many developers does it take...?  if you know what I mean.  For the record I was about 500 people ahead of her.

Miyamoto gave a great talk.  Again, more of a story about his lifelong goal to drive up the wife-o-meter (you had to be there) than a "Nintendo" is so wonderful pitch.  He also delivered the message that you have to have a life and that you have to get the job done with the resources you have.  "Too bad" he said, if you need more devs/artists/etc.  Just do the best you can and hope your best is enough.

One interesting tidbit that you wouldn't know if you weren't there is that Miyamoto doesn't speak much English.  So he would talk while an interpreter would translate into English.  I've never seen such an effective setup like that.  The interpreter was able to capture (and deliver) slight nuances and humor in Miyamoto's speech.  It was almost as if Miyamoto was speaking himself.  What an interlocutor!

 

Why I love GDC

By the end of the keynote I had captured it.  The thing that makes me love GDC and want to keep coming back.  You can't put it to use in any direct way.  You can't capture it in a trip report or get it from reading the proceedings (or anyone's blog, including mine).  It's like we live our game developer lives of schedules and features and risks and deliverables far off in some remote land where we plug into a tiny current of "community."  But when we go to GDC, we're plugging directly into the source of that current.  Pure, powerful, and eye-opening.

It's not about whether some sessions, technology, or tutorials are incredibly relevant to the work we do.  It's about living and breathing the best of what the industry has to offer.  We're among the titans of our industry and the as-yet-unknown future titans.  We're at the center of the universe.  For those who love games and love game development there is no substitute. 

2月1日

Photo of the week for 1/31/2006

I decided to put up a TS-related "photo of the week."
 
This one is from a little railroad they have at Remlinger Farms in Carnation, WA, near the Microsoft campus.  I rode this with my son a few months ago.  It's real steam as you can probably tell, and the guy thought I was a bit odd when I asked him if we wasn't running the boiler pressure a little close to the redline considering all the kids on board. :-)
 
 
1月31日

Platforms are for Standing... and Building

From our January 19 announcement:

...this version will be an all-new product built on the Flight Simulator X platform, the culmination of 25 years of product development and technology.

Sounds great, but what does it mean?

 

"all-new"

By "all-new" we mean that we've started from scratch with our Train Sim development.  We're not using any code, art, route data, world data, textures, cabs, rolling stock, etc. from Train Simulator 1.  It's not that we don't love TS1 or think that it's a great product.  We do love it and it is a great product.  Just look at the passionate community still active these many years later.  It's a testament to the great team that built TS1 (not to mention the great customers who bought it!). 

But the computer gaming world has changed a lot since then.  For a little perspective, at the time TS1 launched:

  • The Pentium 4 was the newest advance in processor technology. Forget Hyper-threading, let alone Dual Core.
  • Windows 98 and Windows ME were still the dominant versions.  XP hadn't yet launched.
  • DirectX was at version 8 (with Vista we're now at 10)
  • NVIDIA launched the GeForce 3.  Huge advances in GPU technology have evolved in the generations since.

It just didn't make sense to try to update TS1 when so much had changed.  We're also not using the code from the original MSTS2 that was eventually cancelled.

 

"built on the Flight Simulator X platform"

As we strived to bring back the Train Sim franchise, we looked back to understand what caused us to let down TS in the first place.  One factor, though not the only one, was that the Aces studio found itself in a position of having to maintain three separate sets of code-- Flight Sim, Train Sim, and Combat Flight Sim.  There was little to no sharing of the code between these three products, and that turned out to be a big problem for us.

The reason is that every chunk of code does not stand alone.  It needs to be tested.  It needs to be localized.  It needs to undergo security and Trustworthy Computing reviews.  It needs to be tuned for performance.  In short it needs to be cared for.  That takes time and people, and we didn't have enough time or people to tend to all three (completely disjoint) sets of code, especially when much of the code was just different ways of doing the same thing ("redundant" in dev-lingo).

So we made the painful decision to let go of two (CFS and TS) so that we could focus 100% of our attention on making the remaining one (Flight Sim) as magnificient as possible.

 

"the culmination of 25 years of product development and technology"

Even when that decision was made, we knew that we didn't want to be a one product studio.  Everyone involved believed that in Flight Simulator we had something very special.  How many games can you think of that have been in successful development and release for 25 years?  You won't need more than one hand to count them on.

Because of the way Flight Sim had been designed and built, we knew it had the potential to become the foundation upon which we could build any simulation we want.  With Flight Simulator X that potential can now be realized.

Shawn Firminger, our studio manager, deserves most of the credit for crafting a strategy around turning the Flight Simulator application into a generalized Sim Platform.  His message was simple and powerful-- if we take this 25 years of sim technology that's in Flight Simulator and refactor it to make it easy to build new simulation experiences on a common base of functionality (e.g. object rendering, scenery, buildings, autogen data, landclass data, AI, animation), then we can have our cake and eat it too-- we can build lots of cool games and we can care for them without having to greatly expand the size of the studio.

With this strategy in place, bringing back Trains was a slam-dunk (easy for me to say-- I wasn't here at the time).

 

When is "all-new" not all new?

So, yes.  The new version of Train Sim is "all-new," but at the same time it's not.  It's got the DNA (and much of the actual code) of one of the most successful, enduring franchises in the computer gaming history-- Flight Sim.  That's why we're totally thrilled to be rolling on Train Sim once again.

 

1月23日

Take a couple days off and see what happens...

 

We're doing what??

Yes, you read it right.  Train Sim is back and badder than ever.  Did you notice the little part that read:

this version will be an all-new product built on the Flight Simulator X platform, the culmination of 25 years of product development and technology

That's where we come in.  The TSEngineers.  Stay tuned to this blog and you'll learn what exactly this "platform" is, and how you're going to be able to use it to do some mighty cool stuff. 

If you haven't done so already, check out the Flight Sim X website.  Pretty much everything you see in FSX comes over to the trains product.  You should also check out Microsoft's free software development kit.  It's an awesome way to familiarize yourself with some of the tools we use to build Train Sim.

Meantime, enjoy a few snapshots from one of our research trips...