PlanetDeusEx | Features | Interviews | Albert "Alchemy" Yarusso
Albert "Alchemy" Yarusso Interview

A member of Warren Spector's team from the beginning, Albert Yarusso is know for his always-friendly participation in ION Storm's chat lobby. Not to mention the fact that he is currently working at ION Storm's Austin office on the upcoming RPG Deus Ex.

Recently, Stormtroopers sent a few questions his way, and was fortunate enough to get his replies back immediately. Take a look as Albert discusses Deus Ex, Unreal (Deus Ex uses the Unreal engine), consoles, and game programming in general.


[Stormtroopers] How did you get hired by ION?

[Albert Yarusso] Well, that's an interesting story... After a stint working on British Open Championship Golf at Looking Glass Technologies, I had the opportunity to move down to Austin, Texas to work with Warren Spector on Junction Point. I bet some of you are scratching your head thinking, "What's Junction Point?" It was going to be a large online, multiplayer game set in the future aboard a sprawling space station called Junction Point. At least, the station would be the starting point for your adventures. The game was to be played in the first-person perspective using the same engine as Thief: The Dark Project.

I jumped at the chance and in May of 1997 I moved to Texas, never having lived outside New England. Unfortunately, Looking Glass wasn't doing very well financially and on July 1st our office was shut down. This came as somewhat of a shock to me, even though the writing could certainly be seen on the wall. I don't have any hard feelings, although I am saddened that I'll never get to play Junction Point as it had so much promise. Most of us decided to stick it out with Warren while he explored other options. Even though we were no longer on anyone's payroll, we still came into "work" just about every day over a two-month period while we toiled on various and sundry game ideas.

At the end of August, while I was up at Looking Glass doing some contract work on Flight Unlimited II , I received a phone call that we had signed a deal with Ion Storm to start an office in Austin. Needless to say, I was ecstatic, and as of September 1, 1997 I was an official employee of Ion Storm. Which was a good thing, as I was quickly running out of money and would have had to find a full-time job elsewhere if things didn't pan out when they did.


[Stormtroopers] How about a list of your favorite games and gaming genres.

[Albert Yarusso] I enjoy Role Playing Games more than any other genre, but I also enjoy first-person shooters (Doom, Quake, Unreal), real-time strategy games (Warcraft II, Age of Empires), turn-based strategy games (Heroes of Might and Magic II, Masters of Orion), space flight-sims (Wing Commander 1-5, X-Wing, Tie Fighter, Elite, Freespace), adventure games (any LucasArts game, the Space Quest series, various Zorks), platformers (mostly on consoles), and mindless arcade games (console stuff and actual arcade games--back when you could find original games, not the same old fighting, racing, and shooting trash pumped out year after year now).

Some of my favorite games have been System Shock, Ultima Underworld I and II, Ultima III, IV, VI, VII and VII part II (Serpent Isle), Alternate Reality (Atari 8-bit), Star Raiders (Atari 8-bit), Warcraft II, Elite, M.U.L.E., Star Control II, Dungeon Master (Atari ST), various Infocom games, and Ys 1 & 2 (TurboGrafx-16). Some of the games I've played more recently include Metal Gear Solid, Parasite Eve, Fallout (finally), Starcraft, Dune 2000, Might and Magic VI, and Worms 2.


[Stormtroopers] Any personal interest in consoles or console gaming?

[Albert Yarusso] Absolutely! The next big console game that will undoubtedly turn me into a less productive member of the Deus Ex team is Zelda 64. Perhaps someday I'll go back and finish Final Fantasy VII, and I mentioned above that I'm playing Metal Gear Solid and Parasite Eve as well. I've been playing console games for what seems like forever, going back to the Atari 2600. In fact, I'm an avid collector of old console games and systems and have about 350 unique cartridges for the 2600 alone (yea, yea, pathetic). If anyone out there has old games and/or systems lying around they wouldn't mind parting with, drop me a line.

I'm really looking forward to Sega's Dreamcast and hope that Sony decides to use a DVD-ROM drive in the next-generation Playstation. And while it's about time the Gameboy finally got color, I long for the more powerful Atari Lynx and wish someone would put out a portable system cable of 3D graphics, not a ten year old system that's only getting a marginal upgrade.


[Stormtroopers] Are there any plans on porting the game to ANY non-PC platform? I.e. Mac, PSX, N64, Dreamcast, PalmPilot,etc? Do porting programmers get less respect?

[Albert Yarusso] As of now we have no solid porting plans but definite interest. We've had some discussions with people about it but nothing's firmed up just yet. Since we're using the Unreal engine, we can only port our game to platforms the Unreal engine has been ported to. Unreal has already been ported to the Macintosh by Westlake Interactive, and it looks like Unreal will be ported to the Dreamcast as well. I personally would love to see Deus Ex running on the Dreamcast and hope we get the opportunity to bring it to life on that system.

I'm not sure that porting programmers get less respect as much as less recognition. People will usually remember the company that creates a game (especially popular games like Quake) and incorrectly assume that the same company is always responsible for porting it to other platforms. While some companies do conversions in-house, many are farmed out to other companies. Regardless of who does the port, the original programmers usually get more credit than the ones doing the conversion. Porting games to different platforms can be very tricky and oftentimes the game must be rewritten from scratch, although this is becoming less and less the case these days. I have great respect for those involved in a porting project who succeed in faithfully reproducing a game on a radically different platform.

PalmPilot, heh.. :) Although I guess I shouldn't laugh, there's an Infocom parser available for the PalmPilot that works great.. Maybe in five years we'll be running the Unreal engine on the PalmPilot VII (or on a WinCE 6.0 device).


[Stormtroopers] If a webmaster was going to bribe you for screenshots or info, what would he have to use?

[Albert Yarusso] The entire set of Babylon 5 episodes on DVD, in widescreen (16:9 anamorphic), and Dolby Digital 5.1 audio. For starters.


[Stormtroopers] Any advice for beginning programmers who want to learn to program specifically for game development? Any recommended reference materials, development tools, etc.?

[Albert Yarusso] The best way to learn is by doing. These days most games are programmed in C and C++, so that's where I would start. If you don't know either of these languages, I'd jump straight into object-oriented programming with C++ as opposed to learning C first and then C++. And since most games are now written for Windows, it helps to understand the Windows internals, and especially the DirectX APIs. Start by coming up with some simple ideas for games that can be written by one person and try your hand at it. Look at existing games and try to figure out how they work. Do a search for "game programming" on Yahoo and you'll come up with tons of links, there's lots of good information out there.

Since games are such large undertakings these days, not everyone has to be the 3D graphics programming star. You might find that you enjoy programming AI, or user-interfaces, or graphics libraries (2D and 3D), or game systems, or tools, or sound libraries, and so forth. Or some combination thereof. The most important thing is that you enjoy what you're doing. Motivation is very important--you need to love games before deciding that's what you want to do.


[Stormtroopers] What is your typical day like? How do you expect that schedule to change as the game gets closer to it's release date?

[Albert Yarusso] I typically get into work between 9:30am and 10am and the first thing I usually do is answer (and/or ignore) email. Then I might spend a little time surfing the gaming sites to see if anything interesting is going on (and as is the case in this industry, there's always something!) I then make a list (if I didn't already the night before) of tasks I'd like to get done today. The list is usually pretty detailed and along the lines of "Add TreeView support to Conversation List in ConEdit", "Finish UI art requirements doc", "Get art from Jay for generic message boxes", "Put new art in generic msg box", "Fix crash Christian found in ConEdit", "Add secret back-door to game that makes me invincible when using the name Alchemy". Making lists along the lines of, "Write Conversation System", "Program all UI screens", etc. isn't particularly useful, so even if I'm concentrating on one subsystem I usually break apart the work into small tasks that I can more easily keep track of. :) Very rarely do I finish all the tasks I set out to accomplish at the beginning of the day, but I usually write down quite a bit more than I could ever complete.

Hopefully we've been realistic with our schedule and won't have to go into heavy crunch mode as we get close to ship. It's Unrealistic (sorry) to not expect a crunch mode, but with any luck it won't be of the extended variety (many months) that seems to be the norm in the game industry. As we approach the release date our efforts should be concentrated on tweaking the scripts and fixing any bugs that pop up as opposed to finishing up major game systems.


[Stormtroopers] What platform are the ION Austin programmers programming on?

[Albert Yarusso] Among the three of us, we're using NT 4.0, Windows 95 and Windows 98. I personally have Windows 98 on both of my machines. For our development environment we just made the jump to Microsoft Visual C++ 6.0 from 5.0 (SP3). In addition, we use Visual Source Safe for source control, and tons of other utilities and programs. But most of my time is spent in Visual Studio, editing C++ and UnrealScript source.


[Stormtroopers] How helpful has Microsoft, 3Dfx, Intel, etc. been so far with providing development support and equipment? Foresee any problems with Microsoft?

[Albert Yarusso] Most of the development support we've needed has come from Epic, and more specifically, Tim Sweeney, who has been very helpful in answering our Unreal questions. There's an Unreal Programming mailing list which all the licensees subscribe to that is also a good source of information. Because we're using Unreal, we haven't had to concern ourselves (yet) with hardware compatibility. If a piece of hardware works with Unreal, it'll work with our game. If it doesn't, we've done something horribly wrong on our end. :)


[Stormtroopers] How involved does a programmer have to get with the creation of a game's story line? Did you get involved at all, in order to be able to advise Spector, et. al., on what would and wouldn't be possible?

[Albert Yarusso] When we first started the Ion Austin office back in September of last year, I was much more involved in the game's story line. The initial story was broken into three acts: Warren Spector wrote the first, Dave Beyer hammered out the second act and I pieced together the third. There were many problems with this initial design, but overall it had the promise to be an innovative, exciting, near-future, first-person RPG. This initial design doc was presented to Ion Storm and Eidos who quickly made the decision to fund the game and continue development.

Once we got our hands on the Unreal engine and started hiring more designers, I ducked out of the design process to concentrate on programming. The Deus Ex design has changed immensely over the past year, while keeping the themes of the original design doc. I doubt if one sentence of mine still remains in that last act. :)

There's good communication between the designers and programmers as far as making sure that everything they dream up can be done in the game.


[Stormtroopers] How did the Deus Ex programmers go about researching the Unreal engine? How functional were the tools when the decision was first made to use Unreal? And how does a company go about deciding on and then starting to use technology that was still months away from having it's first game released? Did you ever have any misgivings?

[Albert Yarusso] My first look at Unreal was at the 1997 E3 show in Atlanta. While I was working at Looking Glass at the time and we were using the Dark engine for Junction Point, I was naturally curious about Unreal. After watching a demonstration of UnrealEd by one of the team members I remember thinking to myself, "Wow!" I never imagined that a year later I'd actually be using Unreal in a development endeavor. :) My next glimpse at Unreal was in late 1997 when Tim Sweeney made a trip to Ion Storm in Dallas to give us a demonstration. Chris Norden (Deus Ex team Lead Programmer) and I took the trip up to Dallas to see Unreal along with a few other engines. I remember people being clustered around one machine and every time a different feature of the Unreal engine was demonstrated everyone would go, "Ooooooooooooooooo" and "Aaahhhhhhhhhhhhhh". And this cooing was coming from people who were already pretty jaded and had seen many different 3D engines up to that point. Chris and I were fairly impressed with what we'd seen and wanted more information. Not long thereafter, Chris took a trip up to Canada for a week to get hands-on experience with Unreal and get as many questions answered as possible. After Chris' trip, we decided to go with Unreal and then had to work out the licensing arrangements.

While every 3D engine has its problems, we don't have any misgivings about choosing Unreal. We feel that we've been much more productive using Unreal than we would have been using any other engine that's out there right now.


[Stormtroopers] With the EPIC team appearing to be unbelievably busy addressing post release issues with Unreal, have their been any problems getting support from them?

[Albert Yarusso] While the Unreal team has been very busy, they've also been fairly good about support. We get source updates often enough, and whenever we have problems we can usually get answers from the Unreal Programming mailing list. Most questions are answered directly by Tim Sweeney.


[Stormtroopers] How does the team handle wanting to add their own functionality to a set of tools that really aren't out of the development stage yet?

[Albert Yarusso] Fortunately, Unreal is very modular and it's easy to subclass the various built-in Unreal classes to add new functionality. Still, we have had to make some changes to the engine and we'll probably make many more before our game finally ships. However, the bulk of our work can be done without altering the base source code, which certainly makes our job easier. When a new version of the Unreal source comes along, we do have to merge any changes we've made in Unreal source files, but this is pretty straightforward and usually doesn't take very long (a few hours' work for one person).


[Stormtroopers]Any hints on what the programmers and designers will try to add to the engine in terms of features? Any major changes planned, like for example Valve's changing of the Quake 2 engine to utilize skeletal animation?

[Albert Yarusso] Because Unreal was designed as a first-person shooter, it has little of the additional functionality required for writing an RPG. Having the Unreal engine frees us from having to write a first-class renderer, allowing us to concentrate on designing and implementing the RPG features we need. Some examples of features we've already added include a conversation system (and editor), animation blending, a user-interface library that rivals Windows, advanced AI, inventory system, and our skills/augmentation systems. Most of this we've been able to do with minimal changes to the core Unreal source.


[Stormtroopers] Has the programming team had to set aside time to instruct the designers in the use of UnrealScript, the editor, etc.?

[Albert Yarusso] The designers have pretty much learned UnrealEd on their own. However, they have had several "classes" on the advanced use of UnrealEd, some given by Chris and others by T. Elliott Cannon (Myscha the Sled Dog), who visited Ion Austin for a week. The designers all picked up UnrealEd quickly and, working closely with the texture artists, have been putting together great looking maps. The programmers will be doing the bulk of the UnrealScript programming once the game's core functionality is complete.


[Stormtroopers] What is the plan for camera angle, movement, and control? Will the game be played from the first person perspective, with the camera pulling back to third person during cutscenes/scripted events, etc.? Will the player have any control over the camera?

[Albert Yarusso] During normal gameplay, the player's view will be first-person. For most conversations, the view will switch to a third-person view. The same will be true of in-engine cutscenes. The player will have little, if any, control over the camera.


[Stormtroopers] Since you are working on the conversation editor that Christian Divine (Deus Ex Dialog/Cinematics-ed) will be using, can you tell us a little bit about it? What is it's name, will it be released with the game so the community can use it to modify Deus if they want to, etc? Have you made any other tools that the team will be using in Deus Ex?"

[Albert Yarusso] For starters, the editor is called "ConEdit" (which I'm sure you can guess is short for "Conversation Editor"--pretty original, eh?) It allows Christian to write all the conversations for Deus Ex without having to write them first in a word processor. Using the editor Christian can create all the spoken text, branches (when the player is presented with choices), camera placement, flag checking/setting, etc. Audio that is later recorded for conversations will be matched up with the appropriate speech, and this is also done from within ConEdit. The conversations are then imported into the game as UnrealScript objects. These objects are then used by the game engine when a conversation is initiated with an Actor in the game world ("Actor" being an Unreal class shared by NPCs as well as non-human objects, such as data terminals).

I'm not sure if ConEdit will be included with Deus Ex. While it would be interesting to allow people to modify conversation text, audio, flags, etc, people could also break the game very easily. It's an issue that hasn't been given much thought yet, so you'll have to ask again at a later date. :) The only other external tool we've written for Deus Ex thus far has been a utility by Chris Norden that takes a series of Lightwave objects and converts and packs them to the Unreal model file format. I don't envision we'll be writing any additional tools, as everything else we need to do is already supplied in Unreal or can be done with off the shelf packages (like Lightwave).


[Stormtroopers]You have made the comment to me that "UnrealScript is awesome", and I was hoping you could expand on that a little. What specifically do you like about it? How is it different from anything you have worked with before? How is it similar? Will you modify it in any way?

[Albert Yarusso] This is the first time I've worked in a programming environment that was geared towards writing a game. While many programming languages (C, C++, Assembly, Delphi, even VB), can be used to write games, UnrealScript was designed to make game programming easier. It's fully object-oriented and similar to C++, but not quite as sophisticated. UnrealScript's built-in state functionality makes it much easier to control states than having to create large and often convoluted state machines in C++.


[Stormtroopers] How is the 3D card situation being handled? Will one be required? And which ones are going to be supported?

[Albert Yarusso] We're presently working with the assumption that 3D hardware will be required. Right now we're shooting for Voodoo level speed and features as the base level. Since we're trying to replicate real-world spaces with as much detail as possible, we're pushing the Unreal engine and 3D hardware to the limit. While the game will run in software, I doubt we'll make that option available as it'll simply be too slow. The levels the designers have created thus far are stunning and truly deserve to be seen rendered via hardware. We'll support whatever 3D cards Unreal supports by the time we ship. Right now most of us are running Voodoo 1 and 2 cards. As far as I know, no one's yet running with two Voodoo 2 cards. But I may have to "borrow" one from another machine soon enough. Not because our game's running slowly, but hey, who doesn't want two Voodoo 2 cards running in SLI mode?? :)


[Stormtroopers] How is the Deus Ex team split up between the programming tasks of: 3D card, sound, level editor/tools, scripting, AI, etc.? Do/will the designers do the actual UnrealScripting, or do the programmers?

[Albert Yarusso] Presently, Chris is working on implementing the various weapons (and we have plenty!) for the game. He also coordinates updating/introducing new models into the game from the artists and is working closely with the designers when they have questions or issues with Unreal/UnrealEd. Scott (Martin, Deus Ex team Programmer) is currently adding new functionality to his already strong user-interface library and after that will go back to working on the amazing AI Deus Ex will sport. I'm now wrapping up work on the conversation system and editor, after which I'll be taking Scott's UI routines and using them to complete Deus Ex's large suite of UI screens, which also involves working closely with the artists for all the art that'll be required.

Once all the core game systems are in place, the three of us will be spending a great deal of time writing UnrealScript for all the game's maps. We'll each be assigned to two designers to write all of the unique scripts required for the game.


[Stormtroopers] That's it..........Thanks a lot!!!!

[Albert Yarusso] No problem! So, when should I be expecting those Babylon 5 DVDs in the mail?


[Stormtroopers] About the same time we get Dan Rubenfield the copy of Thrill Kill that he requested...





IGN.com | GameSpy | Comrade | Arena | FilePlanet | GameSpy Technology
TeamXbox | Planets | Vaults | VE3D | CheatsCodesGuides | GameStats | GamerMetrics
AskMen.com | Rotten Tomatoes | Direct2Drive | Green Pixels
By continuing past this page, and by your continued use of this site, you agree to be bound by and abide by the User Agreement.
Copyright 1996-2009, IGN Entertainment, Inc.   About Us | Support | Advertise | Privacy Policy | User Agreement Subscribe to RSS Feeds RSS Feeds
IGN's enterprise databases running Oracle, SQL and MySQL are professionally monitored and managed by Pythian Remote DBA.