02.02 - Game Development Tools

Started by
58 comments, last by Teej 19 years, 12 months ago
Game Development Tools If you want to write games, you’re going to need more than NOTEPAD . In this article I quickly run through some of the tools you should have at your disposal, and mention some other considerations as well. The Operating System What is the target platform for our games? Although Linux is gaining popularity by leaps and bounds of late, we’re still going with the most popular of platforms, Windows. Of course, Windows comes in many flavors, and those we’re interested in are 95/98/ME/NT/2K. Luckily for us, software on these operating systems is compatible… …but not 100%. If you’re not aware of DirectX technology, don’t worry about it for now – all you need to know for the time being is that we’re going to be using DirectX components in our games, and one of these aforementioned operating systems doesn’t adequately support DirectX (at the version we’re going to be using). I’m referring to Windows NT, which is too bad because it has always been the choice for software developers. While it is true that there is a version of DirectX on Windows NT, it’s outdated – we would have to restrict ourselves to using it, and we wouldn’t be learning new technology, so it’s a concession we’re going to make. That leaves us with Windows 95/98/ME/2K. Hey, what about plain ol’ DOS? For years, DOS was the gaming platform, even when Windows was in wide use. The problem with the Windows of old was that it didn’t allow direct access to the hardware, and therefore games written for it were too slow to be considered. In DOS, you had direct control, and in Windows you had the GDI (Graphics Device Interface), which wasn’t designed for high-speed graphics applications. Of course, this was eventually remedied with technologies such as DirectX, which allowed games the conduit to the hardware that’s needed for speed. There’s one other important thing to note about using Windows as our gaming platform, and that’s compatibility. Windows provides an abstraction to the hardware in the form of drivers, which implement a consistent interface to the hardware’s capabilities. This allows us to utilize the video card, sound card and other devices without even knowing what vendor they’re from. In DOS, we’d have an insurmountable problem on our hands – all hardware is not created equal. Bottom-line: write your game in Windows and it’s going to work on a wide variety of systems and configurations. The C Compiler It probably won’t come as a surprise to you that I use Microsoft Visual C++ for all of my C/C++ programming -- it’s easily the most popular compiler out there. What about the others compilers out there? At first, you’d think that any C compiler would be fine, but there is a caveat: our code will be considered C++, and utilizes COM components. Sure, we’ll be coding in C, but we’re also using DirectX in our programs, and that requires a C++ compiler. Microsoft provides DirectX libraries for use with their own compiler (MSVC) and for Borland, so it would seem that there are your options in a nutshell. I’ve heard of people using other compilers successfully, but you’ll have to inquire in this forum about which compilers can get the job done. Graphics-Editing Software Since you’re in Windows, you already have at least one graphics-editing package – the infamous PAINT </b> . Right off the top of my head I can think of a couple of reasons why that won’t cut it, one being it’s lack of palette editing support, and another it’s total lack of features. Perhaps we can get some feedback from others in the forum on what they use – some will be rather interested in Freeware/Shareware applications. Personally, I use <b>JASC’s PaintShop Pro </b> . I’ve never had need for anything else when it comes to bitmaps. <font size="+1" color="#66FF66">Sound Editing Software</font> This may not be an important consideration for you right away, but there comes a time when you’re faced with the prospect of creating and editing your own audio clips. For the time being, I’ll just mention a few of the more popular types of audio software and let this aspect of game development slide until we have occasion to make it an issue. <b>Sonic Foundry’s SoundForge </b> is a sound-processing tool that let’s you manipulate almost any type of audio file, and is considered the ‘cream of the crop’ by many. Of course, you could use darned-near anything to record a sound, but if you need to do anything to it (other than copy it) you’ll need a sound-processing package such as this – there’s an amazing amount of features at your disposal. MIDI soundtracks can be created with a tool such as <b>Twelve Tone System’s Cakewalk Pro Audio </b> software. <b>Steinburg’s Cubase </b> is a similar title that comes to mind. Check out their websites for more information. <font color="#FF6666">Feel free to reply to this topic with your questions, comments or suggestions.</font>
Advertisement
I''ll expand this a little bit, since I''m sure Teej would rather spend his time pushing forward with the tutorial, and rightfully so.

Regarding graphics-editing, JASC PaintShop Pro retails at $99 US, but you can download a 30-day trial for free here. At the end of the 30-day trial, the software will stop working.

Now, for sound-editing, Sound Foundry''s SoundForge retails at $350 US. You can download a limited function demo (no time limit, though), here.

For MIDI creators, Cakewalk Pro Audio 9 is expensive (couldn''t actually find a price on the website...strange), but a trial version is available here.

Steinberg''s Cubase has a demo which you can download here

Not sure about any good shareware/freeware products, but the trials of PaintShop, SoundForge, and Pro Audio 9 should be good for a start.
PiotyrSoftware Engineer by day, Game developer by nightThe early bird may get the worm, but the second mouse gets the cheese.

Disclaimer


This is the first of a series of comments intended to "port" this tutorial to another platform: SDL on Linux, instead of DirectX on Windows. I'll try to mirror every information provided by Teej, topic by topic. This sure will be a challenge, as I'm just learning game programming, and I'll need lots of help. Please send me a message if you're willing to help.


This comment is intentionally written to look like the main article written by Teej, with the relevant portions changed to fit a new development platform. It's not like I'm in anyway affiliated with gamedev.net or have any leading role in writing this Interactive Tutorial. I just thought it would be fun write the comment this way.


Game Development Tools

If you want to write games, you’re going to need more than vi (vim is alright). In this article I quickly run through some of the tools you should have at your disposal, and mention some other considerations as well.


The Operating System

What is the target platform for our games? As GNU/Linux is gaining popularity by leaps and bounds of late, we'll be targeting it. Of course, GNU/Linux comes in many flavors, and people call these flavors distributions. I won't delve into this as this forum is about gaming and not Linux. I want just to let you know that all distributions are perfectly compatible if you do the right job.


GNU/Linux is a operational system full of choices, and we should make one right now: What library we'll use for gaming development? It should by a free library, as most people here are hobbists and don't have the money to buy expensive libraries. Source code should be provided, as it is a powerful way to learn programming. Also, it should target more than one platform. While we'll be developing on a GNU/Linux system, maybe later you'll want to port your games to other platforms, like Windows or MacOS. All these considerations led me to choose SDL (Simple DirectMedia Layer). Quoting from the SDL documentation:


Simple DirectMedia Layer is a cross-platform multimedia library designed to provide fast access to the graphics framebuffer and audio device. It is used by MPEG playback software, emulators, and many popular games, including the award winning Linux port of "Civilization: Call To Power." Simple DirectMedia Layer supports Linux, Win32, BeOS, MacOS, Solaris, IRIX, and FreeBSD.


Well, what about all the other libraries out there? You can use then if you wish. The API will sure be different, but the concepts should be the same. If you do, please contribute comments and examples here.

The C Compiler

It probaly won't come as a surprise to you that I use GNU C Compiler (gcc) for all my C/C++ programming -- it's easily the most popular compiler out there. It is also THE standard compiler on GNU systems, and the very foundation of it.

What about the others compilers out there? Any C compiler should be fine. We'll write portable code, and there is no compilation caveat to SDL or any other library that we'll be using. If you find any problems compiling the code presented here, post a comment describing your problems, so we can try to help and other people can avoid the problem.

You'll also need a good programmer text editor. What I call a "programmer text editor" is any text editing software with features suitable for editing source code, like syntax highliting, function name completion, tag jumping, bookmarks, etc. I use vim for all my source editing, but there are many others out there (FTE is one of the best). If you don't have a favorite editor already, experiment with some of them.


Graphics-Editing Software

Since you're on GNU/Linux you should've heard about a great graphics-editing software: The Gimp. Quoting from the documentation:

The GIMP is the GNU Image Manipulation Program. It is a freely distributed piece of software suitable for such tasks as photo retouching, image composition and image authoring.

That said, go get it if you don't have it already. You'll never have need for anything else when it comes to bitmaps. Of course, if already have another software to deal with pixels, you can keep it.


Sound Editing Software

I'm still doing some research on sound editing software, so I'll skip this for now.

Feel free to reply to this topic with your questions, comments or suggestions.



Edited by - pazu on April 9, 2001 1:35:39 PM
Ja ne, Pazu mailto: pazu@animegaiden.com.brClose the world, open the neXt
Nice idea pazu! I hope more people start developing games for Linux.
For those looking for a slightly less costly graphics editor, Serif has a previous version of their graphics editor, PhotoPlus 5, free for download (full version!). It works great for me so far. The GIMP is also a very highly regarded graphics editor, and there''s a version available for Windows for free.

Doing research on sound editors right now, hope to get back with something by the end of the day.
PiotyrSoftware Engineer by day, Game developer by nightThe early bird may get the worm, but the second mouse gets the cheese.
Gimp for windows is free. Available from here.

As long as you run with a 24 or 32bit desktop it is very stable.
What about the DirectX SDK?
To program DirectX applications you must have the DirectX SDK, which includes the files you must have to program and much more (samples, documentation, etc.)
You can download it from microsoft''s DirectX site (www.microsoft.com/directx), it''s a 144 MB file.
Actually, you don't need that whole 144 MB SDK. All you need are the C++ SDK files (and I'd suggest the 8.0a upgrade to fix a certain DI problem). That'll run you 45 MB, but it's better than 144.

Addendum: Forgot to mention that you should probably get the 8.0a developer runtime as well (55 MB download). Yeah, it's big, but it's not 144 MB big. Of course, you could just go for the DX 7 SDK, and get to use DirectDraw, and have a fully stable and reliable SDK, but I am not sure you can get that anymore, since MS has upgraded to 8.

Edited by - Piotyr on April 10, 2001 9:48:33 AM
PiotyrSoftware Engineer by day, Game developer by nightThe early bird may get the worm, but the second mouse gets the cheese.
Patience, young grasshopper.

You didn''t think I was going to leave you stranded without the necessary DirectX files, did you?

I''m currently finishing one of the Ladder series articles which introduces DirectX, and there will be instructions on getting yourself set up. As well, I''ll provide most (if not all) of the components on my webpage, so you don''t necessarily have to grab such a large file from Microsoft.

Check back soon for the article in question.

Teej

Teej, are you going to post any articles on OpenGL, or are you keeping it simple and sticking with DirectX only?
PiotyrSoftware Engineer by day, Game developer by nightThe early bird may get the worm, but the second mouse gets the cheese.

This topic is closed to new replies.

Advertisement