will

Where there is a Will

Will McGugan's Blog

I am a freelance software engineer living in Edinburgh.

I post mostly about tech (particularly Python) and photography.

Background: A code monkey

The following is a list of the chapter titles for Beginning Game Development with Python and Pygame, and a brief explanation of the contents.

Any questions about the book contents, let me know!

Chapters:

Introduction to basic Python.

Goes a little deeper in to Python, covers Classes.

Explains how import and use Pygame.

Covers different ways of drawing to the screen.

Explains animation, vectors and time-based movement.

Covers how to read input devices and connect them to in-game motion.

Covers artificial intelligence.

Explains the basic 3D concepts, with samples.

Covers 3D maths and introduces OpenGL.

Sound and Music.

Covers textures and reading 3D models from files.

Covers lighting, blending, fog and other OpenGL features.

Appendices:

I promised to write up a report on my experiences building becontrary.com with Python and the TurboGears framework. An earlier post explains the concept of the site, and what it is intended for. continue reading…

You find yourself in a dark cellar with some other frightened people taking refuge from an outbreak of zombies which roam the land around the house, but as far as you know haven't made it inside. There are enough supplies and water to survive in the cellar for a few days, if you need to. Naturally you don't want to either die from thirst or from being eaten alive by hoards of the undead.

My book, Beginning Game Development with Python and Pygame, is finally finished! It was a labor of love, and a lot of work. Apress have graciously allowed me to give away a free chapter.

I chose chapter 7, which is on the subject of Artificial Intelligence. I selected this chapter because it is nicely self-contained and doesn't require much additional understanding of other game concepts. It is an unusual chapter, in that it contains the largest listing in the book. I tried to avoid really long listings, but in this case I think it was justified so that the code in the book actually runs; I hate leaving any code as an exercise for the reader.

Download Chapter 7, Take me to Your Leader continue reading…

Download Chapter 7, Take me to Your Leader continue reading…

Millions may have died over idealism and religion, but there is one issue so contentious that it splits families down the middle and turns spouses against each other. Neither side seems capable of changing their opinion and there is no compromise. It has to be one way or another.

This is our chance, people, to settle this—once and for all.

I had a marvelous idea for a website that combines fairly traditional elements from web applications like bulletin boards with elements from Web2.0 sites. I mulled it over for a while, and explained it to a few people—who seemed to like the idea.

The idea is for what I call recreational debating, i.e arguing for the hell of it. A debate consists of a topic of discussion that has two clearly opposing sides, represented by two columns were users can post their arguments. Users can comment on these arguments and also rate them on a scale between -2 and +2, a scheme that Pythonistas will be familiar with. Arguments are ranked according to votes given, so the best argument for each side will naturally rise to the top. continue reading…

It is the year 2112. Telepods have been in use for a decade to instantly transport matter from one part of the universe to another. You are waiting in line with your family at a telepod station to go to Tau Ceti. In front of you in the queue you meet the inventor of the telepods. He tells you that the telepods only appear to move matter, what they actualy do is create an exact duplicate at the destination and destroy the original in the process.

It appears that all the domain names have been taken - 90% of them by crappy domain name sitting companies. This really ticks me off because I have an idea for an Ajaxy Web 2.0 type site that will make me obscenely wealthy, until the next bubble bursts. Naturally I can't give out details of the site I have in mind, suffice to say it is on the subject of debating. So I would love to get a simple, catchy domain, that says debating, arguing, duscusion or similar. If anyone can suggest such a domain that isn't taken, I would be happy to give you 100 shares when I float on the stock market. And if you are thinking of reserving said domain name and selling it to me, be aware that I have no money - at least until I get venture capital. continue reading…

I have many ideas in the course of any given day. They are dredged up from the depths of my subconscious and placed on my mental in-tray, to be sorted in to mental heaps. Most are placed on to the "that'll never work" heap, others are thrown on the "better not, that's probably illegal" heap or the "plutonium isn't available at every corner drug store you know" heap. Occasionally though, some make it to my mental out-tray. continue reading…

I pride myself in my ability to make decisions. If I have all the variables and criteria then I can typically select the best course of action, or at least a good choice of action. As an engineer, this is invaluable because most problems in software development are of this type; you have all the facts and a desired outcome. If you meet the desired outcome, then you can safely say that you made the right decision. If not you can go back and try again. continue reading…