There are many books on the art of games programming but now acclaimed author Rudy Rucker has gone a step beyond and transformed it into a science. Software Engineering and Computer Games was written with four broad goals: To teach a lively style of object-oriented software engineering. To show how to bring a complete program to the level of a commercial release. To provide a "game engine" framework of linked classes for game development. To help students create computer games that are interactive, rapidly executing, and visually beautiful. It uses an object-oriented (OO) approach throughout, incorporating UML for OO analysis and design and discussing software patterns and how to make use of them in the design process. The book covers nine topics: Basic software engineering principles and techniques. How to organize and complete a substantial software project. Practical examples of object-oriented design and programming. The design of computer games. Simulating physics inside our computer-generated worlds. Artificial life, or how to simulate live creatures inside a computer program. How to use two and three-dimensional computer graphics. Windows programming with the Microsoft Foundation Classes, or MFC. How to develop a project using Microsoft Visual Studio (Either Version 6.0 or .NET). The game engine accompanying the book is an open source C++ framework (the POP Framework), available together with other accompanying material from www.rudyrucker.com/computergames. The book can be used for self-study, with readers encouraged to use the POP Framework as a starting point for creating their own games. Software Engineering and Computer Games was developed as the primary textbook for an undergraduate software engineering course and can also be the main book for courses on software projects or computer game design and programming.