|
|
#1 (permalink) |
|
Marios's Mustache Wax
Join Date: May 2011
Posts: 3
Reputation: 10
|
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
|
|
|
|
|
|
#2 (permalink) |
|
Crumbly, but Good
|
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 .
__________________
|
|
|
|
|
|
#3 (permalink) |
|
Cloud13's Clown
Join Date: Jun 2006
Location: Demacia
Posts: 2,835
Reputation: 65
|
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. |
|
|
|
|
|
#4 (permalink) |
|
Marios's Mustache Wax
Join Date: May 2011
Location: North Pole
Posts: 10
Reputation: 10
|
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 |
|
|
|
|
|
#5 (permalink) |
|
Marios's Mustache Wax
Join Date: May 2011
Posts: 3
Reputation: 10
|
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? |
|
|
|
|
|
#6 (permalink) |
|
Crumbly, but Good
|
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;
}
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;
}
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...
}
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.
__________________
|
|
|
|
|
|
#7 (permalink) |
|
Marios's Mustache Wax
Join Date: May 2011
Posts: 3
Reputation: 10
|
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
|
|
|
|
![]() |
| Thread Tools | |
| Display Modes | |
|
|