Donkey Kong and I

Original author: Landon Dyer
  • Transfer
In the fall of 1981, I entered the university and became addicted to the games Centipede and Tempest on the Atari arcade machines. I was a little versed in the hardware of the Atari 400/800 personal computers and decided to make a ruinous purchase for the student budget - the Atari 400 and a black and white TV (I could not afford the color one). Having played enough with Basic, I bought a cartridge with Assembler / Editor and began to pore over Centipede clone. I did not have the opportunity to rely on the experience of previous game projects and I was forced to understand everything on my own. Just like with school tasks: you need to find a solution using only small hints from textbooks and lectures.

Everyone who has worked with Asm / Editor, most likely, bears the same deep emotional scars on himself as I do! The editor was incredibly slow, the debugger worked for incense, and I had to delete comments and use overlays in a couple of kilobytes ( there were not many RAMs and all variables could not fit, so the overlay technique was used - different groups of variables were located at the same addresses. It is clear at the same time, variables from different sections could not be used, and not only variables with the same address, but also variables from different overlay sections in general.) to fit the whole code. Making the game, which I called Myriapede, took three months. I still keep sketches and sketches: graph paper, striated with multicolored pens and with hexadecimal values ​​of colors, carefully written out on the field. I picked up the colors randomly: I only had a cheap black and white screen, and I went to visit a friend for a couple of hours to check and adjust the color values ​​on his TV.

Atari Program Exchange (pocket publishing) announced a competition with the main prize of $ 25,000. For the entire semester, I was skipping university classes and was engaged only in Myriapede. I finished the game with a margin of a week or two and sent it to the competition.

A few weeks later, a letter came from Atari, in which they reported: firstly, they were very impressed with my work, but, secondly, it was very similar to Centipede (well, yes, it was) and therefore they are forced to reject it. The subtext went that they would probably sue me if I tried to sell the game. I was crushed. Closing this topic for himself, he took a couple of copies to a local hobby group. I think that the game was distributed from there, and I heard that people liked it (“the best program of 1982” or something like that).

Some time later, I received a call from Atari: they invited me for an interview. I shook with excitement. I flew to them, and each interviewer was shown Myriapede. And always on this place conversation faded. Before the start of the game, they seemed to be just giving me attention - “Ok, man, you wrote the game” - but after the start they got involved in the process and I reminded them that we were actually at an interview! One of the interviewees was the author of the original Centipede and he immediately said on the spot that my version is better.

The job offer was received in a couple of weeks. Atari pledged to transport all my junk that occupied the entire room to California. And I flew right away and spent two weeks at the hotel while I waited for the arrival of my things. The company really wanted to get me very much!

At that time, there were two popular games on arcade machines that I simply could not stand - Zaxxon, a dull and boring scrolling shooter, and Donkey Kong - loud, meaningless and annoying. And, of course, the reason why they needed me in California was porting Donkey Kong. After going through fits of hopelessness (and feigned enthusiasm in front of the bosses), I gritted my teeth to squeak, took a tube of quarters and spent a lot of time in front of a small arcade machine at the hotel, playing in DK to learn this game very, very well.

Here it is necessary to explain how the department for porting games from arcade machines worked in Atari. In essence, the guys from the marketing department agreed on a license to distribute "Imenk" from IgroDela on cartridges for Atari computers. Everything. That was the whole deal. We had no help from the original developers. No listings, no conversations with engineers, no project documentation - nothing. In fact, we were forced to buy our own arcade machine and learn how to play this game (by the way, that's why I played in the hotel - our copy of the game has not even been brought yet!).

So I played Donkey Kong as much as I could and started to beat the ideas. I wrote a 25-30 page design document in which the game was divided into modules and the development time was estimated at 5 months (this was in November 1982), and, worrying, brought it to my boss, Ken, Was the document good enough? Or will they send me to pack my things as a non-professional designer and amateur programmer?

"We are completely delighted with your TK," said Ken. And I just listed the objects in the game, wrote some pseudo-code for some key game modules and assumed that this was only a reserve for a real TK! But all around perceived this document as completely finished. And it seems like I just need to write the code, according to him. It was scary.

"The marketing department is waiting for the game for Christmas," Ken issued. And I, making careful calculations, approached the mark of 150 working days. There was not a single chance to port the game in a couple of weeks, but I clearly felt the pressure. From idleness (of all the worries, I only had to look for an apartment and place my things upon arrival), I spent almost all my time at work. I spent the first time all night without sleep, raising the bar higher and higher, in order to walk at a pace with the guy in the office across from me, who also worked all night long. The dining room provided three meals a day.

The great thing is that if you get into the project so much, then from a certain moment it starts to write on its own, and you just seem to be floating next to it. Your life is divided into work and all the boring nonsense - sleep and eating. Yes, I know, it sounds like hell, but in fact it's amazing fun. I was about 21, and even if they didn’t pay me, I would still do something similar for free.

For cross-development, we used MV / 8000 minicomputers from Data General. About the exact same machine Tracy Kidder wrote the book Soul of a New Machine. Despite the fact that it was not VAX with Unix on board (which would be preferable for me), the environment was still quite comfortable and contained some good utilities (although there was no Emacs!). We used the Atari Macro Assembler version ported to the MV / 8000, and it was much better than the unspeakably slow Assembler / Editor in which I wrote Myriapede. But we had to upload all the code to the development systems with a speed of 9600baud, therefore, closer to the completion of the project, the processing time of my requests to the system became a serious problem, especially considering 40 or 50 of my colleagues with whom I shared MV / 8000 during the day . I remembered the loaded mainframe in my university. I often stayed up late, and somewhere around six o'clock in the evening, the cars started to work quite quickly (5 minutes to wait instead of about an hour).

On my first day after arriving at the office, after introducing a course of affairs, I found a packed Atari 800. I quickly assembled it, checked it out and earned it, and went for coffee.

When I came back, the supply girl was standing in the doorway. “Wow,” she gasped, “you know how to assemble a computer! And I just had to do it. ”

Yeah, thank you, but shouldn't everyone here have such a skill? Connecting and configuring Atari is not the easiest and most obvious task, but it's not at all difficult.

The alarm bell ... The first officemate did not know how to set up his computer. In fact, he did not know anything, as it turned out later. He was hired to work on Dig Dug and he was at a loss. I had to teach him everything, including programming in assembler, how the Atari hardware works, how to download various information, how to debug it. It was sad.

This situation was a red thread through my work at Atari. It was not necessary for beginners to know how to do their work, and I spent time trying to help me figure out the things that they should have already known before starting work. The tactics of hiring employees were imperfect.

I have written in C for several years, and therefore I developed something like a C dialect for describing the work of modules. At first I scribbled a few pages not of this high-level pseudo-C, then spent half a day “compiling” it into 6502 assembler. Sometimes it turned out that a rather large portion of the code worked the first time! But in general, it was a rather frightening experience.

Another experience has been to understand that commentary is for some reason important. I saw pieces of Atari operating system code (including OS sources for 400/800) and they were quite clear and beautiful. But most of the game sources coming from the consumer software department were terrible, heaps of garbage: almost no comments, no understanding of what was going on. Just listings consisting of LDA / STA / ADD, a set of letters, and possibly a random label that had a meaningful name. In other words, completely unsupported code! In most situations, this is quite the norm for the gaming industry: almost no code has ever been reused or transferred to libraries (except for well-established procedures from the Atari Coin-Op division, performing mathematical operations and working with coin mechanisms in arcade machines).

I think that DK is best commented among all consumer products released by Atari (Super Pacman is even cooler, but it was not on sale). Users do not see comments, unlike other engineers who are useful to learn what you wrote. For example, Mario jumps are calculated according to simple physical laws of motion, and the equations are written in the source code, well formatted, and you can always see where these magic expressions come from in the code. After the release of DK, my colleague got a copy of the code, spent a week in reading and said that he was just shocked ("I don’t know how you could print all this. Not exactly in five months! When I saw the code associated with the movement, my jaw dropped on the floor."). It drove me into the paint! The source code should simultaneously serve entertainment and education.

Donkey Kong went on sale in mid-March 1983. I vaguely recall a small party at work on this issue, but at that moment I was most happy that it all ended.

Technical details. Kong uses the $ E graphics mode (192 lines image for 160 columns). When the level was loaded, the background was drawn once. The barrels and the rest of the creatures were displayed on the screen via xor (I had the code responsible for building the masks and redrawing, but it turned out to be too slow). Mario consisted of several game objects (I think there were three of them). Prize things (umbrellas, ...) also belonged to game objects. The output of graphics with the help of xor annoyed me, but most did not steam, and some thought it was cool to do that! (When drawing, the color of the background pixel xor was with the pixel color of the object, when it was necessary to remove the object from this position, just xor'or back, and the background color was restored ).

Brad Fuller has created all the sounds. Mona Lundstrom was working on a significant piece of graphic design (but I redrawn most of it). Another engineer was responsible for the “cut-scenes”, whose code I had to completely rewrite (he initially wanted to use the Fort and did not understand that the game could not allow half of the space on the cartridge to be given to the fort interpreter just to make his life easier).

At the peak, DK occupied 20 kilobytes, but it was necessary to put it on a diet, because the cartridge contained 16Kb. Many images have been compressed (note, for example, that Kong is symmetrical). In the end, I gnawed just a few bytes a day, and the game came out with a margin of maybe ten free bytes.

I left pascalha, but it is not worth the effort to find it. Besides, I don’t remember how to get to it exactly (something like dying at the “heap of sand” level with three lives and more than 7000 points earned).

Adjusting the complexity, I slowed down the game and just made sure that it was passable. Some trajectories of objects are random, but limited to such limits that you can still pass them if you are fast enough.

At the first meeting in the department, I walked with confidence in the future Atari. Although I did not understand much, the main idea of ​​management was that sales slowed down, profits fell sharply, and the company had to go through restructuring in order to remain profitable.

The building opposite was the first sign: Atari used it to manufacture 2600 gaming consoles. They moved production abroad and fired most people from a local factory.

Small cuts in the marketing department. A small porting group of 8 programmers with me, among them, were transferred to a small building, which was rather far from all the main Atari buildings, and we were actually isolated from what was happening. But even from this distance, we have seen that things are not going very well. The gaming industry has been shaken badly, and Atari has dumped millions of unsold cartridges into landfills. All those mistakes, which for the time being were covered with furious success, suddenly flared up and hit the company hard.

My colleague has finally finished Robotron. Upon request, she made three versions of the ROM image, differing in ROM addressing. Unfortunately, the Q / A department was able to check only 2 of them. Guess what version of Atari sent to production and which version had a critical bug? I saw how hardware engineers suffered when they realized that a cheap logical gate could fix the game. In this case, only a few bytes were incorrect. In the end, Atari threw out $ 200,000 cartridges into the trash.

I had a feeling that similar errors occurred constantly. In addition, all this was complemented by the fact that the games simply were not sold. Focusing on the time-to-market metric, marketing Atari forced engineers to write unpolished, boring games. And this practice has turned against them! People are tired of playing the same games for old reasons.

Mass layoffs and reorganizations were held every few months. Our group was transferred to the corner of the building for the Coin-Op division: consolidation for the sake of cost savings. I was working on Super Pacman at the time, but nobody cared, so I went into the process and did a good job on the game.

Ultimately, Jack Tramiel bought the parts of Atari that he needed, and I found myself involved in work on the Atari ST, but that’s another story.

Also popular now: