Members - Reputation: 106
Posted 02 September 2012 - 02:22 PM
If so, what library would I use to begin? I hear XNA is a great choice, but wanted a second opinion. I just never dabbled in C# before. Should I just stick with C++, as that's what I'm learning at school, and try to use the SFML library?
Senior Staff - Reputation: 14035
Posted 02 September 2012 - 06:49 PM
If you'd rather switch to C# -- to experience something different, widen your knowledge, or because you want faster and easier results with your game programming -- then XNA is an excellent choice.
I will advise that either way -- and I think you might already know this, but it's worth repeating -- you should aim to make a couple of smaller practice games before tackling a 2d RPG. You can learn a lot about how best to approach game programming from something like Pong or BreakOut, but without the complexity of a larger game. You don't need to spend a lot of time on this, but I think it will give you a better idea of how to get started and approach things when starting on your RPG.
It's really up to you, and both approaches have advantages and disadvantages, but you won't be harming yourself or face any setbacks in the long run from choosing either of these approaches.
Hope that helps!
- Jason Astle-Adams.
Members - Reputation: 326
Posted 03 September 2012 - 02:54 AM
If you really do have a good basic understanding of C++ and would like to start game development, look into the SDL and SFML libraries. Both are great starting points and are really easy to learn. I've done a decent amount with both libraries and would personally recommend going with SDL simply because I feel like there is more documentation around on the internet, making it slightly easier to learn.
A full-scale 2D RPG like Final Fantasy is definitely a big task to take on for your very first game development project! I'm not sure where your motivation level is on working on this project, but lot's of beginners that start out with big projects like this end up frustrated and/or stuck a month or two into development, and usually give up on the project. That being said, I would start off with some really small, simple projects to get a firm grasp of knowledge for whatever library you choose.
Start with getting an image on a screen and get down basic movements with the arrow keys. Maybe give the image some animations. Then work on a collision detection program, followed by a basic tiled map engine that uses your collision detection. Work on some image rotation and maybe loading/saving game states. I know it's not quite as fun, but it's definitely worth it to have all of these small projects lying around when it's time to work on a big project like a 2D RPG. You want to be prepared before taking on such a project!
After you get down all those basics listed above, start moving on to some more complex stuff like some basic Artificial Intelligence (A* is a good algorithm to start with), adding a 'scrolling' feature to your map engine, random map generation (could be used for caves/dungeons for games), etc.. Then start throwing all this stuff together in some smaller games. Tower defense games, Pac-Man clones, Pong-like games, etc. are all some great places to start! Once you've spent a lot of time researching and learning all these things, AND you feel confident, then you can start working throwing a prototype of a basic 2D RPG, then slowly make it more and more awesome. Just remember, these things take a lot of time, ESPECIALLY if you are going to do all the art yourself too.
Anyways, I'm not trying to kill your dreams of making a badass 2D RPG like Final Fantasy, just letting you know that it's much easier in the long run if you work up to it! Here is a great link to some guy names LazyFoo. He has some awesome tutorials on learning how to use SDL with C++, definitely worth looking at. Good luck!