Interested in begging RPG design

Hello,
I am interested in beginning Game design, RPGs in particular. I would just like a nudge in the right direction. I would like to know were I could find some basic tutorials or article on RPG design with C++. I would also like to know where I might be able to find some really basic 3D models and worlds for me to work with. If an RPG isn't a good thing for a beginner game designer can you please tell me what is.

-Curtis
I think its better for you to start with a command line game, its easier and you'll get comfortable with your coding style and way of thinking.
It all depends on what you feel your capable of.
If you are new to C++, I still recommend you start with basic text games (Hangman, Tic-Tac-Toe, BlackJack, Card Games, ETC).
You can also go to gamedev.net then go to Recommended Books for Beginners and check out the "RPG Designing for Beginners". You can buy it on Amazon. It teaches stuff about RPG and it seems pretty good from the reviews.
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.
Hello Cheif. That was a great post. I'm just wondering - when you do lines like (char)1, (char)2 - how do you know what letters really come out? Is there a chart somewhere on the net by chance?
Cheif thanks for that post. I have used a few freeware engines before, and the first games i made using those are really embarrasing. Yes, i also realise that everone can just design games, and that i need to learn how to program to actually creat a game. Also thank you very much for that piece of code, i will extend on it and hopefully turn it into something, that's after i finish my C++ book.
Hello Cheif. That was a great post. I'm just wondering - when you do lines like (char)1, (char)2 - how do you know what letters really come out? Is there a chart somewhere on the net by chance?


http://www.pcguide.com/res/tablesASCII-c.html

I think thats what you want.
Nice code... Just one thing: From where is that little face????
Last edited on
What little face?
The character's one.
From where is that little face???? О_О


cout << (char)1;
ASCII :p

cout << 'I' << (char)3 << "my cat."
Last edited on
@cheif
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.


I've felt that too... Except, I'm not yet in gaming.

@HeatMan
... From where is that little face????


try:
1
2
for (int i=0; i<32; i++)
    cout << char(i) << endl;

and:
1
2
for (int i=128; i<256; i++)
    cout << (char)i << endl;


for the rest of the chars.
*Sadly, Consolas didn't have some of the characters...
Here's a handy hexadecimal guide to ASCII:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int value;
int rowHeader;
cout << "  0 1 2 3 4 5 6 7 8 9 a b c d e f" << endl;
for(int row = 0; row < 16; row++)
{
  rowHeader = (row < 10)?('0'+row):('a'+row-10);
  cout << (char)rowHeader << " ";
  for(int col = 0; col < 16; col++)
  {
    value = row*16 + col;
    switch(value) // ignore values that could screw up printing
    {
    case 7:// system alarm '\a'
    case 8:// backspace '\b'
    case 9:// tab '\t'
    case 10:// next line '\n'
    case 13:// line feed '\r'
      value = 0;
    }
    cout << (char)value << " ";
  }
  cout << endl;
}


The letter 'a' is ASCII value 97. which is hexadecimal value 0x61
The letter '?' is ASCII value 77. which is hexadecimal value 0x3f

You'll notice if you run the code above, that 'a' is at row 6, column 1 (0x61), and '?' is at row 3, column f (0x3f).

You can treat hex values as regular numbers. For example: cout << (char)0x7e; will do exactly the same thing as cout << (char)126;
A good base knowledge of programing is a good place to start out side of that there are seeral books thatyou can read that directley corospond to game desighn and programing.

Your first step should be to write down or type out what you want the game to to ie health. Magic etc etc this way as a few pp have said you can start breaking it down into smaller challanges makesit a lot more manigable especially if you plan to make your own game engine just remember most of the comercial game engines took years of revaming by a team of programers so dont expect to have a comercial grade engine in any short period of time. As far as free 3d models go i havent really seen any worth a crap as far as games go the good ones are almost always to high of a poly count causing bad lag or a really lame model your best bet there is to find someone that loves modeling wether it bein 3ds oy maya and team up with them. " make sure they can texture otherwise the low poly models just wont look that great. if you want to play wth making some worlds on a budge checkout gmax its 3ds maxes little brother and if you can find it its free to use
Topic archived. No new replies allowed.