Go Back   OnRPG Free MMORPG Forums > Other > Game Development

Reply
 
LinkBack Thread Tools Display Modes
Old 05-07-2011, 10:09 AM   #1 (permalink)
Marios's Mustache Wax
 
Join Date: May 2011
Posts: 3
Reputation: 10
Default Game Developing Noob Needs Help :D

Hi. I am really interested in starting in game development. In September I am starting a game development course at college but I would like to try and learn as much as I can before then. What would be a good place to start? Maybe a good tutorial or some programs I could download that will help me. I am mostly interested in creating RPG games and in the future I would like to attempt to make an MMORPG like world of warcraft :P I don't know any programming and I don't know how or where to start so any help at all would be appreciated Thanks
NinjaMonkey23 is offline   Reply With Quote
Old 05-07-2011, 07:14 PM   #2 (permalink)
Crumbly, but Good
 
Eriond's Avatar
 
Join Date: May 2006
Location: Montreal
Posts: 1,645
Reputation: 67
Send a message via MSN to Eriond
Default

Well, a good place to start is by learning a programming language.

There are a whole ton to choose from, but some are better to start with than others.

I'd personally suggest you start with C++; it's what's mostly used in the gaming industry to create most of the commercial games (Unreal Engine, Call of Duty, stuff like that), because it's both powerful and flexible. It'll also teach you good habits and give you a feel for how a computer actually works.

If you want to get started, all you need to do is start here:
http://www.cprogramming.com/code_blocks/

It'll get you set up with an IDE (kind of like a glorified text editor), and a compiler (something that turns text files into exes (technically there are a lot of intermediate steps, but you can blackbox it and see it as this, no problems)).

From there, you can follow the link "Intro to C++" on the bottom, and get started with their tutorials! It may seem not like much, but if you go through all of the, you'll have a solid base to start building your very own game.

Whatever you make is going to be text-based at first (in a dos window), but after you learn more and more stuff, you'll be able to move to graphical stuff.

Anyway, if you ever do pick up the programming side of things, and have questions about setting up Code::Blocks, or writing your first program, or having some problems with errors; please ask! We'll be glad to help out. And no question is too stupid; we were all new once .
__________________
Outsider
3D Space Action Shooter/RPG in Development
http://www.youtube.com/user/outsidergame
Eriond is offline   Reply With Quote
Old 05-10-2011, 11:40 PM   #3 (permalink)
Cloud13's Clown
 
Phenoca's Avatar
 
Join Date: Jun 2006
Location: Demacia
Posts: 2,835
Reputation: 65
Default

Work on 3-4 of these before trying to program an MMORPG.
Or at least make half a dozen singleplayer games.

The only indie MMORPGs out there... Are Facebook quality stuff. Don't try to make your own unless you have a half-million dollar budget, three years' spare time, and can hire someone who has already made a successful MMO.
That's for ANYTHING 3D.

Then again, I know nothing about the coding process so I'm probably being overenthusiastic.
Phenoca is online now   Reply With Quote
Old 05-14-2011, 07:59 AM   #4 (permalink)
Marios's Mustache Wax
 
white_ra's Avatar
 
Join Date: May 2011
Location: North Pole
Posts: 10
Reputation: 10
Default

Plan plan plan! Do bulletins, write on chalk boards, squeak some ink on white boards do whatever you can in your knowledge or power to make your project a start

Most of all have the fuel from creativity and the FUN of it all- without fun it will feel like labor, however if you have some bit of immunity from burning out- then you're dedication should be where it's at!

I'm sure you will learn lots in your class excluding the outside network
white_ra is offline   Reply With Quote
Old 05-14-2011, 09:33 PM   #5 (permalink)
Marios's Mustache Wax
 
Join Date: May 2011
Posts: 3
Reputation: 10
Default

Thanks so much for all your help, especially Eriond. That website has the only C++ tutorial i have ever been able to understand.

Just one quick question about C++

I don't really understand how what i have learned so far could be used in making games. Would it be to do with the header file like #include iostream?
NinjaMonkey23 is offline   Reply With Quote
Old 05-15-2011, 05:02 AM   #6 (permalink)
Crumbly, but Good
 
Eriond's Avatar
 
Join Date: May 2006
Location: Montreal
Posts: 1,645
Reputation: 67
Send a message via MSN to Eriond
Default

It's very complicated. Essentially it boils down to this.

In the beginning, you'll only be be able to make console programs (and by console, I mean dos-window, not Xbox360/PS3). After you learn the basics of the language to do mainly computer related stuff (take keyboard input, produce output, manipulate memory, do some math), you can turn it more towards gaming.

To make a text based game, you need nothing more than the standard libraries (iostream, etc..) to get started. Like, for example, tic tac toe. If you've read the chapter on loops, arrays and functions, you can probably do tic-tac-toe; your code would look something like this:

Code:
#include <iostream>

using namespace std;

int grid[3][3];

void displayGrid()
{
   // Loop over each row.
   for (int C1 = 0; C1 < 3; C1++) {
      // Loop over each column.
      for (int C2 = 0; C2 < 3; C2++) {
         // If our square has a 1; output an X.
         if (grid[C2][C1] == 1)
            cout << "X";
         // Likewise if it has a 0, output a Y.
         else if (grid[C2][C1] == 2)
            cout << "Y";
         // Use a tab to space things out.
         cout << "\t";
      }
      // We're at the end of the row, go down a line.
      cout << endl;
   }
   // Give us some extra space.
   cout << endl << endl;
}

int hasWon()
{
   // If they've won on the left side.
   if (grid[0][0] != 0 && grid[0][0] == grid[0][1] && grid[0][1] == grid[0][2])
      return grid[0][0];
   // If they've won on the top side.
   if (grid[0][0] != 0 && grid[0][0] == grid[1][0] && grid[0][0] == grid[2][0])
      return grid[0][0];
   // etc..
   return 0;
}

int main(int argc, char* argv[])
{
   // Make sure the entire grid is set to 0.
   for (int C1 = 0; C1 < 3; C1++) {
      for (int C2 = 0; C2 < 3; C2++) {
         grid[C1][C2] = 0;
      }
   }
   // Player 1 goes first.
   int playerTurn = 1;
   int choiceX = 0, choiceY = 0;
   // As long as we don't have a winner, loop.
   while (hasWon() == 0) {
      displayGrid();
      cout << "Please enter an X coordinate: ";
      cin >> choiceX;
      cout  << "Please enter a Y cooridinate: ";
      cin >> choiceY;
      // Make sure that the square we chose is valid.
      if (choiceX >= 0 && choiceX < 3 && choiceY >= 0 && choiceY < 3)
         cout << "That is an invalid square!";
      // Make sure the square has nothing (a 0), in it.
      else if (grid[choiceX][choiceY] != 0) {
         cout << "That square is already taken!" << endl;
      }
      else {
         // Set the grid at the particular coordinate we chose to the player who's turn it currently is (1 = X, 2 = O)
         grid[choiceX][choiceY] = playerTurn;
         // Change turns; if it's player 1's turn, it becomes player 2's turn, and vice versa.
         if (playerTurn == 1)
            playerTurn = 2;
         else
            playerTurn = 1;
      }
   }
   // Say that someone won.
   cout << "The winner is player " << hasWon() << "!" << endl;
   return 0;
}
I just wrote that up now, so there are some minor errors, but you should see sort of how things are supposed to go. You can extend this kind of play to almost all types of text-based games. (text chess, text rpgs, etc..)

If you want to move to graphics, things become more complicated. You have to use a graphics library; usually DirectX or OpenGL, but others are available (usually they sit ontop of DirectX/OpenGL). You can then do something like the following (only much more complex; the functions I'm calling here don't actually exist.)

Code:
int main(int argc, char* argv[])
{
    bool gameIsDone = false;
    // Create a 400x400 window.
    createWindow(400, 400);
    int framesDrawn = 0;
    while (!gameIsDone) {
        clearScreen();
        drawModelsRectanglesAndLotsOfOtherStuff();
        processKeyboardInputAndMovePlayersAndStuff();
        doPhysics();
        framesDrawn++;
    }
    return 0;
}
Obviously that's very simplified; but that's sort of how graphical games go; you have what's called a main game loop, which is just a big while loop, and every time you loop through you usually do certain things among them, moving things around and drawing a full frame

In a 2D game for example, for a very simple character, that the player can move around, and has a simple image as its picture you'd do something like the following.

Code:
class Character 
{
public:
   int X;
   int Y;
   int speed;
   // RGB values of an image (so like imageBuffer[0] is equal to the red color of the first pixel, imageBuffer[1] is the green, imageBuffer[2], the blue, and imageBuffer[3] is the red color of the second pixel
   char* imageBuffer;
   int imageSizeX;
   int imageSizeY;

   Character() {imageBuffer = NULL; X = 0; Y = 0; speed = 1; }
   ~Character() { }

   void draw() { drawImageOntoScreen(X,Y, imageSizeX, imageSizeY, image); }
   void playerPressedLeftKey() { X -= speed; }
   // etc...
}
Keep in mind that I'm writing this up very quickly, and in no way shape or form should you ever have a "playerPressedLeftKey" function in a real game; I'm just doing this for convenience, and to make things clear. Usually, it'll be a little more complicated than that, but in the end, it basically boils down to that. If we mix this example, with the previous one about the game loop; you'd be calling character1.playerPressedLeftKey(), or whatever, inside processKeyboardInputAndMovePlayersAndStuff().

Sorry if I'm not explaining very well, but this hopefully should give a (very rough) idea of what things look like in a very simple game.
__________________
Outsider
3D Space Action Shooter/RPG in Development
http://www.youtube.com/user/outsidergame
Eriond is offline   Reply With Quote
Old 05-15-2011, 09:29 PM   #7 (permalink)
Marios's Mustache Wax
 
Join Date: May 2011
Posts: 3
Reputation: 10
Default

O.O
...
That looks confusing but I looked through it and actually found some things I could understand. I am currently on part 12 of a 60 part video tutorial on C++ so I will check back here in a while and try and work it out again :P Thanks for your help
NinjaMonkey23 is offline   Reply With Quote
Old 05-16-2011, 03:22 AM   #8 (permalink)
Crumbly, but Good
 
Eriond's Avatar
 
Join Date: May 2006
Location: Montreal
Posts: 1,645
Reputation: 67
Send a message via MSN to Eriond
Default

Hopefully it'll work out, good luck!
__________________
Outsider
3D Space Action Shooter/RPG in Development
http://www.youtube.com/user/outsidergame
Eriond is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT. The time now is 12:51 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0
OnRPG, Copyright ©2003-2011, Game Entertainment Enterprises