Translator: frank firingsquad: www.firingsquad.com/features/carmack/
People hiding behind the scene
John Carmack is a founder of people who have little need to introduce - ID Software. The company has created the first person shooting game, and independently changed the definition of the PC action game. From Commander Keen to Doom, the game to Quake, Carmack / ID attracts millions of players to repeat their opponents in front of the computer screen.
At the end of December last year, Firingsquad and Gamers.com got a rare opportunity to make a long, face-to-face interview with John Carmack. We use this opportunity to further understand John as an ordinary person - instead of a programmer. We also asked John to ask him and the future development plan, as well as his views on the current situation and development direction of the game industry. The following question is displayed in bold words, and John's answer is displayed in normal text.
Firingsquad: How old are you this year?
John: 29 years old.
FS: Do you think marriage affect your programming?
John: No. If I think I think, I will not marry.
FS: So how do you and Anna [kang] usually spend a day?
John: Recently we have been building some rocket models. I accepted a visit, someone asked me when I was teen, I mentioned the rocket, bomb and some similar items. I think this is very interesting, I like this. Of course, now you can talk to the Internet "I want this, this and this." They now have a lot of rockets used than I used - these powerful rockets have 2000 Newton's driving force!
FS: Do you and Anna will conduct a one-to-one online game?
John: Just yesterday we also played this game, Anna made a joke with one player - she kicked him. I was meeting with some other people, so they played for a while, and she has been teasing him. But when I opened the meeting, they took me into this guy's room, let me sit down. I made a counterattack and won a small-scale victory. As I expected, I heard the curse she sent from the other side of the building. She still believes that another guy gets skills in the game's final magic!
Fs: I read some of your previous interviews, where you mentioned the babies and other items. Are you a little child, right?
John: Yes, now I remember, I am in many ways in many ways, I am a big ghost. I have gradually matured these years. I am thinking about the year now, I think I am not good at the time. I mean, even though I am very smart - I have started writing computer programs at the time, but I often confessed.
Fs: If you need to give someone in your own school, you will say what you want to say, what do you say?
John: I have clearly known what I want to do. I want to program - I know this at the age of 12. I know, this is what I want to do, and I clearly know the goal I want to achieve. You can't always say that the world owes you want to get. But it is indeed a need to provide some necessary help for a child. My parents never really understand me, so I didn't get the computer I want. I blame my mother for nearly ten years, but we have been in this matter now.
I was very depressed at the time, because I clearly know what I want to do, but I can't do it. People are accustomed to think: If you want to work in computer, you need to enter MIT, go to a company, become an engineer, follow the "recognized development path". But I dropped out of school from college, and then created my own company. My brother chose a more conforming path. He got a degree and became a stock agent, and this is exactly my mother hopes to do it. He has a good thing, but it can't have a lot of Ferrari sports cars like me to make parents feel proud. I can say it now, I am very well in my mother now. We can discuss these things and memories, she realized that she made a mistake in some ways. But what is this? She will not raise another child.
CARMACK's attitude fs for money fs: You are already very rich - what is the impact on you?
John: The wealth I have now is enough to make me no longer need to continue working; I really don't need to work again. This freedom feels very good. Because as long as you have enough money to maintain your life, you don't have to listen to anyone, you don't need to try to make more money. Although many people are already very rich, they still succumb to the temptation of more wealth.
I basically have everything I need. I have enough wealth to maintain the normal life of myself and my family, so there is no person, any company can have a serious impact on me.
FS: Is there some fields, do you think you can use your wealth to impact?
John: I try to consider problems like this. I don't try to do it too much in promoting other things. I hope to solve the technical problems of things directly. Of course, I can use money to solve some things, but I want to solve problems in direct ways.
That's why I am not a very good manager. I am an engineer, so I want to solve the problem directly. I hope to build the environment in order to better solve the problem, although in many cases I realize that I need to complete a larger scale. But this is not only I can do.
I am very good at work in this field, and I like it very much, so I don't want to go to other fields. My wealth is enough to let me retire in advance, but I like my current state.
I am very disgusted in this regard. Some founders were originally a very good engineer, but now it has become the supervisor of their department, and is mainly engaged in management, not project projects. At the same time, most employees who have managed are far less than their original level in handling practical work.
I hope such a thing will never happen to me. I hope that I will always be in front of the industry and engage in actual development. Of course, returning to the back of the scenes, research theory and more wide viewing angles will also bring some benefits, but if you don't understand the specific details of development, such as the connection between the project and the real world, you will turn into one will only Praise the theorism. You can see this huge difference from the atriant's work from the work of the engineers engaged in real development.
In the past two projects, my time was divided into several paragraphs. I have a pure theoretical study for approximately three months. I am currently in this stage, during this time I need to cooperate with different people. Then I will engage in project development work with approximately 16 months. More attention is quite important to me, but I don't want to use my most of the time for theoretical research. I think the key to research is to find a new approach, but when you want to truly take action, only these theoretical knowledge is far less than enough.
Focus on and inspiration FS: Your focus on your work is amazing. It seems that you are the only person who is right for this work.
John: Focus is very useful. In this environment, I think the software is an almost ideal medium. But if you don't do this, I may become an engineer or a scientist in a sense. I can engage in any "hard science."
Software has many different advantages. Researchers engaged in physical trials need to prepare and produce tools for a year, and then spend a year to analyze the test results. But when developing software, you can immediately see the run results. You just need to sit there to repeated debugging the program. You can run the program immediately. This is the easiest way to adapt to all intellectual exploration activities. I am glad that I live in the era of very prosperous in this software industry. I remembered that when I was still a young man, I didn't have the computer I want. I feel very frustrated. I think I "missed a good opportunity". I think I should write these games, such as early Apple II games. The reason why I feel is sincere because I think I missed the best time. Of course I didn't know what I could seize the "next" best time.
Have you read the "hacker" written by Steven Levy?
FS: After reading, this book is great!
John: I read this book at the age of teen. When I saw the third chapter, I felt "God, this is what I should do!" After about 10 years, I recalled myself at the time: "If the book has the fourth chapter, maybe I will join That industry. "This is a very interesting idea.
It is very interesting to see this experience now. When I was a young man, I felt missed my best time. Because it was the golden period of the early development stage of the PC, I didn't seize the opportunity for yourself.
FS: Do you think that programming work and transforming the idea into program code, I have inspired your interest in programming? Or are you playing some games in early APPLE II and PC?
John: I can say that I am very liked at the time, but I really like to perform abstract programming. I like a lot of unique things.
Many people join the game industry is what they like to play, and they are happy to innovate.
My love for programming comes from a more abstract feel. I can get a lot of fun from writing device drivers for Linux. I also like to write database management programs or other programs because some interesting questions are always encountered during development. Some things can bring me more satisfaction. Images and games are likely to be the most dominant areas that can bring a sense of accomplishment in programming.
FS: Why?
John: Because you can get a very imageive feedback. When you write an image algorithm, it can draw a picture for you. Although data programming gives people in other ways to satisfy, humans obviously be more interested in visual objects and things that must be understood by symbolic. This is the basic reason for the image programming. But we must conduct a lot of research. I like all of the fields of this work, but game development will always make you understand the satisfaction you bring to you after overcoming some challenging questions.
I really like RPG games early, such as Ultimas, Wizardrys, and all similar games. Some very early games I developed for Apple II are basically Ultima's release. I also like all classic duel games.
Epiphany FS: From a sense, do you think that "Dragon and Dungeon" is what you want to see, with a certain text and dialogue game mode? Is it like a Quake engine? Is it a game structure that can add various contents?
John: It is like a way to develop new games from scratch, using a method that does not have any restrictions on you.
In fact, we initially plan to develop quake as an RPG game - not a full sense of RPG game, but a fantasy game. However, because of the complex development process of Quake, it has been completely deviated from this track. I have been very willing to explain the goals developed to the game we have developed at the beginning. Although they have become a very different game with our goals, I am very satisfied with the final result. We are unlikely to develop a fantasy / role playing game.
FS: I heard that you have reduced your management of "Dragon and Dungeon".
John: From Wolfenstein, the entire company plays the game we develop every weekend. Playing games has decreased in our development of the Doom phase. We have developed several games for entertainment last year. But it spent a lot of time. To complete a good job, you must play a game a day, then prepare for a day, but I can't sacrifice 20% for other work now. FS: You have a special focus and inspiration - how you can improve an algorithm or technology. How long will you encounter such an epiphole?
John: I think many people emphasize the importance of merits. Epiphany is indeed important, but only after you know a job, you will get an exulterly. In fact, many excellent work is not the result of merit, but the result of hard work. Many people mistakenly thought that Eshave is the most important. Sometimes it is indeed, but in 95% of it is just the results of the calm analysis of the knowledge you have mastered.
The key to success is not a genius decision, but 500 hi-choices. What's more important is to make a wise decision. Developing a genius decision and a lot of mediocre decisions are not as good as the entire process to always develop a wise decision. You have to make a lot of correct decisions.
Even after the development of QUAKE 3, there are still thousands of details that have been further improved on your task list. Therefore, the key is to understand all the work that must be completed, and then find "the most effective hitting point". For example, these work can complete a large number of tasks, but it will bring some side effects. "Or" Complete this job may take a few days, but it will make other links becomes less stable, so I will not do it. this work."
I certainly hope that I have encountered a world - I may be doing a job, suddenly aware of a better way. This is really useful, but I can't expect this situation every day. In fact, the common situation is that when I returned home, I can tell Anna: "Today I think of a new idea!" This situation is quite common, and it is very useful.
Open source FS: Many people think that you are one of the best game engineers worldwide. Do you think is in the next few years, is there anything enough to have enough tasks and depth in the world to keep you sufficient interest?
John: Of course, there are still many problems that need to be solved. At present, I am using a lot of leisure time to develop some Linux platform procedures. A work I have completed is to write two 3D drivers for Linux, which is a lot of programming on this platform. As a developer, this is very useful for me, because I have made a large number of high-level, API-level programming work, but I should continue to go deep into the system under. Through the development of equipment drivers, write some deployment-level programs in-depth to hardware can broaden your eyes, allowing me to look at all work from the perspective of the entire process. There are many programmers who only know the top-level development method, and they don't know the basic principles of program work, this is mainly because they can't "see" the internal structure of the system.
I am considering another job that starts (because I like to clearly develop my own network stack from all the technical details of the highest level to the bottom) to study and study. I also did some tests I want to try to understand the operating system in the level of the serial driver and the packet driver, which is actually the expenditure expenditure of routing time and sorting. I hope some information from the protocol layers we usually used for communication.
FS: Is it just on the Linux platform or also include Windows and Mac platforms?
John: The key is to carry out these work more convenient on the Linux platform, because you can get all the information you need. Although Linux still does not replace Windows to become a mainstream desktop operating system, it does have some uniqueness.
The reason for this is that some people have written a Linux driver for the Matrox graphics card. I have tested it. Obviously it cannot be compatible with Quake 3. So I decided to download it carefully. I left its outstanding working mechanism. Although its speed is not fast, it can almost say a fully functional, high quality program. However, it exists significantly in terms of texture exchange. They exchanged the recently used textures, rather than the minimum texture, so you can see obvious distortion on the screen. I am very clear about its working way, and I think "it is too good, it provides the source code." So I decided to download the source program, enter the CVS library and all files, and improve the code according to my idea, discover the program defect, and will It eliminated! The whole process is very clear.
The conclusion thus concluded that the Apple's driver has also existed the same defect. So we can find the same defect in two drivers, but for Linux programs, I can directly enter the source program and eliminate this defect. Although there is still a lot of obstacles in many levels, this ability is very important. Fundamentally, if you encounter some problems when using a system fully open, you can spend time to solve this problem. You don't have to wait for others' help. You don't need to seek help with your own low, you don't need to wait for patch release, and usually do this will reduce time utilization efficiency, but if a problem really lets you headache, you can directly view the source code and solve this problem. This will make people feel very exciting.
Other questions about Linux fs: This is the attitude of your treatment - the problem solves the problem. You don't want to wait for others to release an upgrade program, but willing to do it yourself.
John: Yes, this is why I am more willing to use the Linux platform when I study the network or other issues. If you need, you can take out some parts of the operating system, tell yourself: "Ok, now I want to completely delete this part because I want to do a test." You can get the free space.
I think that in the next few years, the availability of software will be increasingly attached. There are many economic trends related to this. You will see a PC with $ 500 with $ 90 for Windows licenses. If people just want to perform some very basic tasks, they are likely to want to get a free operating system.
There are many crazy supporters in the Linux world, and their views sometimes lack sufficient rationality. However, there is indeed a real situation in the publicity of the actual advantages of Linux.
FS: You are very concerned about technology, and you have spur your own progress. But do you consider finding a boss to help you learn new skills?
John: I know that you can hire managers in some jobs to bring a lot of benefits. We hired Graeme at the end of the third quarter to help us manage some business. But it didn't have practical impact on my work mode, because Graeme has not yet arrived at each specific work. In fact, my own arrangement of work is often better than most managers give me a work plan.
I also realized the limitations of my personal organizational ability. I will put thousands of things on my task list, and often sort everything from my head. I do recognize that if there is a personal job, I know that I know and understand the importance of all these tasks, because everyone's organizational skills have certain shortcomings. You may not do this, but some things are because you have always been willing to deal with and finally bubble soup. I have realized the benefits of making someone helping me arrange work.
Recently I am looking for some programs - especially Linux drivers - OpenGL performance for OpenGL performance. I have written a lot of programs for this, I do try to try to take this thing in the end, but I know that I need to take a variety of ways to achieve my goals. I hope to write a perfect program, but I am deeply realized that in my limited time, I can't do it.
Sometimes there is a helping hand that is responsible for helping you will bring great convenience. But this is still just a theoretical issue for me. I believe this will help, but I haven't seen the actual effect. Carmack as a student fs: Can a manager be regarded as a teacher? Do you think you can learn from yourself?
John: In fact, I have learned almost everyone. This is one of my main differences in my teenage and now. When I was teens, my thoughts were: "I am smart than people around me, so I don't need to pay attention to what others say." I am in a few semesions in college. I am thinking about it now, I think I use a wrong way to do. Yes, maybe I am smarter than the professor, but this doesn't mean that I can't learn knowledge to me.
Now my life method is that I am willing to learn knowledge on any colleague who makes it with me. I cherish my time I work with Brian Hook. I learned some better C language programming standards and how to use Struct and Const abstaine more, I haven't do this. This is very important to me because I improve my technical level through him. There is also a graime - I see that he quickly finds the information you need from the Java library - and I often start from the head, find this information everywhere, and the time is much longer than him.
Someone is not to be a "better" developer or programmer to have a knowledge you have learned, this is a very important experience I have gained in the past 10 years. There is a knowledge worth learning everywhere. If you have the right attitude, you will be helpful to you in an environment where you have a rich environment. If you want to get the knowledge you want to learn from anywhere, not to find a useful information "treasure" that will be set together with all the information, you must be able to collect information useful from you anywhere you can .
In the process of developing Quake, we hired Michael Abrash. I am excited for this, because I have learned a lot of basic PC programming skills through many of the articles published by Dobbs Dr. Dobbs - including assembly language and image programming. So I am very happy to work with him. I learned a lot from him, but I was very interesting, I was very uncomfortable because he was very obedient in the programming. Michael's knowledge is very profound, but my strength is a strong ability to learn new knowledge.
Therefore, I have learned a lot of knowledge almost all the programmers I have worked together.
FS: OK, you just mentioned useful information from surrounding. How do you think of non-technical source - such as books and movies?
John: I have a favorite book in the past few years is "a Deepness in the sky" written by Vernor Vinge. In terms of movies, I don't know if I have a reference. I have appreciated most of the good-looking movies. "Toy Story 2" is very good - I really like this movie.
FS: "Hacker Empire"?
John: "Hacker Empire" is very exciting. I like all wonderful sci-fi, action and similar movies. I don't really like a film. I am purely for entertainment purposes. Some movies actually adapt to the game developed by themselves. Our game is equivalent to Schwarcinger movie in the computer game industry.
Quake and Simple FS: Why do you think people like Quake 3?
John: We hope to achieve the purpose of QUAKE 3 is to let you invest in it when playing games. For gorgeous design or other features boast, and trying to have a legendary or story in the game. The true value of a game is interesting when you play games. The key is not to beat the game opponent or complete a task, but to make the battle really interesting.
There must be some tasks that you want to take action. People will not play softball because of playing softball games; there must be a battle that is very interesting. I think we have done well in this regard. We expect, and it is indeed a lot of feedback from our supporters.
There is sure some players want to play more complex, more challenging games. For games, this is a feasible development direction, but it may lead to the development of the game kernel. You can experience this when playing flight simulation games, because these games require you to read a long manual before starting the game. In the past flight simulation game, you have to do it to jump into the plane, take off and shoot. These games can bring truly happiness to players. In some serious simulation games, you must let yourself believe that you really reach the purpose of entertainment. You can also develop the first person shooting game, that is, ask the player to understand the current situation, the use of various tools, and various strategies, etc. - and players don't want to know these, they hope to sit down and play games. . There may be many people like this game, but I am not so. I don't have time to learn the various knowledge of the game. I have never playing that game that needs to learn a lot of complex knowledge. I only like to play some simple, quickly get started, let me immediately enter the game, enjoy a good time. I think the game player like me is five times more than players who like complex games.
FS: What is the game of non-id products in a last time?
John: It is probably the F-Zero X - a racing game on the Nintendo 64 platform.