Unsure of where to go next

Started by
15 comments, last by Marz 18 years, 10 months ago
I believe most can agree that game programming is becoming very complex, often requiring a new language that can handle that complexity. Because of this, most companies turn to OOP for their projects. If I were you, I'd start with Managed DirectX w/ C# or VB.NET, whatever floats your boat. Or try Java/JOGL. Why waste 400 lines of code of making a video when you can just do it in 3 lines? Overall, I think it's needed. Our beginner programmers need something more easier to work with, as much as it is for professionals so they can go on and be more productive in their work. After all, customers will expect better software in the future as they expect to now.
Advertisement
Not to be puke inducing, but you need to "take that frown and turn it upside down"..;)

Don't be so hard on yourself guys and just give your heads a little shake and come to the table with different approaches to your solution:

SOLUTION/GOAL: MAKE A GAME

How do you get there? Set some simple goals..

1. IF you've had too hard a time with DX/MDX (or any library): DROP IT.
2. Find a library you CAN use, or even go higher up for a total game package. ie. you guys might find Blitz3D REALLY up your alley. Google it.

3. Get a triangle, box, mesh ANYTHING on the screen and evaluate how easy/hard it was to get there

4. Set a new small goal to hit...then HIT IT.

The small secret to finishing a game is to finish it one minute step at a time.

Learn about game programming!Games Programming in C++: Start to Finish
Quote:Original post by wazoo69
Instead of worrying about how much C++ you know (or not), why not try out an engine like Torque?


Well, because one of the problems he mentions is that he doesn't know how heapsort works, for example. ;)
Using other people's engines or libraries is fine *as long as you know what you're doing*, but it's not magic, and it won't solve all your problems.
If you don't know what you're doing, then using other people's code will only get you into an even bigger mess where you end up even more frustrated. Pretty much like the OP describes. ;)


I'm going to go out on a limb here, and say that what you need is two things.
First, you need to make up your mind. Are you going to end up a game programmer or not? Yes, it takes a lot of work, but there's no big mystery to it. Hard work is all it takes.

Second (and assuming you do want to become a (game) programmer):
Learn programming. By this, I don't mean DirectX, Win32, C++, SDL or *any* other specifics.
I mean learn to analyze a problem and turn it into code. Learn about algorithms and datastructures. You can completely ignore anything that happens outside the CPU and anything that uses the OS, an external library, or other people's code. Dont worry about doing graphics, don't worry about reading or writing files, don't worry about using libraries, even reading input from the keyboard is irrelevant (but might be useful anyway, just to make your programs slightly more interesting, or easier to use), don't worry about *anything* other than core programming. And *keep* doing this, until you feel you that given time, you can work out how to write a program to solve any problem. If you like, you can use Python, C# or Java for this. All of them are much easier to code in, meaning you can get your programs done much faster, and you can concentrate on the important parts.

Yep, I know this is pretty very different from what wazoo69 and other suggested. I don't think "Find another library, and do simpler graphics" is the answer. Because if you don't understand what you're doing, then no library will ever make sense to you.
My answer is "learn programming, so that the library you use isn't even an issue, and so that graphics becomes a trivial question of calling a few functions at the right times.

I know, this is the boooring Computer Science answer, but imo, it's well worth it.

Also, give yourself time. Hang around on this forum reading anything of interest, skim through a dozen tutorials, play a few games, relax, read a good book, go back to skimming a few text about programming, and, well, sooner or later, you're going to feel up to taking another try.
I've found on the game side of it, it's not just putting a picture on the screen. It's making objects that react and can be changed easily. I like to read, look at other peoples code, and keep programming. As I keep writing more and more complex games, I have to come up with more involved solutions. To be honest, programming on it's own is boring to me. It's only interesting when I'm writing a game or a program I think I could use.
Even if you find that you want to learn something like Winsock (or sockets in general), it doesn't mean you can't make a game or something fun out of it. You can learn some server/client stuff by making a chat program. You can expand off of that and even add minigames to it (like TicTacToe). I wanted to learn more about Winsock myself and combined previous knowledge and made an online poker game.

Learning Algorithms and Data Structures is a very important part of programming (my college has each topic as a requirement). You don't have to panic because you don't know how Heap Sort works (in a textbook it usually takes up less than a chapter). If you want to learn these on your own, on Amazon you could probably get a decent price for a textbook.

All of this learning takes time and it is good to find an outlet to put that knowledge to use so you know it sinks in. Don't worry about language syntax too much either. If something doesn't compile, you can always post on GDnet for help.
Quote:Original post by ukdeveloper
I'm also finding that new, innovative solutions which I think up usually just result in either unexpected results or the compiler complaining.

To put it bluntly, you need more practice. If you practice more, you will learn to evaluate your ideas accurately and then to impliment the ones you still like successfully. If the idea of practicing more is more distatesfull than the idea of becoming a better programmer is attractive, don't worry about it and go find something else to do with your life.
Quote:
I also feel like I'm specialising too much, and I don't know huge amounts of C++ when it comes down to it.

Just wondering, what should I do? I wonder if I should forget games altogether (at least for the time being), and learn some more C++ concepts (including Winsock etc) and maybe some Win32/MFC/.Net to make something worthwhile and useful. I think that would make me more employable as a programmer (which IMHO would be quite good to do professionally).

I hope you can see my problem. I know how to draw an image onto the screen using SDL, but I don't know how a heap sort works or how to properly use a templated class. I think the latter two are far more important

If you are genuinely interested in programming, then your next step should definitely be to learn about data structures, templates, and other "general programming" concepts. You are right to think that they are more important than SDL, because while SDL is just one of many graphics APIs (yes, I know it does other things too), understanding, say, the quick sort, could help you when programming for any platform in any language using any APIs.
Quote:
Thanks for your time, people, I'm just not 100% sure what I should do. Any thoughts?

If you are interested in programming professionally, learn more about data structures, algorithms, and C++ (or pick up another language). If you are and plan to remain a hobby game programmer, do whatever sounds like fun; there is no pressure. As long as you keep programming, whatever you do will improve your skills and make it easier to pick up whatever specific skills you need to do any given project. Either relax and start enjoying yourself, or go find another activity where you can.
I think there is some excellent advice above.

I am committed to becoming a game programmer. I started learning C++ but after reading the first 5 chapters of several books over and over I realized that perhaps a better way for me to learn this would be to switch over to Visual Basic 6 which I knew would allow me to create and program games much sooner than C++.

Within a month I had made am awesome D&D character generator and then a cool slot machine. I have since finished 2 other completely original games. I am now making the switch to Visual basic.net 2005 (which is a free download from Microsoft) and it is teaching me some of the thing that I had trouble with in C++ and for the most part that is understanding Object Oriented Programming.

I want to master VB.net but I am also going to take a week or two every now and again to advance my C++ skills. I know that if I am programming in any language and creating and coding games it can only help me. I also have downloaded the free Maya 6.0 personal learning addition and have started some of the excellent free tutorials on there as well. Again anything I can learn will only benefit me in the future. This is my philosophy. I hope in some way it might inspire you.

Good luck

This topic is closed to new replies.

Advertisement