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).
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.
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