Click for more information!

interview with Corrinne Yu
Director of Advanced Technology at ION Storm

[ION Storm's logo] "Cheap little microwaveable ravioli snacks" may not be a game development staple, but Corrinne Yu, ION Storm's director of Advanced Technology, keeps a stack of snacks in her cube so that she "can stop being blackmailed into 'going out' to have dinner."
      Corrinne is just kidding (I hope), but her job is nothing to kid about. As Director of Advanced Technology, Corrinne says she gets to "program a lot".

Last employed as Systems Lead Programmer at Zombie, Corrinne was "responsible for 3D graphics engine design and implementation in a 3-man graphics engine team." She has been programming professionally for more than eight years.
      Before her programming career, Corrinne studied Electrical Engineering at California State Polytechnic University-Pomona. "The ability to look up and apply knowledge has been helpful to me," Corrine says. "Whether someone gains that by education or other means is up to the individual."
      Corrinne "got into programming and playing games on the Apple II" fifteen years ago. Graphics guru Michael Abrash, among numerous others, inspired her to "pursue the art of programming well."
      Corrinne's first game, Goldy Earth Landing, was a baby dinosaur adventure game for the 3DO. Goldy Earth Landing, which featured an assortment of mini-arcade games, was published five years ago in Japan. "[Goldy Earth Landing] was cute," comments Corrinne, but she admits that she "would not call it great by today's standards. :)"


Today, the Quake (II) engine is the industry standard for 3d engines. But tomorrow's standard just may be Aidoru, ION Storm's own 3d engine. What is an Aidoru? Corrinne explains:
Aidoru is the Japanese word for idol. An aidoru singer is a popular beautiful young singer who is idolized, worshipped, infatuated by teenagers.
    In Japan, they have created an aidoru singer that is completely computer modeled and animated, and presented her as if she was a real girl to be idolized and infatuated by teeangers. Her animation is pre-rendered (non-real-time), but she is relatively convincingly real.
      I asked Corrinne a few questions about next generation technology. Keep in mind that Aidoru is still a young technology.

What do you do as "Director of Advanced Technology"?

Program code in ION games that are technology, 3D, graphics related.
    In addition, I give technical advice to Tom Hall and John Romero etc. on 3D HW acclerators, 3D engine technlogies of other companies, 3D engine technologies we should develop at ION.
    I conduct technical meetings with 3D IHV and Microsoft on behalf of ION discussing the acceleration needs of ION 3D games.
    I help ION programmers debug, and answer questions they have about 3D engine and technology and feasibility, give advice on how to code for higher frame rate, etc. I also answer such questions from level designers and artists.

Can you give any details about the next generation technology you're working on at ION Storm?

Technology "department" and development starts end of March this year. Technology developed starting on that date is new and independent from Quake and any other code base. The start date itself may change depending on the ION move to upstairs, and status of Daikatana and Anachronox.
    Before the official start of technology development, I am spending my time on Quake 2 code base enhancements for ION games in development that use that code base.
    What are programmed are a different Alias (dynamic object) pipeline that uses dynamic occlusion maps, LOD on dynamic objects, and "true" 3D dynamic lighting on dynamic objects. The new Alias pipeline yields only minor frame rate improvement ( from 19 FPS to 23 FPS on PowerVR/P2 300 with TIMEDEMO DEMO1.DM2 ), but it yields a more stable frame rate independent of number and complexity of dynamic objects. The original Quake 2's traversal and transform engine is very efficient. Very little time is spent in the traversal and transform code. A lot of time is spent in primitives that are sent to the rasterizer. The only way to achieve a more stable frame rate based on dynamic objects is to take advantage of the fact that while the number and complexity of dynamic objects vary often from frame to frame, the number and complexity of visible object detail vary less often.
    I have already added things to slow the frame rate down though. As for the "true" 3D dynamic lighting, it has not been a sacrifice of frame rate for visual.
   These improvements are:
  1. for the purpose of ION games only and do not reflect anything about the quality of the original Quake 2 code base
  2. in no way will it cause any Quake 2 code to "become" any part of an ION engine
  3. I would like the option to pull some working code I have written for Quake 2 enhancement into new and original code base I will develop starting end of March; I have not decided if I will do that.
    I had written my .plan on New Year as a tired self-patting on spending a lot of time typing and not getting much done. In restrospect, there is little I have to say that is of interest to the .plan audience.

How would you describe your programming or work style?

I sit and type until I get sleepy.

What you think the future holds for 3d engines or 3d games in general?

It is an exciting time. I would compare the paradigm switch of HW acceleration to that from x86 to Pentiums.

Any comments on the increasing development time for 3d engines?

Most engine development suffer from feature bloat. Most shipping delays (Quake 1 included) are based on having features to the level that other engines are having.
    It is as much the programmer as the gamer. Gamer heckles when an engine does not have a feature, whose feature is not as advanced, or even if it uses a different method. The BSP versus portal thing is a good example.
    As there are more engines, there are greater probability of not having features of all engines; thereby the delays and increasing development time.
    On a certain level, I think childish competition is a little silly. An engine lacking a feature, or implementing it differently, does not make it a worse engine. Vice versa, if I program a feature, it does not make what I do better, just different.

How do you feel about licensing other companies' engines versus developing in-house tech? Advantages/disavantages?

Licensing is a cheaper bargain than original R & D because all the licensors and the technology developer are sharing the R & D costs.
   Developing technology in-house allows you to have better technology than what is available for licensing. That is only provided that the technology you are developing in-house is more advanced than what is available. :)
   Developing original technology only to "save" licensing cost fails to "save" the R & D cost of original engine development.

For Daikatana and Anachronox, what improvements have you made to the Quake engine?

...there are a few more features like "more correct" shadows on all dynamic objects, procedural vertex and texture animation, additional warp effects, more realistic water, and things like that. Support for 24-bit and 32-bit textures, both geometry and texture "scale up" or "scale down" based on frame rate, hardware system set up; as in newer more expensive machines will see more polygons and higher bit depth and more detailed textures; older slower machines will run at consistent frame rate.

What would you tell aspiring game programmers?

Try to program everything well, not just 3D cards.

Hired in November 1997, Corrinne Yu describes her past few months at ION Storm as being "fun and happy." While visiting Dallas for an OpenGL seminar, Corrinne stayed at Tom Hall's house. When she visited the "offices" of ION Storm, she was "overwhelmed by the developers' hospitality and friendliness."
    Corrinne's work cube radiates with several monitors, Intel-based PCs, and an Intergraph/Realizm machine. Graphics/programming books and 3d accelerator cards, snug in static bags, rest on her shelves. Another shelf holds six packs of Diet Coke and Diet Pepsi. A pillow, a sleeping bag, and clothes lie on the floor, accompanied by a bath towel and a toothbrush. Dried red-black roses decorate Corrinne's office.

For a 3d engine programmer, perhaps it's ironic that Corrinne simply "[does] not Quake anymore." She plays only fighters, and does "OK at Tekken 3."
    At work, Corrinne has more duties than just kicking polygonal ass in Tekken 3. Describing a typical day at work, Corrinne says:
I program most of the time, and eat delivery food. Most of the time I type. Sometimes to design something or solve a problem, I cuddle with my code. I grab some code print outs, surround myself with a few books, hold onto a legal pad, curl up on a couch with a blanket, and start reading and scribbling away.
    And when Corrinne is not busy programming, eating ravioli, or cuddling with her code, Corrinne says she enjoys reading. One time she tried design, but design "took too much time from technology development."
    Technology development, after all, is what Corrinne Yu does best. Her favourite part of 3d engine programming? "Seeing something I had programmed applied in many different ways."
    Corrinne is currently hard at work modifying John Carmack's Quake engine to suit the beautiful lands of Anachronox and Daikatana, preparing for E3. As for the future, Corrinne Yu only hopes to "ship fun games."  [=]

related links:

-ION Storm, Corrinne's company

"It may be nice to see gamers enjoy passivity and graciousness as much as egomania and bashing."
-Corrinne Yu

[back to profile]

interview conducted
by andrew wu (kolinahr)

posted april 24, 1998