• FEATURED

View more

View more

View more

### Image of the Day Submit

IOTD | Top Screenshots

### The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

# 02.02 - Game Development Tools

59 replies to this topic

### #1Teej  GDNet+

Posted 08 April 2001 - 06:09 PM

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 [b]PAINT . 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 JASC’s PaintShop Pro . I’ve never had need for anything else when it comes to bitmaps.

Sound Editing Software

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.

Sonic Foundry’s SoundForge 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 Twelve Tone System’s Cakewalk Pro Audio software. Steinburg’s Cubase is a similar title that comes to mind. Check out their websites for more information.

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

### #2Piotyr  Members

Posted 09 April 2001 - 04:14 AM

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.

### #3pazu  Members

Posted 09 April 2001 - 06:30 AM

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

### #4Anonymous Poster_Anonymous Poster_*  Guests

Posted 09 April 2001 - 06:59 AM

Nice idea pazu! I hope more people start developing games for Linux.

### #5Piotyr  Members

Posted 09 April 2001 - 10:19 AM

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.

### #6keltor  Members

Posted 09 April 2001 - 11:21 AM

Gimp for windows is free. Available from here.

As long as you run with a 24 or 32bit desktop it is very stable.

### #7BenB  Members

Posted 10 April 2001 - 02:26 AM

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.

### #8Piotyr  Members

Posted 10 April 2001 - 02:43 AM

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

### #9Teej  GDNet+

Posted 10 April 2001 - 01:03 PM

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

### #10Piotyr  Members

Posted 12 April 2001 - 04:30 AM

Teej, are you going to post any articles on OpenGL, or are you keeping it simple and sticking with DirectX only?

### #11Grayson  Members

Posted 12 April 2001 - 02:51 PM

# Where can I find a good C++ compiler?

I downloaded one from borland but it seems to be only running in DOS without any text editor or anything. Is there a compiler out there that has an editor built into it that I can download for free?

--"Luck is something that happens to the prepared mind"

### #12Martee  Members

Posted 12 April 2001 - 03:10 PM

No compiler has a built-in editor
Some compilers come with an editor (that is, an IDE). Check out Dev-C++, which is a package containing the MiniGW compiler and an IDE.

~~~~~~~~~~
Martee
http://www.csc.uvic.ca/~mdill

### #13Blazeroni  Members

Posted 12 April 2001 - 06:33 PM

I would warn against Dev-C++. I tried to use it during the tutorial''s first incarnation, but had some serious troubles. I eventually had to give up. This might be due to some inexperience with the program, but I believe it is due to some sort of incompatibility with DirectX. I don''t think Dev-C++ supports it. I read on several other message boards that this was the case. I never could find a way around it. So, I eventually broke down and bought MSVC++. It''s a mighty fine program if you can afford it. But, if you do decide to go the Dev-C++ route it will definitely take some finagling. Oh, and if anyone has actually gotten Dev-C++ to work on the old tutorial or gets it to work on this one, please post it. Thanks. Peace.

Blazeroni

### #14Anonymous Poster_Anonymous Poster_*  Guests

Posted 13 April 2001 - 01:41 AM

Indeed... I have had some problems getting Dev-C++ to work with DirectX too. I heard there was some kinda way to get it to work, but I couldn''t figure it out, and I ended using VC++ too... I wouldn''t reccomend using this Dev-C++ unless you either are very experienced or is very clever , or unless you can get someone who is to help you. As far as I recall its a pretty good enviroment (though not as good as VC++)...

### #15Kirneh  Members

Posted 13 April 2001 - 01:41 AM

Oops... double post...

I posted the above...

Edited by - Kirneh on April 13, 2001 8:43:16 AM

### #16folleitor  Members

Posted 16 April 2001 - 10:09 AM

hello, four years ago,I got the MSVC++ 2.0 and that´s what i have , .....is it really necessary to use the 6.0 version¿?¿?
and if it´s really neccesary to get the 6.0 version...... , where did you get it¿?¿ did you pay for it¿¿?¿?

than you teej!

### #17folleitor  Members

Posted 16 April 2001 - 10:25 AM

what development tools does Id sofware use? do they use DirectX?

### #18OctDev  Members

Posted 16 April 2001 - 10:42 AM

Id built quake 3 arena using openGl.

### #19Bifff  Members

Posted 16 April 2001 - 11:01 AM

The Free Borland C++ Builder Compiler

If you do not have much money to buy a compiler, or even if you do, I recommend you the free Borland C++ Builder compiler (nicknamed BCC), that you can download here:

BCC 5.5

It is by far one of the best compiler available as it knows (almost) all the ANSI C/C++ (MS Visual C++ don't).

When it comes to DirectX, BCC users will have to download specific Borland-compatible libraries at Fötsch's website:

Borland-compatible DirectX LIB's

UltraEdit

Being just a compiler, BCC does not come with an IDE. So I suggest you to use UltraEdit to edit your code:

UltraEdit 8.00b

And for an easy to use interface between UltraEdit and BCC, you can use UEMake available by his programmer's site:

UEMake

Edited by - Bifff on April 16, 2001 6:07:19 PM

### #20kuyote  Members

Posted 18 April 2001 - 10:29 AM

Any students out there? I picked up a version on VC++ 5.0 Professional when it was hot for \$99 from my book store. It was the same one they sell in the stores. Now I think you can get 6.0 if you are a student.