Sign in to follow this  

design time

This topic is 4859 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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

Share this post


Link to post
Share on other sites
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...

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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, ...

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

This topic is 4859 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this