Thread: Needing direction(Have some c++ expirience)

  1. #1
    Registered User
    Join Date
    Aug 2011
    Posts
    1

    Lightbulb Needing direction(Have some c++ expirience)

    Hello, I am new to this forum and was wanting to know a certain direction to go in. I want to learn how to program in C++ for gaming but I want to do it on my own. I recently checked in with my community college and told them I wasn't so good at math but I wanted to try and take a c++ course to get the BASICS down. Eventually I wasn't at the required math level so I had no other choice but to work my way up. One of the counselors said that this was going to be too hard for me as if I was stupid or just saying I would fail horribly and after said I would need to know long division which I do(all basic math up to about some algebra).

    I came here to ask if anyone can give an opinion on what I should do first, I'm watching a c++ beginner video which has helped me to the point of learning up to Pointers which I still don't fully understand pointers and arrays I understand to some point.

    I have one c++ book atm that I use to learn new things (beginning c++ through game programming, third edition by:Michael Dawson) which helped me here and there but the videos seem to help me more. I want to know if there's another place I can learn as well since people learn in different areas. I already understand that after I would need an API to be used with c++ to actually make the game with graphics so I just want to learn all the c++ I can first that is required to make a game.

    Thanks to anyone who can answer and sorry if i posted this in a wrong area. I plan on learning c++ and an API to make games as a side thing(hobby I guess you could say) and I mainly want to take computer animation 2d/3d and make CGI as my actual profession but having programming experience is also a good thing.

  2. #2
    Registered User
    Join Date
    Jun 2005
    Posts
    6,815
    Courses have prerequisites for a reason. Without some basic understanding of mathematics, your knowledge of several of the "BASICS" of C++ would be better described as "IGNORANCE" or "INCOMPETENCE".

    At its most basic level, mathematics is about a structured approach to describing problems and the approach to solving them. The purpose of all programming languages is to provide a means to systematically implement a solution to problems. There is a linkage there: it is not possible to implement a solution to problems if you can't describe them, or if you can't describe a useful approach to solving them.

    That is not saying that a PhD in mathematics is necessary to be a computer programmer, or that it is necessary to tap into mathematical knowledge for every type of programming. But a working knowledge of the basics of mathematics increases your chances of being even a moderately capable computer programmer.

    Computer animation or CGI tend to be areas that require some elementary knowledge of mathematics - at least: a lot of that style of development involves using mathematical transformations of various types of data.

    I can also assure you that understanding pointers and arrays is much easier for someone if they have some rudimentary knowledge of mathematics.
    Right 98% of the time, and don't care about the other 3%.

    If I seem grumpy or unhelpful in reply to you, or tell you you need to demonstrate more effort before you can expect help, it is likely you deserve it. Suck it up, Buttercup, and read this, this, and this before posting again.

  3. #3
    Registered User
    Join Date
    Aug 2010
    Location
    Rochester, NY
    Posts
    196
    I'm not sure I can agree with either the response, nor your counselor.

    Sometimes courses have a prerequisite for a reason...other times not so much.

    Being in a CS MS program, people are like "oh, computer science master's? You must be really good at math!!" - "no, actually I just about failed all my math classes" - "yeah, I never actually used said math in any of my CS classes."

    I'm not quite sure where the notion comes from, but I don't believe it's an issue. There's a concept called discrete math, most universities offer a class in that area. This deals with basic boolean logic (truth tables), unions, intersections, and some of them go on (we have a class called 'intro to computer science theory') to the pumping lemma, and turring machines, and structural induction proofs, and ........ like that. That stuff is kind of useful...and I kind of emphasize the word "kind of" as only the basic principles (ie. truth tables, set functions, etc.) have an impact on software development.

    While I haven't been in the industry for 15,000 years like some people, I can honestly say I've used less than 10% of my college level math when doing anything in computer science. Now that changed *a bit* in computer graphics 1, as we needed to do matrix manipulations (linear algebra, didn't take it), but I taught myself, got a B, and life moved on...and likewise for cryptography & computer vision - I hear they're both pretty math intensive....BUT, they're also intro courses into heavy duty research fields. I think for your every-day programming, this stuff isn't as necessary as it's stressed to be.

    You're 100% right, understanding pointers or arrays is NOT any easier if you know 16 levels high of calculus.

    That being said, if you're hoping to make a game, C++ is probably the wrong place to start. If you're in Windows (and you most likely are), start with C#. It has direct access to the Win32 API, same as C++, and there's lots of other bindings of game engines and the like for it, mos game engines are developed in C or C++, but it typically ends there, C# has a pretty large impact on gaming in Windows. That being said, C# is much easier than C++, while the basic logic is still required, it doesn't bother you with many details of implementation as C or C++ would, it's very similar to Java, except the bytecode is executed by the .NET framework natively, so it pretty much runs anywhere on Windows.

    I can't say I know much about API's for games, but I'm sure if you google it you can find many for C#. You can look into D3D/D2D (DirectX), though I'm not sure if it has C# bindings (it should, though, considering how hard MS shoves it down peoples' throats), that's typically the basis for just about all games for Windows. The DirectX API is the standard for that kind of stuff, so I'd say start there, start with some basic examples of it, work from there. As for looking for game engines or frameworks, I'm sure a quick google of: Windows C# game API" would yield many results on page 1.

    Best of luck to you...and don't get discouraged by people saying "it's too hard for you" - that's a load of bull........, if you have the motivation, you can accomplish it.

  4. #4
    Registered User
    Join Date
    Jun 2005
    Posts
    6,815
    Quote Originally Posted by Syndacate View Post
    if you have the motivation, you can accomplish it.
    That is true, just as it is possible - with enough effort - for people who know almost nothing of mathematics to become proficient in C++.

    However, people who want something but are not willing to complete prerequisites are often exhibiting a lack of motivation. Sure, the prerequisites may be challenging, but that is not an excuse to avoid them. And, no matter how challenging the prerequisites are, the alternatives on offer often require even more effort.

    Let's say someone came to you asking for money, and you agreed to give him money if he completed some job. If he refused to do the job, but still asked beseechingly for the money, would you consider he was motivated or unmotivated?
    Last edited by grumpy; 08-03-2011 at 03:32 AM.
    Right 98% of the time, and don't care about the other 3%.

    If I seem grumpy or unhelpful in reply to you, or tell you you need to demonstrate more effort before you can expect help, it is likely you deserve it. Suck it up, Buttercup, and read this, this, and this before posting again.

  5. #5
    Registered User
    Join Date
    Aug 2010
    Location
    Rochester, NY
    Posts
    196
    Quote Originally Posted by grumpy View Post
    That is true, just as it is possible - with enough effort - for people who know almost nothing of mathematics to become proficient in C++.

    However, people who want something but are not willing to complete prerequisites are often exhibiting a lack of motivation. Sure, the prerequisites may be challenging, but that is not an excuse to avoid them. And, no matter how challenging the prerequisites are, the alternatives on offer often require even more effort.

    Let's say someone came to you asking for money, and you agreed to give him money if he completed some job. If he refused to do the job, but still asked beseechingly for the money, would you consider he was motivated or unmotivated?
    I understand, and agree for the most part...but have you seen the rates for classes from private unis? I mean I know he said he's going to a CC, so it should be cheaper, but still.

    One of the best courses I want to take at my school (Systems Programming 2) is only offered at the undergrad level - it, and it's pre-req (Sys Prog 1) both have everything they need to become MS level classes - but they aren't - they just never were 'elevated' to be so. In an initiative to make it part of the MS program, I went to the professor who taught it, then later the administration. The administration wanted 10+ people to guarantee (over 1 year in advance - only offered once/school year in a quarter system) that they would be able to take the course - BUT - I shouldn't even bother because EVERY course is going to get thrown to hell in the '13-'14 school year due to the uni changing to semesters. Now, that segway aside, the point simply being, I REALLY want to take the second one, but seeing as I have all my BS requirements, it won't help me in any way towards my path to graduation (there's no credit minimum or anything - you just need the required classes, equivalents, or waivrs)...but at the price they pay per credit hour I'm not sure I want to swing it... I'd be paying for a class that's quite hard (main project is focused around developing your own kernel), at an incredibly high price, with absolutely no gain in terms of degree - just the knowledge gain....at some point in the near future, I have to make that decision. Knowledge vs money - am I willing to shell out ~3-3.5k for that 40 hours of knowledge? I'm not sure, I'll have to decide before I get my MS, though..

    For administrators to make something a prerequisite, it's free. So if it's not a strict requirement (ie. will it be enforced), one definitely has to ask whether or not this prerequisite will actually help them in the class they're trying to take? Upper level college math courses for general programming? I just don't see it. So I see what you're saying about people putting forth the effort, and I agree, but on the other side, there's a big, cast iron dollar sign chained to the leg of many people taking college classes.

    @ OP:
    Here's what I recommend in terms of steps, you can feel free to take 'em or leave 'em - or modify them.
    1. Finish your C++ book - get through that SOB, DO the examples - don't just say you get it. Get a solid foundation of C++.
    2. Figure out what you need to DROP for your C++ to become C - ie. what CAN'T you do now that you're compiling your old C++ code as C - and how do you restructure it to make C work for the same purpose?
    3. Look into Windows Gfx API's - as I said before, only a google away, you'll probably be looking into DirectX type stuff, D2D, D3D, etc., but these will all be accessible from C#...but no need to worry, C# isn't too far off from C++, it's like C++, only you don't have to worry about anything important, such as memory management or pointers :-P.
    4. Learn OpenGL - this will expose you (and I suppose the standard DirectX library via C will, too) to creating 3D renderings using only programmatic solutions, how graphics fits into the rendering pipeline, transformations, you'll pick up your matrix algebra there, textures and texture mapping, tessellation, programmable shaders (why can't we just use Phong shading? It's built into most systems...right?), and all that fun stuff - maybe the more advanced projects too such as ray tracers or photon mappers, then if you want you can take it further and look into research in CGI to see how the researchers are constantly coming up with new writings in peer-reviewed journals with new methodologies of squeezing just a little bit of time or realism out of an image.

    In short:
    - Learn C++/C - get a good solid foundation
    - Start toying with a MS gaming framework (I'm sure there's many around to choose from), or a rendering API such as OpenGL or Direct3D. Work your way up into their most advanced concepts.

    If you want to do good CGI, you must understand the basics - above are the basics. If you don't want to get a degree in it, and only keep it as a hobby, you'll just have to learn it yourself....on the flip-side, it might be worth it to take said math courses so you can get into these programming courses offered by your university. If there's one thing I've learned about universities, sometimes you got to jump through hoops to make them happy.

    Best of luck to ya!

    Feel free to PM me if you have ay Q's you don't feel like posting here.

  6. #6
    Registered User
    Join Date
    Jun 2005
    Posts
    6,815
    Quote Originally Posted by Syndacate View Post
    So I see what you're saying about people putting forth the effort, and I agree, but on the other side, there's a big, cast iron dollar sign chained to the leg of many people taking college classes.
    That may be so, but the OP stated ..... "I recently checked in with my community college and told them I wasn't so good at math ...."

    That certainly isn't suggestive of some evil administrator imposing an excessive financial burden.
    Right 98% of the time, and don't care about the other 3%.

    If I seem grumpy or unhelpful in reply to you, or tell you you need to demonstrate more effort before you can expect help, it is likely you deserve it. Suck it up, Buttercup, and read this, this, and this before posting again.

  7. #7
    Registered User
    Join Date
    Aug 2010
    Location
    Rochester, NY
    Posts
    196
    Quote Originally Posted by grumpy View Post
    That may be so, but the OP stated ..... "I recently checked in with my community college and told them I wasn't so good at math ...."

    That certainly isn't suggestive of some evil administrator imposing an excessive financial burden.
    True, I simply meant that sometimes you really got to reflect on whether the prerequisite is worth the $.

    Op also said this:
    Quote Originally Posted by OP
    One of the counselors said that this was going to be too hard for me as if I was stupid or just saying I would fail horribly and after said I would need to know long division which I do(all basic math up to about some algebra).
    It sounds like the counselor was a dream shooter I was talking about, and I believe he has all he needs for the "BASICS" as he put it, to learn C++ in and out.

    @OP: Go for it, class or no class - the only real perquisite for learning C++ is motivation or necessity.

  8. #8
    Registered User
    Join Date
    May 2011
    Location
    Around 8.3 light-minutes from the Sun
    Posts
    1,949
    So, although this has been an interesting digression from the OP's question, I suggest we take a step back and actually evaluate the question at hand.

    Quote Originally Posted by Zeph77 View Post
    I came here to ask if anyone can give an opinion on what I should do first, I'm watching a c++ beginner video which has helped me to the point of learning up to Pointers which I still don't fully understand pointers and arrays I understand to some point.

    I have one c++ book atm that I use to learn new things (beginning c++ through game programming, third edition by:Michael Dawson) which helped me here and there but the videos seem to help me more. I want to know if there's another place I can learn as well since people learn in different areas. I already understand that after I would need an API to be used with c++ to actually make the game with graphics so I just want to learn all the c++ I can first that is required to make a game.
    @OP: The C++ required to learn how to make a game is C++. There is no quick solution to this. If you want to make a game you need to learn how to program. There really isn't, just learn this subset of C++ for gaming. If you are having problems with pointers and arrays I would be willing to wager you are not ready to start programming a game - at least not what you are probably thinking of anyway. Here is our links for game programming.

    Also, there are books out there that teach C++ focusing on game development, but IMO they aren't the best. However you may find some value to them if you are just looking to play around. They are good introductory texts at the least.
    Quote Originally Posted by anduril462 View Post
    Now, please, for the love of all things good and holy, think about what you're doing! Don't just run around willy-nilly, coding like a drunk two-year-old....
    Quote Originally Posted by quzah View Post
    ..... Just don't be surprised when I say you aren't using standard C anymore, and as such,are off in your own little universe that I will completely disregard.
    Warning: Some or all of my posted code may be non-standard and as such should not be used and in no case looked at.

  9. #9
    Banned
    Join Date
    Aug 2010
    Location
    Ontario Canada
    Posts
    9,547
    Ok... zeph77 ... self-educated programmer here...

    Get yourself a good introductory level book on C or C++ programming. Doesn't matter which one, so long as it's a *beginner* text... I like "Thinking in C++" and "Accelerated C++" but there are many other perfectly good books you can buy and/or download...

    Sit down with the book and go through it page by page. Type up and compile all the examples, do the exercises, play with the code, break it, fix it, modify it, until you understand it, then turn to the next page...

    It is a horrible mistake to think you can actually learn programming from a video. Passive observation does not lead to good retention. In fact you will not absorb half of it and the other half will fade in your sleep (Why do you think movies are so enjoyable "second time around"?) Listening to lectures is only marginally better and reading a text book only a tiny step better than that... The real lessons, the ones that sink in and stay with you are the ones you work with ... the ones you have to THINK about. This is why all computer courses give assignments and it's why textbooks have quizzes at the end of each chapter... The teachers and authors know that you won't learn it unless you do it.

    As has been pointed out already... If you want to learn, you will. But don't confuse spending half an hour reading a couple of pages before bed as learning... you need to set aside time and make a deliberate effort if you want it to take up residence between your ears.

    So, like I say, get a good beginner book, work it page by page and stay with it until you turn the last page...

    Earlier I mentioned C or C++ ... either way, the basic concepts --conditionals, loops, functions, pointers-- are pretty much the same, C++ adds classes (which baffle me to no end) so you can start where you like... Personally I would suggest that you get some general C knowledge first then jump into C++... or, like me, you can just stay with C... Either way, game programming is really just a matter of practice and experience.

    As far as the math is concerned... Yes you will need some math... but as a rule programming is mostly a matter of ordering events. You can always worry about the math part if you land on it...

    The important thing is to get started. Worry about the obsticles and problems as you encounter them...

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Noob needing help
    By Youthm in forum C Programming
    Replies: 2
    Last Post: 05-15-2011, 10:30 AM
  2. Beginner Needing Help
    By MadProfessor in forum C Programming
    Replies: 4
    Last Post: 08-08-2005, 04:31 PM
  3. New to coding, needing some help.
    By Matttan8989 in forum C++ Programming
    Replies: 8
    Last Post: 07-20-2005, 10:41 PM
  4. Needing help please....
    By tameeyore in forum C Programming
    Replies: 2
    Last Post: 02-06-2005, 01:06 PM
  5. Newbie to C++ needing help
    By Tazwoh in forum C++ Programming
    Replies: 6
    Last Post: 03-02-2003, 12:50 PM