   I want to learn
Hello everyone, I just found this site out and I'm happy 'cause I was searching for something to help me to start programming games.I have a solid knowledge in Java (obtained in University).My main goal for now is to create a basic 2D RPG game with a more basic character development system, not because I just want to do it (so don't tell me to use RPG Maker  ) but because I want to LEARN how games are made and I want to achieve experience in this field using a genre of game that I know well.So, where to start? I heard C++ is a good language and I really don't want to use Java, what do you suggest? Any particular environment, library, starting point..?Thank you for your answers and sorry for my bad english, it's not my native language. 
C++ is a really good language - depends if you're up for the challenge though. You can check SFML, SLD, irrlitch, Ogre3d etc. You can also try to code your own graphics engine(which will take quite a bit of time though).You can check this out: http://www.gamedev.net/topic/642403-about-engines/;Haha, I'm actually working on the same thing right now (2D RPG). As far as a starting point goes, you can make a 2D RPG in pretty much any language. A question you should consider is:Do you have any specific platforms you want to publish your game on? (i.e. web, windows,mac , mobile, or multiple/all)If you want your games to be easily accessible to a more casual audience, then web/mobile is the way to go. Since it's an RPG, the controls are probably more suitable for the PC or web platform though. Once you've decided on a platform, you can then decide on a language and library/engine that is usable with it (since you seem keen on learning a different language).  I recommend on focusing on a single platform, either PC or web.You want to focus on a language that was built for the specific platform you want. There's a lot of new tools today that allow things like turning C++ into flash, but right now that just adds needless complexity to the project. Ideally, you also should choose a language and a library that has an active community. There are quite a few libraries that haven't been updated in a long time, and has many issues that you won't learn about until you're neck-deep in your project. It's also easier to get help when you have people that are active and acquainted with the library you are using.Unfortunately this is as far as I can help, since I'm only experienced in flash development. Flash is good because you can find many free hosting sites for it, and have people easily access it on the web. If you want your game not to be F2P, then Flash probably isn't the way to go. Can't say much about other languages/platforms, so you'll have to wait on someone else for that advice.;I will probably develop it for PC. My goal anyway is not to publish it or to have people play it, I want to understand concepts of programming a game, like running states, how to setup a battle, how inventory works, characters movement... things like this.;If you choose to go the C++ route, I cannot recommend SFML enough: http://www.sfml-dev.org/ As was said above, if you really want to learn about making your own graphics engine but most would tell you that its not worth it. SFML will get you up and running with simple graphics on the screen faster than most other options you'll find.  Once you have a basic working knowledge of C++ you will be able to understand most aspects of SFML as well.   I will probably develop it for PC. My goal anyway is not to publish it or to have people play it, I want to understand concepts of programming a game, like running states, how to setup a battle, how inventory works, characters movement... things like this. If I were you, I would take an hour or so at some point and put down a concrete idea of the game you want to make.  Decide how it will work, and for your purposes, in what order it would be best to implement the different systems.  If you are careful to consider how you implement your code, you should be able to make it very modular.  Meaning, you can say, well first I want to learn how to display a couple of screens and control them with states.  Once I've done that I want to set up a battle (so you use generic characters and enemies with hard coded stats),  Then I want to implement an inventory system.   Then you can just continue to add new pieces, but not until all prior pieces are in place and working.;You'll need:*2d Graphics engine*maybe some sound modules*input/output modulesThese are the things I think you can skip and use a ready library/engine for them(basically use SFML), however I think it's great fun researching the following:- A* pathfinding algorithms- projections - dimetric, trimetric, isometric - you can choose whatever and use it in your game  I want to understand concepts of programming a game, like running states, how to setup a battle, how inventory works, characters movement... things like this. "character movement" - well you just "move" the player sprite (and update the x,y coords in the player class), usually you have an animation(like player walking or whatever)"how inventory works" - it will work how you code it to, you can make some class inventory that contains an array of class item or a list or whatever container you'd prefer."how to setup a battle" - once again you can do it the way you want."like running states" - didn't get that Basically that's the fun part - where you can be creative about how you do things. However you need a good base before that - meaning you should know how to work with C++ and your chose library(for graphics, sound etc.);Okay, I think I'm starting to understand something but probably I will go with a text based game to start playing with C++...Thank you all very much, I will continue reading (and writing in) this topic if someone wants to suggest something else! ;Well for a text based game you can use only C++.You can check this book:http://www.amazon.com/Beginning-C-Through-Game-Programming/dp/1435457420;My opinion and suggestions would be to use either Game Maker Studio, Multimedia Fusion 2, or Construct (1 or 2 if you want to make an HTML5 game). I know you said "No RPG Maker" but I think these tools are worth considering. For instance Game Maker Studio has GML (and JavaScript for HTML5), Construct 1 has support for Python scripts natively, Construct 2 supports Javascript, Multimedia Fusion 2 has many extensions for scripting (although I dont think it supports scripts natively). I typically would use GML for the majority of my game logic whenever I have worked with Game Maker. If I set out to make a game I would likely consider using the above mentioned tools. I work in C++ 40+ hours a week and so I try to get a break from it whenever possible. If you want to go with C++ that is fine, but I would advise to take a look at the wide variety of tools out there (try the demos) and see what you like best. There is no "right" answer and so it really comes down to personal preference. There is also Python with PyGame, and even some good java options. The truth is there are a large variety of ways out there so try a bunch and pick the one you like best! I personally do not wish to have to worry about developing the infrastructure for a game when I create one. You do give up some flexibility when using game creation tools, but you can gain valuable productivity and these tools can be good for rapidly prototyping game ideas. Keep in mind that there is significantly more involved with game design (and creating an RPG) then just how you display a sprite on the screen or handle scrolling. You have a lot of work to do with regards to asset creation, quest creation, and balance. Just something to consider  .