• Create Account

## The Novices Guide to becoming a game Programmer and artist!.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

22 replies to this topic

### #1chris3d165  Members

384
Like
-4Likes
Like

Posted 31 August 2012 - 05:02 PM

Hello Viewers .

24738
Like
12Likes
Like

Posted 31 August 2012 - 11:40 PM

POPULAR

Firstly, I'm not trying to be mean, but could you put at least a minimal effort into formatting your post to be readable? If you could edit your post to include some line breaks (i.e. use your return key!) and better punctuation you'll be much more likely to receive good responses -- as-is it's extremely difficult to read your post.

Secondly, from what I could make out after several attempts to read your post, it looks like you're really asking exactly the same questions as most other beginners -- perhaps you should try reading the responses they have already been given...

Good luck! Perhaps if you re-format your post to be more readable you will be able to get more specific help.

### #3Hodgman  Moderators

49411
Like
9Likes
Like

Posted 01 September 2012 - 12:04 AM

POPULAR

Im sure topics similar to this have been posted, but the trouble is the material isn't quite all covered exactly as I'd like, so that's why i need help.
This is not intended to be a troll post; please keep any negitive replies outside. I am looking for help, not discouragement.
This thread is one that has questions that a lot of beginners could benefit from. Now lets get started...

The first topic is programming:
I've tried and failed. I picked up a C++ book dived straight in, but had a bad time and gave up. Now I'll try again with the help of you good readers. The real questions are:
* what is the proper way to begin programming in c++?
* what is the proper way to begin programming in general?
* what prerequisites should one learn before diving in to programming?
* what topics should be covered in order to better understand programming and also to be able to think like a programmer?

Please name every topic needed to answer these questions, and also books that you guys would recommend to beginners.
Also, if there's any non-IT skills that are beneficial to beginner-programmers, please share guidance in these areas as well.

The next topic is math:
*What types of math are needed when programming games?

Now onto the art side of things:
Regarding architecture, where does one begin to learn about creating buildings (and in my case, specifically medieval buildings)?

Where could i get started? What books would you recommend? Before answering, please don't just name a book that you've only seen in an amazon search without actually reading.
For example, I'd personally appreciate a proper reference as to how to think like a medieval carpenter, architect.

I'd like to know how to become very creative so that I can expand upon whats already made. For example, when I model a building, it would ideally not be generic, but rather slightly more original and a lot more interesting to look at than my references.

Moving on from external architecture, I have questions regarding interiors.
I need to find useful material -- not only books but, also videos and documentaries -- on medieval life, the tools they used, and how people lived in that period.

Another topic of interest is terrain:
Where do i get started on building professional terrain that fits medieval times?

Lastly, texturing:
Where do you learn to make textures for clothes, skin and other complex subjects? Can someone post references and tutorials?

Thank you all. I hope this thread becomes filled with inspiring, motivational words that come from great people with experience who love helping those that need it. Thank you readers im looking forward to seeing what's next.

FTFY

### #4chris3d165  Members

384
Like
0Likes
Like

Posted 01 September 2012 - 10:18 AM

thankyou

Edited by chris3d165, 01 September 2012 - 02:44 PM.

### #5GeneralQuery  Members

1263
Like
9Likes
Like

Posted 01 September 2012 - 12:14 PM

POPULAR

Ok not very motivational... and thanks this was my second thread i had trouble with my first and though i did a better job this time i think im going to leave gb.net im not very welcome here and i fear my dreams will be crushed... time to go to stack overflow i herd their's less hot heads on there.but thankyou for help with word formatting ill use it there well this was the first forum ive ever used, we all learned how to walk in our lives at some point right ?

Chill my friend, jbadams offered some thoughtful yet direct advice to help you get a better response. I looked at your block of text and hovered over the Back button before I saw that Hodgman had kindly formatted your post to be much more readable.

In my opinion, there's way too many questions in your opening post. In my browsing experience of this site, asking 1 or 2 questions succinctly usually yields a far better response from members. For example, I'm looking at your first set of questions and am already turning away from responding as to answer the rest in any reasonable amount of time is just not practical or realistic. At best you might get a 1 or 2 sentence response for each question but what is more likely is that people will simply turn away. That's not a fault of this community, it's just how most people are when overwhelmed with a wall of information.

Anyway, focusing on your first set of questions:

The first topic is programming:
I've tried and failed. I picked up a C++ book dived straight in, but had a bad time and gave up. Now I'll try again with the help of you good readers. The real questions are:
* what is the proper way to begin programming in c++?
* what is the proper way to begin programming in general?
* what prerequisites should one learn before diving in to programming?
* what topics should be covered in order to better understand programming and also to be able to think like a programmer?

I would strongly advise against learning C++ as a first language. IMHO, there's far better ways of learning programming without the head-banging-against-a-wall exercise of picking C++ as your first experience. You need to be clear with what your goals are: do you wish to make games first and foremost, or learn programming for academic reasons? If the former, using an off the shelf product like Unity 3d would get the ball rolling much quicker and you'll have the opportunity to dip your toes into programming in a more forgiving environment via it's scripting interface. Plus, there's a vibrant community and lots of resources so you could get your first basic game knocked out in as little as a weekend with a bit of determination.

Here's a friendly piece of advise that i suggest you take in good faith: if you want to get better at anything in life that's a challenge, learn to let setbacks and (constructive) criticism in your stride. If you fail at the first hurdle by taking legitimate criticism to heart, I absolutely guarantee the chances of you achieving your goals becomes vanishingly small. You have to be in it for the long haul which means being prepared to bounce back when you feel you've got no bounce left in you. If you turn away at the slightest bit of perceived discouragement then you really have the odds of success stacked against your favour.

Edited by GeneralQuery, 01 September 2012 - 12:22 PM.

### #66677  Members

1054
Like
5Likes
Like

Posted 01 September 2012 - 02:21 PM

POPULAR

I would always recommend python as a first language.
http://www.codecademy.com/tracks/python <- interactive tutorial website, don't even need to install python right away. Will need a modern browser on windows though (may work on mac, probably won't on linux, think it uses silverlight). Internet explorer is not considered a modern browser here, theres a fair bit of HTML5 in there which IE just chokes on apparently (i've not tried it myself, I actually went into add/remove windows features and disabled internet explorer long ago).

Anyway, C++ is a needlessly complex language for a beginner, it can be head bang on wall for experts occasionally. Python on the other hand is almost like well structured english. Its dead simple and easy to learn and the knowledge gained is then relevant to learning other languages including C++ eventually.

Prerequisite wise, for basic introductory programming, common sense and patience. Later on some basic maths skills might be important. For graphics though both 2d and 3d you will need trigonometry.

And the phrase grammar nazi is handy here. Not everyone visiting this forum speaks english as a first language (sometimes not even second or third). If we are to help you really it you need to write clear and concise posts, for those who speak english as a first language it helps us decypher your meaning and get more relevant help to you. Those who's english may not even include knowing what decypher means it will be an extra bonus as they can break your post into chunks while trying to translate it into their native language. The classic phrase "Help me help you" comes to mind.

### #7chris3d165  Members

384
Like
1Likes
Like

Posted 01 September 2012 - 03:12 PM

Im going with 6677 on starting with python thanks allot

### #8chris3d165  Members

384
Like
1Likes
Like

Posted 01 September 2012 - 03:21 PM

What would the time line be if you guys were to lay it out on learning programming languages.

For example:

Python,Java,C++

I would like to know where to start and what to move onto, not to say im going to rush but more of an idea of what i should go after.

### #9JTippetts  Moderators

12317
Like
5Likes
Like

Posted 01 September 2012 - 03:34 PM

POPULAR

There doesn't necessarily need to be a progression. For instance, in 18-some years of programming, I've never found a need to muck with Java. What you should worry about instead of language progression, is learning one language really well. Once you have a strong grasp on programming, you will understand that the differences between most languages is very superficial. (Barring, of course, the differences between imperative languages such as C/C++ and functional languages like Lisp or Erlang) If you know programming, you can pick up a new language in a matter of days, become proficient with it within weeks.

Focus less on specific languages and more on becoming a proficient programmer.

### #10Eastfist  Members

160
Like
1Likes
Like

Posted 01 September 2012 - 03:52 PM

What you should worry about instead of language progression, is learning one language really well. Once you have a strong grasp on programming, you will understand that the differences between most languages is very superficial.

+infinity

OP, make an HTML+Javascript+CSS webpage game first. Make a div box move around on the screen when you press the keyboard. Then try to duplicate that in c++. Once you understand what it takes just to make a simple rectangle move on the screen, then you have conquered your first step. Everything else is built on that and it will become very complex so organization is going to be vital.
Be part of the man/machine revolution. SDXM 2D game engine.
www.eastfist.com

### #116677  Members

1054
Like
1Likes
Like

Posted 01 September 2012 - 04:31 PM

Python,Java,C++

Well thats already in a neat order of complexity. You might well get away with skipping java and going straight to C++, however you could well never get onto C++. C# is a frequent substitute for java aswell.

### #12GlenDC  Members

549
Like
4Likes
Like

Posted 01 September 2012 - 05:30 PM

I started with .NET, then I moved on to AS3. But that's all because of family and school.

In my spare time I learned Java and Python. Since last year I study a game development course at College University.
So now I've been working with C++ for a little bit more than a year. ( I also learned a lot of more languages than that, but for the sake of this post I'm not going to mention my entire history. The reason I wrote all these things, was to introduce my opinion.

In general the concept of how you have to think is the same for all languages. Yes, this is not true, but how I see it there are a few important differences to be mentioned:
• Languages have typical their own set of rules and syntax format. However you will see that the general concepts stay the same. ( e.g.: conditional operators, arithmetic operators)
• Each language has its own history and standardisation process. With these each language his standard Libraries get bigger and bigger. So when you learn a new language it is really important that you learn about these libraries, so that you can get the most out of the language as possible. It also boosts your productivity A LOT. ( Just try to imagine what you would do without the STD library of C++ ). It's also important to know the important non standard libraries. (e.g. in C++ you have the Boost library)
• It's important to know that you also have layers of languages. Typical described with a generation. The higher the generation the easier it is to understand and use, but the less control you'll have.
Personal, I don't think it's wrong to start with C++ from the start off. A lot of my fellow students learned C++ as their first language and they are doing quite well. Up to the point that they are now writing their own 3D Game Engine with DirectX10. The problem is that C++ has quite a lot to offer. Also don't try to go for some visual interfaces right from the bet. Don't expect to be able to make a visual game as a beginner. Just try to learn the basics and understand what the options are, what is possible and what you should best in certain situations. It's also important that you'll learn that there are certain things you can better avoid, although they exist. I learned C++ with this book (I learned it with the 5th edition, but why bother buying that ancient thing if theirs a 6th edition?). He really explains it well and you will really know your basics. It also gives you an introduction to the STD library.

 Btw, I also wrote a small post about my blog a few days ago in which I list some really great articles, lists. Most of them are more advanced but still, there are some basic ones. So if you have some spare time over you can maybe check it out here.

Ofcourse you could start with a more basic language like Python, but I do not think it is necessary.
Keep in mind that I'm just a student, who sucks at expressing himself in the English language.Most of the people answering these topics are way more experienced than I am. With that in mind I hope that i didn't write to many things in a wrong way. And I hope it helps you a little bit.

Btw you really ask a lot of questions about a lot of different things. Don't expect to learn arts and programming at the same level at the same time. Frankly, I think it is quite impossible to become really good in both fields. This is even more true for when you learn everything on your own. In this game course for example, we also learn 3D for games. In which we learn to model, texture and other stuff. For this we use 3dsmax, photoshop and Mudbox. The thing is their is no student that is really good in both 3D and programming. And even in programming there are people who are better in certain areas than they are in others.

So try to learn only one or two things at the same time and try to really master them for a while. If you want to learn to Program don't expect to become good in something really fast. There is really a lot you'll have to learn. There is so much you have to know. Becoming a master, takes a life of experience. With this in mind, just try to learn the basics and continue from there on. Get to know yourself and your boundaries. Learn to embrace failure and headaches.

Good luck mate!

Edited by GlenDC, 01 September 2012 - 05:35 PM.

### #13ifthen  Members

820
Like
2Likes
Like

Posted 02 September 2012 - 04:08 AM

* what is the proper way to begin programming in c++?

The proper way to begin programming in C++ is to start from the scratch (that means console). Get a good book about it (I personally liked Teach yourself C++ in 21 days) and try to understand. C/C++ is hard to learn because you have to understand everything in your code (and how the computer processes it). After a year of learning (and failing), you should be able to jump to other things that interest you (say DirectX/OpenGL, because you want to make games). That means 3+ years of experimenting with the graphics API and C++ (since you probably still don't understand it perfectly and you get a lot of segmentation faults). You should be able to start writing your game engine after you grasp all of this. And that means many years of work.

* what is the proper way to begin programming in general?

Get a book about an easy language to learn (Python should be okay). Be warned: if you would someday need to learn low-level languages and be proficient only with the high-level ones, you will have to learn a lot of things. Low-level to high-level, on the other hand, is practically seamless.

* what prerequisites should one learn before diving in to programming?

Excellent English (if you are not a native speaker), very good computer skills. Above all, you must be able to think logically.

* what topics should be covered in order to better understand programming and also to be able to think like a programmer?

"Thinking like a programmer" is a vague term. In any case, you should know how to structure your program flow. If you are learning a low-level programming language, you should know how a computer works and "thinks". And you should be familiar with paradigm of the language you are programming in.

*What types of math are needed when programming games?

A lot of maths is needed. High-school maths are surely needed. If you are programming something special, you will probably need a subset of college maths.

That's probably all I am qualified to answer. Feel free to ask other questions.

### #14chris3d165  Members

384
Like
0Likes
Like

Posted 02 September 2012 - 12:07 PM

Firstly i am a native speaker of English Ny,USA and next Thank you for you'r kind answers.I look forward to what awaits in the future thankfully now with the help of you wonderful people hopefully i will be able to accomplish my goals.

Now lets see i don't think i am going to jump into any low level languages at the moment because they really do seem like they were invented in hell, So do you Users think it would be a nice idea to stick with learning python then c++ or should i change that, Honestly id love to go with c++ but as stated earlier it isn't such a good idea ,what do you think.Also thanks GlenDC for recommending that book i am going to purchase it hopefully it will be a good buy, i trust your word. but in the future i would like to get into low level languages maybe in a few years, i bet ill have to do it in college at some point but yes as for now i am anxiously awaiting your responses .

### #15LennyLen  Members

5413
Like
1Likes
Like

Posted 02 September 2012 - 03:34 PM

Firstly i am a native speaker of English Ny,USA

In that case, before you click the 'Post' button, read your own post. Then read it again. Next, imagine you are somebody who has no knowledge of your situation, then read it again. People here would love to help you, but you're making it harder for everyone with your incoherent writing style. The more effort you put in to making yourself understood, the more effort others will put in to helping you.

### #16chris3d165  Members

384
Like
1Likes
Like

Posted 02 September 2012 - 03:54 PM

I'm sorry lennylen
i,m still working on that issue.My apologies to those who get angered or have a hard time figuring out what i'm trying to say.
Next i just wanted to say im native to english because people think im something else at times i though it might clear up as to why i might have written like that earlier.I'm still fairly new to the forums so bear with me please.

I have made my choice with which language to go with and its C++. I got the book :
Starting Out with C++: From Control Structures through Objects, 7th edition.
As of now my funds for buying new books are going to have to pause so if anyone has any suggestions on more free material please post thankyou

It seams like a great book to start with due to its reviews and such http://www.amazon.com/Starting-Out-Control-Structures-through/dp/0132576252

### #17chris3d165  Members

384
Like
0Likes
Like

Posted 02 September 2012 - 03:59 PM

There is one thing id really like to know.

What motives you to keep programming ?
What is the drive, the desire and how do you build that motivation?

24738
Like
2Likes
Like

Posted 02 September 2012 - 06:41 PM

I have made my choice with which language to go with and its C++. I got the book :
Starting Out with C++: From Control Structures through Objects, 7th edition.
As of now my funds for buying new books are going to have to pause so if anyone has any suggestions on more free material please post thankyou

You might also try Bruce Eckel's "Thinking In C++", which is a two-volume book available for free online and provides an excellent coverage of the C++ language and standard library. You might supplement your reading with a couple of online references: LearnCpp.com provides a series of tutorials on the language, and when you're getting a little further along but want to look up a particular topic cppreference.com provides a good reference.

For best results, make sure you don't just read through your book -- actually do all the exercises, even if they seem trivial or boring, as the experience of actually working with your tools and writing (even simple) code and solving any problems that occur is an invaluable experience.

You might also text your understanding of the material by making your own changes to the exercises and sample code:
• Pick some small change to make, and try to predict what the result will be. Then try it out and see if you were correct. If you were then you're starting to have a good understanding of the material. If you were wrong, then you have an excellent opportunity to learn something new by figuring out or asking why the result was different than you expected.
• Mess up simple example programs completely randomly -- but make sure to only change one thing at a time before testing so you know the cause of the problems. Simple things like adding a random character, deleting a single character, or changing the spelling of something. This will expose you to different error messages and problems that can occur, so that you might have an idea of what to look for when you run into the same problems for real with bigger programs.

Don't be afraid of mistakes, and don't be too frustrated when you make them. Don't be ashamed to admit you made a mistake or don't understand something, and seek help. You will make many mistakes whilst programming, and every other programmer makes (or has made) just as many. Mistakes are your most valuable opportunity to learn, and they provide an excellent example of what does and doesn't work in the real world. The greatest programmers have learned what they know by writing hundreds of thousands of lines of code, and by making and learning from thousands of mistakes along the way. As a beginner, trying and failing -- and then taking the time to learn why -- is one of the most valuable experiences you can have.

What motives you to keep programming ?
What is the drive, the desire and how do you build that motivation?

That's a bit of a personal question, and different people will have different answers. Why did you originally decide you wanted to learn programming? What was it that encouraged you to come to this forum and create a topic asking for advice? I suspect that for you, like many others, the answer probably involves bringing some game ideas to life, or perhaps a bit of curiosity about how your favourite commercial video games were created. If that's the case, then you probably want to aim for small goals along the way so that you can see you are moving towards your dream of creating a great game. You might aim for a simple "guess the number" game, then a simple text-based fighting game, then "hang man", then something graphical like a Pong clone, and so-on-and-so-forth.

Personally, I have two main motivations in programming:
• I love problem solving, and at it's essence that's exactly what problem solving is. You have some goal to be achieved, and a set of limitations on how it must be done. It's wonderful to encounter and solve new problems, or even to find newer or better solutions to old problems.
• It's useful. Programming can help you to solve real-life problems or make your day-to-day life easier, and for me it's part of how I make my living.

### #19chris3d165  Members

384
Like
0Likes
Like

Posted 02 September 2012 - 08:36 PM

Thank you Sr. that answer made me smile because it sparked a light for hope.
You know, since i was about 12 ,a bit younger maybe i always told my mom i'm going to make a game someday, i always told my family i will ,ill show you all.
That is one of my most biggest motivations ,the fact that i was so young and drem't of accomplishing such a big task,
it is one thing that i just have to accomplish no matter how many times i fail ill keep trying the one major obstacle in my course at this moment is programming ,its the logic it always has been, i'm more of a creative person, the game engine isn't much of a hurdle for me , I've been in cry engine , UDK which is my favorite ,and unity which i got for mobile development ,but the programming just always shut me off to the real part of game development i could never go farther than creating a level and this is the next reason as to why i am here ,that's why i created this thread because i saw the light and i had to find it,i saw the guides and you all are helping me well that last post really was, thank you

There is another thing id like to know is hero script the only language available in hero blade/hero engine ?

### #206677  Members

1054
Like
0Likes
Like

Posted 03 September 2012 - 07:56 AM

I think C++ might be available, really Hero engine is for MMO's which you shouldn't be touching with a barge pole (a very very long barge pole) until you've had a few years experience in programming and a few more in game development. Its also not free.

Unity for mobile development will set you back even more than hero engine at $400 each for android or iOS plus the developers licenses applicable to those platforms ($25 for android, $99 for iOS plus the official SDK requires a mac normally which is another$1500 or so but I don't think unity requires that)

Something to consider with those engines which may influence your choice of programming language to learn and work towards is what language the engine uses.

Cryengine uses C++. Cryengine has a bit of a reputation for making experienced C++ game developers want to rip their hear out as its incredibly difficult but then it was aimed at professional studio's not indie's but the eye candy........ (last point would require high quality models and artwork of course, just loading a cardboard box into cryengine isn't gonna make it look any better than some other engine)

UDK uses its own scripting language which is unrealscript. From what I know its structured similarly to C++ and supposedly easy enough to pick up IF you have prior programming experience.

Unity can use one of 3 languages by default in the free version. Unityscript which is a modified form of javascript, C# or Boo which is a newish language inspired by the syntax of python but aimed at usage on the .net and mono frameworks - I've used it once and think its quite nice but there are hardly any tutorials around.

If your now dead set on C++ and one of those 3 engines I think you might be best off getting to grips with C++ first (think 6 months or a year or so of console based applications, command console not games console ) and then maybe taking a look at UDK. Cryengine will make you cry, its in the name.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.