I want to get into programming games, but I have nearly no idea what I should use.
I think I want to begin with C++, but I don't know, I also have no idea how to code, so if one could direct me to the right direction that would be great.

Also, I would suggest you to start programming first, then later thinking about games, graphics, etc. Start small. console applications, text based games. Understand programming logic, learn about vectors, nothing wrong with starting with C++ since lots of languages are C based and you'll not lose any time learning C++, because the knowledge is interchangable.

Later I would suggest going with C#, is a great language, the .net framework is powerfull, and C# is accepted in Unity, which is a great engine.

Every language can be "hard" depending on the person. Personally, C++ was the first language that I learned and it actually seemed pretty easy to me compared to Java and C# (which were the first two languages I attempted learning but quit at the time). There'es absolutely no reason to be afraid of learning C++ as your first language because with the right resources you can pick up the basics pretty quick and have a simple game running. I say start off with some basic C++ and stick with it. You'll learn to love it just like I did

In the broader picture, popular games have been made in any of many languages. For the beginner, there are a few choices which are outstanding to be able to learn.

Compiled languages friendly for newbies would be the standard recommendation from the industry. The C# is the top choice, but C, Java, and others are also compiled. With a compiled language, you get a standard well supported framework to help you, making the task streamlined - such as .NET Framework, Java Framework, or the Mono Framework. These frameworks have sets of programs and libraries available called Integrated Development Environments (IDE): Visual Studio IDE for .NET Framework and MonoDevelop IDE for Mono Framework, but there is some over lap. However, Visual Studio and .NET target Windows and DirectX while MonoDevelop and Mono Framework are cross-platform. Java and Java Framework are a great cross-platform system, too. Keep mind that there are exceptions and substitutions which can be made, but these are mainstream. The C language would be one of the least that I would recommend and I explain why here...

Garbage collecting languages (Auto memory management) like Java and C# or garbage collection scripting languages such as Python are highly urged for newbies.The C and C++ have libraries which can extend them into garbage collecting, but far beyond the scope of a beginner programmer. Choosing C++ would consume you as the largest language environment in which to get lost. The C# from a garbage collection view would likely save you the most time and bugfixing effort, though Python is close behind.

The C++ area is possible, but when polled most people who started with C++ found it harder than the others that I mention here. The C++ has a managed fork which can be confused in its common language runtime and bytecode implementations, allowing class file compiling in the same program, having extensions in several areas, resulting in most newbies getting lost in the largest language jungle there is in the gaming industry. For pure performance and features, C++/Visual Studio/.NET are extremely hard to beat, but only a team working under a game developer with another artist team in support can even hope to make the typical AAA mega popular PC and XBox compatible game which would actually use the advanced features in the C++ language environment, unless an expert coder indy game developer has many years to spare.

Python (interpreted language) is a great second language, but so is Lua, Tao, and others for scripting language. Wonderful games have been made with them, sometimes in combination with another language. Blender comes with a Python game engine in its environment which you may use as a base. There have been popular games written in the scripting languages. Later you may use scripting for game functionaility on top of a compiled language like C++ or C# for engines. Dynamics languages such as Ruby or the dynamic writing in C# can speed the game making process.

Here's my advice for beginners in gaming languages:

1) Compiled language should come first. Get good with it before moving to the next. Compiled language usually has the highest performance and the class library structure is a must for complex games. The C# is a compiled language with garbage collecting built into it and is the core of the .NET Framework, though you may use other languages.

2) Scripting language, perhaps an interpreted language is a logical next language for game functionality. High or Very high level programming. Higher level frameworks such as Blender support this, but here are many wonderful ones! Beginners should get auto memory managed (garbage collecting) in their first couple languages in my opinion.

3) Managed languages or managed fork of C++ is for experienced programmers after they get the fundamentals understood well. Think of managed language or implementation as you programming much more of the technicalilities, lower level programming.

It is possible to make or design games with no programming in using pre-built system. There are many out there, too.

Help notes:

Integrated Development Environments (IDE) may contain Frameworks and Software Development Kits as a complete environment to give the developer the things needed to create a program and make it run in a computer. Examples are Visual Studio, MonoDevelop, Java IDEs, and other

Frameworks - Low Level - contain APIs, language libraries, programs, software, specialized interfaces, and so on, as a layer between hardware and games in order for a game to be programmed to run through an operating system on the machine, using the computers resources. Once or as the game source code is created, more work in the Framework is added to make it run in the computer. Three common examples are .NET Framework, Mono Framework, and Java Framework.

Software Development Kits - Lower level ones such as .NET SDK are a layer between your program (game engine source code) and the computer system which allows you to make it load, compile, execute, and run in your computer. The 3D rendering engines sometimes have an SDK available to help develop programs on their system, for example.

Software Development Kits - Higher level are focused on the game source code to make it run in a computer. Most interpreted languages such as Python have communities which created SDKs to support their gaming vision on their higher level language.

Note: Sometimes a game source code and the game engine source code are integrated.

There are exceptions and blurred boundries in most of the above areas, but this gives you an outline.

Research provides much advantage through realizing your options and knowing what to do with them.

The proven path:A) Choose a game creation system which matches your game type and language of choice.

B) Start learning to make programs very soon! Make "Hello World" and so forth.

C) Make simple 2D games like Tic-Tac-Toe, Pong, Defender, Pac-Man, Astoroids, and so forth, starting simple and progressing.

D) Practice making simple 3D games if you like.

E) Start working on your own custom game after you have carefully understood the programming in the previous steps.

Keep enjoying it!

Clinton

Edited by 3Ddreamer, 14 October 2012 - 05:09 PM.

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

3Ddreamer, I would upvote you, but I've unfortunately met my quota (Probably because of all the awesome people on here ).3Ddreamer is pretty much correct, and I will add I highly recommend C# as a great beginner language, but that's just my opinion. I started with C++, and I'm thoroughly enjoying the experience. It all depends on how well you learn, and your thought process when it comes to programming. There's nothing stopping you from trying out many languages, IDE's, and Game-Development tools, so get started and find out what suits you!

Before you start compiling things, you can and should make extremely simple programs like "Hello World", easy data base, simple letter display application - that sort of thing. Start with console applications using an IDE or SDK which matches your course that you plan. There are thousands of tutorials through the web to get you started in console applications. Trust me, you only need to make a few of them before you are ready to start in the area of compilation. If you get confused at any point, then feel free to ask for help.

Clinton

Edited by 3Ddreamer, 15 October 2012 - 01:38 PM.

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

I also strongly recommend Python.If you are using Python, you don't need to compile anything - you can just run it.If you are using C++, you need to compile it before you run it - how you compile it depends on what IDE you are using.

C++ isnt that bad IMO, its just a very huge language with many features which makes it daunting to learn. With the new 2011 standard, C++ has become beginner friendly, but then again i havent touched the new standard so dont take my word for it. I personally never found it THAT hard, sure some concepts can be weird when you first see them, but with practice it becomes easier. If you go with c++ i recommend these video tutorials as they helped me:

If you know c++, learning anything else becomes easier. I like it cause tons of game programming books use it, so i can follow them alongI did some c# but it felt odd to me, making an array in there felt like allocating memory in c++ lol