Can I write video games? How?

Suppose I had an idea for a video game that will rock the gaming world (which I don’t). It’s going to have totally awesome 3-D graphics, and loud explo…

Back up for a sec – It’s going to have totally awesome 3-D graphics. Let’s start there. I want to have 60 Jedi knights battling Freddy Kruger, all rendered in 3-D. OK, 1 Jedi knight. Forget that, how about a simple bouncing ball?

Where do I start? Since nearly every new game today has 3-D graphics, I assume that there must be some game SDK available. What would that be? Is it affordable? Can I run it on a standard PC, or would I need a supercomputer? Or a Mac?

OpenGL is a good place to start. I had a VR class in school that used it, we started with flying around in space (with stars, planets, etc) and gradually learned about light, shading, transparency, etc.

Well shoot, that was Unix, forgot about that. Maybe someone will come along with an open source Windows tool.

To write computer games, one does not need more than a compiler and an OpenGL (or DirectX if one were so inclined) binding for the language of choice (Most windows C++ compilers come with OpenGL/DirectX headers).

Everything else can help by factors of magnitude, but strictly speaking is unneccesary. You will probably need some sort of modeling software to draw the models, such as Maya or 3D Studio Max, but you can do them by hand if you want, since these are very expensive.

I seriously recommend the

http://nehe.gamedev.net/

set of OpenGL tutorials.

Hope this helps,

Groman

It depends on what you’re trying to do.

Probably one of the easiest places to start is by creating maps and mods for an existing game. That way you don’t need to learn matrix math and quaterinons, you can get right down to making Freddy run and fight.

A lot of first person shooters come with editing tools these days, or have them available over the net. Half-Life is really the big dog in this arena, with the CounterStrike mod still being one of the most popular games on the net. You can find a lot of tutorials and howto guides on modding Half-life. It’s an older game, but most of what you’d learn can be directly applied to newer games.

The DVD special edition of Unreal Tournament 2004 has extensive modding tools included and a disc that has video tutorials on creating maps, characters, weapons and other items for the game.

The Battlefield games (Battlefield 1942, Battlefield Vietnam) also have very extensive tools and very active modding communities.

Doom 3 has its level editor built right into the game’s executable, but there isn’t that much documentation out there on it yet.

If you’re looking for more on the programming aspects of it, there are lots of open source games and game development kits out there.

A couple of good places to start:
http://sourceforge.net/
http://freshmeat.net/

And a couple of projects I’ve worked with in the past:
http://www.flightgear.org/

http://crystal.sourceforge.net/

There’s http://www.gamedev.net (which hosts the NeHe site linked above) - they’ve got a great community over there. But what it comes down to, is you’re going to have to learn to program. C++ is all the rage in programming these days.

If you want a gentle introduction, go out and buy Neverwinter Nights. It comes with an extraordinary toolset that allows you to (essentially) build your own 3rd-person RPG games. You won’t have to worry about the details like coding the damn engine, loading models, doing the animation, etc. Plus, their scripting language is very C-like, so it will help you grasp the fundamentals of programming. And they’ve got a great community too. It’s a very good introduction.

After you’ve knocked together a few NWN modules, grab some books on C++, SDL, & OpenGL and get to work learning the real nitty-gritty details.

–Earthworm Jim, aspiring game programmer since…well, a long time ago :slight_smile:

These are all great links, thanks!

I already know enough programming to earn myself a nice living, but it’s been a few years since I’ve done C++. I work with Javascript often enough, so at least I’m not so rusty on syntax.

Years ago I tried to program a cribbage game in C++, but the graphics portion made me realize I was way in over my head. Had I used VB, I would have written it in a week.

      • It takes tremendous amounts of work and troubleshooting to create a 3-D game from scratch yourself. You can do it, but very few people bother to. The game-API for Microsoft is named DirectX. You can download the libraries and SDK from Microsoft’s site, and I think you need a C++ compiler as well. DirectX contains libraries for managing 3-D modeling (Direct3D), sound (DirectSound), game-controller input (DirectInput), network play, and various other things. And they were gonna change the name so it might not be called that anymore, but anyway. OpenGL is an “open source” video library, similar to Direct3D but lacking much of the features of DirectX… but also lacking the dependency on Microsoft Windows.
  • But I say–don’t go there, because game modding is way funner–you get to immediately begin creating the things that you actually see on-screen, rather than worrying about tracking down errors in your basic game engine. With some games it is possible to change everything about the game–everything on-screen as well as how the game is played.
  • Also note: the CD version of Unreal Tournament has the modding tools included; the DVD might have more free stuff but the CD does have the things you need to get rolling.
    ~

SMU in Dallas now offers a program in video game development. Have to admit that SMU is just a wee bit spendy.

Sorry 'bout that.

Here’s a few more resources for you:
Microsoft’s Visual C++ 2003 toolkit - this is the same compiler they ship with the Visual Studio .Net Professional, but without the nifty IDE. If you have Visual Studio Standard, or even Visual C++ 6, you can make that IDE work with the new stuff. If you don’t have either, there are a ton of freely available editors that do nice things like syntax-highlighting, etc. Though you probably already have your favorite.

OpenGL is a cross-platform 3D graphics library. Many a flame-war has been started over OpenGL vs. DirectX, so I’ll just say neither is any better or worse than the other, but I like OpenGL because it’s cross-platform. YMMV

But, OpenGL is just graphics, you also need something to fill in for audio, I/O, networking (if you need it) etc. While DirectX handles all of that, if you’re going with OpenGL you can use the Simple DirectMedia Layer libraries to fill in the rest. Also cross platform, and plays very nicely with OpenGL.

But writing your own great big 3D game from the ground up is hard, hard work. Garage Games has a high-quality game engine cheaply available ($100 USD) - having an engine all ready to go vastly simplifies the process. And of course, they’ve got forums available to post your availability or team openings.

Anyway, just thought I’d add a few more links for you.

Oh, no problem. I’ve met more than enough people in my time that thought they could create applications without doing even a smidge of programming. I had one guy ask – nay, demand – that I tell him – in just five minutes – how to use VB to create a calendar. I think he thought there was a “Create Calendar” wizard or something.

FWIW, the 3D game development time that I’ve seen have been from 2 to 3 years with teams for 4 to 6 programers. More programmers doesn’t tend to decrease the time, but does allow for a more complex game. Also, this isn’t including the work done by artists to create models.

The majority of the time is spent in defining object behaviors and interactions in the game, and debugging said code. Keeping a nondeformable ball from passing through an axis-aligned plane is a lot easier than to get James Bond to jump from one ledge to another.

Some things you may find useful:

Allegro game programming library:
http://www.talula.demon.co.uk/allegro/

3DState - Free 3D game engine (I haven’t tried it, not sure how good it is)
http://www.3dstate.com/

Free graphics libraries:
http://www.thefreecountry.com/sourcecode/graphics.shtml

Crystal Space - Free 3D game engine
http://crystal.sourceforge.net/tikiwiki/tiki-view_articles.php

I wrote my own 3-D engine about 5 years ago just to see if I could do it. The math gets a bit thick at times, but it’s definately do-able and there are lots of tutorials out there that can help you. Googling things like texture mapping and other terms you find on the above sites will lead you to many other sites.