Jamie Fenton

Jamie Fenton is a highly inventive software engineer who has been involved in the video game and multimedia computing industries since the beginning. During the past decade, I have been involved in education research, several start-up companies, and interesting projects of my own. Lately I am working with embedded Linux in the multimedia area.

I now live in Sunnyvale, CA, in the heart of Silicon Valley.

As many people are interested in my past as a pioneering game designer, I am recounting the early years first and in more detail.
 

1974 - 1983 Classic Video Games Programmer with Dave Nutting Associates


I started college in 1972 at UWM in Milwaukee. I snuck into the Fortran programming course during the first semester despite having no prerequisites and was called on the carpet for developing unauthorized programs. The session ended with Dr. Northouse offering me a job as a Research Assistant in his AI lab. I built a robot, and created an animation program with a light pen and a PDP-8L. University life  was great fun and I spent 2.5 years crashing grad school classes and ignoring the credit requirements. Dr. Northouse was contacted by a former student interested in computer games. Nort sent myself and Tom McHugh over as contractors, and we became the first two employees at Dave Nutting Associates. David Nutting and his partner Jeff Frederiksen had the patent on using a microprocessor system with a video frame buffer  to generate game animation. (Before then all games were made with dedicated logic circuits).

It was fun, despite my friends thinking I joined the Mafia. (Bally had a reputation then, undeserved, that they were trying to live down, which came from making slot machines).

I was initially tasked to develop pinball machines, but yearned to work on the video games. Over a Christmas holiday, Dave and I, built a prototype Blackjack game in cocktail table format. It included a payoff chute and thus qualifies as the original computer-controlled card game gambling device - the godmother of all Video Poker and Blackjack games in Las Vegas and Atlantic City. Eventually it wound up in a Midway storage area, like the Lost Arc of the Covenant.from Indiana Jones. Will it ever be found? Will it still boot up?

1976 - The Bally Fireball Home Pinball Machine

The Fireball was one of the first pinball machines ever to ship with a microprocessor inside. It used a Fairchild F8, which had 64 bytes of RAM and 2K of ROM. This unit was designed for home use. It did not sell well because the availability of microprocessor commercial pinball games created a glut of relay-controlled units on the home market.

1977 - The Bally Arcade Video Game System

My first first foray into management was to lead a group that designed and implemented a ROM based operating system for a home video game console. The Bally Arcade used a Z80 microprocessor, 4K of RAM, and 8K of ROM. It was far ahead of its time. Later, I implemented a Basic interpreter called Bally Basic that ran on the Bally Arcade system in a cartridge. Basic language statements were entered using a keypad overlay over the calculator keypad. For about 6 months, Jamie held the honor of providing the world's cheapest computer.

1980 - The GORF Coin-op Video Game

I programmed a number of arcade video games during the late 1970s - early 1980s era. The best known of these was GORF. GORF stood for "Galactic Orbital Robot Force" and was a play on my college nickname of Froggie. GORF was the first game ever to show multiple scenes. After defeating a rack of Space Invaders, one would blast into space and deal with various alien menaces, working up to mission 5, an encounter with the Gorfian Flag Ship. GORF also featured a speech chip that hurled insults at the player.

In 1981, Jamie wrote a game for Bally/Midway called Robby Roto. It is a maze/digging/rescue game. It did not do well in the marketplace. As the rights to this game have reverted to me, I have chosen to permit MAME users to duplicate and play the ROM images for Robby Roto free of charge. Unfortunately my other released titles remain in legal limbo, but I am looking into making them available too. For more information on the MAME project, please visit their homepage.

The photo to the left shows the development system I used to develop an arcade title called Ms. Gorf, circa 1982. It was finished to the level where it could undergo play-testing, just in time to be canceled during the great videogame crash. Like Robby Roto, the rights have reverted to me. As the development system was extremely exotic, it is unlikely that this game will ever be revived. I have some early videotapes of myself playing it which I will digitize someday. 


Jamie's gameography is displayed in the Giant List of Classic Game Programmers

Fenton, Jamie Faye [formerly Jay Fenton]
   [U] Computer Blackjack (1975, COIN, Bally)
   Fireball (1976, PIN, Bally) home pinball game
   Checkmate (1976, COIN, Dave Nutting Associates)
   [N] Bally Astrocade home game system (1977, ASTR, Bally) led the development team
      and wrote most of the operating system
   [N] Bally BASIC (1977, ASTR, Bally)
   280 ZZZap (1977, COIN, Dave Nutting Associates)
   Gorf (1980, COIN, Bally/Midway)
   Adventures of Robby Roto, with Dave Nutting (1981, COIN, Bally/Midway)
   [U] Ms. Gorf (1982, COIN, Bally/Midway)
   [U] Gorfian Pinball (PIN, Bally/Midway)
   [P] Beamrider (1983, C64, ACT) port from INT
   [P] Pitstop (1983, C64, Epyx) port from 800
   [N] VideoWorks (1985, MAC, MacroMind) precursor to MacroMedia Director

1985 - MacroMind VideoWorks/MacroMedia Director

Jamie formed a corporation with Marc Canter and Mark Pierce called MacroMind. Our early products include MusicWorks and VideoWorks. I did most of the coding on these projects. VideoWorks has been available for many years, and is now being sold as MacroMedia Director. Here is a screen dump showing the basic features of VideoWorks/Director:





Both MusicWorks and VideoWorks were the first programs in their respective categories to ship on the original Apple Macintosh. The interface ideas have been widely copied and the resulting acceptance by the creative artistic community enabled Apple to survive until their resurgence in the iPod era.

1989 - Playground

In 1987, Jamie left MacroMind to work with Alan Kay's Vivarium Project. Here she developed a number of prototype programming environments for children called Playground. In these experiments, children constructed simulation worlds like the one shown here:

Programs consist of English-like statements which execute in parallel. These statements were situated within each animated character and interact in order to generate behavior. This example directs the clownfish to seek food and avoid sharks:


Frustrated  with the poor performance of  Smalltalk on 16 Mhz Macintosh computers of the era,  I  returned to private industry, joining Reese Jone's Farallon Computing Company of Emeryville, CA. Years later, Smalltalk finally came into its own with the Squeak project, which performs as well as Java, sometimes better, and is far more elegant.

1990 - 1994 Farallon - ScriptX

Leaving Apple in 1989, I worked for a while at Farallon Computing. We developed a HI-8 video editing program, a streaming network multimedia presentation system called Fairground, an early "web cam" device, and a phone dialer utility. Eventually Farrallon passed on the Fairground idea, seeing no future for user-constructed multimedia presentations shared across the network.

I wound up working with Kaleida Labs and its ScriptX project. (Kaleida was one of the results of the IBM/Apple collaboration of the early 1990s). I was one of the primary architects and helped implement this system, working on the persistence engine, networking, and on creating hybrid control structures for executing scripts over time. 

1991 - Digital Photo Album

During her spare time in the early 1990's, I developed an electronic photo album program for the Macintosh called the MegaloMedia Photo Album. Rights to this program were assigned to Michael Robertson's MediaMinds company, Michael went on found mp3.com. Here is a simple screen display. I also developed programs for editing and presenting PhotoCD images.

 

1995 - 1998 Global Cyberspace

My last project at Kaleida was to create a Distributed ScriptX demonstration of a social virtual world. Helped by Arturo Bejar, our efforts brought the attention of Chip Morningstar and Randy Farmer, we became two of the lead architects at Electric Communities.

At E/C, I developed an animation engine, a persistent object database, the distributed object communications system, and several demonstration programs. Frustrated by the reluctance of net users to download plug-ins, Doug Crockford and I kicked-around the idea of  using Javascript and HTML to generate rich-client interfaces. Doug later ran with the idea, starting State Software and becoming the father of AJAX..

E/C was a company of superstar engineers. In other words, a spectacular exercise in cat-herding, The E/C project shut down in 1999, a dot.com failure.

1998 - 2001 SRI Center for Technology in Learning

Jamie joined CTL in June of 1998, working under Dr. Roy Pea. My first job was to suggest further directions for the LEGO Mindstorms project. I also worked with the Tapped-Invirtual learning community and designed the software architecture(for streaming media and on-line discussion) for the TeachScape initiative. My largest project was a Tapped-In MOO replacement called MEOW.  While written to support rooms, regions, doorways, and the like, MEOW was mostly used as a Chat Server. The MEOW code base was extended experimentally to become a  prototype knowledge management application called Smurgle, and at another time for collaborative media analysis. My last project was a contract job for Sun Microsystems, where I developed a Schools Interoperability Framework (SIF) XML Zone Integration Server called JaZ.

2001 - 2003 VIPTone Inc.

After Dr. Roy Pea left CTL to join Stanford's faculty, I left SRI to work with Robert Iskander and Mike Leopold at VIPTone. VIPTone was an Application Services Provider and Systems Integrator specializing in enterprise software for educational applications.VIPTone wanted to use the Zone Integration Server to build an Operational Data Store to help school districts comply with regulatory requirements. This effort was tripped up by a windfall - A Province in China contracted with VIPTone to build a technology roadmap for their educational system, which was done on a rush basis. We delivered. They didn't pay.

A few days before my planned transfer to VIPTone's Australian subsidiary in Adelaide, VIPTone ran out of funding.

I took some time out to sell her house and moved up to San Francisco. Sidelined by the deep technical recession in the San Francisco Bay Area, I did several volunteer projects for a local Community Center and for a UCSF research project.

At the suggestion of Dr. Ellen Spertus, I also began teaching a workshop for middle-school girls on Making Your Own LED Jewelry as part of the Expanding Your Horizons program. This has been presented on eight diferent occasions and is always enthusiastically received.

2004 - 2006 Modulo Systems, Inc.

Early in 2004, I was approached by Lee Silverman and invited to join Modulo Systems, a startup company in Massachusetts, which focused on developing New Media technologies for the Print Publishing Industry. I helped solve numerous techincal problems with their Concerto work-flow engine and then developed Music, which was a web-based AJAX application for planning and editing page layouts. Music was able to open Adobe InDesign documents, rearrange the elements therein, and save them back, working from the Adobe INX (XML) format. This complex task required reverse-engineering their document format and machine-generating classes to represent the elements of InDesign.

Music evolved into a generalized collaborative AJAX-based XML document editor. Music managed a bidirectional  transformation process converting InDesign and at a future time, Quark DOM representations into a generalized, vendor-neutral logical form and back.

Eventually, I  was called back to help fix Concerto, which suffered from severe performance problems. I turned out that Concerto was based on the "Single Threaded Apartment Model", and notifications didn't flow to the next workstation until after the previous one completed its update cycle. Too late - Modulo failed in 2006.

2006 - 2010 Seductive Logic

MEOW

After SRI, I continued development of  MEOW. The last version uses AJAX to enable dynamic editing and grouping of chat messages, in effect combining a bulletin board system, real time chat, and a Wiki with topic refinement and correction. Time became just another variable and ontology a user option. The people who got it, got it. Most didn't.

The Camera Gun

Since Modulo, I have developed two significant software inventions. The first was a prototype hand-held game called The Camera Gun. Based on a concept from years before, the idea was to do real-time analysis of  the incoming video stream to identify, register, and score hits on targets existing in the real world. The system would seek out unique features or control points, and use these points as landmarks. Pulling the trigger would cause a virtual shot to be fired, and the impact damage would be shown as an overlay. Using a very fast cross-correlation algorithm, this program ran, in Java, fast enough to achieve lag-free real-world registration and overlay at full-automatic firing rates..

Its fun blasting away at your acquaintances with virtual bullets, or blasting the cat and seeing the damage stick to her head as she walks across the screen. Most people think its really-cool. Some worry that some idiot will shoot a real gun at real people and blame it on the program. While I hope that doesn't happen, ever, the fantasy of stirring up outrage among the Concerned Parents of America is appealing.

Cellular phones and hand-held gaming platforms are optimal delivery vehicles for this game idea, However much of the installed base is too slow. I turned my attention to Digital Video and a project called TopCat.  Early in 2007, a competeing game embodying many of the ideas from the Camera Gun shipped on the Palm Computing platform. This means the basic Camera Gun concept can be disclosed. (As far as I know, we are independant inventors).

early camera gun screen shot

The screen shot above is a view through the "virtual telescopic site" on the Camera Gun. Its a live video image from my apartment of a speaker, decorated with a plant, a photo, and a bulls-eye target with two virtual bullet-holes. The band diagram below is a Gantt chart showing process time utilization, used for testing.  If I wiggle the camera around, the bullet-holes stick to the target.

TopCat


TopCat is a program for enhancing the production value of  Video chats, on-line meetings, and video pod-casts by allowing users to connect multiple web cameras, DV cameras, and other sources to a virtual video mixer. Based on Microsoft's DirectShow and DirectX technologies, TopCat can apply special effects to the incoming video streams, composite them together with alpha blending , scaling, and dynamic parameter modification.The result can be saved to disk and/or streamed over the Internet. In other words, TopCat is a desktop television station.

Unlike most current multimedia platforms, TopCat emphasizes real-time performance rather than non-linear editing. While its still easy to overload any multimedia platform, computers are 2000 times faster and have 2000 times more memory then when GORF shipped, and the graphics co-processor ideas we invented at DNA have culminated  in the highly parallel rendering pipelines from ATI and nVidea. All of this enables my  dual-core 3.2 Ghz WinTel machine to handle 4 cameras in, 320 x 240 x 24bit RGB, with both Preview and Program busses active, several effects patched in via Freeframe, mixing with alpha blending and scaling into a compositing window, which is being recorded to the disk and also streamed-out to a hand-held media player.at around 20 frames/second. (Expect this to double after performance tweaking).

TopCat has a feature that can record 4 webcam streams on a single DV tape, or to the hard drive. The captures stay in sync always, and can be handled by other programs as a single larger media object.

TopCat is a challenging project -  DirectShow has a very steep learning curve and having decided to use Java, we did a vast amount of alpha-testing for the DSJ (DriectShow wrapper for Java project). Its been worth it. TopCat is an honest-to-gosh fun program to play with, and I am now a veteran Windows developer.

If possible, TopCat will be an open source project.

TopCat screen display

Screen capture of TopCat, showing 3 camera inputs at the bottom, a video processing plug-in control on the left, and the Preview and Live Program monitors at the upper center and right. A user can set up the next cue on the preview monitor, and then cause it to be executed on command, applied to the live program material. The final version of TopCat will feature additional source controls,  special effects types, output format selectors, and stored presets.

2010 - 2012 TiVo

Here I helped improve their DVR product line, in particular helping with the middleware layer that coordinates recording, playback, scheduling, and other activities requested through the TiVo interface.

2012 - 2014 Amazon Lab 126

Lab 126 designs and builds the Amazon Kindle and Kindle Fire tablets. I work on the platform multimedia team and the performance team, making the multimedia pipelines work. I developed an interesting performance visualization application that generates real-time displays, and I now know a lot about how DRM works on Android tablets.


Jamie's Email address is: jamie@fentonia.com