Starting out

Started by
4 comments, last by Serapth 12 years, 2 months ago
Okay i bought a book on C++ but the only laungue i know is Game maker is this a good idea or have i wasted my money (BTW i am only 11)
Advertisement
My first recommendation would be "reading the book". :)


Let's just say, you've picked a difficult route, but nothing lost in trying, you have plenty of time ahead of you. I personally would probably go with a different language, not so much because of your age, but because I recommend that to everybody starting out.

You could try reading this, it might help a bit.
No reason you can't start with c++, just don't set your sights on creating doom3 in a month. Take small bites, create realistic goals, and make sure you learn at least 1 thing new every time you create a project, and don't move on until you fully understand the concept at hand. Maybe at first you can just create a simple madlib type game that takes input in a console and outputs a funny story. it sounds simple, but for someone starting out, you may learn about input/output, arrays, different data types, and so on. Then once you feel you have mastered those, try to recreate the game in an object oriented fashion, which will teach you about classes and such. just keep improving this way and nothing will be too difficult.
It depends on what type of book you have bought, c++ is a vast language with many ways to do the same thing, which is a great thing for an experienced programmer, but a bad thing for someone starting out that can get lost in the vastness that is c++. If its a begginers book that will guide you by the hand trough the simplest program then its a good way to start, but if its not you may consider to try some begginers tutorial that you can find on google.

My advice to you is not to try to learn everything about c++, but to focus on understanding the basics of the languge, like functions, variables, constants, files input/output, and leave the advanced concepts like pointers, templates, namespaces, object oriented programming(OOP) for later. For instance I started writing my first serious 3d space shooter game in c++ (with directx7) without knowing anything about templates, namespaces, OOP (I was 14 years old at the time).

Also dont expect you will be making 3d games in a few months, its a long learning process but its worth the time investment. After you have learned the basics try to make some simple games like tic tac toe or even pong, simple things that you can show your friends and keep up the motivation (which is the most important thing in my experience).

The first result in google for a c++ tutorial is http://www.cplusplus.com/doc/tutorial/ and it seems easy to grasp the basic concepts (use this one rather than the book if the book is too complex).

Also you'll need a user friendly programming enviroment, I'll suggest Visual C++ becouse its the one I started with :) Dont be afraid to seek help with setting up the compiler (that can be the hardest thing for a beginner).

Good luck!

Okay i bought a book on C++ but the only laungue i know is Game maker is this a good idea or have i wasted my money (BTW i am only 11)


How much have you used GML (Game Maker Language)? In my experience it is fairly powerful and can be good to learn a wide variety of programming concepts (such as loops, variables, if statements, ect).

For instance here is a script I wrote to draw stars:


{
star_origin_x = argument0;
star_origin_y = argument1;
star_sides = argument2;
star_size = argument3;
star_ang = argument4;
star_shrinker = argument5;
star_color = argument6;

exterior_ang = 360.0 / sides;

draw_set_color(star_color);
draw_primitive_begin(pr_trianglefan);
draw_vertex(star_origin_x,star_origin_y);
for(side = 0 ; side <= star_sides ; side += 1)
{
temp_star_size = star_size;

if(side mod 2 == 0)
{
temp_star_size *= star_shrinker;
}
x_star = star_origin_x + cos(degtorad(star_ang + side * exterior_ang)) * temp_star_size;
y_star = star_origin_y + sin(degtorad(star_ang + side * exterior_ang)) * temp_star_size;
draw_vertex(x_star,y_star);
}
draw_primitive_end();
}


This one explores "land" around a king player.


{
king_x = argument[0];
king_y = argument[1];
grid_idx = argument[2];
tile_width = argument[3];
tile_height = argument[4];
tile_radius = argument[5];


king_tile_x = floor(king_x / tile_width);
king_tile_y = floor(king_y / tile_height);

for(dy = -tile_radius; dy <= tile_radius; dy+=1)
{
for(dx = -tile_radius; dx <= tile_radius; dx+=1)
{
tile_x = king_tile_x + dx;
tile_y = king_tile_y + dy;

//tile is valid index in room
if(tile_x >= 0 && tile_x < ds_grid_width(grid_idx) && tile_y >= 0 && tile_y < ds_grid_height(grid_idx))
{
cur_tile_idx = ds_grid_get(grid_idx, tile_x, tile_y);
if(tile_exists(cur_tile_idx))
{
dist_x = tile_x - king_tile_x;
dist_y = tile_y - king_tile_y;
dist_x_sqr = power(dist_x, 2);
dist_y_sqr = power(dist_y, 2);
radius_sqr = power(tile_radius, 2);
if(dist_x_sqr + dist_y_sqr <= radius_sqr)
{
tile_set_region( cur_tile_idx, tile_width, 0, tile_width, tile_height );
}
}
}
}
}
}


So you can do a good bith with GML!
Does game maker not have named parameters? If so, eww.

This topic is closed to new replies.

Advertisement