Advertisement

Time to start over?

Started by June 14, 2001 02:22 PM
44 comments, last by Tommy x 23 years, 7 months ago
Amen Krippy.
Thanks guys...although my head hurts alot I kinda made a decision. To start with Im gonna stick with the C++, I already have a very basic understanding of classes, and pointers, and know a few functions etc. Problem is i find it very hard putting these all together into a program. Well I''ll finish the SAM''s book and find another one. Shall I take classes though if I can? I really wanna keep moving forward as fast as possible, but I''m not sure what to do after I finish the SAM''s book. Should I buy the tricks of the windows games programming gurus book? Thanks alot guys its real cool so many people give a damn about just another newbie oh please dont flame each other!

Advertisement
If you''re having a little trouble, then if you can take classes, do. Having someone explain things to you and on hand to answer your questions, give feedback on your work, and so on, is a good help.
Definitely take some classes if you can.

The great thing about taking classes is that they will normally give you some projects to work on which are geared towards your level without necessarily stepping you through the entire process like a book would. This forces you to think like a programmer to solve the problem, and using what you learn to solve real problems will teach you more than 10 books.


This is one profession where there is no substitute for experience.

But if you are going to take some classes, try and take them at a college or university that offers technical classes to people who are not working on a degree.

Most of the popular technical institutes teach you how to pass a certification exam but not how to apply that knowledge to the real world.

My brother is currently taking a night-class at a community college here and their project is based on World War 3!

Definitely something you could apply to the gaming industry.

Seeya
Krippy
Hey,

Some people can really come up with some weird stuff

First off:
When you are new (like you are, as you said) do not read books on C. Learning Books on C might be really confusing when eventually switch to C++. C++ is NOT (when well used) slower than C. The time C++ code executes may be between 10% slower and 10% faster than C code. Read this in the book: Thinking in C++.

C++ is the successor of C, so it''s not only a C + classes.
"OMG, who wants to put all his variables on top of a function anymore???"

C++ is far more type-safe and does have much better exeption handling.. But I guess our C freaks haven''t figured that out yet NO OFFENSE

Classes are indeed a far better approch for handling complicated problems. Of course you must not overkill your source with classes. ("remember a discussion on the pixelclass )

Java is nice, but for game dev its only cool that a java applet will run on your homepage. So your game is in a webpage.
I wouldn''t start with this.

The book that gave me a boost 2 years ago was:
Windows Game Programming for dummies by Andre Lamothe.
This one will introduce you to C++ Windows API and DirectX in a funny and clear way! Should really try this one!

Ok, Good luck and don''t waste time by learning Delphi, VB or C.
For game dev you should start with C++ and DirectX.
Althoug Delphi and VB are nice, they will never be your goal.

g''luck

BoRReLh
Well I disagree with most of that.

C was designed for creating operating systems, and models the way a computer works really well without being hardware-dependent. If you learn C properly, you learn the way a computer works. If you want to create the FASTEST code (which is a necessity in games) you need to understand the way a computer works. Computers may be objects, but they think in a structured manner and process data in structual way.

This is not to say that you cannot do the same thing with C++. You can create the exact same code with C++. But when you start off learning C++ you normally learn the object-oriented way of programming. You will be able to create nice, robust applications this way, no doubt. But if you have a bottleneck in your code, and you need to unroll loops and optimize certain chunks, you have to lose the object-oriented paradigm in a hurry. A person who understands the way a computer works will be able to figure out the fastest way to produce a particular calculation, whereas a person who only understands the object-oriented approach will not see things in the same light. He will be able to find a solution that makes sense and is conceptually strong but may not be as fast.

I am not a game programming guru, but I am pretty sure that speed is omnicritical(lol) in a game. If you want the baddest most effect-laden and massively multiplayer game you can dream up, you need to be able to optimize everything. And unless you understand how a computer works you can''t possibly do as well as the next guy who does.

And it has been my experience that it is easier to move from a structured language to an object-oriented language than it is vice versa.

C might not be as rewarding in the beginning, but the rewards will come later in heaps.

-------------

Secondly, Jave is not only applets. You can create standalone applications that will run on any platform that supports a Java Virtual Machine.

I''m not saying you should start with Java though. lol. But it is nice to learn in addition to C/C++ because it has it''s uses, is modeled with C++ users in mind and is cross-platform. Of course being something of an interpreted language it is not going to be as fast as native code, but not EVERY game needs super-speed.

If you were going to create a strategy game that does not include intense graphics, and wanted it to be portable to other operating systems, wouldn''t it be nice to be able to write the code once instead of having to make your design with different hardware models in mind and recompile/debug it on each one?

Java hasn''t been around as long as C/C++ and hasn''t reached it''s full potential but it is not going away anytime soon.

Seeya
Krippy
Advertisement
I totally agree with what you said, but....

C++ code can optimized as well
think fe of inline functions...
Also, the compiler/optimizer does a very well job.

What you mean by machine and how it works:
things that must be fast are done with pointers and asm.
It doesn''t matter if this code is inside a class or some
function!

On top of that, I think that when you write a complex game engine with many features, it''s far easyer too build a nice framework with classes than making hundreds of (global) functions...

Java:
I only meant de game development point of view. If you search the web there a dozens of java-applet-games. But all quite simple, and ''never'' as an app.
''Crazy messy pointers'' probably wasnt the right language I meant that it''s easier for beginners to understand. Pointers are very important, but I thought that newbies might appreciate having the Java VM take care of memory. They wouldnt have to deal with malloc and free and pointers to pointers to arrays of pointers, and focus on OOP and creating simple programs, plus developing good habits at the same time. Im not against pointers of any kind.
LOL!
It seems like everyone is trying to advertise ''their'' language for some kind of reason I simply don''t understand.
Does someone pay you for this?
I mean, come on! Face it... C++ is just way better than C
But unlike tcs I permit and authorize the use of C.
Now here''s my theory... If you tend to disagree compile this program and see for yourself.

int C=0; //Give both variables the same start.
int c=0;

//Check if C++ is better than c.

if(C++>c){cout<<"C++ is way better than C";}

//The compiler might denie the truth after the first check.
//Therefore a second check is needed.

if(C++>c){cout<<"C++ is way better than C";}
//There you have it.

if(C++){cout<<"C++ is positive!";}
if(!c){cout<<"c is bad!";}

//1 more proof to show how buggy c is.
//Any number divided by ''c'' will bring out an error.
//Example:
c = 10/c;


As you can see by the outstanding results of this comprehensive and simple test, C++ is a better language than c.

I hope noone takes this cynical post seriously,
Because there''s really no use fighting about it, C++ is better...
The Department of Next Life - Get your Next-Life Insurance here!
Well maybe I did not say what I meant the right way. lol

I don''t think the question here was which language was ''BEST''. But which language was best to learn first.

C++ is a better language in most cases. It is the way you use it and the way you learn that I am talking about.

You can do the exact same thing with C++ as you can in C and at approximately the same speed. But if you are taught in a strictly object-oriented manner, you WON''T because you won''t understand HOW to write the most optimized code because you may not understand what''s going on underneath as well. You won''t understand the importance of having your time-critical data DWORD aligned because you are taught not to worry about the specifics of what the computer is doing and won''t know that you are transferring x amount of bits at any given time and what the optimal size of your data type is.

Sure all of this applies to C++ as well as it does to C, but you normally don''t learn these things when you learn C++ whereas they are normally taught in the first couple weeks of a C course and the first few chapters in a straight C book, but they do not apply well to the object-oriented paradigm that is being taught in a C++ book or course.

Performing binary math is also normally taught in these lower-level courses whereas they are skipped in OOP courses.

It is better to learn things like this before you get set in your ways about how to code something. People will start trying to dword-align their classes.

That is why I say it is better to start off with C and then move into the object-oriented world.

And it is definitely better to know more languages than just C or C++.

Seeya
Krippy

This topic is closed to new replies.

Advertisement