Rudy Rucker. You may know him as a science fiction author, mathematician , or technologist who dreams of worlds inhabited by living machines, two-dimensional creatures , or numbers with names . Or, you may know him as the guy giving you a test today in your Computer Science class! That's where I started . . .
It was some time in the mid 80's that I first met Rudy, or back then Dr. Rucker. I was a freshman attending San Jos State University, triple majoring in Math, Computer Science, and Electrical Engineering. I had enrolled in an assembly language class or something similar that he was teaching. I remember arguing with Dr. Rucker about not getting full credit for a program I had written that multiplied two numbers together really fast in 8-bit assembly language. Dr. Rucker didn't really look at the program closely and assumed I was wrong since the technique I used was very subtle and very advanced, a standard trick of a game programmer, but to the untrained eye it couldn't possibly work... So I went into his office and I convinced him to really look closely at it, and he did. When he was complete with his analysis, he smiled and said something like, ' Andr you're right' . From that point on, we spoke more frequently and I told him about my development of video games . Rudy was very interested in something that I too had a love for, which was artificial intelligence, emergent behavior, and cellular automata , all of which began his obsession with ants and little creepy crawling things that pervade all of his work (and mine).
Back in those days we were all exploring new worlds “ we didn't have a plan “ just looking around and seeing what happened . Out of all the professors I encountered , only two made an impression on me and Dr. Rucker was one of them. Of course, his lectures always seemed to be a little from the 'hip', or maybe a better word 'organic'. I rarely took notes, I listened for the meaning between the lines, the things he was thinking, but couldn't really say in a classroom setting. Crazy things like the possibility of living machines, computers that have sex, anti-time, and many other concepts that could get you hanged in these parts . In the end, I confirmed that there are other people that have the same crazy ideas I do, and that was important.
Time passed, I graduated , and Rudy and I kept in touch. Every now and then I would ask him something, or vice versa. I would read one of his sci-fi books once in a while, his name would come up in conversations about William Gibson's work, or AI, and people couldn't believe I knew him! They would ask what he was like, and so forth. Rudy Rucker had a huge cult following based on his sci-fi work which was really cool, and a part of his personality I never knew about in detail.
But, the only thing I ever wondered was why he had never written a serious technical book about computer science? Make no mistake, he is a brilliant mathematician, but only now did he finally have time or the subject matter to write a computer science book that really interested him. At least that's what I think.
In any case, Software Engineering and Computer Games is a very important book: it's the first time that anyone has even attempted to try and make heads or tails of the software engineering paradigm as applied to the development of video games. As far as I am concerned , this book should be a requirement of anyone that wants to write games “ period. Every game book I have ever read, or written for that matter, explains techniques to develop games, graphics, AI, networking, whatever, but no one ever really explains how to 'software engineer' a game.
After reading Rudy's book, I was really excited: all the techniques that I had been using and developing over the years , he had put into a nice, complete package for others to read and learn from. Additionally, he made a science of game development. Game programmers are gods, that's without a doubt, but this book shows why! Rudy has step-by-step created a game programming framework which he calls 'Pop' (I will let him tell you why) that allows you to create 2D and 3D games without worrying about all the low level details. So what, you might ask? Well, the point is that he shows the entire thought process, and software engineering cycle of this framework, from UML diagrams to implementation. This is something I guarantee even the guys that wrote HALO didn't do!
Point being, after reading this book you will be a better coder , software engineer, and game programmer all in one. Not to mention that the book is all inclusive. It covers object oriented programming, physics, 2D, 3D, C++ techniques, MFC (yuck!), and contains numerous complete projects to illustrate various techniques.
But, here's a secret . . . come close . . . read between the lines. In these pages is a story, a story about something that today we are seeing the first baby steps of “ if you look carefully you will find it. So take advantage of this rare glimpse of such a fascinating and brilliant personality as Rudy Rucker applied to this very technical matter of game development and software engineering.
The following designations are trademarks or registered trademarks of the organizations whose names follow in brackets: 3D Studio Max (Autodesk, Inc.); Ada95 (Kempe Software Capital Enterprises); Age of Empires, AppWizard, DirectX, DirectX Sound, Internet Explorer, Microsoft C#, Microsoft Foundation Classes, Microsoft Office, Microsoft PowerPoint, Microsoft Project, Microsoft SourceSafe, Microsoft Visual Basic, Microsoft Visual Studio, Microsoft Windows, Microsoft Word, Windows Explorer, Windiff, WordPad (Microsoft Corporation); APL (International Business Machines Corporated); Asteroids, Breakout, Centipede, Missile Command, Pong (Atari, Inc.); Defender (Williams Electronics, Inc.); Director, DreamWeaver, Flash, Shockwave (Macromedia, Inc.); Doom, Quake (Id Software, Inc.); Fortran (Compaq); Galaga, Pac Man (Namco Ltd.); Gauntlet (Midway Games West, Inc.); Half-Life, King's Quest (Sierra On-Line, Inc.); Java, Modula (Sun Microsystems, Inc.); KaZaA (Sharman Networks); Linux (Linus Torvalds); MAME (The MAME Team); Mario, Nintendo GameBoy (Nintendo of America, Inc.); MIDI (Midi Manufacturers Association, Inc.); Napster (Napster, Inc.); Netscape (Netscape Communications Corporation); Photoshop, PostScript (Adobe Systems, Inc.); Rubik's Cube (Seven Towns Limited); SimCity (Maxis Corporation); SmallTalk (Xerox Corporation); Space Invaders (Taito America Corporation); StairMaster (StairMaster Sports/Medical Products, Inc.); WinZip (WinZip Computing).