How do you design your programs and games?
Do you jump in without preparation, or are you more sophisticated in your approach? I've started to see the value in design, but I don't know exactly how to do it well. Sometimes I write flowcharts or "clouds," while other times I just write a short list of what needs to be done, but this seems insufficient. A case in point is with the side scroller I'm making. I wrote the level loader, but then realized I need to expand it to include layers and the walkability of each tile. It's not a big setback, but it would have been nice to have prepared for this ahead of time or at least to have had it done when I wrote the loader in the first place.
What can I do, specifically, to improve my designs?
Technical Design
Moderator: Coders of Rage
- LuciDreamTheater
- Chaos Rift Newbie
- Posts: 39
- Joined: Tue Jan 20, 2009 2:18 am
- Location: Southern CA
- Contact:
- MarauderIIC
- Respected Programmer
- Posts: 3406
- Joined: Sat Jul 10, 2004 3:05 pm
- Location: Maryland, USA
Re: Technical Design
For a quick reply: class/UML diagrams are a great way to go. A requirements listing is good too. But the thing with design is that no matter what approach(es) you take, you have to do it well.
Perhaps a more in-depth reply later.
Perhaps a more in-depth reply later.
I realized the moment I fell into the fissure that the book would not be destroyed as I had planned.
- programmerinprogress
- Chaos Rift Devotee
- Posts: 632
- Joined: Wed Oct 29, 2008 7:31 am
- Current Project: some crazy stuff, i'll tell soon :-)
- Favorite Gaming Platforms: PC
- Programming Language of Choice: C++!
- Location: The UK
- Contact:
Re: Technical Design
My first major(ish) project I decided to do, BLOCK started off a little strange really.
I had been learning how to use SDL about a year back, so I wanted to start a project. In the beginning it was just an experiment, so I didn't start with any design notes, but as I continued adding functionality, I started to document all the new features I was adding, however this approach became cumbersome, and I basically had a half-documented solution, and adding minor updates to the functionality became difficult.
Therefore I'm going to suggest you do a little pre-project planning before you start the project.
Consider maintainability and expandability, Since you will likely need to re-use your code for other purposes, or expand your current project in the future.
In a nutshell, I would do some planning(and i'm not just being hypothetical, I intend to do extensive planning for my next project).
I had been learning how to use SDL about a year back, so I wanted to start a project. In the beginning it was just an experiment, so I didn't start with any design notes, but as I continued adding functionality, I started to document all the new features I was adding, however this approach became cumbersome, and I basically had a half-documented solution, and adding minor updates to the functionality became difficult.
Therefore I'm going to suggest you do a little pre-project planning before you start the project.
Consider maintainability and expandability, Since you will likely need to re-use your code for other purposes, or expand your current project in the future.
In a nutshell, I would do some planning(and i'm not just being hypothetical, I intend to do extensive planning for my next project).
---------------------------------------------------------------------------------------
I think I can program pretty well, it's my compiler that needs convincing!
---------------------------------------------------------------------------------------
And now a joke to lighten to mood :D
I wander what programming language anakin skywalker used to program C3-PO's AI back on tatooine? my guess is Jawa :P
I think I can program pretty well, it's my compiler that needs convincing!
---------------------------------------------------------------------------------------
And now a joke to lighten to mood :D
I wander what programming language anakin skywalker used to program C3-PO's AI back on tatooine? my guess is Jawa :P
-
- ES Beta Backer
- Posts: 61
- Joined: Sun Sep 21, 2008 4:46 am
- Location: U.K.
Re: Technical Design
I don't tend to plan anything. Usually, I just get an idea, then code it almost straight away. I wouldn't recommend this approach though. You end up with REALLY messy, inefficient code and/or a craptonne of rewrites. But, hey, I'm still learning, there's time to change
Maybe I need a MarauderIIC to fix up my code!
Maybe I need a MarauderIIC to fix up my code!
¡SÃ! ¡He dejado en libertad los prisioneros y ahora vengo por ti!
~El Pollo Diablo
~El Pollo Diablo
Re: Technical Design
Don't we all!Maybe I need a MarauderIIC to fix up my code!
<qpHalcy0n> decided to paint the office, now i'm high and my hands hurt
Re: Technical Design
We should invent a pocket marauder, so everyone can have overly edited posts, and everyone would have the best grammar possibleChaos Clown wrote:I don't tend to plan anything. Usually, I just get an idea, then code it almost straight away. I wouldn't recommend this approach though. You end up with REALLY messy, inefficient code and/or a craptonne of rewrites. But, hey, I'm still learning, there's time to change
Maybe I need a MarauderIIC to fix up my code!