Sunday, March 30, 2008

Things to read and do for inspiration

It has been a while since I posted last - to those 3 or 4 people worldwide who have been checking this blog for updates, thank you for your patience.

During some of my many bouts of procrastination, I like to list and describe what I like to read and play with to get inspiration for new programs. These things bring joy in their own right, and part of that joy is seeing new possibilities for simulations and experiments.

  • The books of Martin Gardner
  • The puzzle games of Simon Tatham
  • Mathematics excercises
  • Programming contest problems
  • Reading game design documents

Martin Gardner's books


Martin Gardner wrote very entertaining and engaging books about an incredibly wide variety of mathematical worlds and puzzles, and in the process made complex mathematical ideas come to life. Each one of the thousands of problems and experiments he describes in his more than 60 books provides very fertile ground for simulation and study. Just pick up and read any of his books, then do what I did - go and buy everything he's ever written, wherever you can find it.

I recommend:
  • The Colossal Book of Mathematics: Classic Puzzles, Paradoxes, and Problems 2001; W.W. Norton & Company; ISBN 0-393-02023-1
  • Martin Gardner's Mathematical Games 2005; Mathematical Association of America; ISBN 0-88385-545-3 (CD-ROM of all fifteen books covering all his columns from Scientific American)
  • The Colossal Book of Short Puzzles and Problems 2006; W.W. Norton & Company; ISBN 0-393-06114-0


The puzzle games of Simon Tatham


Simon Tatham's Portable Puzzle Collection is a lovely jewel on the internet. It is a collection of small and well written implementations of about 27 (and counting) puzzle games. It is open source, and I have had no trouble compiling and running it on both Win32 platforms and Linux (in my case, specifically, on the Eee).
Because they are so small, you can hop straight in and play right away, and as I play I inevitably drift to thoughts of studying my solving process with an automatic player. Many of the puzzles are about reasoning about a physical space, and as a result, presents a juicy challenge for an AI programmer of how to describe and work with the space conceptually and in a computer program.


Mathematics excercises

While doing the mathematics excercises, I appreciate that the person who wrote the problem has gone to the trouble of contriving a beautiful and intricate situation in which a particular principle or technique may be applied. Its a pleasant suprise seeing uncharted possibilities for old ideas. The problem solving process presents itself as a candidate for implementation and study, since it involves the process of conceptualising all the components of the problem. Once this is done, then you have a platform for studying the problem further and coming up with new visualisations.


Programming contest problems

The same applies to programming excercises from programming competitions - once again, someone has gone to the trouble of contriving a situation that provides fertile grounds for simulation, conceptualising and study. Simply reading the problems can provide ideas for interesting variations and visualisations.


Reading game design documents

Some people have generously offered their game designs up on the web for people to read, study and enjoy. The blog Patrick Curry’s Thoughts on Game Design contains 55 game designs written by the author, who set himself the task of coming up with a new game design every week for one year. Reading his game designs gets me thinking about whether some of them could form the basis of a simple "board game" style stochastic simulation. The games that are about "daily life" style situations like going to the dentist or cooking a turkey sound especially interesting - they show that gameplay ideas can come from anywhere, you just need to have your eyes open. They are all very well written, and I highly recommend this blog.


I am grateful that such wonderful, creative, imaginative and generous people exist to enrich the lives of everyone else on the planet (directly or indirectly). Their work and willingness to share their work, the fruit of their passion and intellect enriches and elevates everybody, and communicates an expectation that we meet their standard, and that we join and contribute to the community of people who think and create.

These people make the world a better place.

0 comments:

Post a Comment