views:

260

answers:

13

I want to improve my programming skills especially object programming. I want to write a simple game, but it shouldn't be too simple. I actually wrote classic Tetris and I want to try something more demanding. I need your help. Could you give me some idea or titles of games to look up to?

Thanks for all of the answers but I need a more demanding game. I was thinking about snooker or maybe a simple strategy game.

The game does not need to look good. At the moment I'm more interested in programming part and not in making a totally perfect product.

+6  A: 

Breakout, its a great game a lot of fun to program. Infinite possibilities for customization

Charles
I think it's too easy but thanks
Sonji
That depends on how far you go with it :) Proper physics on rounded blocks, a good variety of powerups, blocks that do different things entirely ... look at Reflexive's _Ricochet_ series for an example of what you can do with that sort of gameplay.
Anon.
@Sonji to easy? Just up the requirements! How about allowing 10,000 blocks on one screen with no fps drop? Or how about a water level where breaks creates ripples that must interact with each other? Or how about a special upgrade that allows the player to instead of break blocks, to become a moving block and dodge the computer?? This actually sounds kind of fun, brb
Charles
Breakout is a game I totally recommend! As stated, you have infinite customizations. You could work with different types of bouncing [not simply x*=-1] too. Or be like me, and make it so that you can make obscure map shapes and add moving obstacles ^_^
ItzWarty
A: 

Bejeweled is a good game with some interesting problems to solve.

Mike Sherov
+2  A: 

Sudoku, the logic should be interesting to code. And you can work on making a really good, intuitive, easy-to-use UI.

Or (if you find that too simple) - try something with AI (artificial intelligence) if you'd really like a challenge. Pacman might be a good idea... getting the ghosts to think is fun.

froadie
+1 for AI......
Earlz
+1  A: 

Make asteroids! Some cool physics problems.

Adam Driscoll
A: 

Space invaders if you want something similarish,

pinball if you want to get into some physics :D

CrazyJugglerDrummer
A: 

Pacman : it looks easy, it's easy in some part, but in the end, it's still a lot of AI...

I often suggest to make a shoot-them-up as it makes you work collisions, fast graphic rendering and inputs management, all the basics.

Klaim
+3  A: 

With games, the devil is in the details. Writing a Tetris-like game is easy, writing Tetris is hard, because the "polish" is what takes the most effort. Same applies to Breakout (Charle's suggestion).

If you think Tetris is easy, you probably didn't make a game you'd actually want to play. Are the shapes falling smoothly, or do they jump from line to line? Is scoring done well (or at all?)

Do you have graphical backgrounds and other types of eye candy?

If you want to polish up your programming skills, nothing beats making a well-polished product.

levik
A: 

You might want to try one of the sliding puzzle games like GridLock.

TheJacobTaylor
A: 

Making a game like minesweeper is fun, and the complexity is pretty good. Have you worked with Direct3D before?

ItzWarty
A: 

I'm working on Black Jack. Even asked a question about it here on SO!

Joel M.
A: 

I would suggest designing a simple first person shooter. The jump to 3D introduces a new world of problems to solve.

Zachary
I'm more interested in 2D games. I don't want to start with 3D yet.
Sonji
+1  A: 

I don't understand at all why you would want to make a game that already exists. The fun is in designing your OWN game. The joy of programming is in watching your creations come to life.

If you're just going to do what's already been done, you're treating a creative art like a school subject, trying to pass a test of your own making.

Plynx
+3  A: 

One extremely important skill that a surprisingly large amount of programmers lack is the ability to create a new idea, and then make an in depth plan before writing any code. Knowing ahead of time exactly how to structure every part of your project is very important, and can save you a tremendous amount of time. Perhaps you are already doing this, but you also need to become comfortable with growing ideas. A good exercise for this is as follows (I use this, and it's really helpful for big games. Everything after the colon for each of the following steps is an example):

  1. Pick a general game style: a single player 2d platformer. Horizontal and vertical scrolling.
  2. Then create the main playable characters: a ninja.
  3. Define what the main characters are attempting to do (the goal): break into a mansion, re-kidnap the ninja's cat (find it first), and escape.
  4. List all the abilities your characters have: run left/right, jump up, wall jump, crouch, crawl.
  5. If there is a storyline to your game, write it down: The ninja's cat got kidnapped and he has to rescue it.
  6. Describe any side-kicks and what they do
  7. Define anything that can interact with the player:
    1. Cameras, which trigger near-by traps. Some sweep horizontally.
    2. Mines that can be triggered by any object landing on them.
    3. Trap doors (on the floor. Falling through them simply leads you one floor down)
    4. Vertical locked doors. Unlock them by finding the corresponding key.
    5. Vertical barriers that can be activated by cameras that spot you in order to trap you (They'd slide down from the ceiling).
    6. This section could get pretty long. I suggest you draw sketches of some of the objects that are hard to describe (4 and especially 5)
  8. If there are any bosses/living enemies, describe them - what they look like, how hard they should be, what their actions should be.
  9. Create a sample level on paper, this may inspire you to add to the list.
  10. Sketch all the other levels. For a game like this, you don't need to put a huge amount of time into this step, you can refine them later. This is more to make sure that you design the game in a way that will allow for everything you want.
  11. Decide how to structure your code, and what tools you will need for the project. Make sure you know how you are going to make the game function.
  12. Start coding!

Depending on the type of the game, you might not include all of the steps (IE bosses or storyline or sidekicks). It's important to get all ideas you have on paper. Not only because you might not remember them later, but also because writing it down can help trigger other thoughts for building on the idea. Even the ideas that you think might not be that good should get written down, you may change your mind, or refine the idea to where it actually is a good one.

I did supply you with a sample game idea (Though not fully developed, that'd take too long for a simple forum post), hopefully you get the idea.

Wallacoloo
Thanks a lot. I'll try to follow these steps.
Sonji