RPGs are a fine place to start as long as you don't expect a commercial quality game right off the bat. Accept that your first game will suck, and you will look back on it in embarrassment one day. Every game developer's first game was an embarrassment. In fact, most real game developers won't admit most of their first hundred or so programs to 'count' at all...
The best thing you can do is learn how to break up big game mechanics into tiny problems to solve. And once you have a small problem to solve, try to solve it! Ask better programmers about how to solve it
once you have your own solution. Or solve problems that you think are related.
If you want a super simple game engine to start messing around with, try compiling this:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
#include <iostream>
using namespace std;
#include <conio.h>
void main()
{
int x = 5, y = 4;
int height = 15, width = 20;
char input;
do
{
for(int r = 0; r < height; ++r)
{
for(int c = 0; c < width; ++c)
{
if(r == y && c == x)
{
cout << (char)1;
}
else
{
cout << '.';
}
}
cout << endl;
}
cout << endl;
input = getch();
switch(input)
{
case 'w': y--; break;
case 'a': x--; break;
case 's': y++; break;
case 'd': x++; break;
}
}
while(input != 'q');
}
|
Depending on what you already know about programming, there's plenty of stuff you could add to this to make it more like an RPG... it really depends on your knowledge, ambition, and persistence. Practice makes perfect.
Great game programmers love solving game problems just because. Problem solving is exhilarating. The more frustrating the problem, the more god-like you feel when you finally solve it, or the more humbled you feel when you realize how you have erred. Let yourself fall into that mindset as you're programming, as you practice.
If that code I pasted is confusing, don't just compile it and assume that
this is just the way it is. Learn what each line does. Comment some of the lines out, or change logical operators, and try to understand the new behavior. Add print statements to random places in the code, and predict what the new output will be.
The first step to successful problem solving is always understanding. Every corner you cut in terms of understanding will be hours of frustration for you in the future.
If you just want to just do "game design", without spending time learning programming, I have some harsh news for you:
everyone wants to
design games. That's easy, and fun. That's not valuable to people. Software engineering, actually
making things happen,
is valuable.
I highly recommend you take a programming class if you haven't already, definitely C/C++, as soon as you can. Heck, just audit a class (walk in and pretend you belong there) at your local JC if you can.