Advertisement Jump to content
Sign in to follow this  
Zanman777

Completely overwhelmed - should I just give up?

This topic is 1843 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

Hey there. I'm posting this for some motivation guidance, more than for tehnical advice. Please don't see it as a rant, it's more of getting some stuff off my chest while I explain my question.

Here's the thing: I've been learning to program games for about a year. What really got me fired up for it was a couple of exciting game ideas I had (no, no MMORPG LOL). Since I'm a relatively reasonable guy I wouldn't expect to tell someone to do the heavy lifting for me, I realize the world is full of so-called "great ideas"... So I started by picking up C++ again about a year ago (I had already learnt C++ basics a long, long time ago). I took it seriously - by this i mean no shortcuts - so I read C++ Primer. That's a huge but excellent book, as I really understood C++ deeply with it, but it also took me a long time to read (I read it thoroughly, taking notes, making sheets for memorizing and personal reference, etc). By a long time I mean i just finished it a couple weeks ago.

After C++ and a lot of "fishing" (searching the web and looking by trial and error for a right approach to learning game programming), I went on to SDL, as it seemed like a very good place to start to learn the game design/coding principles. SDL 2.0 came out recently, so tutorials to learn this version (which includes hardware-acceleration) are pretty scarce. Anyway, I found a book named "SDL game development" that uses SDL 2.0. So I picked that one up too.

I realized that, even though I was able to write custom classes and all that jazz according to the principles taught in the SDL book, learning SDL seemed too much of a detour for something that only handles 2D. "Maybe I could just get on with it and jump straight into OpenGL, which does SDL stuff and much more", I thought to myself. Besides, the fact that I was staying clueless as to how to implement 3D and even 2D on some subjects started to bug me.


So I looked for a good place to learn OpenGL. Being life as it is, my computer only supports up to OpenGL 2.0, which uses fixed pipeline (for whatever that is lol) - a feature that is either tolerated or hated to death by people who discuss it... Anyway, found some good sources to learn OpenGL... I had already picked some information here and there about vectors, matrices, but besides that I was in complete darkness. So when I was learning OpenGL, I was pretty much learning the API without knowing how 3D math actually works. Not very useful...

So I decided I should get some solid grounds on 2D/3D math too. So I put SDL and OpenGL on hold and looked for good books on that subject. "3D Math primer for graphics and game development" seemed like a very good book, and reviews were good too. So I started reading this book a couple of days ago.

Now I'm reading an 800 pages book that teaches math 3D thoroughly until I'm grabbing my hair and tearing it out lolol...

I must admit it... I'm getting burnt out, demotivated and downright lost in the middle of all this learning process. It's just too much to be done single-handedly... I need to know 3D math, then SDL, then either OpenGL or a graphics API like Ogre 3D, then Blender in order to make the models, then God knows what else... In my life I've learnt to play the guitar all by myself, to write and manage a blog all by myself, I've learnt a lot about guitar equipment all by myself, but learning to make games seems too much to bear. Maybe I'm tired of pushing so hard on myself...

Recently I've joined a team of programmers and contributed a bit as a game designer. I wrote a Game Design Document (it wasn't 100% finished, but it was well on its way), so I got a grasp of how a GDD needs to be written, etc. On that team, one of the hardest parts was to find 2D artists - it was so hard that the project was actually shifted to 3D because there seems to be more 3D artists than 2D ones. That also contributed to my shift to OpenGL after some SDL experiments...


So my question is: Should I just give up? I really enjoy the game ideas I have in mind, but I'm starting to believe I simply can't pull it off... On the other hand, I'd be glad to write a thorough Game Design Document for each game idea, and if I could get some folks to help me out I think the games would have some success. But... Is it realistic to expect some people to join me and pick up the GDD and get things started? Because right now that seems like the only way out...

TL;DR - I have some exciting game ideas in my head (none of them are MMORPGs, lol). So to get my hands dirty I've learnt C++ thoroughly during the last year. Then I started learning SDL, but shifted to OpenGL to know more 2D and 3D. I needed 3D math background for OpenGL, so I started learning 3D math from a book - it's boggling my mind after so much self-teaching... So I'm getting burnt out, demotivated and lost. Should I
A) give up my ideas,
B) change my approach to learning game programming (if so, how? Give me some advice, pls)
C) write a Game Design Document and try to get some folks interested in joining my project?

Edited by Zanman777

Share this post


Link to post
Share on other sites
Advertisement

It sounds like you need to set some short term goals to help you feel successful as you move towards your end goals. Give yourself some smaller steps to accomplish, break it into chunks.

Share this post


Link to post
Share on other sites


I realized that, even though I was able to write custom classes and all that jazz according to the principles taught in the SDL book, learning SDL seemed too much of a detour for something that only handles 2D. "Maybe I could just get on with it and jump straight into OpenGL, which does SDL stuff and much more", I thought to myself. Besides, the fact that I was staying clueless as to how to implement 3D and even 2D on some subjects started to bug me.

 

Before moving to OpenGL, did you even make a game with SDL? OpenGL only does graphics, so you still need to use an API such as SDL for handling player input, music, sound, and other things required for a game. At its core, programming a game is very much the same whether it's 2D or 3D. Most of what you learn in 2D game development can be carried over to 3D game development. As you've already learned, 3D graphics programming requires you to learn a lot of 3D math as well as learning a complex API, which is why it's a good idea to start with 2D development when learning how to make games.

 

Since you have a grasp on C++ and learned a bit of SDL, your short term goals now should be creating and completing a few simple 2D games with that API. OpenGL can wait for later, as well as your dream games.

 

Of course, that's only if one of your goals is to learn how to program games. If your real goal is simply to turn your ideas for games into a reality, then you're better off using a game engine as was previously mentioned.

Share this post


Link to post
Share on other sites

First, I'll try to give you a dose of reality instead of encouragement. If you're willing to accept the advice that you should give up, you absolutely should give up. Learning the basics is a lot easier than getting to the finish line, so it's going to get a lot harder before it gets easier.

 

If you can offer more than just game design documents, you might be able to find others to help you. If you can pay them even below market rates, that would work. If you have art assets that can convince people to take you seriously, that might work. If you have experience delivering products to market, that would help. If you wanted me as a programmer, you'd basically have to convince me you solve the non-programming problems for me and I can just focus on what I enjoy most.

 

If you want to learn game programming yourself, I strongly recommend you drop the books. It sounds like you're reading big, bulky books that are teaching you way more than you'll ever use, and doing it without even giving you the sense of satisfaction gained by actually coding. Just work on your game, and when you hit a problem look up how others solve the problem, then find online tutorials that will quickly teach you whatever is needed to solve the problem at hand. Does it really matter if you don't know how to add sound to a video game before you even have the core gameplay implemented? Does it really matter if you even know a geometry shader exists on your video card before you have core gameplay? Seriously, implement the basics of your game in HTML and Javascript if you have to so you can see if the idea really holds up anyways.

 

I'd also recommend upgrading your video card if it only supports OpenGL 2.0. A card that old (5+ years, right?) and weak will really limit you when you're running debug builds. It will force you to fix performance issues before playing with the visual result, meaning you might fix a performance issue only to find the code didn't accomplish the effect you wanted anyways. Avoid the countless hours of trying to get more than 0.004 fps every 2nd or 3rd compile. Your time is worth more than a semi-decent video card costs. A better card will also allow easier use of more advanced tools other people have already written when you're just testing out new ideas and such.

 

 

Share this post


Link to post
Share on other sites

IMO Learning game programing is a 5 year course at least (then you will be knowing something, and to be better it is 10 years 15 years) and even then it does not mean you will be able to make something good just you will be educated in the field

Share this post


Link to post
Share on other sites


IMO Learning game programing is a 5 year course at least

You just reminded me of an excellent journal entry from ApochPiQ, "Become a Good Programmer in 6 Really Hard Steps".  That being said, you don't need to do all of this stuff before you can make a great game, and there's a lot to be said for hands-on experience gained during the course of attempting real projects. smile.png

Share this post


Link to post
Share on other sites


Now I'm reading an 800 pages book that teaches math 3D thoroughly until I'm grabbing my hair and tearing it out lolol...

 

Books tend to teach extremely generalized theory, proofs, then provide less-than-minimal examples and don't explain how/why/when it is used. My belief is they're useless.

Have you tried playing with code or reading documentation? It's easy to figure what Translation/Rotation/Scaling matrices do; how they do it doesn't matter at all. View/Projection matrices are a bit harder to figure, but you have documentation, forums, Google. As long as you won't care how it works, but rather what it does you'll soon learn to use it.

Share this post


Link to post
Share on other sites

 


Now I'm reading an 800 pages book that teaches math 3D thoroughly until I'm grabbing my hair and tearing it out lolol...

 

Books tend to teach extremely generalized theory, proofs, then provide less-than-minimal examples and don't explain how/why/when it is used. My belief is they're useless.

Have you tried playing with code or reading documentation? It's easy to figure what Translation/Rotation/Scaling matrices do; how they do it doesn't matter at all. View/Projection matrices are a bit harder to figure, but you have documentation, forums, Google. As long as you won't care how it works, but rather what it does you'll soon learn to use it.

 

 

This. Books should mainly be used as a reference for something your actually doing. In college, I was forced to buy all of these programming books, that I rarely, if ever actually used. Learning was mainly in the form of homework that involved actually creating stuff. If I ever got really stuck, that was the time to start delving into the books. So my advice to you is to drop all books, and start up a project, one that is not an MMORPG :)

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!