Hello. I'm oldschool and this is my story.

Started by
31 comments, last by Daerax 15 years, 7 months ago
I just wanted to say hi to everyone at gamedev.net. I've been a bit of a lurker for a long time here. The past year I had many life changing things going on and backed off of game programming for a bit. Now I'm back and ready to get started. I'm an old school top down kind of guy, always have been and probably always will be. I know we live in an object oriented world but, when you grew up learning BASIC on a Commodore Vic 20, at the impressionable age of 9, your brain's wiring becomes soldered all together to work one way. I've been into BASIC all my life but, never was much of a programmer. I just dabbled in it for a long time, just learning enough to write some simple programs like text based games, calculators, and database type stuff I picked up in school. Although I did spend some time with blitz basic and completed a few old school graphical games I never got much further into programming. Time moved on and I ended up getting a degree in music of all things, got a job in the telecommunications industry, became good at trouble shooting and building computers, built a few websites for fun, and eventually got back into programming. I decided to try and move on to C++ but, being old school like I am, I got really confused with the Object Orientation stuff and coming from BASIC C++ was a much more complicated language to decipher. I tried many different books, read many forums and tutorials online but never really got it. I decided to just take a break from learning to program and re-teach my brain how to learn. I know that might sound strange but, I had developed bad study habits, had a lack of patience, kept trying to associate C++ with BASIC, and I never really took the time to fully understand what I was reading. Finally, I've arrived and I'm ready to do this. My goal is to understand C++ enough to make a 3D game engine, or at least make a fully functional 3D game of my own so I can re-use the code in it to make even more games. First thing is first though, so it looks like I won't be programming any type of game at all until I get more of this C++ learned. Since I think a bit different than most people finding the right kind of teacher has been a bit difficult but, I just picked up "Sams Teach Yourself C++ in One Hour a Day" and I'm loving it so far. I'm in chapter 5 right now and haven't had any problems in fully understanding everything so far. I'm sure there are other books out there, I probably own most of them but, for me, at this moment in time, I've got the right book. At the moment I'm using Code Blocks for the compiler but, I read that either DJGPP or Microsoft Visual C++ would be a better choice. I'm actually still not sure what to use as I want something that is fully ANSI compliant so I won't have any problems learning with my new book. I also want something that is easy to set up and configure when I decide to move to graphics and sound so, perhaps MS Visual C++ is the way to go in the long run. Then again, the thought of open source and platform independent makes me want some kind of G3D/OpenGL/SDL/GNUC++/Amalgamation that isn't going to take a rocket scientist to assemble together. Well, my tooth is starting to hurt again and my meds are wearing off so I better wrap this up. If anyone has any thoughts, comments, recommendations, etc feel free to send them my way. Until my next post, farewell.
Advertisement
Any particular reason you're fixated on C++?
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
Quote:Original post by Promit
Any particular reason you're fixated on C++?


That's a great question and I actually do have somewhat of an answer.

-For one, it's a challenge for me. Going from a relatively easy language to one that has a higher degree of difficulty will give me a big sense of accomplishment.

-From what I've read C++ sounds like an extremely flexible language. If I'm going to spend a great amount of my time learning something at my age I want to learn a language I can always use.

-It runs fast. Going by the research I've done, C++ produces very fast running code. This is a good thing for someone like me as I don't consider myself skilled enough to think of the most efficient way to program.

-lots and lots of resources. I don't think I'll have any problems finding help on the subject of C++.

I suppose those are a few reasons. There's other languages I'd like to learn, such as Python, and other languages I do know a little about, like Fortran and Cobol, from my college days. I guess C++ just sounds like something that would really fit the bill for me. It sounds like a well rounded language. And learning it should make learning other languages that much easier too.
Quote:Original post by wwx
when you grew up learning BASIC on a Commodore Vic 20, at the impressionable age of 9, your brain's wiring becomes soldered all together to work one way.
Hmm well I disagree, I was programming my Commodore 64 at the age of 4. Synaptic pathways are definitely strengthened but that doesn't prevent you picking up other programming paradigms along with or on top of any existing ones you're already comfortable with.

Quote:coming from BASIC C++ was a much more complicated language to decipher.
Aye, C++ is a far vaster language than conventional BASIC with many more pitfalls and rife with undefined behaviour. I don't doubt there's a good reason why the B stands for Beginner's [smile]

Quote:I never really took the time to fully understand what I was reading.
That's the real problem I guess, give it time and you'll get it. C++ requires more time than most language to pick up mind you.

Quote:At the moment I'm using Code Blocks for the compiler but, I read that either DJGPP or Microsoft Visual C++ would be a better choice.
I don't know about a 'better' choice, but certainly a different one.

Quote:I'm actually still not sure what to use as I want something that is fully ANSI compliant so I won't have any problems learning with my new book.
One of the side effects of C++ being so damn complicated as a language is that compilers themselves struggle. This is such a problem in fact that I am not aware of any compiler that is 100% compliant, they all have unique little niggly bits where they don't do what the standard says they should do. As a result, the best advice is to choose a modern compiler and don't worry about it - unless you're dealing with the more advanced aspects that aren't wells supported or just not overly portable, but that's not very likely.

Quote:perhaps MS Visual C++ is the way to go in the long run.
The choice is yours. It's the compiler I use and I think the IDE is great, I don't develop for other platforms but I do keep my code standards compliant so I shouldn't have much problem porting it to another compiler should I ever want to.
Quote:Original post by wwx
Quote:Original post by Promit
Any particular reason you're fixated on C++?


That's a great question and I actually do have somewhat of an answer.

-For one, it's a challenge for me. Going from a relatively easy language to one that has a higher degree of difficulty will give me a big sense of accomplishment.

-From what I've read C++ sounds like an extremely flexible language. If I'm going to spend a great amount of my time learning something at my age I want to learn a language I can always use.

-It runs fast. Going by the research I've done, C++ produces very fast running code. This is a good thing for someone like me as I don't consider myself skilled enough to think of the most efficient way to program.

-lots and lots of resources. I don't think I'll have any problems finding help on the subject of C++.

I suppose those are a few reasons. There's other languages I'd like to learn, such as Python, and other languages I do know a little about, like Fortran and Cobol, from my college days. I guess C++ just sounds like something that would really fit the bill for me. It sounds like a well rounded language. And learning it should make learning other languages that much easier too.

C++ can also be quite frustrating and confusing, as it sounds you already found out, if you don't have the right teacher or book.
With computers being faster everyday speed shouldn't be as big of a concern anymore unless you plan on making a ray-tracing 3D engine?
And with multicore cpu's nowadays Java and other languages built with concurrentcy in mind can actually be faster in some scenario's than C++.
It's true there is ton of books/websites that cover game programming using C or C++ as it seems to be the default language of the game programming world. 90% of my game programming books use it but there are more choices nowadays with some of my books using Python, C# or some other .net language for games.
Visual Studio's C++ is the standard these day for game programming so you can't go wrong there.
Only other thing I can think of is that if you can't get through your C++ in a reasonable amount of time switch to another one and make sure you get around to reading a book that covers modern C++ eventually like Stroustroup's book or Lippman. I will assume you haven't really learned modern C++ until you read one of these 2 books(I must've read about 10 or more C++ books myself and most of them teach C++ as a better C ,like Deitel for instance, which I just recently used for my C++ college class. You can find a list of the C++ books I mentioned on C++ faq website. Actually, you should check out the questions on that website as it might answer some that you might have about C++.
Oh and I know this might seem obvious but actually get into the practice of writing non-trivial C++ programs while reading these books since that's the only way you'll get better and it will sink into your brain. You don't know how much work a decent command line calculator in C++ can take let alone a game until you try it! Also, try using SDL, Allegro, DirectX,etc so you get a feel for how the theory and what your books say differ from the real world.

[Edited by - daviangel on September 17, 2008 11:00:37 PM]
[size="2"]Don't talk about writing games, don't write design docs, don't spend your time on web boards. Sit in your house write 20 games when you complete them you will either want to do it the rest of your life or not * Andre Lamothe
Quote:Original post by wwx
-It runs fast. Going by the research I've done, C++ produces very fast running code. This is a good thing for someone like me as I don't consider myself skilled enough to think of the most efficient way to program.


C++ compilers can produce fast code, but they can also produce slow code. In fact, compared to languages which can do lazy evaluation, unless you put explicit thought into optimizing your program, C++ can end up much slower. This is often glazed over in C++ vs ____ benchmarks -- C++ was faster in the end, but only after a few rounds of confirmation bias induced optimization tweaking, usually far more thorough than one could hope to apply throughout the entirety of any reasonably sized project.

Quote:Original post by wwx
-For one, it's a challenge for me. Going from a relatively easy language to one that has a higher degree of difficulty will give me a big sense of accomplishment.


The flip side of this is that this difficulty also affects your working speed -- it's a tradeoff that can (will) mean you can't produce as many programs.

Quote:Sams

Eww :3
C++ is a good way to go; its my personal favorite language. Besides wanting to go into computer software development (I currently work web dev), my reason for doing C++ is that it is a big challenge. I know some basic (blitz basic and VB), and I know how much easier things would be with it. But I would feel like I took the easy road if I made my games in that. I would work in assembly if it was practical or even remotely portable, I like challenges. But thats just me.

Now be prepared to do a ton of learning, C++ is not easy and 3d engines are hard no matter what you make them in. Also, how much math do you know? 3d engines are rather intensive on the math.

For learning, do not start directly with game programming C++ books. As a musician myself, I will make an analogy with what I found when learning guitar. It is best to learn the instrument for what it is then let your interests carry you to a particular genre. That way you can play anything, not just what you originally intended (interests change though time). Same goes for programming. Know C++ for what it is, then learn game programming. That way you have a well rounded sense of what the language is. You could also build anything you want should you want to.
I would rather you disagree with me then accept everything I say. Think for yourself!
You should check out Game Institute.
Quote:Original post by Amnesia
You should check out Game Institute.
Darn it beat me to it :) 1 more for gameinstitute.
Check out my new blog: http://beefmachinegames.wordpress.com
Quote:Original post by VillageIdiot
But I would feel like I took the easy road if I made my games in that.


Making games is damned hard. Difficult enough that the vast majority of forum-goers have not even completed a non-trivial game, let alone made a good one. Don't hamstring yourself.

This topic is closed to new replies.

Advertisement