Skip to main content
GameDev.net gamedev.net
🔒 Locked

Hello everyone!

Started by spudsy87 Nov 20, 2009 at 3:53 PM 13 replies 1.8k views
Original Post
spudsy87
spudsy87
Hi there thought id sign up. Ive always enjoyed playing all kinds of games and want to try and get involved in the creation of them. I found the "train to game" courses but due to other financial commitments at this time i am unable to take up one of the courses. Instead i have been doing a bit of research and have ordered "Beginning C++ Game Programming by Michael Dawson" and "Beginning Game Programming by Michael Morrison" If anybody has any other suggestions for literature that will aid me on my quest, they will be very much appreciated. Look forward to getting started and cant wait for my books! Removing caps. -- jpetrie
jpetrie
jpetrie
I would have suggested you start with a language other than C++, such as Python. C++ is unforgiving and, in general, a poor first language.

Also, there's plenty of information freely available online that will be of more immediate use to you. You didn't need to spend your money on those books right now, and they may up not being worth it to you.

Also, moving to For Beginners.
spudsy87
spudsy87
I have read in a lot of places that c++ is good to learn aslongas you start from the basics upwards.

i wil have a look at this python.
jpetrie
jpetrie
Quote:

I have read in a lot of places that c++ is good to learn aslongas you start from the basics upwards.

C++ is good to learn. It's not good to learn as a first language; it's a language that prides itself on its assumption that the programmer (you) is correct. But the programmer in this (you) is a beginner, somebody who by definition knows very little about the domain. As a result, C++ tends to be harder than many other languages to learn first.

Which isn't to say that you cannot do it (many have), just that it's not considered the best, most efficient path.

Of course, if you've already invested more than a few weeks into learning it -- or a decent chunk of cash you cannot get refunded -- maybe it's worth it to you to stick it out. More than choosing the "correct" language to start with, it's important that you choose "a" language and stick with it.

If you do go with Python, all the tools and documentation you will need to get started on their website, for free; if you stick with C++ I would recommend putting aside those books you ordered for now and starting with "C++ A Dialog" (Google for it, it's free online), which will most likely provide a better from-scratch foundation than a book that starts by teaching about game development (you must learn to program, period, before you can learn to program games).
spudsy87
spudsy87
Ok cheers mate, thank you for the advice.
Phytoplankton
Phytoplankton
At the risk of getting involved in a language war, I'm going to say that C++ is a fine choice for a first language for game programming. If I was getting started in game programming my biggest priority in picking a language would be how much that it's used in the industry. Last I checked C++ was still one of the most popular (if not the most popular) languages in the industry.

But that's me.
-----OpenEndedAdventure.com - The Adventure that Anyone Can Edit.
RanBlade
RanBlade
Yes C++ is a good language for game programming. But as was already said you need to learn to program before you can be a effective game programmer. Python is a extremely good language to learn on... I first started with C++ as my language and I did so-so with it and made a tic-tac-toe game and few other minor stuffs. But a lot of the more hardcore subjects of the language were lost to me (thus I would have a difficult time building systems with those foundations).

I worked on a 3D space shooter game done all in python with the Panda3D game engine and due to the ease of use of the language it taught me soo much about desgin and code structure that when I went back to C++ everything just fell into place suddenly. Now its easy for me to write complex things with C++.

Its a big learning curve no matter the route and I think its best to make it easier on yourself.

But a language is just a syntax you need to learn really. the desgin patterns of programming and program flow is what you need to learn and with a complex syntax it makes that harder. I would suggest Python to start make some simple stuff.. then when you get how programs flow and how to design a class or routine to work for you and not against you then move to C++ it will be a lot easier to pick up at that point. Then your learning curve will be reduced.

my .02 cents
peace
Eric Ranaldi a.k.a RanBlade
[size=1]"Passion is what drives you to stay up until 4am fixing that bug that hardly anyone would notice...
[size=1]Passion is where great games come from, if you dont live and breathe games you shouldn't be in the games industry."
rip-off
rip-off
Quote:
Original post by Phytoplankton
I'm going to say that C++ is a fine choice for a first language for game programming.

I agree with jpetrie about this. I'd even go so far to say that C++ is probably the worst mainstream language to choose first, IMO.
Quote:

If I was getting started in game programming my biggest priority in picking a language would be how much that it's used in the industry. Last I checked C++ was still one of the most popular (if not the most popular) languages in the industry.

That is a poor reason to choose a language. Any competent programmer will probably know at least 3, if not 6 or more languages. By the time you are qualified to be in industry, your "first" language will be irrelevant, you should be fully literate in numerous languages.

Be patient. If necessary, you can learn C++ as a second or third language. My first language was Basic, followed by C++ and Java. Now I am fluent in a dozen languages, with working knowledge in many more. I was not hampered by not starting with C++. I believe that had I started with C++, I might have been so frustrated that I might have given up.
spudsy87
spudsy87
Cheers for all the feedback guys. Nice to know that people here are willing to help a noob like myself. I will take all this on board and do some research into different languages to choose. If anyone is willing, a quick flow chart of a route to the goal of a games programmer would be great but if not no worries.

Cheers all

MXG
MXG
Hello,

sorry for writing in this topic, but i thing it is not necessary to post new topic for this question.

I bought the book "C++ for 21 days" author Jesse Liberty, i now i can not learn C++ in 21 days, but is that good book for beginners?

Sorry for spelling i am not the best english speller ;)
Codarki
Codarki
The choice of language depends who you ask, so IMO it might be easier to get into programming with statically typed languages. This means variables are of one type, and cannot change runntime. I have seen many beginner programmers get confused with variables, and when variable can change to another type at run time, it only adds confusion.

I am myself C++ guy, but as you can get undefined behaviour pretty easily, I'd suggest maybe Java or C#.
Codarki
Codarki
Quote:
Original post by MXG
Hello,

sorry for writing in this topic, but i thing it is not necessary to post new topic for this question.

I bought the book "C++ for 21 days" author Jesse Liberty, i now i can not learn C++ in 21 days, but is that good book for beginners?

Sorry for spelling i am not the best english speller ;)

I haven't read that book, but from the sound of the title, it might provide decent introduction to C++. But 21 days is way optimistic. It might require to re-read of some sections (or the whole book) after some coding, to understand all the information. I'd suggest other books aswell to get broader view.

I have been programming over a decade in C++ and I daily learn new things, not how the language syntax works but how it can be used. So you're not expert in C++ after 21 days, it's neverending task.
Antheus
Antheus
I don't consider C++ relevant anymore.

Some ten years ago, one would make an application, compile it, and then distribute it over floppy disks, CDs, or, the bold ones, would put it on the internet. And - anyone could run it! Except for a few people working on mainframes, or the, at that time irrelevant Mac crowd.


Ask yourself today - if you make a compiled application - who will run it?
300 million of users from Facebook generations will not.
Smart phone users will not.
Apple crowd will not.

Who does that leave us with? Enterprise IT and a few hard-core linux folk. Sure, there's Windows, but between 5 Windows versions, all-too-common DX and CRT deployment issues and other annoyances, 95% of time will be spent debugging Windows-specific issues, something not even the biggest publishers can afford anymore.

There is still a niche in which one could distribute it, but it would require thorough understanding of the market, which is way out of league of any beginner.

Perfect starting language today: ActionScript. Fast, lean, simple, and 1 billion audience at the reach of a web link.

Hard-core wannabes: UDK. C'mon - you have Unreal engine. And don't worry, your first few years will not produce anything anyone will be willing to buy, so the royalties are a moot point.

Alternatives such as Unity3D come to mind as well. For the hackers - &#106avascript, HTML5 and WebGL (or O3D).<br/><br/>Languages? Whatever the tools above use.<br/><br/>Rolling your own? Sorry, the train has left the station, the ship has sailed, the times have passed. Really. Those who want to develop engines and other system level stuff will start by studying for years, get a degree or three, sign up with one of the players, work through corporate ranks, and in 10-15 years, they will be managing a small part of corporate strategy. Or - they will stay in academia, and work through there, developing new cool algorithms. Or, they will be part of hardware vendors, working on whatever specialized technology there is.<br/><br/>But there is a sharp dividing line. Those who want to develop system-level stuff *can no longer do so* in a garage. Wild West is gone. People don't realize how ugly the real world of patents, distribution and marketing is, technical issues have been irrelevant in the big picture for years now.<br/><br/><br/>So hobbysts or anyone not having a bussiness plan for their long term career to make a living out of it, stick with platforms. UDK, Unity, Apple's iPhone, Android, Flash, HTML5+&#106avascript.<br><br>Crucial thing for a beginner or someone starting up is feedback. This begins with fastest possible development (IDE, fast builds, fast deployment) and reaches all the way out to users (comments, real-time bug reports, real-time feedback, integrated with social media, ....) as well as fast-to-market (5+ years in development is no longer viable, seek out tools that will make it easy for you to launch something in 5 days, and have sizeable user base and 5 iterations after 5 weeks). This type of thing is actually possible today - just look at start ups and mash-ups and stuff.
Fuji
Fuji
I've done c++ as my first language but I have also looked at php, Java, and c# after running into problems in c++. I find that I am able to take in things that help me with c++ but I have trouble understanding OOP so it's actually harder for me to use languages like Java and c# for some parts. I am not a professional and I haven't been programming for years but other than a few logic errors in a programming I'm making, I'm doing fine. I think the main problem I had when I did php over the summer was that I was in a rush to learn everything. I recently bought the book Programming Principles and Practice Using C++ and I actually spend a few days on each chapter (due to time constraints but also because I want to solidify the information). So, take it easy and slow when you are learning. Distributed study beats max practice.
C++: Where your friends have access to your private members
spudsy87
spudsy87
Thanks again for all your replies.

I have my c++ literature on the way anyway, so i will have a good look at these. I have also started learning to use blender 3d, as i plan to use this for 3d modeling or characters etc

Cheers

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.