Game Maker

1 - I can do better 2 - Jury's out 3 - Pretty darn good 4 - Splendiferous 5 - Awesometastic by 3 people | Log in to rate

Ranked #1,521 in Entertainment, #38,457 overall

Mark Overmars' Game Maker

My intent for this lens is to allow you to follow the development of a simple invader type game. I've been working on one in my spare spare time (yes, I meant to write that twice, it's an indication that this Lens may not be updated very frequently, so add it to you RSS feeds and you might catch my changes) and still have quite a ways to go before it's working game, but it should be fun!

Note: Mark, if you would rather I not use your logo as my Lens title, I'd be happy to remove it.

For those interested in Game Maker, the current version is 7.0 and can be found at YoYo Games.

I was hoping to do this in some kind of controlled manner, but I'm not publishing much doing it that way, so I'll be jumping around here and there whenever I can. Maybe some of the stuff I put in here will give other people some pointers or ideas that they can use. 

The Game Maker's Apprentice 

Game Development for Beginners

This is a good book if you're new to game development. Even though the Game Maker environment is a drag and drop IDE, the results can be quite amazing. There is also a powerful scripting language included that gives you more control over your game. This book is definitely worth the money!

The Game Maker's Apprentice: Game Development for Beginners (Technology in Action)

Amazon Price: $26.39 (as of 12/23/2009) Buy Now

YoYo Games Glog 

Where the World comes to Play, Make, Share and Find Games

YoYo Games is the official web site of Mark Overmars Game Maker. You can find a lot of good resources there as well as games to down load.

Loading Fetching RSS feed... please stand by

Game Maker Tutorial 

A Random Find on YouTube

To be honest, I haven't watched this in its entirety, so if you find it offensive, useless or down right silly... stop watching it.

Also, I am not the author, the author can be found here.

Game Maker Tutorial

This is a tutorial geared towards the newest of beginners coming to learn the aspects of the GameMaker software. Beginners...you could learn something from this; advanced users...if you are to watch this I apologize if this vid has made you dumber. UPDATE: Do not write me asking questions. I mean not to be a jerk, offering no help, but this video I made a couple years ago, learned all this in two weeks, made this video in a day. Whoever has a question most likely knows more of the program than I right now. If this video helps you then I'm happy for you, if not I apologize and advise you visit the "Game Maker Forums" for help: http://gmc.yoyogames.com/

Runtime: 595
288962 views
903 Comments:

curated content from YouTube

Part I: Designing the Game 

What is the story behind the game?

This is the story about a computer manufacturing company that is struggling to return to its glory days back in the late 90's. With the commoditization of computers, every computer manufacturer is now producing the same thing. Even the packaging has become a copy of our struggling manufacturer's.

Everyone was using the cow spotted boxes!

As it turns out, some aliens have hijacked a shipment of fake cow spotted boxes, added anti-gravity devices and armed them with exploding 3.5" floppy disks.

Maybelle, the retired cow, has been given the task to destroy the fake cow spotted boxes and eliminate the aliens possessing these card board containers before it's too late (whatever that means).

Part II: Our Main Character 

What is our hero going to look like?

There is one condition- no laughing. I am not a graphic artist and will never be one (as you can probably tell).

None-the-less, I'm sucking it up and ignoring all comedic comments regarding Maybelle the Cow.

Why? You ask, is the cow upside down?

Because our cow is equipped with nuclear cow milk that she uses to destroy those alien controlled fake cow spotted boxes which fly above her head. So, she needs to be upside down.

Part III: Our Fake Cow Spotted Boxes 

What will the aliens be attacking with?

Remember, they've taken control of the competitors fake cow spotted boxes and have armed them with exploding 3.5" floppy disk.

Random Path Generation: dataPath 

The next few postings will be how I set up a random path generator.

First, I set up some globals that define our visual dimensions.

Script Name: initGame

// Create and set global variables

// SCREEN DATA

// Screen width
global.gScreenWidth = 1024;
// Screen height
global.gScreenHeight = 768;

// The view is the rough area within which
// we'd like our path to remain.

// Left position of view
global.gViewLeft = 112;
// Right position of view
global.gViewRight = 936;
// Top position of view
global.gViewTop = 72;
// Bottom position of view
global.gViewBottom = 500;

I created some globals for configuring our path generator.

Script Name: dataPath

// PATH DATA

// Number of random paths to create
global.PathCountCreate = 25
// Number of times to loop the path
global.PathLoop = 4;
// Speed of objects on path
global.PathSpeed = 30;
// Create path queue
global.PathQueue = ds_queue_create();
// Set this to true when a new path is desired
global.PathGetNew = false;

Random Path Generation: createPathPoint 

Now, I created a random pathPoint generator. Depending on what quadrant we want the point in, a random point is added to our path.

Script Name: createPathPoint

// This is the path we're working on
// argument0 --> path
// The quadrant from which we want our random point
// argument1 --> quadrant
// The speed along the path
// argument2 --> speed

var nPath;
var nQuad;
var nSpeed;

var nLeft;
var nRight;
var nTop;
var nBottom;

nLeft = global.gViewLeft;
nRight = global.gViewRight;
nTop = global.gViewTop;
nBottom = global.gViewBottom;

nPath = argument0;
nQuad = argument1;
nSpeed = argument2;

{
switch(nQuad )
{
case 1:
path_add_point(nPath , random((nRight-nLeft)/2)+nLeft, random((nBottom-nTop)/2)+nTop, nSpeed );
break;
case 2:
path_add_point(nPath , random((nRight-nLeft)/2)+((nRight-nLeft)/2)+nLeft, random((nBottom-nTop)/2)+nTop, nSpeed );
break;
case 3:
path_add_point(nPath , random((nRight-nLeft)/2)+nLeft, random((nBottom-nTop)/2)+((nBottom-nTop)/2)+nTop, nSpeed );
break;
case 4:
path_add_point(nPath , random((nRight-nLeft)/2)+((nRight-nLeft)/2)+nLeft, random((nBottom-nTop)/2)+((nBottom-nTop)/2)+nTop, nSpeed );
break;
}
}

Random Path Generation: createPath 

The is where we create a random path. The number of passes is the number of times we want to create 4 random points in our path. The beginning and end of paths are located in the upper left corner of the screen. Imagine the object waiting in mother ship located in the upper left, coming out of the ship, traveling around and returning back to the mother ship.

Script Name: createPath

// argument0 --> number of passes
// argument1 --> speed

var quadrant_pattern;
var loop;
var maxloop;
var pathspeed;

maxloop = argument0;
pathspeed = argument1;
path = argument2;
// Select a path pattern to use;

// Clear path object
path_clear_points(path);

// Create beginning of path
path_add_point(path, 0, global.gViewTop/2, pathspeed );
path_add_point(path, 80, global.gViewTop/2, pathspeed );
path_add_point(path, 128, global.gViewTop/2, pathspeed );
path_add_point(path, 176, global.gViewTop, pathspeed );

for (loop=0; loop < maxloop; loop+=1)
{

quadrant_pattern = round(random(6));

switch (quadrant_pattern)
{
case 0:
// Quadrant order is 1-2-3-4 (SAME AS 6)
createPathPoint(path,1,pathspeed );
createPathPoint(path,4,pathspeed );
createPathPoint(path,3,pathspeed );
createPathPoint(path,2,pathspeed );
break;
case 1:
// Quadrant order is 1-2-3-4
createPathPoint(path,1,pathspeed );
createPathPoint(path,2,pathspeed );
createPathPoint(path,3,pathspeed );
createPathPoint(path,4,pathspeed );
break;
case 2:
// Quadrant order is 1-2-3-4
createPathPoint(path,1,pathspeed );
createPathPoint(path,2,pathspeed );
createPathPoint(path,4,pathspeed );
createPathPoint(path,3,pathspeed );
break;
case 3:
// Quadrant order is 1-2-3-4
createPathPoint(path,1,pathspeed );
createPathPoint(path,3,pathspeed );
createPathPoint(path,2,pathspeed );
createPathPoint(path,4,pathspeed );
break;
case 4:
// Quadrant order is 1-2-3-4
createPathPoint(path,1,pathspeed );
createPathPoint(path,3,pathspeed );
createPathPoint(path,4,pathspeed );
createPathPoint(path,2,pathspeed );
break;
case 5:

Random Path Generation: createPath 

continued...

// Quadrant order is 1-2-3-4
createPathPoint(path,1,pathspeed );
createPathPoint(path,4,pathspeed );
createPathPoint(path,2,pathspeed );
createPathPoint(path,3,pathspeed );
break;
case 6:
// Quadrant order is 1-2-3-4 (SAME AS 0)
createPathPoint(path,1,pathspeed );
createPathPoint(path,4,pathspeed );
createPathPoint(path,3,pathspeed );
createPathPoint(path,2,pathspeed );
break;

}

}
// Create end of path
path_add_point(path, 176, global.gViewTop, pathspeed );
path_add_point(path, 128, global.gViewTop/2, pathspeed );
path_add_point(path, 80, global.gViewTop/2, pathspeed );
path_add_point(path, 0, global.gViewTop/2, pathspeed );

Random Path Generation: setPaths 

This is where we'll add a bunch of paths to our queue waiting to be used.

Script Name: setPaths

while (ds_queue_size(global.PathQueue) < global.PathCountCreate)
{
myPath = path_add();
path_set_kind(myPath,1);
createPath(global.PathLoop, global.PathSpeed, myPath);
ds_queue_enqueue(global.PathQueue, path_duplicate(myPath));
}

In the end, the way this should be done is by calling this function every time a path is used. "global.PathCountCreate" should be a global indicating the number at which to create more paths.

If you find this at all useful, and are having troubles getting it to work for you, drop me a line. This works perfectly for me, but I created it about 2 years ago, so I may have missed something.

Oh, I forgot to say that this should be called just before your level starts. Otherwise you won't have any paths in the queue until the function is called the first time.

Spidee Tag 

Where is everyone coming from?

New Guestbook 

submit
  • Reply
    Christy Christy Jul 3, 2009 @ 11:24 pm
    Game maker is a good maker if 2d games, and there are more tutorial videos on youtube. might want to check out http://www.gamemakerslist.com for more game creators. And http://www.gamedev.net/ for tutorials and allot of other help.
  • Reply
    MusicMadness MusicMadness Jul 22, 2008 @ 1:44 pm
    Nice lens on Game Developing. I've been a passionate fan of games and building them for years. It's nice to see game development become more and more accessible to the average creatively minded person. I just wrote an article on a new company helping independent game developers become more successful by developing and retaining their own intellectual property. Give it a read if you like.

Games For Purchase 

Games you can by from Amazon

Of course, if you'd rather just play some cool games. You can see what Amazon has to offer.

Hoyle Card Games 2009

Amazon Price: $9.75 (as of 12/24/2009) Buy Now

Play! The Ultimate Casual Game Collection

Amazon Price: $14.99 (as of 12/24/2009) Buy Now

Hoyle Puzzle & Board Games 2009

Amazon Price: $9.69 (as of 12/24/2009) Buy Now

Hoyle Card Games 2008 [OLD VERSION]

Amazon Price: $7.49 (as of 12/24/2009) Buy Now

Hoyle Casino 2009

Amazon Price: $8.55 (as of 12/24/2009) Buy Now

Industry Jobs 

Jobs you can apply for

Maybe you'd like to get into the gaming industry as a developer. Here's a list of current jobs related to game development.

Freelance Widget / Game Developer
- Brooklyn, NY
Developer needed for a freelance project creating an interactive widget/game (picture crosswords-meet... future. Design assets and game framework are ready to... ...
Mobile Game Developer
Studio B Productions, Inc. - New York, NY
is looking for Mobile Game Developers to write articles on a variety of topics including: - Moving games... how-to - Developing games for a mobile format (i.e... ...
Windows Game Developer
Modicom - San Jose, CA
Windows Game Developer Responsibilities: - Developing PC games for a variety of platforms (such as Windows... interfaces. - Casual games development experience... ...
Marketing Game Manager - WB Games Inc. (Chicago Location) - #114470
Warner Bros Games - Chicago, IL
About WB Games Inc: WB Games Inc. is a new... WHV), to bring games to market. WB Games oversees the creation of games by internally owned developers as... ...
2D to 3D Game Developer
Studio B Productions, Inc. - New York, NY
Studio B is looking for game developers with knowledge and experience moving from 2D to 3D in game development to write articles for our client. Subject areas... ...
See more results

Powered by Indeed

Game Development Links 

Resources for beginner game developers

Here are a list of links that I've used in the past to help with any game development questions I've had.
YoYo Games
This is the official site of Game Maker administered by YoYo Games.
GameDev.net
Gamedev.net is the leading resource for game developers, featuring daily news updates, over 1500 featured articles and tutorials, and the most active game development forums anywhere!
Writers Cabal Blog
Writers Cabal Blog - Tips, tricks, and unconscionable wastes of time for game developers dealing with writers or writing Comic con: games and comics and geeks, oh%uFFFDmy! I survived an event so massive, it bears but one name: Comic-con. If you haven’t been to the San Diego comic-con before,

by BobSteen

I have a fantasy to one day develop a game. A commercial game that I've been dreaming of since the days of the Apple II. Here you will find my adventu... (more)

Explore related pages

Create a Lens!