What is the best game for beginners to start with?
There''s a bit of a debate on that subject. I read in an article here that Tetris should be the starting point, and then she should move onto Breakout, PacMan and some sidescroller. I''ve also heard plenty of people say that Tetris is just too complicated for the beginner because there are too many elements involved.
In the book, "Tricks of the Windows Game Programming Gurus," the first game source code the reader sees is a Breakout clone called Freakout (though it seems André was just trying to impress the reader with his skill).
I''ve also heard that PacMan is the way to go, because it has all the elements of a good game. However if you ask me the enemy AI elements add just as much complication to it as the squares, peices and gameboard in Tetris. You may forget or not even know this, but the ghosts in PacMan actually have independent AI. This means they don''t all act the same and just try to take the shortest path to get to you for the kill, but only one does that, and then another guards the area at the center, and the the third one just takes a bunch of random turns.
I say of course you CANNOT learn programming through game programming. Those have become just two seperate things. So of course you should learn a programming language and API before you tackle game programming. Actually, once you have enough skill, you can start programming games at your level while you''re learning an API.
This might end up being another forum warzone like Playstation 2 vs. GameCube or Dx vs. OpenGL, of which I never have any part, but I''ll risk it and say I think a short quiz game should come first and then Tetris, then PacMan. If you have a firm knowledge of classes, objects and functions, then Tetris shouldn''t be much of a problem, nor PacMan.
Prolly a puzzle game such as Tic-Tac-Toe or Hangman.
-----------------------
Hail to the king, baby.
-----------------------
Hail to the king, baby.
-----
everyone here has most likely read the articles and knows the ideas that your talking about. I just saw you post in a forum your reading a book on c++, so i suggest you finish everything on that, learn win programming, go to dx, and then make a 2d asteroids game cause you wont have any AI really.
bad!
quote: Original post by Pik
PONG!!!
What better first game than the first game!
Actually the first game ever was played in ancient times by the first people of earth, the barbarians. They''d punch each other to see how could cause the most pain. However I doubt that would be much of a computer game.
I am the most theoretical programmer i know (meaning wasting time on ''correctness'' instead of just ''trying'' stuff) ... but I still say that anyone who thinks you can learn C++, then Win API, then DirectX, then game programming ... is just being crazy.
You learn something big and nasty (and powerful) like c++, by adding to your knowledge incrementally. So ... you ''learn'' to program just by programming ... always strive to move just one step from what you know ... and if you reach too far ... start over and try to just prove/solidify what you think you know. This to me suggests that you need to know just enough C++ to correctly predict the behavior of an elementary program with a few functions and a few variables... then you write one. Same goes for Windows coding ... just enough of the API to make a WinMain, register and create a main window, and have an ultra simple WinProc() ... once you do that ... you can add exactly the features you want to learn / play with. As for games: just think of a ''game'' that exorcises what you know or want to know about programming.
A game such as Tetris exercises many areas of game programming ... so it would be better to identify them and tackle them independently.
1. GAME DATA - You need to be able to design your data model (the teris board, the falling block(s)).
2. GAME LOGIC - You need to understand the game logic (piece moves down after elapsed time, piece moves or rotates due to user action, piece colides with bottom or existing block, lines are formed and eliminated ... etc).
3. USER INERFACE / OUTPUT / GRAPHICS - You need to know how to draw a game screen, and render the blocks consistently.
4. USER INTERFACE / OUTPUT / SOUND - You would also want to trigger sounds at appropriate times, based on game logic.
5. USER INTERFACE / INPUT - You need to create an input model and code it (decide what happens when the user presses various buttons in various situations).
If you look at this list, you can probably realize there exist stages in which not everything needs to exist to be runnable. Here''s one possible order to develop a tetris game in order to learn the pieces and verify them as you go.
1. Create some basic tetris classes or structs ... including board, block, and score (number of lines for now).
2. Write a framework that creates an empty board. Also write functions to output the boards contents for debugging (like print rows of either spaces or X''s into a file).
3. Add the ability to insert a block into the board at the top middle.
4. Add the ability to move the block down.
5. Test that this works by stepping it through a few move and then outputting the board ...
AT THIS POINT ... you have enough game logic to go in 3 different direction ... your choice.
Route1 - More game logic ... keep going until the internals support all tertis features.
Route2 - User Interface / Output ... dig into learning the basics of graphics code now ... and create an ultra simple tetris board drawing function ... .then you can run your game and see blocks moving down the screen (and off the boards
Route3 - User Interface / Input ... code the basic user interface ... controls that don''t DO anything yet .. but call stub funcitons for rotating the peice, creating a game, whatever.
I suggest you add minimal keyboard input first ... like X to quit, S or T to step forward one step (move the piece down), and D or L to log the board to a debug file. Then you can run your game ... hit S a few times, hit D, hit S a few more, hit D again .. and quit ... then go look at your file ... see if it''s right. If so ... move on
Then you create the graphics ... purely for personal satisfaction ... so that ... combined with S ... you can make the peice zoom of the board in real time ... at this point ... you are ready to simply begin adding features incrementally. You can add whatever you want ... in any order ... let the user rotate, or detect colisions .. it doesn''t matter ... spawn new games, or add a timer to step for you .... play sounds or make pretty color cycling ... it''s all about what you want to learn next.
I figure this should help people who don''t know where to start or what to think when they hear "start with a tetris clone" ... this is not the only way to do things .. but if you don''t have one in mind ... just start on this one ... the key is to start somewhere ... anywhere ....
good luck
You learn something big and nasty (and powerful) like c++, by adding to your knowledge incrementally. So ... you ''learn'' to program just by programming ... always strive to move just one step from what you know ... and if you reach too far ... start over and try to just prove/solidify what you think you know. This to me suggests that you need to know just enough C++ to correctly predict the behavior of an elementary program with a few functions and a few variables... then you write one. Same goes for Windows coding ... just enough of the API to make a WinMain, register and create a main window, and have an ultra simple WinProc() ... once you do that ... you can add exactly the features you want to learn / play with. As for games: just think of a ''game'' that exorcises what you know or want to know about programming.
A game such as Tetris exercises many areas of game programming ... so it would be better to identify them and tackle them independently.
1. GAME DATA - You need to be able to design your data model (the teris board, the falling block(s)).
2. GAME LOGIC - You need to understand the game logic (piece moves down after elapsed time, piece moves or rotates due to user action, piece colides with bottom or existing block, lines are formed and eliminated ... etc).
3. USER INERFACE / OUTPUT / GRAPHICS - You need to know how to draw a game screen, and render the blocks consistently.
4. USER INTERFACE / OUTPUT / SOUND - You would also want to trigger sounds at appropriate times, based on game logic.
5. USER INTERFACE / INPUT - You need to create an input model and code it (decide what happens when the user presses various buttons in various situations).
If you look at this list, you can probably realize there exist stages in which not everything needs to exist to be runnable. Here''s one possible order to develop a tetris game in order to learn the pieces and verify them as you go.
1. Create some basic tetris classes or structs ... including board, block, and score (number of lines for now).
2. Write a framework that creates an empty board. Also write functions to output the boards contents for debugging (like print rows of either spaces or X''s into a file).
3. Add the ability to insert a block into the board at the top middle.
4. Add the ability to move the block down.
5. Test that this works by stepping it through a few move and then outputting the board ...
AT THIS POINT ... you have enough game logic to go in 3 different direction ... your choice.
Route1 - More game logic ... keep going until the internals support all tertis features.
Route2 - User Interface / Output ... dig into learning the basics of graphics code now ... and create an ultra simple tetris board drawing function ... .then you can run your game and see blocks moving down the screen (and off the boards
Route3 - User Interface / Input ... code the basic user interface ... controls that don''t DO anything yet .. but call stub funcitons for rotating the peice, creating a game, whatever.
I suggest you add minimal keyboard input first ... like X to quit, S or T to step forward one step (move the piece down), and D or L to log the board to a debug file. Then you can run your game ... hit S a few times, hit D, hit S a few more, hit D again .. and quit ... then go look at your file ... see if it''s right. If so ... move on
Then you create the graphics ... purely for personal satisfaction ... so that ... combined with S ... you can make the peice zoom of the board in real time ... at this point ... you are ready to simply begin adding features incrementally. You can add whatever you want ... in any order ... let the user rotate, or detect colisions .. it doesn''t matter ... spawn new games, or add a timer to step for you .... play sounds or make pretty color cycling ... it''s all about what you want to learn next.
I figure this should help people who don''t know where to start or what to think when they hear "start with a tetris clone" ... this is not the only way to do things .. but if you don''t have one in mind ... just start on this one ... the key is to start somewhere ... anywhere ....
good luck
No! You''re all wrong!
The absolute best thing to do is to start with an RPG!
==================
/* todo: insert cool sig */
Martee
Magnum Games.NET
The absolute best thing to do is to start with an RPG!
==================
/* todo: insert cool sig */
Martee
Magnum Games.NET
ReactOS - an Open-source operating system compatible with Windows NT apps and drivers
actually start with a flight simulator!! its much more fun
Yes! There are kangaroos in Australia but I haven't seen them...yet
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement