In this instalment of the Starting Small series, we look at XNA (XNA is Not an Acronym) – a set of tools from Microsoft for developing games. The reasons this tutorial is focussing on XNA are simple: it is easy to use (when you know a bit about it), and it can be used to develop for Windows, Xbox and Windows 7 Phone. With the arrival of Xbox LIVE in South Africa, I’m sure that many developers will want to try their hand at developing for these platforms.
In a previous article I introduced basic vector concepts. In this article, I show how apply the theory to common geometric problems.
Welcome to the Starting Small series. The aim of this series is to take a programming language that you hopefully know a bit about (enough to feel comfortable using) or that you want to try out and show you how to use it to make games. The language that this tutorial focuses on is Python using Pygame.
This article originally appeared in Dev.Mag Issue 26, released in October 2008
Interested in making your own sound effects for videogames? This month we’ll be looking at Audacity and a few of the common effects that can be used to turn your humble blink-blonks into fantastic kaphwooms.
This article originally appeared in Dev.Mag Issue 24, released in August 2008.
One aspect of game creation that constantly seems to stump the average hobbyist developer is the matter of sound creation. Nowadays, experienced players can go onto the Internet, download a few indie games and easily pick up on what one may call “stock effects” – sounds that appear in a whole host of games because developers frequently resort to the same online libraries to get their beloved game noises. Favourites include Famous Bird Chirp and Ubiquitous Cow Moo.
In this, the final part of the series, we’ll cover the long-awaited subject of 3D models, as well as highlighting some of the possible problems you may have as you attempt your own 3D games.
Well this is it folks; if you’ve been following this guide up until now, you should have in front of you a workable story to use as the basis for the game you’ve had working in your head. If not, well, at least you have the basic toolset to get started whenever you feel the need. But now it’s time to wrap things up, trim those hedges and spit and polish that which we have created!
We have used tiles to decorate our living spaces for more than 4000 years. Tiles have several properties that make them attractive for use:
- they can be mass-produced;
- they are easy to build with (because of their geometric properties); and
- combinations of tiles lead to a huge number of decorative options.
Early game makers recognised that these advantages of tiles also apply to tiles in computer graphics, and using tiles was (and still is) a popular way to make game graphics.
We’ve come a long way, and we’re almost there! Telling a story can be pretty easy, but really grasping the ins and outs of what goes into proper narrative is a little bit more challenging. But that’s why you have this guide! Before spit-polishing our final story, we need to tackle only one more hurdle!
Hello there boys and girls, and welcome to part 4 of the Narrative Guide that will help you on your way to telling the world your story! Please have a seat and relax while we delve even deeper into the magical world of story-telling…
We’ve covered drawing basic meshes, and we’ve covered the all-important transformation functions. We’ve also covered lighting. Now that we have all these basics down, it’s time to start on some of the nifty tricks that you can pull using what we’ve learned.
This article originally appeared in Dev.Mag Issue 21, released in March 2008.
One way to populate large worlds with objects is to simply place objects on a grid, or randomly. While fast and easy to implement, both these methods result in unsatisfying worlds: either too regular or too messy. In this article we look at an alternative algorithm that returns a random set of points with nice properties:
- the points are tightly packed together; but
- no closer to each other than a specified minimum distance.
For anyone who hasn’t been following, we’re currently looking at narrative structures and how it applies to gaming; but more importantly, we’re looking at every aspect of story telling, fleshing it out, and helping you along your way to compiling the best tale to push through the game you’ve worked so hard to code.
In the previous instalment, we took a gander at the actual structure of a story – the series of events that happen from beginning, middle and to the end. Now we have a pretty stable idea of where our story is going to take us and what is going to happen along the way; but now we need to go a bit deeper and make sense of the world that this story takes place in.
In Part 1, we learned how to set up a basic camera, and draw the 3D primitives that Game Maker provides functions for. If you took my advice and messed around on your own a bit, you’ll have noticed a few limitations to included scripts. For instance, how do you go about rotating primitives? There are no arguments for that in the functions. What if you want to scale primitives in interesting ways, beyond simply changing the size via the draw functions? Well, in this instalment, I’ll be answering these questions using a single concept – transformations.
This article originally appeared in Dev.Mag Issue 29, released in February 2009.
Last month we covered some of the very basic ways of testing whether object A hits object B. But, while the techniques we covered could quite likely take you very far, you’ll inevitably encounter a time when they simply aren’t enough. So this month we’ll go a little further.
This article originally appeared in Dev.Mag Issue 28, released in January 2009.
Almost every video game needs to respond to objects touching each other in some sense, a practice commonly known as collision detection. Whether it’s simply to prevent the player character from walking through the walls of your maze with a simple collision grid array, or if it’s to test if any of the hundreds of projectiles fired by a boss character in a top-down shoot-’em-up have struck the player’s ship, your game will likely require a collision detection system of one sort or another.