《PC人 (IBM PC 1983) 与童年奇妙的火花》
PC-Man and the spark of childhood wonder

原始链接: https://intotheverticalblank.com/2025/12/02/interview-greg-kuperberg/

## 格雷格·库珀伯格:早期个人电脑游戏中的一位少年天才的失落遗产 在20世纪80年代初,15岁的格雷格·库珀伯格为IBM PC创作了三款令人印象深刻的街机风格游戏——《伞兵》、《PC人》和《J-Bird》,考虑到当时该平台的局限性,这真是一项了不起的成就。这些游戏以其流畅的游戏体验和技术精良而脱颖而出,甚至超越了一些同时期的游戏。库珀伯格通过直接操作PC的硬件,绕过低效的系统调用并利用巧妙的编程技术来实现这一目标。 尽管在Orion Software公司取得了早期的成功,库珀伯格很快就离开了,16岁进入哈佛大学,最终获得了数学博士学位。他成为加州大学戴维斯分校的教授,离开了游戏开发领域。虽然他曾短暂地用Macintosh小应用程序进行编码,但他的热情却在于其他方面。 库珀伯格的故事凸显了计算机历史上的一个独特时刻——一个少年可以对新兴平台产生重大影响的时代。他将早期的成功归功于父母培养的数学天赋和对编程挑战的真正热情。 尽管他没有继续从事游戏开发事业,但他的作品仍然是对足智多谋的证明,并提醒人们“火花”可以点燃对技术的激情。他认为像Python这样易于使用的工具可以激励新一代人,但遗憾的是,如今有抱负的程序员很难发现机会。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 PC-Man (IBM PC 1983) 和童年奇妙的火花 (intotheverticalblank.com) 5 分,由 nanochess 2 小时前发布 | 隐藏 | 过去 | 收藏 | 1 条评论 mdlxxv 48 分钟前 [–] PC-Man 和 Paratrooper 是我玩过的第一批 PC 游戏。回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:
相关文章

原文

 

Teenager Greg Kuperberg wrote three fast-action arcade games for the IBM-PC in 1982 and 1983 (an almost impossible of feat at the time) and then took another path. In this rare examination of his work, we look at the legacy and inspiration of this “would-be” game programming auteur, who “moved-on” while at the top of his game.

Video Version

Part 1: The Spark and a Pac-Man Clone

By Steve Fulton

I think a lot about “The Spark” these days.

That being, “the ignition”, “the jolt” or “the wake-up call”  that first made me interested in video games and computers back in the 1970s when I was a kid.   The thing that made me believe computer programming  was not just a “cool” thing, but also the ”ONLY” thing I ever wanted to pursue.

I wonder if  “the spark” has been extinguished for kids in the 21st century?


With so many cynical ways technology has been twisted into service in 2025, I wonder if anyone could possibly be inspired by it?  Or is the constant hum of technology, now just, another static pulse added to the background noise of a world, seemingly, drowning in the technology that once promised to save it? 

The early wake-up call  for me was the one that I felt when I first saw a program running on an Apple II in 1980, then permanently ignited when I got my Atari 800 computer a few years later.

Back then, the idea of “programming” a computer lit my brain on fire, and that fire was fueled by playing tons of computer games.   I visit those systems and games on a regular basis these days, through vintage computing and emulation, sometimes venturing to places I’ve never been before.

Recently I’ve been looking at the early “wild-west” of the PC-XT 8088 games from 1981 and 1982. The same ones I experienced on my friend Wesley’s  PC-XT clone at his house in the early 1980s. 

A few days ago I was doing some final research for a long suffering story about the 1982 PC Game “Executive Suite” when I came across another game from 1982, named PC-MAN.   

Before I loaded the game I was expecting what I found from a pile of other 1982 era Pac-Man clones for the IBM PC: Amusing character graphics that showed promise but also highlighted the limitations of IBM’s first personal computer platform.

But when I played PC-Man (not to be confused with PCMan -no dash- another cute Pac-Man clone that fell a bit short for my tastes) I was surprised by its high-quality presentation and play. Maybe it was because I’d seen so many duds that day, but “PC DASH MAN”, seriously, blew my mind as soon as I experienced it. In some ways,  It looked better than even Atari’s own 1982 released Pac-Man for their 8-bit computer line.

The title screen shows a nice bitmapped logo for the game, © 1982 Orion Software with the name of the creator, Greg Kuperberg.

I noted these names and then started the game.
Unlike the other early PC Pac-Man games I played that day , this one felt like an actual arcade game. Like the person who made it spent some real, quality time feeding quarters into arcade games in 1982, and understood the nuances of the age.

I played two entire games, trying to finish a full maze, but was never able to do it.
Still I was impressed.  I love old PC and PC-DOS games, but this one stood out, especially for the year it was released, 1982  

I tried to put my mind back to 1982 and think about how this game would have been received.  With very few other commercial quality games to play on a $2000 computer set-up, this must have been an illicit joy to watch boot-up on an IBM-PC.  What better way to recover from a long session of VisiCalc or dBase than with a Pac-Man-style game you otherwise SHOULD NOT be playing on your  serious computer.

Maybe those same IBM PC owners (or maybe their kids)  saw Atari’s Pac-Man for the 8-bit computer line on display at a store, and wondered why their computer, that cost almost 3-times as much, seemingly could only produce the most basic versions of arcade games while the Atari ate them for breakfast.

Of course the Atari 800 had been designed from the start to play great games, but not so the IBM PC-XT. In fact the IBM was, seemingly, designed to do everything BUT play games.

However, Greg Kuperberg found the IBM PC to be sort of “tabula rasa” that could be manipulated any way he wanted: 

“At the hardware level, the IBM PC impressed me as a fairly clean computer that can in principle do anything.  But it is true that out of the box, it had very little software support for games.  It’s also true that it had limited colors, and that audio support was limited and bad.”

Then sometime in 1982 PC-Man arrived at Computerland (or whatever the local PC store was called) , and maybe it was like an illicit revelation. Maybe it, in some ways validated the purchase.   

The next thing I imagine is people booting up PC-Man over and over and seeing the name “Greg Kuperberg” on the title screen.

And I imagine, in their mind, he and Orion software became, a bit, legendary. 


Who was this guy, and this company, that made their 1982 IBM PC-XT  feel like an arcade machine playing Pac-Man.

At the same time, PC-Man is not an exact copy. The game is obviously Pac-Man of course, but with a figurative (and literal) twist

The maze in PC-Man is rotated 90 degrees, and the ghosts are not the authentic colors (due to the 4-color CGA mode limitations) but other than that, it is spectacular…and very difficult..

In fact even though the colors are not correct, the use of color is awesome using  a technique apparently called “(ordered) subpixel dithering” (a way of faking extra colors by carefully arranging pixels) to create more colors than should be possible in  CGA.

The game is written in machine language (Assembly), and it while it’s no surprise that it  plays better than games written in BASIC in 1981/1982, and it also stands right along-side, and sometimes above, even the best games from other machine-language developers from the era. 

Playing PC-Man sent me into a rabbit-hole of sorts.  I wanted to find out who Greg Kuperberg was, and what other games he might have made for Orion software.

If games like PC-Man were “the spark” for a kid like me back in the 1980’s I wondered what the “the spark” was for the guy who wrote it.


—-

PC-Man was not the only decent machine language PC-XT game that came out in the 1981-1982 timeframe, there were others.

Games like ABM from David Disk, a decent Missile Command clone, Albert Savoia’s fun little arcade shooter BitBat from Heigen Corporation , Michael Abrash’s Cosmic Crusader from Funtastic inc., and Snack Attack 2 also from Funtastic Inc by Dan Illowsky and also  Michal Abrash 

And still others came from established game companies who had made their mark on previously on the Apple and Atari platforms, like Olaf Lubeks; classic Apple Panic from Broderbund, Jay Sullivan & Frank Randek’s Crossfire from On-Line systems, Bruce Artwick’s  Night Mission Pinball from Sublogic, and Harold Hedelman’s conversion of David Snider’s Centipede clone: Serpentine.

All of these games (and more) deserve their own individual spotlights (Especially Abrash and Illowsky’s Funtastic games), but still out of all of them, to me, PC-Man stands taller.

In 1982 my friend Wesley was  on a permanent quest to find a decent game for his dad’s $2000 IBM compatible. The game that was “the ignition” for us on that machine was Microsoft Decathlon. It’s a game we played so much we nearly broke his keyboard trying to  do well in the events. 

“Decathlon” was indicative of the type of games I associated with the IBM PC.  In an era when fast-action arcade games were still the hottest ticket around, PC games had a flair of “the serious” about them.  What could be more serious than, say, trying to win a Gold Medal for the USA right-smack in the middle of the Cold War?

Still, we spent weeks being obsessed with Microsoft Decathlon, but to be honest,  what we really wanted was a fast-action arcade game like PC-Man. 

Part 2: A Teenager in Auburn

It turns out the rabbit hole was not as deep as I imagined, as  Greg Kuperberg has his own, Wikipedia page.

Reading the page I gleaned this information:

Greg Kuperberg was the child of mathematician parents born in 1967.  He created three games for the IBM PC  and then enrolled in Harvard in 1983. He went on to receive a PHD in geometric topology and quantum algebra and now is a professor at UC Davis. 

Very impressive.  


I’m not so great at math myself, but even I can do the simple arithmetic required to come to this revelation: Kuperberg  was only 15 years old when he made these amazing arcade games then he went to Harvard at 16.  

But in fact, as I’d find out later,he was much younger when he started programming.

There was little else about the games on Wikipedia but there was a link to more information in a story on  Ernst Krogtoft’s amazing site, Retro365

https://retro365.blog/

If you’ve never visited, Ernst, who was born in 1979, grew-up playing all of his dad’s computers. He has created an impeccably designed archival quality web-site dedicated to early computer games of the 80’s and 90’s .

In a Wikipedia linked story titled “The original IBM PC and Orion Software” from Sept. 23, 2019 (The original IBM PC and Orion Software – Retro365)

Ernst wrote of Orion software’s  origins:

Orion Software was founded in 1980 by Kevin Azzouz while he still was in college. The company, operating out of Auburn, Alabama, would focus on entertainment software for the Apple II and IBM personal computers.” 

Ernst goes on to describe one of  Orion’s first games as  “Paratrooper”.

According to Ernst, Paratrooper was based on an Apple II game named Sabotage by  Mark Allen for Online Systems (who became Sierra On-line) and released in 1982. Paratrooper was programmed by Greg Kuperberg

Next came PC-Man, also  in 1982, and then there was the 3rd and final game credited to Kuperberg, J-Bird, Released in 1983, a clone of Q*bert.

I found Paratrooper in my PC Game Archive and booted- up.
It was was a great little action game in the vein of Missile Command released the same year as PC-Man.


It piqued my interest,  

One good game, well that could be an anomaly.

Two good games?
Both out in 1982?
That has the making of a dynasty.


And then I tried J-Bird from my 1983 game folder.

It was impressive, it was as good or better than the other two.
Three good games in the span of 18 months or so?
Was that the sign of an auteur in the making?

It made me wonder what possessed Greg Kuperberg to make these games, and more importantly, what made him stop?

This was the end of any information I could find about Greg Kuperberg and Orion software.

There is no interview with Kuperberg that I could find online, so I screwed-up my courage and reached out to him via email, expecting no response.

I couldn’t even talk to my professors when I was attending college, and trying to talk to one now, even 35 years later, put me right back in that headspace.

Kuperberg has some serious qualifications. He graduated from both Harvard and Berkeley, was a Top 10  ranked undergraduate mathematician in the 1986 Putnam Mathematical Competition, and is now a fellow at the American Mathematical Society.

I actually felt bad emailing him because I was asking about such a minor part of his life before 1984, after which he had so many great and important achievements.  I had the feeling, like some many other people from the era that I’ve reached-out to, that he would never get back to me.


Part 3: Four Colors and a Boot Sector 

I was surprised, though, that after a day, Professor Greg Kuperberg enthusiastically responded to my email . We sent several messages back and forth and he was delightful to converse with.  You will find the complete interview at the end of the story (or if you are watching this on youtube, at the link in the show notes)

According to Greg , this is how he got started making games for Kevin Azzouz at Orion Software.


I was 14 when my dad’s former calc student invited me to work for his new company, Orion Software.. It’s true that Orion Software was basically just two people at first, but I was just a programmer in high school, I wasn’t any businessman who starts companies.  It was really his company. At first I worked on the IBM PC in that guy’s house, later my family had an IBM PC that I used at home.  I wrote those three PC games when I was 14 and 15. “

One of Orion’s first games was Paratrooper. Playing Paratrooper is quite an experience. For a “first” game, it has the feel of a polished arcade title from a seasoned veteran. Even the controls, which could have been a mess using the keyboard, feel “right”.  While the game is almost identical to Sabotage, it has its own character as well.

While Kuperberg used Assembly language to write his games, there is more to his work that made them so playable.  He basically by-passed almost all system graphics calls because he found them incredibly inefficient. 

Professor Greg Kuperberg

“In Paratrooper, I remember that I used the system graphics function only to draw the bullet from the gun; the rest was me writing directly to the screen display section of the computer memory.  I was disgusted to learn that this one tiny system graphics call was almost as slow as the entire rest of the screen animation in Paratrooper.  After that, I avoided the system graphics functions entirely.”

You can feel this while playing  PC-Man.  It contains a “smoothness” to gameplay that is just not present in any but the BEST games that were released in 1982 for the IBM PC, for example, Snack Attack 2.   It also feels like Pac-Man.   Maybe a bit too much, but 1982 was a time when the subject of intellectual property and computer games was still a “grey” area.   Some of the changes Kuperberg made were merely functional ways to adapt the experience to the IBM PC platform.

Greg:

one key reason that I rotated the maze in PC-Man is simply that a PC screen is wider than it is tall.  I remember struggling with that issue and I came up with that solution.”

PC-Man was a hit.  I personally have a distinct memory of seeing it on the shelves at Computerland, here in Southern California, a long way from its starting point in Auburn Alabama:

Greg: 

 “It was marketed nationally through computer stores that sold IBM PCs and software for them, stores like Computerland.  Each game had basically one sales wave in the years that Orion Software existed.”

Kuperberg’s final game for Orion and the IBM PC was J-Bird, a game distinctly based on another arcade game title.  It’s very close to the most exacting recreation I could imagine being produced at the time.

Greg:

I was very impressed with Q*bert at the time, but no, I didn’t set out to recreate every possible nuance.   Again, I was only a bit original and I wish that I had been more original. Just in general, I thought of the coin-operated video games as the big leagues, which they were.   These were adult programmers with careers at well-established companies, and they had team support.  I didn’t set out to top them, I just respected them.  But I did want to do professional-grade work, at least as a one-person show. I remember seeing some terrible PC games that were written very naively, I suspect by other teenagers or college students, and I wanted to stand out from that.”

Some of Greg Kuperberg’s games were written in Assembly language as PC “Booter” discs (standalone disks that booted straight into the game, no DOS needed) They did not need DOS, and could get as close to the machine hardware as possible, which was obviously necessary to get such a beautiful game out of the IBM PC-XT’s hardware, which was never designed to even smell a game, much less play one.

Kuperberg described his  development process like this :

“Believe it or not, they were all written in assembly language, and I mainly used a line editor called Edlin.  I discovered that the IBM system graphics support was very slow, so my assembly language programs wrote image data straight into the section of the computer memory tied to the screen display.

And how did Kuperberg get such amazingly fluid animation, when most of the contemporary games struggled to get any graphics on the screen at all?

Well, that was down to math and science:

Greg:


I cared about consistent laws of motion.  When objects fell, they travelled along parabolas.  Instead of using CPU effort to pace the games, the animations were clocked at a fixed rate.  I thought of proper game animation as analogous to movie frames — this is the single biggest reason that my games played smoothly.  I also test-played the games until they seemed fun.  So, these were some basic professional touches that were important to me, but many self-taught game developers back then didn’t think them through.  I had learned enough math and science that I was going to care about basics like that.”

And it’s not just me in hindsight that thinks Kuperberg’s games had the mark of excellence. In the 80’s  J-Bird was used by professional adults to test and benchmark their hardware.

Greg:

my proudest moment came when I read a report about one of my games from a team at Olivetti — they were testing the compatibility of an IBM-compatible PC under development. The Olivetti people knew that J-Bird was demanding regarding compatibility, and they found out that the boot sector was the whole reason.   

But to Kuperberg it was not the benchmarking that made him the proudest, it was the fact that these adult engineers, the type that he saw as in the “big leagues” making arcade games, viewed this code from a 15 year old  kid, and were impressed by it.

Greg:

“(Olivetti) reverse-engineered the whole code and they wrote that it was well-organized and that I had done a good job.    In the long run, I was as happy about that as about the sales or watching people play my games.”

While the technical prowess of Kuperberg’s games set them apart from most of his contemporary competition, the one aspect that holds them back from being truly the work of visionary “auteur”  is fairly obvious:  

None of them are original games.  

They all include original elements, but are still adaptations of other source material. 

This is something Greg readily admits.

If I had had a mature view of the whole issue of originality, then the games would have looked very different.   Even so, I obviously did make some changes to make them a little bit original. “

Part 4: From Arcade Dreams to Mathematics

 As it turns out, making games for the IBM PC  was a short, but very memorable time in Kuperberg’s life:

Greg:

 “ I wrote three games in about a year and a half.  Each one took several months, and there were breaks in between on the order of months. “

After which, Kuperberg started college at Harvard University.   And he never looked. back….well, almost never.

Greg:

 “In my junior year of college, I wrote a Macintosh applet called TimeOut, which (as usual) was an imitation of another game, in that case the home Atari game BreakOut.  That one was written in C++ and used the MacOS environment; by then, I was done with assembly language.  I “marketed” it myself as $2 shareware.   It did well enough, although it didn’t make any fortune — which didn’t bother me all that much.  LIke many desktop applets then, it was deliberately a minimalist effort.”

(You can see TimeOut on the website, Macintosh Repository here:Time Out – Macintosh Repository , but I cannot find any way to play it. )

Science and academia then were Kuperberg’s future , not games.

Greg:


“It eventually became clear that my real love is research in mathematics.  I have done some other programming since college, although not games and not as its own paying job.”


And when then became Orion Software?

Greg:

The president had big dreams to become a successful businessman.  Orion Software had some later projects that involved several programmers, but the company fell apart, so he moved away and started other companies.  He rolled the dice several times more, while I went my own way.  I majored in math and then went to math graduate school, and obviously that became my career.”


So how does Kuperberg contextualize those few, short, heady years in the early 1980’s as a prolific computer game programmer on the IBM PC as compared to his latter work in mathematics?

Greg:

“For me, game development was like summers of fun with high school friends, while my research record as a mathematician has been more like marrying the love of my life. If I could not have become a math professor at a research university, there is a high chance that I would now be a software developer of some kind, not necessarily games.  For example, I was also very interested in computer graphics; I even went to SIGGRAPH twice when I was an undergraduate.

It was obvious to me that the best arcade games on the PC from 1981-1982 were written in assembly language.  While my first job out of college had me working in 80386 Assembly, it was on such a large-scale system, I never really got a handle on building directly for the machine itself.

This got me thinking, what  would it take to build something simple on the PC to display CGA graphics in Assembly code?

It took me quite some time to figure out how to do anything. It turns out, I recalled near ZERO Assembly code from 30 years ago.

I worked through some examples from a  book I found on  Archive,org.
PC assembly language step-by-step : Hoffman, Alex, 1968- : Free Download, Borrow, and Streaming : Internet Archive

I made the speaker beep and then made an ascii organ:
Then I found this blog that showed me how to print “Hello World” on the screen:

8086 Assembly Code Examples: A Beginner’s Guide | by UATeam | Medium

And found some lessons in CGA programming:

Learn Multi platform 8086 Assembly Programming… For World Domination!

I got the machine to  print “Hello world” on 320×200 CGA display:

And I finished by cobbling together enough code from examples (and a whole lot of trial and error) to move a mangled CGA Atari Fuji logo with the keyboard around the screen.

It was a fun day getting familiar with 8088 Assembly language, but it also proved to me just how difficult it would have been to create any kind of working game this way, especially in 1982 with almost no resources at someone’s disposal, and especially for a 15 year old in Auburn Alabama working in IBM’s CGA graphics mode.

Four-Color me dutifully impressed.

I asked Jamie Lendio, author of many books on vintage gaming and computing, including “Starflight”, about early DOS games, what he thought of Greg Kuperbetg’s work.

This is what he said:

“I’ve played many PC booter games, but it’s clear Paratrooper, PC-Man, and J-Bird are on another level with their smooth animation and responsive controls. They were among the few early DOS titles that could go toe-to-toe with anything on the more gaming-focused home computers of the day, like the Atari 800 and Commodore 64. To this day, I have massive respect and appreciation for anyone who learned to program in assembly language; you could really see the difference. And to learn about the care Kuperberg took with the screen refresh rate and system clock, it’s the same kind of programming wizardry we’ve seen from more well-known industry pioneers. All three of his DOS games are genuinely fun to play, even right now. ”

(Find more about Jamie Lendino and his many books here:Jamie Lendino | Video Game Book Author, Editor, Mix Engineer)

This leads me back to the idea of the “auteur”.

What would define a computer game “auteur” in an age when the canvas was so comparatively small and limited?

Was Greg Kuperberg an auteur, or was he  just a great technician? 
If my definition requires wholly original game mechanics, maybe not. But if what I’m looking for is a distinctive way of thinking about games—timing, physics, craft, respect for the form—then his three games absolutely bear the signature of a pioneer if not an auteur.

Part 5: Searching for  “ The Spark’ in The Modern World

So how did this 15 year-old game developer get started in programming?

Greg:

My parents are math professors (now retired), and I was enthusiastic about mathematics from a young age.  I first discovered computer programming at the local university computer center, and I liked it for much the same reasons that I liked math.”

Kuperberg made his first mark when he was 12 years old taking college level Calculus  classes at Auburn University.   He was even featured in newspaper article in the Gadsden Times Jan 27, 1980:

For some reason, I’m struck by this picture.


Kuperberg looks so young, yet so confident.
The portrait of a kid genius, who, by all measures, lived up to his potential.

This leads me back to how I started this quest: looking for what I refer as “the spark”.

So what might it have been for Professor Greg Kuperberg?


What was it that at this age, got him so excited about the future and about technology?

Well, in his case, it was simple: mathematics.

Greg:


“I remember being thrilled with solving conceptual math problems when I was 7.   At that time I was not very good at constructing proofs, but I remember that I was interested and I had gotten started.  Before that, although I do not remember it, my dad would give me arithmetic problems on car trips“

Then, like many of us from that age he discovered the BASIC language.

Greg:

“I was 10 or 11 when I started programming.  An older friend invited me to the Auburn University student computer center, where they had (I think) an HP mainframe and later  a DEC mainframe.  Again, in the first year I was not very good, but I had gotten started.  At first it was in BASIC, as it was for most children then.

And then to video arcade games:

Greg:

I spent more time at the video game arcades than I should have from middle school to college, at random times of the day, maybe usually in the afternoon.   I also mostly did computer programming during the day, on days when I wasn’t at the arcade and wasn’t busy with homework, etc.”

And finally,  he made the next jump, the one that separated the enthusiast from the hardcore  on early machines: to 8088 Assembly language.

Then he made his three games for Orion Software.

So in 2025, in an era of cynical tech companies and A.I. bubbles, what does Kuperberg, who interacts with students on a daily basis, think could be the “the jolt / the ignition/the wake-up call” for the next generation? 

Greg:

“What BASIC did for me, Python did for my children and still does for many children and college students.”  

Python. 
I personally could not agree more.
But with a strong caveat, Professor Greg Kuperberg again

“What I think is a shame — and this was a trend long before the AI revolution —  is that good apps for writing in BASIC or Python became hard to find, unless you already knew that you were interested.  What was there for everyone on the IBM PC became obscure. “

And his point is a good one.  No one had to push kids like Kuperberg to want to learn BASIC code when he was 10 years old. There were no coding boot-camps, or STEM immersion, or U-Code store fronts with paid lessons  in Minecraft Red-Stone or Roblox game development. Instead, there was just exploration, and an eagerness to learn. 
And right there on the desktop of almost every home computer, was a copy of BASIC waiting for a kid to stumble onto it and be “sparked” into a life in technology, science and math


Kuperberg ,himself,never felt “pushed” into math, but simply immersed.

Greg:

my parents are mathematicians.  They never pushed me into any of this, but they had a huge positive influence.  Think of it as similar to skiing, say. Obviously if you live in the Colorado mountains and your parents are skiers, you are much more likely to get good at it at an early age

And the “spark”, well that  was something he shared with his family
Greg:

“ If you want to ask about the spark of interest, really my parents shared this same spark with me…”

This trip through the life of Greg Kuperberg has become one of my most satisfying ventures into the world on vintage computing.   I began my quest to validate my concept of the “the spark of technical curiosity.”  But the answer was always there, and I knew it.   For me, that spark was an Atari 800 and a stack of floppy disks. For Greg, it was a math-professor household and an HP mainframe. For kids now, it might be Python on a Chromebook or something we haven’t even discovered yet.

What I go back to now is that photo of Kuperberg from 1980, the wide-eyed junior high schooler, holding his own with the other college students at Auburn, discovering programming there, and taking his first steps into the world of technology and his future.

After taking this deep dive and conversing with Professor Kuperberg
I think what I see in that picture is not fleeting.

He was  just a kid, but raising his hand to the world with an air of confidence, ready to take it on.

It is the wake-up call of a computer game pioneer who had the mark of an auteur, but found his passion elsewhere.

It’s the jolt of childhood wonder captured in a single moment, betraying the future to come—the spark that will lead him to three early PC games and then finding his true calling:  a lifetime in mathematics

Extra:  Full Interview With Professor Greg Kuperberg, November 2025

Steve:    I’ve been diving into the history of early IBM PC games, and your work on Paratrooper, PC-Man, and J-Bird really stands out. Those games were such an impressive technical feat for 1982–83, especially given how smooth and well-timed they were on the original PC hardware.

Greg: “Thank you for saying so!

In fact my games were not as technically impressive as, for example, the first version Microsoft Flight Simulator which came out around then.  But I do think that I did a good job, considering that it was a very new platform with very primitive software support.   I was also still in high school and I was very enthusiastic about these projects at the time.  I sensed that I was not really a top professional game developer, but I was very happy to write software that anyone might consider professional grade at all. My proudest moment came when I read a report about one of my games from a team at Olivetti — they were testing the compatibility of an IBM-compatible PC under development. The Olivetti people knew that J-Bird was demanding regarding compatibility, and they found out that the boot sector was the whole reason.   The boot sector was bad on purpose to make it harder to pirate the game.  It was written by my friend Kevin Nomura who I met at a summer math camp in Chicago, and who later worked briefly for Orion Software. (Ollivetti) reverse-engineered the whole code and they wrote that it was well-organized and that I had done a good job.    In the long run, I was as happy about that as about the sales or watching people play my games.”

Steve:  How did you get into programming ?

Greg  “My parents are math professors (now retired), and I was enthusiastic about mathematics from a young age.  I first discovered computer programming at the local university computer center, and I liked it for much the same reasons that I liked math. At some point back then, my dad had a calculus student who wanted to start his own software company, and he hired me.  Initially it was run out of his house and I would write code there.  Later my family bought an IBM PC, and after that I wrote code at home too.  In that period, I also really liked coin-operated video games.  So, naturally my plan was to write computer games.  In hindsight, I certainly wish that they had been more original.”

Steve : Did you always love math?

Greg  “I remember being thrilled with solving conceptual math problems when I was 7.   At that time I was not very good at constructing proofs, but I remember that I was interested and I had gotten started.  Before that, although I do not remember it, my dad would give me arithmetic problems on car trips and similar.  If you want to ask about the spark of interest, really my parents shared this same spark with me.”

Steve: So your parents played  math games with you when you were little?

Greg My dad would give me math problems to solve from time to time, and he made them proof-based questions.  He was an inspiring teacher, and not just for me.  In my case, I had early experience with proof-based mathematics long before I took calculus.  I could also enjoy a long learning curve before I was all that good at proofs.  Moreover, this wasn’t dry statement-reason tables as in 10th grade geometry, it was coming up with good explanations.”

Steve: What age were you when you started programming?  

Greg “ I was 10 or 11 when I started programming.  An older friend invited me to the Auburn University student computer center, where they had (I think) an HP mainframe and later  a DEC mainframe.  Again, in the first year I was not very good, but I had gotten started.  At first it was in BASIC, as it was for most children then.”

Steve: What tools did you use to make your games?

Greg “Believe it or not, they were all written in assembly language, and I mainly used a line editor called Edlin.  I discovered that the IBM system graphics support was very slow, so my assembly language programs wrote image data straight into the section of the computer memory tied to the screen display.

For the game graphics, I drew pictures on graph paper and I converted them to hexadecimal data.  Later (for J-Bird) my code had basic sprite functionality for sprites on a background image, which I also wrote myself.  It was hardly perfect, but it worked.

I cared about consistent laws of motion.  When objects fell, they travelled along parabolas.  Instead of using CPU effort to pace the games, the animations were clocked at a fixed rate.  I thought of proper game animation as analogous to movie frames — this is the single biggest reason that my games played smoothly.  I also test-played the games until they seemed fun.  So, these were some basic professional touches that were important to me, but many self-taught game developers back then didn’t think them through.  I had learned enough math and science that I was going to care about basics like that.”

Steve : Whose IBM PC did you use to make the games (or was it a different machine)?

Professor Greg Kuperberg :” I was 14 when my dad’s former calc student invited me to work for his new company, Orion Software.. It’s true that Orion Software was basically just two people at first, but I was just a programmer in high school, I wasn’t any businessman who starts companies.  It was really his company. At first I worked on the IBM PC in that guy’s house, later my family had an IBM PC that I used at home.  I wrote those three PC games when I was 14 and 15. “

Steve : How did you learn the 8088 architecture so quickly?

GregBy the time I was 14, I had good experience with BASIC, I had seen some FORTRAN and a little bit of PASCAL and C, and I had taken a university class in assembly language.   The 8088 assembly language was different from the (I think) IBM assembly language in the course, but by then I knew what assembly language was.  It helped that the 8088 is a fairly simple chip with a fairly straightforward assembly language.  The documentation could have been better, but it was usable and I was pretty determined since it was my “job”.   In any case, I could learn by doing, by writing very short 8088 assembly programs at first.”

Steve: What did you think of the IBM PC as a games machine as compared to something like the Atari 800?

Greg:At the hardware level, the IBM PC impressed me as a fairly clean computer that can in principle do anything.  But it is true that out of the box, it had very little software support for games.  It’s also true that it had limited colors, and that audio support was limited and bad.”

Steve: Did you play arcade games in the early 1980’s?  Was it like playing games by day and programming by night? 

Greg  I spent more time at the video game arcades than I should have from middle school to college, at random times of the day, maybe usually in the afternoon.   I also mostly did computer programming during the day, on days when I wasn’t at the arcade and wasn’t busy with homework, etc.”

Steve : How did the game Paratrooper come about?  Was it your idea or the guy who started the company?

Greg  Yes, Paratrooper was inspired by Sabotage on the Apple II.  Someone showed me Sabotage and I then implemented Paratrooper on the IBM-PC.  I didn’t set out specifically to do a better job than the author of Sabotage (whoever that was), but I certainly did want to do a good job.  Its smooth play has everything to do with clocked timing at a specific refresh rate, and test-playing the game as I developed it so that people might enjoy playing it.”

Steve: Paratrooper is so smooth playing, it’s even better than Sabotage, the game that (possibly) it was patterned after.  Did you set-out to make a better version?

Greg  “ I had meant the refresh rate for all 3 games to be 25 frames per second, and I used the hardware level PC system clock for this.  Much later, I discovered to my chagrin that even though the system time was reported in hundredths of a second, it was actually only updated 18.6 times per second.  So my actual clock rate was 18.6 frames per second while I thought it had been 25 frames per second.  Even so, I had test-played them at that speed, so I left it alone.

The software thus had 1/18.6 of a second to complete its work for each frame.  Since I wrote it in decent assembly language, this was mostly plenty of time, but I didn’t think of a simple way to test how close I was to the limit.  Paratrooper and maybe J-Bird did sometimes reach the frame time limit when the game scene was very busy.  I had meant the frame refresh to simply run late and catch up to make the play smooth enough.  However, I think that I wrote the timing function incorrectly so that it instead stuttered and took a full 2/18.6 of a second in these cases.

In Paratrooper, I remember that I used the system graphics function only to draw the bullet from the gun; the rest was me writing directly to the screen display section of the computer memory.  I was disgusted to learn that this one tiny system graphics call was almost as slow as the entire rest of the screen animation in Paratrooper.  After that, I avoided the system graphics functions (in the hardware platform that was called BIOS) entirely.”

Steve: How long after Paratrooper did you start PC-Man?  How long did it take to program?

GregI wrote three games in about a year and a half.  Each one took several months, and there were breaks in between on the order of months. “

Steve: PC-Man makes few changes to the game it’s inspired by (i.e. the maze is rotated 90 degrees, and the “prizes” are different).  Was intellectual property on your mind, or did you just feel like this game played better that way on the PC?   

Greg  “If I had had a mature view of the whole issue of originality, then the games would have looked very different.   Even so, I obviously did make some changes to make them a little bit original.   Also, one key reason that I rotated the maze in PC-Man is simply that a PC screen is wider than it is tall.  I remember struggling with that issue and I came up with that solution.”

Steve: I’m pretty sure my friend out in California bought a copy of PC-Man at Computerland.  Do you know how far and wide that game spread when it was first released? 

Greg  “It was marketed nationally through computer stores that sold IBM PCs and software for them, stores like Computerland.  Each game had basically one sales wave in the years that Orion Software existed.”

Steve: J-Bird emulates its’ source material (in game play) to an almost exacting extent.  Did you set-out to recreate every nuance possible?

Greg I was very impressed with Q-Bert at the time, but no, I didn’t set out to recreate every possible nuance.   Again, I was only a bit original and I wish that I had been more original. Just in general, I thought of the coin-operated video games as the big leagues, which they were.   These were adult programmers with careers at well-established companies, and they had team support.  I didn’t set out to top them, I just respected them.  But I did want to do professional-grade work, at least as a one-person show. I remember seeing some terrible PC games that were written very naively, I suspect by other teenagers or college students, and I wanted to stand out from that.”

Steve: What happened to Orion when you went to college?

Greg  “The president had big dreams to become a successful businessman.  Orion Software had some later projects that involved several programmers, but the company fell apart, so he moved away and started other companies.  He rolled the dice several times more, while I went my own way.  I majored in math and then went to math graduate school, and obviously that became my career.”

Steve: Did you make any more games after Orion software?

GregIn my junior year of college, I wrote a Macintosh applet called TimeOut, which (as usual) was an imitation of another game, in that case the home Atari game BreakOut.  That one was written in C++ and used the MacOS environment; by then, I was done with assembly language.  I “marketed” it myself as $2 shareware.   It did well enough, although it didn’t make any fortune — which didn’t bother me all that much.  LIke many desktop applets then, it was deliberately a minimalist effort.”

Steve: What made you decide to move on from game development?

Greg “It eventually became clear that my real love is research in mathematics.  I have done some other programming since college, although not games and not as its own paying job.  For me, game development was like summers of fun with high school friends, while my research record as a mathematician has been more like marrying the love of my life.

If I could not have become a math professor at a research university, there is a high chance that I would now be a software developer of some kind, not necessarily games.  For example, I was also very interested in computer graphics; I even went to SIGGRAPH twice when I was an undergraduate.”

Steve: What do you mean by  “summer of fun with your high school friends”    Was it like communal programming time with your friends?

Greg “What I mean is that those three video games were *like* three high school friends, and writing them was like summers of fun with friends.  I wrote them by myself, except that my sister drew some of the sprites for J-Bird, and I don’t remember about PC-Man.   Whereas my results in mathematics are like my children, my family.  (I also have an actual family though, let’s not take the analogy too far.)

I have done some computer programming with a single code partner from time to time, but the majority of my work as a programmer — and as a mathematician — has been me working independently.”

Steve: I’ve read about other game developers the era (e.g. John Harris from Sierra On-Line) that got so enamored with their target system architecture (in Harris’s case, The Atari 400/800) that they found it very difficult to move-on once the technology, inevitably, changed.   Did you find it difficult to leave the IBM 8088 for the Macintosh 68000? 

Greg: “I can’t say that I outright loved the IBM 8088/8086 platform.  I was very happy to achieve things with it, but that’s not the same thing.  This platform was a high-school friend with its own quirks and limitations. When I was in college, I switched from PC to Mac as a personal computer because that’s what most college students did.  The Mac had windows first, so the Mac seemed way cooler.  I took a look at the Motorola assembly language at some point. I’m not sure whether it just seemed more complicated or truly was more complicated, but I didn’t feel like making an investment given that portability between different instruction sets was getting ever more important. 
Although C/C++ wasn’t as fast  as assembly language, and maybe not yet fast enough for fancy video games, it was fast enough for a lot of things.  So I programmed in C/C++ throughout college and some in graduate school.  I didn’t worry about learning the 68000 instruction set thoroughly. Which is not to say that everything went swimmingly writing in C/C++ on the Mac.  TimeOut was a windowed applet, and I also had a joint student research project with my roommate Jim Matthews ( https://www.linkedin.com/in/james-matthews/ ) where we wrote a 3d plotting program.  (It was similar to Mathematica’s 3d plotting, but a lot simpler).  So I needed to learn the window system API up to a certain point.  That introduced me to bureaucratic object-oriented programming, which I didn’t like and I still don’t like.  I try to simplify my programming as I go along (as the Olivetti team noticed) and my math too. The very complicated user interface and database APIs out there are just not my style.  Even so, in the case of early versions of the MacOS, I suffered through it well enough for two coding projects in my junior year. I like lightweight object-oriented programming when it is used to simplify rather than complicate life.A year or two after I came to UC Davis in 1996, I switched from MacOS to Linux, which is what I still use today.”

Steve: You have your own legit Wikipedia page, which is not an easy thing to achieve n 2025.

Greg: ‘It’s actually not that super difficult to have a Wikipedia page if you are university faculty.  The Wikipedia page was started in 2008 by someone named “Lissoy”, who appears to be from Auburn, so it’s not really a 2025 thing.”

.

Steve: Being a professor in this day and age, you must see many kids who have the same “spark” of interest to explore technology, math and science, maybe in unconventional ways.

Greg “ I certainly do see some students every year who like math a lot, and some who like programming a lot.  It is usually more conventional than you might think, but yes I see it.”

Steve: The tech industry feels so very cynical now, with start-ups chasing flimsy A.I./Crypto/Engagement “products” and the world seemingly saying “A.I. Can do the job you are training for”.   Are the kids coming into school disillusioned?

GregAI has obviously stirred up a lot of feelings of all kinds in a lot of people.  That said, I don’t see all that much change in the good students who like or love math for the right reasons.  There is an ocean of calculus students who have reached their limit of their interest in math.  Many of them were cynical even before the AI revolution, and now AI has increased their feeling that they live in a “fake it till you make it” world. People say that social media and AI are leading to more brain rot.  This could be true; maybe many students who could have had a healthy interest in math or programming instead have unhealthy tech habits.  But good students still exist.  Free access to great mathematics on the Internet can also be helpful.”

Steve: Final question : In your view, what exists now that could bring the same spark to kids that you had in the 1980’s programming in 8088 assembly language?

Greg  “What BASIC did for me, Python did for my children and still does for many children and college students.  What I think is a shame — and this was a trend long before the AI revolution —  is that good apps for writing in BASIC or Python became hard to find, unless you already knew that you were interested.  What was there for everyone on the IBM PC became obscure.  The new AI has brought it back a little bit, because they can whip up Python code, but this is not really an improvement, because people then watch the AI whip up some code so that they don’t have to learn what is going on. “

Steve: (I asked Kuperberg for photo of himself at 15, when he programmed these games, but instead he sent me a ;link to this news article on Google Books):

https://books.google.com/books?id=k6MfAAAAIBAJ&lpg=PA26&dq=greg%20kuperberg%20calculus%20auburn&pg=PA26#v=onepage&q&f=false



Greg “The article mentions me taking calculus early (which is not as unusual now as it was then), but it also mentions the same Auburn computer center where I first learned how to program.

As the article points out, my parents are mathematicians.  They never pushed me into any of this, but they had a huge positive influence.  Think of it as similar to skiing, say. Obviously if you live in the Colorado mountains and your parents are skiers, you are much more likely to get good at it at an early age.”

联系我们 contact @ memedata.com