Manning Logo
Home | Ordering Info | Shopping Cart | Manage My Account | Login
Attention customers: online shopping is now available exclusively through our main website: http://www.manning.com. Thank you.
Developing Games That Learn

Inside the book

Sample Chapters Table of Contents Index Introduction

Manning Blog

Why small is sweet?

Author Blogs

Dave Crane more...

Author Calendar

Upcoming Events

Catalog

Java .NET Perl XML All by Subject All by Title

About...

Manning Contact Us Ordering FAQs ebooks Covers Sandbox Forums Distributors Manning Early Access Program (MEAP) Affiliate Program Academia/Publicity User Group Program Press Releases Jobs

Manning Publications Co.
209 Bruce Park Avenue
Greenwich, CT 06830

Developing Games That Learn
Leonard Dorfman and Narendra K. Ghosh

1996 | 300 pages
ISBN: 135696178
  $34.95 Softbound print book Out of print (?)

Introduction

This easy-to-read book has been written specifically for professional programmers who wish to improve the performance of a program by giving it the facility to learn from its experiences. The learning algorithms and paradigm presented in this book are not intended to find a place within academe's enormous body of artificial intelligence literature. Rather, the paradigm and learning-based algorithms presented here were developed in the practical framework of commercial-based game design. Although the examples presented in this book are games, we believe that the paradigm and learning algorithms have application beyond the games arena.

The book begins by presenting a garden-variety look at consciousness, and follows with a definition of the objective artificial intelligence (OAI) paradigm. The OAI paradigm can be thought of as a higher level paradigm which resides above procedural and object-oriented paradigms. We believe that using the OAI paradigm may help you to begin thinking about ways in which you might develop new learning-based algorithms, or to modify one of the three learning-based algorithms we present in the book for use in your own programs.

The OAI paradigm guides programmers in developing programs which can learn from experience. However, we believe the nitty gritty of the algorithms which underlie what we call program learning to be unique to each situation. This view forces those who wish to use the OAI paradigm to delve deeply into the fundamental nature of the\x11data. Your perception of the data will prove crucial in devising the algorithms which implement learning. It is our hope that using the OAI paradigm in program development may ease the creative and intellectual burdens of developing these specialized learning-based algorithms.

After introducing the theory underlying the OAI paradigm, we present a query procedure which you may find useful for determining if a programming project is a viable candidate for having its performance enhanced using learning-based algorithms. Although asking the right questions and defining the problem during the analysis process is often quite straightforward, developing OAI-based algorithms which will enhance your program's performance proves to be far more difficult.

The fruits of using OAI's analysis and design methodology can be evaluated by playing Drop Four, this book's featured demonstration program. Developed using the OAI paradigm, Drop Four selects moves in a humanlike time frame, and clearly -demonstrates that it learns from its losses by not repeating the weak moves that prompted the losses in the first place. This fruitful adaptation most often takes place after a single loss.

Even though we would never claim that utilizing the OAI paradigm in your program development cycle might imbue your program with sentient consciousness, will power, or self awareness, we strongly encourage you to "play pretend" and imagine that it does. Imagine that the program you are building is indeed going to develop human abilities. We know that there are those in academe who will wince at this practice, and we respect their beliefs and cautions. That stated, we have nonetheless decided to encourage this behavior in the service of fun.

So go wild! Jump off the edge of the cliff! Drive ten miles an hour over the speed limit! And give a name to the portion of the code that makes decisions, responds and demonstrates learning. Anthropomorphize to the max.

In our case, we named Drop Four's decision making and learning code Dr. Plopper. When Dr. Plopper followed a loss by altering her/his play so as to eventually facilitate a wily win, we'd shout, "Dr. Plopper's Revenge!" We spoke in terms of Dr. Plopper's sleep disorder and alcohol issues after a slew of stupid moves. This proved to be quite fun and helpful in providing comic relief to the stress generated by struggling to find more robust implementations of program learning. ("Fun is good!"Dr. Seuss.)

It is our hope that as you read through the text and work your way through the demonstration game's source code you will be able to discover wide-ranging application categories that can benefit from using OAI design methodologies. We hope that this work will provide a springboard for the development of learning-based algorithms.

Finally, although the main demonstration program is presented in C, the OAI program development methodology is not language specific.


WHAT YOU NEED TO USE THIS BOOK

Basically, you need to use your brain.

That stated, the demonstration programs presented in this book were compiled using Borland's 3.1 and 4.0 DOS compilers.


LEN DORFMAN and NARENDRA GHOSH

DESCRIPTION

If you've ever wondered how to empower your software with the ability to learn from experience, this book is for you. Developing Games That Learn shows in detail how to implement single-trial learning, illustrating its approach in board games Tic Tac Toe and a more complex game called Drop Four. The authors discuss the learning algorithms and present the source code that implements them.

The program learning techniques are presented in sufficient detail to be useful for practical software design. They are particularly suited to computer game development, but can also be used in other areas. This book provides valuable guidance for programmers, project leaders, and game designers.

Existing approaches to program learning are often of the "dumb" type-the program simply learns not to repeat any sequence that led to failure. Authors Dorfman and Ghosh take a more powerful path: for each example of failure, their method first finds the point of no return-the point after which the game was certain to be lost. Then that point is prevented from being reached via any of a number of different (but equivalent) paths, not just the single path actually played, thus accelerating the learning.

If you are interested in using these techniques in applications other than games, the authors discuss ways to do that.

ABOUT THE AUTHORS...

Leonard Dorfman, Ph.D., is the author of 22 computer science books, concentrating on C, C++, and Assembly language, a black comic novel, and four commercial software products. He has a strong background in educational research, and interest in psychology, philosophy, and Buddhist studies. He's a teacher and writer, and keeps shop at MultiGrain Solutions, a software development company.

Narendra K. Ghosh is currently obtaining a degree in computer science from Harvard University. He worked cooperatively with Len in developing Objective Artificial Intelligence and the learning algorithms, and in implementing the code used in the demonstration programs.

Home | Catalog | Privacy Policy | About Manning

© 2003-2006 Manning Publications Co.