We’ll be giving the bad guys pursue, attack, flyby and flee behaviours. How do we do this without all of the bad guys behaving identically? If we’re not careful they will flock together and fall into synchronized movements. Worse, they could be predictable (not much fun for a game!). Artificial intelligence (AI) is an interesting subject. Is the solution smoke and mirrors or do we need to program something “intelligent”?
It’s time for some housekeeping before the New Year! We’re going to change the design of our code completely in this Issue to support us as we venture forwards in 2011. We’ll also take some time to explain the water we added in Issue 4 and add some sounds effects along with a basic HUD.
Issue 4 already? Time flies! In this one we’re going to do a bit of housekeeping. As a project grows you often need to refactor (rewrite) parts of your code to keep the code scalable and readable. Our approach is what you might consider ‘rapid application development’ (RAD). An alternative approach would have been to sit down and work out the whole game in advance – before writing any code – but the MGF aim is “results, fast” so the more traditional ‘waterfall’ approach is out the window! We want fun while we learn. You’ll also be adding collisions to your game, explosions, gravity, water effects and a bit of camera trickery. As promised in Issue 3 we will also explain and improve the fog, lighting and sky.
All of the Issues in Volume 1 rely on something called Panda3D. Panda3D is a 3D game engine provided completely free by the Carnegie Mellon Entertainment Technology Center. A game engine is a Software Development Kit (SDK) that takes the pain out of the common tasks involved in game development. For example, Panda3D provides libraries for graphics, physics, lighting, audio, keyboard/mouse/other input and so on. You really would not want to find yourself having to write all of these routines yourself (you’d never finish a single game on your own!). There are other game engines out there but we really like Panda3D due it’s ability to run on Windows, Linux and Mac and its support for Python: