a certain way of thinking...
Something i have noticed about my programming abilities is that even though i am quite comfortable with the syntax of c/c++ and also some of the more complex aspects of the language i feel that i cannot think in a free form way sometimes.
For example while reading through a c++ book recently i could understand all the basics and some of the more complex things like creating templates and data structures etc but when it comes to thinking about creating objects for games etc i feel that i do not know not how to start creating these objects and also not know what these objects would consist of.
I mean if i was to create something like an employee or book object or even a linked list for these objects i would know what data members these objects are likely to consist of and even how to go about it, but for games it seems different. I mean even simple things like creating a object for cards or a dice object seems to be difficult for me. I don''t know whether this is because i am following the books too intensely but i always feel that i understand the code in the books and like i said i do understand the syntax of the langauge.
How about them apples?
How about them apples?
a game (or any real-life program, for that matter) is much more complex than examples people use in books. ability to think in game terms comes with experience. do you think you''d be able to understand even simple data structures if you were just starting learning the language?
you can use divide-and-conquer approach to simplify design process. for instance, start with the most general design description you have, and then gradually refine it in small increments until you can translate it into specific data structures and algorithms. or you can start from the small components and try assembling them together in different patterns, keeping combinations that seem closer to your design goal.
you can use divide-and-conquer approach to simplify design process. for instance, start with the most general design description you have, and then gradually refine it in small increments until you can translate it into specific data structures and algorithms. or you can start from the small components and try assembling them together in different patterns, keeping combinations that seem closer to your design goal.
I understand what you are trying to say niyaw but i find it incredibly frustrating at not being able to think through these problems. Don''t get me wrong i do still enjoy learning from books and every now and then i read something that gives me a whole new understanding to programming but usually this is just more or less what i would term syntax.
I mean this may seem stupid to some people but at one point i started trying to learn windows programming before i even knew much c/c++ code and even though i tried to convince myself that i knew what i was doing i really didn''t have a clue looking back now. One of the things that you will notice about windows programming is that the winmain function takes several parameters and i used to wonder where the program got these parameters from. Anyway to cut a long story short, i eventually figured out that the program got these parameters from the operating system but only after i read about it in some c book.(the main function in console programming can also accept parameters but you usually don''t get to see many examples of this in most c books).
The above experience is typical for me i guess and i usually find that even now i feel that i am still just learning syntax and not about ways of thinking out how to solve problems. I know that you say that a lot of this maybe down to experience but i feel that now that i know a lot about syntax and even program organization(header and cpp files etc), i should be able to think about these problems for myself but i always seem to hit a brick wall.
Usually when i am reading tutorials etc i can look at the code and understand syntactically what is happening and also where to look for certain things in those programs like where data and functions are declared thereby helping me to understand what is going on in the program but i guess i do not understand the thinking behind it.
I don''t know but maybe i just need to see how someone may go about solving something first.
How about them apples?
I mean this may seem stupid to some people but at one point i started trying to learn windows programming before i even knew much c/c++ code and even though i tried to convince myself that i knew what i was doing i really didn''t have a clue looking back now. One of the things that you will notice about windows programming is that the winmain function takes several parameters and i used to wonder where the program got these parameters from. Anyway to cut a long story short, i eventually figured out that the program got these parameters from the operating system but only after i read about it in some c book.(the main function in console programming can also accept parameters but you usually don''t get to see many examples of this in most c books).
The above experience is typical for me i guess and i usually find that even now i feel that i am still just learning syntax and not about ways of thinking out how to solve problems. I know that you say that a lot of this maybe down to experience but i feel that now that i know a lot about syntax and even program organization(header and cpp files etc), i should be able to think about these problems for myself but i always seem to hit a brick wall.
Usually when i am reading tutorials etc i can look at the code and understand syntactically what is happening and also where to look for certain things in those programs like where data and functions are declared thereby helping me to understand what is going on in the program but i guess i do not understand the thinking behind it.
I don''t know but maybe i just need to see how someone may go about solving something first.
How about them apples?
How about them apples?
what you''re describing is typical of people (myself included) who jump ahead when they shouldn''t. start projects appropriate for your skill level. if you have trouble designing a complete game, why not try implementing some part of it separately? maybe designing and implementing a simpler game? maybe not even a game, but only an effect or a feature from the game. the jump from doing console programs to doing games is quite big, and there''s nothing wrong with backing off your original goals if you realize that you can''t reach them just yet.
well, the type of thing you are talking about, is the type of thing covered in books like "Design Patterns" the famous gang of four book. That book is pretty tough to get through at first (and I was a third year college student) ... but I bet, even if you bought it now, there would be wonderful things you could get from it, just by reading the inside cover a few times, and following up on things as they interest you. Please understand, that even master programmers sometimes get in over their head ... and then they either go back to a problem latter, or get help from other programmers ... because human beings have a tendency to keep trying to put the square peg in the round hole, until something happens which lets them finally realize the hole is round ...
I consider myself a c++ guru, and i''ve only really been using the language for 5 years (4 professionally), but right around the time I first got into gamedev.net there was an article on "plugable factories" ... me and my coworker tried for a whole week to understand the article ... and implement it in our own way. Finally we decided to leave out just 1 thing, and we got it working, and then began to understand, so the very next day, we added the 1 thing back in, and understood the entire concept. It took about 2 months before we really understood the concept well enough to know when to use it in other scenerios, and for a while, every single problem seemed to be solvable with plugable factories ... but now the world is back in order, and I have a perfectly great serialization library using them, and a dynamic code loading module using them, and many things which partially use them, but a whole bunch of stuff that just doesn''t use them at all ...
Realize that there is not a right way to code a library or game ... c++ is so huge, that you can be VERY object-oriented, or VERY generic, or you can use generic programming to represent your OO design, or you model a state machine, or whatever ... there are hundreds of ways to get a mid-sized task accomplished, just like the many poems you could write about feeling, but there is no right way ... just ways which feel appropriate after your done (and make you proud) and other ways which seem childish, trite, or overly complicated - and make you wish you had the time to redo them (or burn them) ... but at the end of the day, your game is going to have some really elegant pieces, and some really ugly ones ... but you''ll leave them in there, cause they''re working ...
I consider myself a c++ guru, and i''ve only really been using the language for 5 years (4 professionally), but right around the time I first got into gamedev.net there was an article on "plugable factories" ... me and my coworker tried for a whole week to understand the article ... and implement it in our own way. Finally we decided to leave out just 1 thing, and we got it working, and then began to understand, so the very next day, we added the 1 thing back in, and understood the entire concept. It took about 2 months before we really understood the concept well enough to know when to use it in other scenerios, and for a while, every single problem seemed to be solvable with plugable factories ... but now the world is back in order, and I have a perfectly great serialization library using them, and a dynamic code loading module using them, and many things which partially use them, but a whole bunch of stuff that just doesn''t use them at all ...
Realize that there is not a right way to code a library or game ... c++ is so huge, that you can be VERY object-oriented, or VERY generic, or you can use generic programming to represent your OO design, or you model a state machine, or whatever ... there are hundreds of ways to get a mid-sized task accomplished, just like the many poems you could write about feeling, but there is no right way ... just ways which feel appropriate after your done (and make you proud) and other ways which seem childish, trite, or overly complicated - and make you wish you had the time to redo them (or burn them) ... but at the end of the day, your game is going to have some really elegant pieces, and some really ugly ones ... but you''ll leave them in there, cause they''re working ...
well thanks for the support guys. I guess i was losing the faith a bit there so to speak. I would be interested to know more about the types of books you are talking about Xai and if there are anymore you know post them here. Anyway i think i will have a look at amazon sometime as i''m sure i have seen similar books in the past in a bookshop which did not deal with programming but what it takes/thinking required to be a programmer. I wish i spent a bit more time looking at what that book had to say now but i didn''t think it would be as useful as a typical book which teaches you a programming language.
One more thing would it be true that in the majority of tutorials that you read you only ever get to see the finished article thus making it seem like the author is some sort of super genius when in fact plenty of mistakes were probably made?
If this is the case then maybe it would be more worthwhile if someone wrote a tutorial worts and all so that you can see the exact approach that they took when making a game.
niyaw i see what you are saying but i am not looking at creating anything graphical at the moment as i do not know much about direct x /windows programming although i understand more these days. The only thing that i have ever done in direct x is setting up a full screen window and displaying a text box. With windows i know how to display a windows with some text on it and also use some gdi functions like drawing rectangles, circles etc. I want to focus mainly with console programming at the moment while i finish my c++ book so unless you know some fancy effects that you can achieve using text i don''t think i will be able to produce anything spectacular but thanks anyway for the support and comments.
How about them apples?
One more thing would it be true that in the majority of tutorials that you read you only ever get to see the finished article thus making it seem like the author is some sort of super genius when in fact plenty of mistakes were probably made?
If this is the case then maybe it would be more worthwhile if someone wrote a tutorial worts and all so that you can see the exact approach that they took when making a game.
niyaw i see what you are saying but i am not looking at creating anything graphical at the moment as i do not know much about direct x /windows programming although i understand more these days. The only thing that i have ever done in direct x is setting up a full screen window and displaying a text box. With windows i know how to display a windows with some text on it and also use some gdi functions like drawing rectangles, circles etc. I want to focus mainly with console programming at the moment while i finish my c++ book so unless you know some fancy effects that you can achieve using text i don''t think i will be able to produce anything spectacular but thanks anyway for the support and comments.
How about them apples?
How about them apples?
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement