Thread: Not sure what to do...

  1. #16
    Registered User
    Join Date
    Oct 2008
    Location
    Bloomington, Indiana, United States
    Posts
    40
    The problem is that I don't know any good sites to go to for learning game development, terminology, or even software design as I'm so broke I barely make it by week to week. I only have internet because family was nice enough to help, knowing I needed the connection to program. Like someone pointed out, there is a plethora of sites on all the subjects, but not all of them are really good for learning when you can't afford the books needed to get into it properly.

  2. #17
    Unregistered User Yarin's Avatar
    Join Date
    Jul 2007
    Posts
    2,158
    Quote Originally Posted by BHXSpecter View Post
    The problem is that I don't know any good sites to go to for learning game development, terminology, or even software design as I'm so broke I barely make it by week to week. I only have internet because family was nice enough to help, knowing I needed the connection to program. Like someone pointed out, there is a plethora of sites on all the subjects, but not all of them are really good for learning when you can't afford the books needed to get into it properly.
    As I was trying to say... Poking around in existing open-source games (and game engines) can help a lot. It's probably not a good idea to spend money to learn game development (at this point in time), when there is just so much freely waiting for you to do.

  3. #18
    Registered User
    Join Date
    Oct 2008
    Location
    Bloomington, Indiana, United States
    Posts
    40
    My problem may very well be the design issue. I mean I've read and done so many of the book examples and exercises that doing purely terminal based menu controlled apps is easy for me. When I try to do game related programming I just feel like I have no clue what I'm doing. I get overwhelmed. I'm lacking somewhere but I'm not sure where and it is driving me nuts as I truly don't know what to do to improve my programming and get better at it to even attempt to get a job. There are no groups near me to get help from and I get majorly self conscious when I work with others due to my poor programming skills. I'm a walking disaster, or at least I feel like it at times.

  4. #19
    Officially An Architect brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,396
    If it makes you feel any better, the best programmers I've worked with believed they weren't really that good. Humility is a good sign.

    You get better by practicing though, not reading books. The books help, but the practice is what advances you. It's okay to feel frustrated, even stupid, just keep writing code. I'm starting to feel like I'm extremely competent, but it took nearly 20 years to get here.
    Code:
    //try
    //{
    	if (a) do { f( b); } while(1);
    	else   do { f(!b); } while(1);
    //}

  5. #20
    Unregistered User Yarin's Avatar
    Join Date
    Jul 2007
    Posts
    2,158
    Quote Originally Posted by BHXSpecter View Post
    ... I've read and done so many of the book examples and exercises ...
    Drop the "exercises" and actually do a project (a Quake mod would be a great place to start, IMO (but I think I'm just bias to Quake)). If 3D is too much to start with, make a decent 2D game (2D is _much_ easier than 3D, so that might be a good idea).
    You need to bite off a little more than you can chew, if you ever plan on learning to chew in the first place.


    Quote Originally Posted by BHXSpecter View Post
    ... When I try to do game related programming I just feel like I have no clue what I'm doing. ...
    I'm currently writing my first real Lisp program. And I can relatively confidently say that I had no idea what I'm doing. Because of this, once it's done, any experienced Lisper that looks at it will probably be surprised it even works Having no clue just makes things harder and take longer, not impossible.


    Quote Originally Posted by BHXSpecter View Post
    ... There are no groups near me to get help from ...
    Not so. If you have a coding _or_ design issue, see how someone else does it (*cough* Quake *cough*), and if that doesn't help you, ask here. If you question is to-the-point enough, you're very likely to get an answer.


    Quote Originally Posted by BHXSpecter View Post
    ... I'm a walking disaster, or at least I feel like it at times.
    Learning game programming will be _much_ more attainable if you apply yourself, enjoy the journey, and stop dwelling on how much you suck.

  6. #21
    Officially An Architect brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,396
    Quote Originally Posted by MK27 View Post
    I'd take that to mean that most people who want to create an engine don't really understand what they are getting into, don't appreciate what is involved, and are perhaps not that interested in becoming so. They want to create a game -- a very concrete (as opposed to "abstract") application.

    OTOH, maybe brewbuck has gone over my head again
    I didn't literally mean stupid, but it takes a special skill to make something that's not just useful to you but useful to others as well. Code reuse is hard, and anything called an "engine" is all about it. I think you got my gist.
    Code:
    //try
    //{
    	if (a) do { f( b); } while(1);
    	else   do { f(!b); } while(1);
    //}

  7. #22
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by BHXSpecter View Post
    My problem may very well be the design issue.
    For me, understanding design has occurred in stages, whereby I'll be working concretely on a project for several weeks or months, doing a lot of coding, applying what I do know, then I get to a certain point where I want (or need) to step back and attend to other things. All the work I've done sort of gestates. During that time I inevitably (sometimes, because I am hanging around here) end up doing some reading about design; it seems to me to be the same general themes and principles over and over again, elaborated and explored in different ways (patterns), but aspects that I didn't notice before always start to jump out at me, and things that I didn't quite get before become clearer.

    Understanding design principles is essential to good programming. A lot of them are just common sense things that you may already have recognized on your own, but as with everything, having them formally defined with names etc. is at the very least a mnemonic aid. Beyond that, it will open the door to things that would probably take a very long time to recognize on your own. Understanding design-speak takes time because it's fairly dense, but it does get clearer and easier; it would be nice if you could just learn syntax, read a book on design, and then start writing exemplary code, but I think very few people have reading/comprehension skills that acute. Also, design-speak is generally language agnostic and so abstracted from code; without enough experience working with code, it is just too much of a leap to connect the two. You literally have to have this "library" of memories of stuff you've experienced whilst programming floating around to draw upon; that's the raw material for insight.

    I just found this via google and read the first page:
    Design Principles | Object Oriented Design

    I think that is a good starting point; it may or may not make sense right away; I think this is a sort of circular field, you keep going around and around it to learn, rather than there being a clear starting point. But once you understand the guiding light of design (to facilitate code re-usability, extensibility, and flexibility) it is like logic* (it has dead ends and highways), which is why it's not particularly contentious -- design patterns are collections of the insights/experiences of other people, and (again) if you appreciate the core principles, you'll generally appreciate the use value of design patterns.

    Wikipedia has a lot of great stuff. Eg, reading the paragraph on "The Dependency Inversion Principle" from that page above, it is not clear what is meant by higher and lower level modules, but if you go the more in depth wikipedia article, that is explained. Probably some experience applying polymorphism will help with that one.

    Maybe the best thing to do is just start reading stuff like that, focus on the things that are clearest and make the most sense to you, and follow that like a bread crumb trail. Eg, one of the things I (eventually) recognized, having already used it "intuitively", was the factory pattern.

    Trying to come up with small demos of stuff like that like you would for a school exercise is probably useful, because again, the more hands on OOP you do, the clearer the material again. You don't want to be applying a pattern for the first time in your big project; you just want to be applying on a new scale. So doing exercises first will delay your work on your project, but save you time and improve your code quality later.

    When it comes time to think about a big project, don't just focus on the end goal -- keep design as the means to the end front and center in your mind. Without that, chances are 2-3 months down the road you are going to start hating yourself. Unforeseen and utterly confounding problems are inevitable anyway, but a good design makes them much easier to deal with. I don't know how many times I've spent half a day fixing a bug, then afterward looked at myself in the mirror (so to speak) and said, "You have to take another day and re-organize this stuff, because I don't want to go thru that with that chaos again" (ultimate fear: that unless I re-organize, next time I won't be able to solve the problem) So I do, and that doesn't spare me the next bug, but it spares me much of the headache in tracking it down and fixing it. With big projects it's just crucial. It's the difference between something you love to work on and something that has become overwhelming and painful. Pretty sure periodic re-organization (aka, refactoring) is a normal activity for most programmers. Exactly when is a judgement call; probably sooner is better than latter in relation to when you recognize the possibility.

    * another characteristic of logic: you can accept or deny it, but you are unlikely to find a way out of it. That's why there are not a bunch of "design paradigms" -- there is just the one logic, "design", and anything outside of that is the swamp of naivete.
    Last edited by MK27; 02-03-2012 at 08:16 AM.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  8. #23
    Registered User
    Join Date
    Oct 2008
    Location
    Bloomington, Indiana, United States
    Posts
    40
    Thanks everyone for their advice. I'm reading the above site, and just coding things that come to me. Problem is that I feel they are too simple and only doing basics which brought up the one thing I wish I could find. A list of project ideas to do for helping the programmer become more competent and confident in their abilities (google returns tons of lists but the ones I've found normally do a few simple then jump to drastically complicated. I'll eventually find a good list somewhere. Thanks again for all the advice and help.

    I put a shortcut to this thread on my desktop so that I can come back and re-read the advice if I start feeling down over anything I'm doing. The advice here at least has been more helpful and understandable than the other places I sought advice from. Thanks.
    Last edited by BHXSpecter; 02-03-2012 at 10:26 AM.

  9. #24
    Master Apprentice phantomotap's Avatar
    Join Date
    Jan 2008
    Posts
    5,108
    Well, I don't know you from Bob, and I'm sure that some other developers here have a different view, but if you find "exercises" to easy, "projects" to hard, and are still working at it, you are exactly where you need to be.

    Anyway, dropped by to say that brewbuck is absolutely right. I've started out many times to develop a graphic engine generic enough to support my demos and things without having to change a lot of code for each instance; I always design something, some seemingly little component, in such a way as to strongly influence some aspect of the client game.

    *shrug*

    Of course, every time I fail I get a little closer! One day I will be that god!

    Mwahahahahaha!

    O_o

    Wow. That sucked.

    Soma -> off to practice evil laugh.

  10. #25
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413
    Quote Originally Posted by rags_to_riches View Post
    Why am I not surprised? DeVry really isn't anything more than a diploma factory.
    Sadly, this is completely true. Even a bachelor's from DeVry isn't really worth much of anything to employers from what I've been told.

  11. #26
    Registered User
    Join Date
    Oct 2008
    Location
    Bloomington, Indiana, United States
    Posts
    40
    Sadly, this is completely true. Even a bachelor's from DeVry isn't really worth much of anything to employers from what I've been told.
    Don't know if it is factually true, but it sure feels true. They allowed me to finish the degree, but financial aid fell through in the last semester. So I have at least two student loans to pay on and a $7k back tuition before I can even get my Bachelor of Science Game and Simulation Programming Dissolving Toilet Paper Degree. Even told my wife I didn't know whether to bother framing it or wipe my butt on it. Though I have heard of two DeVry grads getting into EA (not that it is something to brag about considering EAs treatment of programmers in the past).

  12. #27
    Registered User
    Join Date
    Dec 2007
    Posts
    2,675
    I will say this: I work with a developer who went to DeVry that *is* good. I do not believe he did an online program though; I believe he went to the brick-and-mortar school in Chicago. Also not a "game programming" degree.

  13. #28
    Registered User
    Join Date
    Oct 2008
    Location
    Bloomington, Indiana, United States
    Posts
    40
    Yeah, got to thinking about that. The online course is terrible, but the campus course is great from what I understand. Sadly I live where I would have to drive 2+ hours or more to a campus and that said the campuses I could go to don't have GSP degree. Your developer must have done CIS because DeVry doesn't offer a CS course. Though they do focus on game programming more as they also have a Web Game Programming degree too. I live in Bloomington, Indiana and while IU has a CS degree, my life situation made me unable to physically go to the campus and the don't offer it online (but I have learned that online courses are a joke thanks to DeVry).

Popular pages Recent additions subscribe to a feed