design time

Started by
5 comments, last by hplus0603 19 years, 8 months ago
I am currently trying to built the game "chicken invaders". It is a simple game where the user has to fire bullets and kill many chickens which are coming down on him. The user moves sideways and the chickens release eggs which can kill the user. The user fires bullets . If chickens get hit, they die and a bone falls down which if taken gives the user some points. There is a special packet which falls randomly in each level. If the user can collect that, then each firing releases 2 bullets instead of one (This goes on increasing till 7 bullets per shot)...blah blah.... I have already spent like 2 days on planning out the classes and still i have not been able to come up with something good. I was wondering if i am a fool :) so , please tell me what is the approx time that should be required for planning this kind of a game?? Thanx Mishal
Advertisement
It depends on your skills...
If you are new to programming (I guess) you will need much more time I think. Just try out your concept. If you feel you can't get far with it, just forgett the old one and think for a new way to do it. Give yourselfe some time and don't make haste...
Hi,

Quote:Original post by mishal153
I have already spent like 2 days on planning out the classes and still i have not been able to come up with something good. I was wondering if i am a fool :) so , please tell me what is the approx time that should be required for planning this kind of a game??


Well, tell us what you came up with, otherwise, how would we know if you are a fool or not? [smile]

Seriously though, designing is hard. If you've never done it, and if you've never been taught it, it is even so much harder. But practice makes perfect, so keep at it.

As far as "something good" is concerned, thing is, it's hard to say if something is good or not until you start coding, when you are just learning to design. And chances are, it's no good. Except you won't know untill you try implementing it. But the whole idea of design is to get an idea for good coding and then code it, but you are then doing something exactly opposite, so it doesn't make sense. But that's the way it is. [smile]

One bit of advice: don't overdesign. Countless are the times when I wanted to start a small little game, so that for once I would actually finish one, and then I would go on and design, and I would try to make say my rendering class so flexible that it could not only draw my game, but a whole family of related ones. And so I would get so bogged down in flexibility, that even this simple game would never see the light of day.

Any ways, post an outline of your idea here somewhere, and you are bound to get plenty of critique on it. [smile] (I mean, the design idea. The game idea we pretty much already got.)

Vovan
Vovan
I'm a relitivly new c++ programmer, but i have done aa lot of qbasic before this.

it usually takes me about 2 weeks to get to the point where i could finish the project, but i never do because i can't be bothered. usually i just start coding and then add and update stuff when i have a better idea, i don't like the planning part
www.stickskate.com -> check it out, some gnarly stick skating movies
That sounds like a fun game!! I think I'll steal your idea! ha ha just kidding... but it does sound like a fun game and not too difficult to do.

Don't worry about figuring out how to implement every little detail up front. By the time your are done, your finished game will be very different from your original design anyway. Start with a basic framework, then work on a complete framework, then implement some basic (non-interactive) game logic and minimal rendering (enough to verify the game logic), then get the input working, then more game logic and a basic HUD, ...
John BoltonLocomotive Games (THQ)Current Project: Destroy All Humans (Wii). IN STORES NOW!
Quote:Original post by JohnBolton
That sounds like a fun game!! I think I'll steal your idea! ha ha just kidding... but it does sound like a fun game and not too difficult to do.

Don't worry about figuring out how to implement every little detail up front. By the time your are done, your finished game will be very different from your original design anyway. Start with a basic framework, then work on a complete framework, then implement some basic (non-interactive) game logic and minimal rendering (enough to verify the game logic), then get the input working, then more game logic and a basic HUD, ...


pretty sure the game already exists, so don't think he would mind if you did one too :)

Good points though, and try not to over plan.. Like I said before, if you guestimate the game will take say 2 weeks to make, don't sit there and plan everything out for a good 7 days..
Make a pretty decent plan but it should take you as long to plan a game as it takes you to make it or else you are going to spend all your time planning and none programming
class Thing {  public:    virtual void update( DWORD delta ) = 0;    virtual void draw( DWORD curTime ) = 0;};class Cannon : public Thing {  ...};class Chicken : public Thing {  ...};class Egg : public Thing {  ...};...std::list< Thing * > gStuff;bool gRunning = true;Cannon * gCannon;void Initialize() {  gStuff.push_back( new Chicken );  gCannon = new Cannon;  gStuff.push_back( gCannon );}class Update {  public:    DWORD stepSize_;    Update( DWORD step ) : stepSize_( step ) {}    void operator()( Thing * t ) {      t->update( stepSize_ );    }};class Draw {  ...};void MainLoop() {  DWORD now = timeGetTime();  while( gRunning ) {    DWORD then = timeGetTime();    while( then > now + TIMESTEP_SIZE ) {      Commands cmds;      ReadInputAndConvertToCommands( &cmds );      gCannon->readCommands( &cmds );      DWORD dTime = then-now;      std::for_each( gStuff.begin(), gStuff.end(), Update( TIMESTEP_SIZE ) );      now += TIMESTEP_SIZE;    }    std::for_each( gStuff.begin(), gStuff.end(), Draw( then ) );  }}


Obviously, Chicken::step() moves the chicken, and checks whether any bullet has hit it, and checks whether it's time to drop an egg; if so, it creates a new Egg and adds it to the list of things. Similarly, each other object step() function updates the state of that specific concrete object.
enum Bool { True, False, FileNotFound };

This topic is closed to new replies.

Advertisement