need help getting started
Hello there, GDNet community. I'm kind of a game programming n00b, and I'm wondering if anyone has any suggestions for articles to read, books to get, etc. I don't really know a lot about game engine structure, and I'm trying to get the book Programming a Multiplayer FPS in DirectX 9.0. Oh, and I already checked out the Enginuity article, in case you were wondering. (Didn't help much!)
Thanks!
ProgrammerZ
First learn programming, and then apply it to games. Programming a FPS in DirectX isn't going to help you one bit. Learn how to program. Choose a language, Google tutorials, a ton will come up, work through those, then find some beginner book at your local bookstore and work through that. Be sure to actually work through the material, don't just sit and read.
I suggest you try o read some of the articles in the articles and resources sections.There are a lot of useful stuffs there!!!
Are you new to game programming alone, or new to programming in general?
In the former case we can't suggest much to you without knowing your programming language of choice.
In the latter case I suggest you pick a professional language ('professional' in the sense it's not just for newbies) with a high level of expressivity, that's easy to pick up and learn - Python springs to mind - Get to grips with that and then just build some games, simple ones like Pong, Tetris and Snake to begin with.
In the former case we can't suggest much to you without knowing your programming language of choice.
In the latter case I suggest you pick a professional language ('professional' in the sense it's not just for newbies) with a high level of expressivity, that's easy to pick up and learn - Python springs to mind - Get to grips with that and then just build some games, simple ones like Pong, Tetris and Snake to begin with.
Actually, I'm pretty comfortable programming with C++, and I have a basic grasp on DirectX. I just need to learn about engine structure. (I think.)
I guess I should mention that I've had experience programming games in Blitz Basic, and I've read Game Programming for Teens. I made a Space Invaders clone, and I started making a little platformer. But, I wanted to move to C++ becouse, 1, I had had experience with it before, and 2, C++ would let me program more complex games. (If you've ever used Blitz Basic before, you'll know what I mean.)
[Edited by - ProgrammerZ on April 1, 2008 7:25:30 PM]
[Edited by - ProgrammerZ on April 1, 2008 7:25:30 PM]
Quote:Original post by ProgrammerZ
I just need to learn about engine structure. (I think.)
No. Just make a game. After you've made enough games, you'll know what common infrastructure they needed, which logically constitutes some form of engine. Even better, you'll have their source code to extract it from.
There are plenty of existing C++ engines out there, ready made for you to use.
I'd be giving you bad advice if I suggested that writing an engine is the way forward for making a game.
If you want to make a game - make a game.
Writing an engine is such a black-hole of time that you're unlikely to ever even finish; furthermore you can't really write an engine without knowing how a game works anyway.
See this link for some obligatory reading.
The correct way round to do things is not to dedicate time into writing an engine first, instead just get going on making a game and as you do, or once you've finished, simply refactor reusable functionality to make up an engine.
Just to re-iterate my previous post, start making some simple games.
Try making tetris for example; since you're using C++ you'll want to divide it up into classes, here's one way:
Tetrad - for the tetris shapes
Board - for the board
Controller - for the game logic
Renderer - for the graphics side of things
Then have your main method create a window and collect input to send to the controller (which then decides what to do with it).
When you start your next project, say it's snake, then you might find that aspects of your tetris controller or renderer etc, could be re-used directly; rather than copy/pasting that code, stick it in it's own function/class and use that function/class in your new project. What you'll find is that iteratively you're developing a real and useful engine just by making games!
I'd be giving you bad advice if I suggested that writing an engine is the way forward for making a game.
If you want to make a game - make a game.
Writing an engine is such a black-hole of time that you're unlikely to ever even finish; furthermore you can't really write an engine without knowing how a game works anyway.
See this link for some obligatory reading.
The correct way round to do things is not to dedicate time into writing an engine first, instead just get going on making a game and as you do, or once you've finished, simply refactor reusable functionality to make up an engine.
Just to re-iterate my previous post, start making some simple games.
Try making tetris for example; since you're using C++ you'll want to divide it up into classes, here's one way:
Tetrad - for the tetris shapes
Board - for the board
Controller - for the game logic
Renderer - for the graphics side of things
Then have your main method create a window and collect input to send to the controller (which then decides what to do with it).
When you start your next project, say it's snake, then you might find that aspects of your tetris controller or renderer etc, could be re-used directly; rather than copy/pasting that code, stick it in it's own function/class and use that function/class in your new project. What you'll find is that iteratively you're developing a real and useful engine just by making games!
Thanks for the advice! You're right, I need to make a game, not an engine. Though I guess I should have called myself a "n00b to game programming with C++." As I mentioned, I have had some experience programming games with Blitz Basic, and I know how a game works. I'll see if I can post the source code to the game I made. (It's a pretty small game....)
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement