Jump to content

GameMaker: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Ingolemo (talk | contribs)
Chaz13 (talk | contribs)
No edit summary
Line 126: Line 126:
== Game Maker Community ==
== Game Maker Community ==
The official forum of Game Maker. It is powered by Invision Power Board and was created by [[Mark Overmars]]. It is primarily used by users asking questions about Game Maker, posting examples or tutorials, or announcing Game Maker related websites. Its normal abbreviation is 'the GMC'.
The official forum of Game Maker. It is powered by Invision Power Board and was created by [[Mark Overmars]]. It is primarily used by users asking questions about Game Maker, posting examples or tutorials, or announcing Game Maker related websites. Its normal abbreviation is 'the GMC'.
== Helpfull code: ==
Show off your GML here:
a very effective top-down A.I script:

{
if instance_exists(argument0)
{
if distance_to_object(instance_nearest(x,y,argument2)) < 128
{
if !collision_line(x,y,instance_nearest(x,y,argument2).x,instance_nearest(x,y,argument2).y,argument1,false,false)
mp_potential_step(instance_nearest(x,y,argument2).x+45,instance_nearest(x,y,argument2).y+45,-6,false)
}
else
{
if hp>50
{
mp_potential_step(instance_nearest(x,y,argument0).x,instance_nearest(x,y,argument0).y,6,false)
}
else
{
if instance_exists(argument3)
mp_potential_step(instance_nearest(x,y,argument3).x,instance_nearest(x,y,argument3).y,6,false)
else
{
if distance_to_object(instance_nearest(x,y,argument0)) > argument4
mp_potential_step(instance_nearest(x,y,argument0).x,instance_nearest(x,y,argument0).y,6,false)
}
}
}
}
}



== See also ==
== See also ==

Revision as of 19:41, 17 May 2006

File:Game maker ui2.PNG
The Game Maker interface. An example of the sprite properties, object properties and script editor are visible.

Game Maker is a game development software application written by Mark Overmars in the Delphi programming language. Overmars released the original version on November the 15th, 1999. The features of Game Maker can be extended by registering it and paying a fee of $20.00 USD.

The program is designed to allow its users to easily develop computer games without having to learn a complex programming language such as C++ or Java. For experienced users, Game Maker contains a built-in scripting programming language called "GML", or "Game Maker Language". Games can be distributed under any license (including no license), as non-editable executable ".exe" files or as the .gm6/.gmd (Source Code) file itself.

To extend the drag-and-drop functionality of Game Maker, users can use files called Libraries to add new drag-and-drop items to the lists. These can be created with a special library builder.

Game Maker is available in a free version and a registered version. The registered version, which costs €15 (about $20 or £10), has more features than the free version. Some of these features include the ability to incorporate DLLs, create multiplayer games, take advantage of Direct3D to create first person shooters and the like, use particles, and utilize advanced drawing functions. The free version, while still having more than enough features for a novice programmer, displays a small Game Maker Logo during the loading of the user's game.

Game Maker is not as widely known or as used as other game development programs. It has, however, attracted a substantial number of users; mainly because of the program's accessibility to beginners while still allowing complex tasks to be undertaken by more advanced users. It is not as narrow in game creation as some other programs, as it allows the creation of many types of games, including platform games, first-person shooters, third-person shooters, massively multiplayer online games and simulation games. Game Maker is fully capable of creating standard programs as well, making it a very versatile development platform.

Current version

As of May 29 2005, Game Maker is at version 6.1. It now incorporates the use of Direct3D, allowing the usage of limited 3D graphics, and adds limited support for simple 3D models. Converters make it possible to use more popular 3D formats such as .3ds, and .obj for use in a 3D project. It also supports the ability to create certain particle effects like rain, snow, and clouds easily.

Game Maker's engine has improved over the years and has become much faster especially in the graphics area allowing one to use alpha and blending functions for their game's sprites.

Game Maker has very few limits, as one can extend a game or application with DLLs to perform other advanced functions from compiled languages such as C++, Delphi, Pascal, ASM and others. The following are several examples of DLL files which could be useful for game/program creation in Game Maker.

  • GMSock - Allows GM to use sockets to perform basic network functions; such as making an IRC client or file downloader.
  • GMSQL - Enables MySQL connectivity.
  • Xtreme3D - Incorporates true 3D functions into GM to make 3D games, including animation and lighting effects. Though this is not needed in the latest version of Game Maker, users of Game Maker 5.x may use this to create 3D games.
  • GmIrrLicht - Incorporates Real 3D functions into GM, Ultrarealistic physics, particle systems and other useful tools for making a 3D game. In part a wrapper for Irrlicht.
  • Text2Speech - Enables GM to use Text to Speech functions, allowing the creator's games or programs to 'speak'.
  • SXMS(2.x) - A wrapper dll which allows Game Maker to use Fmod and Winamp plugin support. Adds extended / advanced audio abilities such as DirectX 8.1 FX, Visualization, Channel management, Streaming audio (local or online source) and supports a variety of audio formats.

Also note that Mark Overmars and a few other people are now working on a book which will include the newest registered version available.

User interface

File:Game maker ui2.PNG
The Game Maker interface. An example of the sprite properties, object properties and script editor are visible.

The user interface is designed to be very user friendly with a tree menu to keep the project organized and easy to access controls. Game Maker features a drag and drop system of icons which allows for easy programming. Code, such as variables and scripts, may still be used.

Syntax

The syntax of Game Maker is fairly "relaxed." It allows for different programming styles, so you can easily move from another language to GML (and back) without any problems. Examples follow:

Example 1

if x = 5 and y < 10 then health = 0
else if y > 55 then room_goto(level2); 
else exit;

ray[0]="Hi"
hungry = 0
draw_text(x, y, ray[0])

if hungry = true then
{ ray[1]="Hungry!"; ray[2]="Really Hungry!"}

repeat(10) x = x+1

Example 2

/*

A single slash and a star sign (*) may be used to write
multi-line comments. This comment ends in a star sign and
a single-slash (in reverse order compared to the comment start).

*/

//Double slashes may also be used to write single-line comments in script
if (x == 5 && y < 10)
    health = 0;
else if (y > 55)
    room_goto(level2);
else 
    exit;

var ray;
ray[0] = "Hi";
hungry = false;
draw_text(x, y, string(ray[0]));

if (hungry)
{
     ray[1] = "Hungry!";
     ray[2] = "Really Hungry!";
}

for (i = 0; i < 10; i += 1)
x += 1;

The language also allows for Pascal-style keywords using begin and end instead of { and }, or using ' and ' (single quotes) instead of " and " (double quotes). It is possible to mix these and use pascal keywords with double quotes:

if x=5 and y<10 then begin
  show_message("x equals five and y is less than 10.");
end;

while 50>20 do begin
  show_message('Fifty is still more than twenty.');
end;

As shown above, the syntax is very customizable to a user's liking or needs. It follows the syntax patterns of many languages including Java, C, C++, Delphi, BASIC, and many others.

Minimum System Requirements

There have been many complaints for the latest versions (version 6.x) of Game Maker, mainly because the executables created with these versions require a more advanced computer than previous versions. Because of this, some users use Game Maker 5.3a instead.

Minimum System Requirements for Game Maker 6.1:

  • Microsoft Windows 98 SE, Windows 2000, Windows ME, or Windows XP.
  • DirectX 8+
  • DirectX 8 compatible graphics graphics card with at least 32MB of video memory.
  • 64mb of RAM.
  • 500mhz processor.
  • DirectX 8 compatible sound card.
  • 800x600 (or more) screen resolution with 16-bit or 32-bit colors.

Mininum System Requirments for Game Maker 5.3:

  • Microsoft Windows 98, Windows NT 4, Windows 2000, Windows ME, or Windows XP.
  • DirectX 5+
  • Pentium class processor or higher
  • 800x600 (or more) screen resolution with 16-bit or 32-bit colors.

Educational use

Game Maker was written by Mark Overmars, a Professor of the University of Utrecht, partly as a teaching aid for his students. It is gaining recognition as a useful teaching tool in primary and secondary schools because of its easy entry and sophisticated scripting language. It is particularly useful for gifted primary students and secondary students as a task which is both challenging and relevant. A compendium of educational links is at http://users.tpg.com.au/billkerr/g/aus.htm

The Game Maker's Apprentice

The Game Maker's Apprentice is a beginner's guide to game development written by Mark Overmars and Jacob Habgood. It shows you how to create nine Game Maker games from different genres using resources created by professionals from the games industry. It also discusses game design theory and provides practical examples of how this can be applied to making games that are more fun to play. See the official book website for more details: http://book.gamemaker.nl

Game Maker Community

The official forum of Game Maker. It is powered by Invision Power Board and was created by Mark Overmars. It is primarily used by users asking questions about Game Maker, posting examples or tutorials, or announcing Game Maker related websites. Its normal abbreviation is 'the GMC'.

Helpfull code:

Show off your GML here: a very effective top-down A.I script:

{ if instance_exists(argument0) { if distance_to_object(instance_nearest(x,y,argument2)) < 128 { if !collision_line(x,y,instance_nearest(x,y,argument2).x,instance_nearest(x,y,argument2).y,argument1,false,false) mp_potential_step(instance_nearest(x,y,argument2).x+45,instance_nearest(x,y,argument2).y+45,-6,false) } else { if hp>50 { mp_potential_step(instance_nearest(x,y,argument0).x,instance_nearest(x,y,argument0).y,6,false) } else { if instance_exists(argument3) mp_potential_step(instance_nearest(x,y,argument3).x,instance_nearest(x,y,argument3).y,6,false) else { if distance_to_object(instance_nearest(x,y,argument0)) > argument4 mp_potential_step(instance_nearest(x,y,argument0).x,instance_nearest(x,y,argument0).y,6,false) } } } } }


See also

Some games made with Game Maker

External links