Jump to content


Photo

Gm 7.0 Extension Maker


  • Please log in to reply
50 replies to this topic

#1 Mark Overmars

Mark Overmars

    Game Maker Creator

  • YoYo Games Staff
  • 805 posts
  • Version:Unknown

Posted 24 February 2007 - 02:47 PM

I put the new extension maker program for version 7.0 of Game Maker on the site:

http://www.yoyogames...make/extensions

It will create the packages require for Game Maker 7.0 as it will be released in a few days time. Please download it and check it out. Note though that it definitely is not bullet proof and I know of some errors.

Please don't forget to read the readme, license, and help files. You will need the information in there.

I hope the extension mechanism will lead to a large number of important packages.

Note that the mechanism is much more powerful then people might think at first sight. For example, assume you want to create a clock package. You can add some nice image files of clocks. Create some scripts that create sprites out of these and that creates a clock object with the correct behavior, and add an action library that calls the scripts. The user would then probably just need to include one action with a few parameters to always have a clock visible on the screen.

Mark
  • 0
Mark Overmars, YoYo Games, www.yoyogames.com

Twitter:
twitter.com/mark_overmars
Check out my book The Game Maker's Apprentice
Buy my iPhone/iPad/Android game Super Snake HD

#2 tangibleLime

tangibleLime

    Lunatic

  • GMC Elder
  • 2520 posts
  • Version:GM:HTML5

Posted 24 February 2007 - 02:56 PM

Ok, I'm just checking: Will extensions made with this be able to be edited with the (upcoming?) version of this extension maker?
  • 0
Posted ImagePosted Image

#3 Daniel-Dane

Daniel-Dane

    GMC Member

  • New Member
  • 3581 posts

Posted 24 February 2007 - 02:57 PM

Yay, now I can realize my "GMC package" dream.

@Roach: This is most likely the (pre)final version.

I really wanted to test this out. But it seems that I've lost my ClipCursor() DLL :).

Edited by Daniel-Dane, 24 February 2007 - 03:08 PM.

  • 0

#4 tangibleLime

tangibleLime

    Lunatic

  • GMC Elder
  • 2520 posts
  • Version:GM:HTML5

Posted 24 February 2007 - 03:06 PM

Hm... roachext could be ~300 functions, so I don't want to start until I know it's going to work.
  • 0
Posted ImagePosted Image

#5 Daniel-Dane

Daniel-Dane

    GMC Member

  • New Member
  • 3581 posts

Posted 24 February 2007 - 03:07 PM

Hm... roachext could be ~300 functions, so I don't want to start until I know it's going to work.

<{POST_SNAPBACK}>

Are you putting all your creations into one extension?
  • 0

#6 tangibleLime

tangibleLime

    Lunatic

  • GMC Elder
  • 2520 posts
  • Version:GM:HTML5

Posted 24 February 2007 - 03:10 PM

Yup. And possibly more.

Edited by Roach, 02 March 2007 - 03:03 AM.

  • 0
Posted ImagePosted Image

#7 bluemagica

bluemagica

    Grand Wizard

  • New Member
  • 3243 posts

Posted 24 February 2007 - 03:16 PM

Wow, Mark......I love this!! But will this package be updated? cause at the site it says "Note that these programs are not supported in any way."
  • 0

#8 coolist

coolist

    The Coolist

  • New Member
  • 913 posts

Posted 24 February 2007 - 06:12 PM

hey not bad mark! Ill use it when gm7 comes out

-coolist
  • 0

#9 warriorccc0

warriorccc0

    GMC Member

  • Banned Users
  • 740 posts

Posted 24 February 2007 - 06:51 PM

hmm ya it would be good but like bluemagica said will it be updated? You said it had some errors so I believe you will update it for less errors....

#10 benoit.rouleau

benoit.rouleau

    GMC Member

  • GMC Member
  • 1570 posts
  • Version:GM:Studio

Posted 25 February 2007 - 02:53 AM

Sweet program! It could be a little more user-friendly, but hey, it's for advanced uses. Good work Mr. Overmars!
  • 0

#11 Ace

Ace

    GMC Member

  • GMC Member
  • 372 posts

Posted 25 February 2007 - 04:12 AM

Can you implement a way to extract the script names from GM7 so they can be imported into the Extention Maker? Maybe do it in a similar way of exporting scripts, exporting only the script names instead?

It would save a TON of work for already existing DLLs and GML scripts. Otherwise, older DLLs and Scripts would be a pain to implement in GM7!

Edited by Ace, 25 February 2007 - 04:13 AM.

  • 0
Posted Image Posted Image Online Fighting & Roleplay Game

ZERO ENGINE
Posted Image

#12 IsmAvatar

IsmAvatar

    Good Samaritan

  • GMC Member
  • 2411 posts
  • Version:GM8

Posted 25 February 2007 - 04:28 AM

Wow, Mark......I love this!! But will this package be updated? cause at the site it says "Note that these programs are not supported in any way."

He also said that about the Library Maker, and it hasn't been updated (or at least, the latest update still says it). That just means that he doesn't provide support for it if any problems arise or any bugs are found - use at your own risk.

Edited by IsmAvatar, 25 February 2007 - 04:29 AM.

  • 0
Posted Image LateralGM is an IDE for editing GM files on Linux, Mac, and Windows.
We also house the GM File Format Documentation and other projects of that nature.
IsmAvatar.com | Examples | Scripts | Particles | DLLs | Credit Me
Email | Registered

#13 Mark Overmars

Mark Overmars

    Game Maker Creator

  • YoYo Games Staff
  • 805 posts
  • Version:Unknown

Posted 25 February 2007 - 05:43 PM

They current version will be final for the current release of Game Maker 7.0. I will most likely work on a slightly improved version in the near future. But of course I will keep that compatible with the current version. So you can start working on your packages now, although you have to wait a few days before you can test them.

Concerning importing function names, the problem is that there is not enough information in GML script definitions. In particular the arguments are not specified. I recommend you to put all the function names in a text file (in the way described in the help file) and then use the button to import them. When you have many functions this is actually faster than entering them directly into the Extension Maker.

(One of the major problems with the current version of the Extension Maker is that it stores full paths in the description file. Hence, you cannot give the description file to somebody else or move the whole package that you are working on to a different folder. However, if there are just a few files that is not such a big deal because you can change the locations of the files in the interface.)

Mark
  • 0
Mark Overmars, YoYo Games, www.yoyogames.com

Twitter:
twitter.com/mark_overmars
Check out my book The Game Maker's Apprentice
Buy my iPhone/iPad/Android game Super Snake HD

#14 Ace

Ace

    GMC Member

  • GMC Member
  • 372 posts

Posted 25 February 2007 - 06:07 PM

Concerning importing function names, the problem is that there is not enough information in GML script definitions. In particular the arguments are not specified. I recommend you to put all the function names in a text file (in the way described in the help file) and then use the button to import them. When you have many functions this is actually faster than entering them directly into the Extension Maker.

(One of the major problems with the current version of the Extension Maker is that it stores full paths in the description file. Hence, you cannot give the description file to somebody else or move the whole package that you are working on to a different folder. However, if there are just a few files that is not such a big deal because you can change the locations of the files in the interface.)

Mark

<{POST_SNAPBACK}>



I agree with the problem of arguments, but if one could at least export the names of the functions from GM to a text file with basic formatting, it would be easy to append the arguments to that text file and save a load of work to import existing script names into Extention Maker.

Also, would it ever be possible to define custom events with the Extention Maker? Since one can define global constants that are usable in the editor now, wouldn't it be possible to predefine universal conditional events for use in objects as well? Maybe you'd use the Other Event's user events to implement this? If not, could it be done more easily with conditional Timelines instead?

In a similar way, could it be possible to have external sprite resources choosing which ones would need to be loaded at the start of the game, but still allow them to be visible in the GM editor while building the game? Or would this be better approached by providing a path to an external sprite instead of storing it in GM?
  • 0
Posted Image Posted Image Online Fighting & Roleplay Game

ZERO ENGINE
Posted Image

#15 Yourself

Yourself

    The Ultimate Pronoun

  • GMC Elder
  • 7352 posts
  • Version:Unknown

Posted 25 February 2007 - 06:15 PM

Since one can define global constants that are usable in the editor now, wouldn't it be possible to predefine universal conditional events for use in objects as well?


That doesn't make any sense. Events are nothing like global constants.
  • 0

#16 Daniel-Dane

Daniel-Dane

    GMC Member

  • New Member
  • 3581 posts

Posted 25 February 2007 - 06:20 PM

Isn't it already possible to create events? I didn't see it in the lib builder but I've tried opening a custom lib example with an "unknown something" in the event. It could have been corrupted, what do I know.
  • 0

#17 i_forget

i_forget

    GMC Member

  • New Member
  • 347 posts

Posted 25 February 2007 - 09:00 PM

That's because you did not have the lib.
  • 0

#18 Gupocca

Gupocca

    Artist

  • GMC Member
  • 644 posts
  • Version:Unknown

Posted 25 February 2007 - 09:06 PM

This updated version looks great! I like how you put the LibBuilder and the Extension Maker together.
  • 0

#19 Ace

Ace

    GMC Member

  • GMC Member
  • 372 posts

Posted 26 February 2007 - 02:11 AM

Since one can define global constants that are usable in the editor now, wouldn't it be possible to predefine universal conditional events for use in objects as well?


That doesn't make any sense. Events are nothing like global constants.

<{POST_SNAPBACK}>



What I meant was that they could be included in the editor when editing objects just like constants. In other words, they can be defined and used while making your game in a similar way to constants, except instead, they are conditionals instead of return values.

They could be selected through the other event popup menu because they would be included in the editor (once again, similar to a predefined constant, but instead they are predefined conditionals that would be useable in any object in the editor.)

If objects have many common events, such as some common states or flags, this would save time in both project development, and in highly repetitive code interpretation.

It would be very useful to include conditional Other Events in a similar way that you can include constants, and have them available through the GM Object Editor.

Does this make sense now?
  • 0
Posted Image Posted Image Online Fighting & Roleplay Game

ZERO ENGINE
Posted Image

#20 Yourself

Yourself

    The Ultimate Pronoun

  • GMC Elder
  • 7352 posts
  • Version:Unknown

Posted 26 February 2007 - 02:34 AM

Not really, no. Defining a custom event type wouldn't be anything like defining a constant. If you do define such a conditional, where does GM evaluate that conditional? What scope does that conditional get evaluated in? What order are they executed in?

More importantly, why couldn't you just used the user defined events already in Game Maker?

Besides all this, an event defined in this way would undoubtedly be much slower than those built into Game Maker, since a conditional would have to be interpreted.
  • 0

#21 Ansgar

Ansgar

    OM Studios

  • New Member
  • 333 posts

Posted 26 February 2007 - 03:53 PM

Am I right that it's currently not possible to make a constants-only extension package without including any (gml) file? It could be nice for some commonly used sets of constants, for example colors. Just a suggestion.

EDIT: Reply to Mark's post below: Well, that's true. I guess I was just thinking too perfectionistly (if this word exists...).

Edited by Ansgar, 26 February 2007 - 06:30 PM.

  • 0

#22 Mark Overmars

Mark Overmars

    Game Maker Creator

  • YoYo Games Staff
  • 805 posts
  • Version:Unknown

Posted 26 February 2007 - 05:49 PM

You can include an empty GML file if you only want to define constants.

Concerning other events. You can create an object that in its Step event does something like

{
  if (condition0)  { with (all) event_perform(ev_other,ev_user0); }
  if (condition1)  { with (all) event_perform(ev_other,ev_user1); }
  if (condition2)  { with (all) event_perform(ev_other,ev_user2); }
  ...
}

Place one persistent instance of this object in the first room and from now on for all instances of all object you can let the user events react to the conditions. (One warning, don't do this when you have a huge number of instances of objects. In that case you better only call it for the important objects.)

Mark
  • 0
Mark Overmars, YoYo Games, www.yoyogames.com

Twitter:
twitter.com/mark_overmars
Check out my book The Game Maker's Apprentice
Buy my iPhone/iPad/Android game Super Snake HD

#23 Invero

Invero

    GMC Member

  • GMC Member
  • 212 posts

Posted 26 February 2007 - 11:35 PM

Hi there This is awesome ;)
But I have 1 question my friend who has gamemaker 6.1 reg cant run the demo version he says it wont work on his pc but it works just fine on my computer :S. ....
Whats wrong with his gamemaker ?
  • 0

#24 Ace

Ace

    GMC Member

  • GMC Member
  • 372 posts

Posted 26 February 2007 - 11:45 PM

Not really, no.  Defining a custom event type wouldn't be anything like defining a constant.  If you do define such a conditional, where does GM evaluate that conditional?  What scope does that conditional get evaluated in?  What order are they executed in?

More importantly, why couldn't you just used the user defined events already in Game Maker?

Besides all this, an event defined in this way would undoubtedly be much slower than those built into Game Maker, since a conditional would have to be interpreted.

<{POST_SNAPBACK}>




I see your point about the slower interpretation of GML conditionals. The reason I asked is because I'd like to develop some form of a finite state machine (FSM), or heirarchal state machine (HSM) within game maker, and I thought this might allow the freedom to do so. However, it does have its faults.

What about implementing some form of a state controller for objects? The closest thing I've come up with in enhancing GM's ability to do this through the editor is using the current timeline mechanism, but it's a bit akward coding-wise since it's not made specifically for this.

If only Timelines could be set to loop through the editor. It would be even better if its length of time could be determined by some form of a conditional statement.
  • 0
Posted Image Posted Image Online Fighting & Roleplay Game

ZERO ENGINE
Posted Image

#25 dhuyd

dhuyd

    GMC Member

  • GMC Member
  • 265 posts
  • Version:GM:Studio

Posted 26 February 2007 - 11:59 PM

The great thing about the extension is if you click on other you can add any file
  • 0
keyboard_czech(vk_republic);

#26 dhuyd

dhuyd

    GMC Member

  • GMC Member
  • 265 posts
  • Version:GM:Studio

Posted 27 February 2007 - 12:07 AM

There isn't any specific folder that you have to have your extensions like you have your libs, right?

Edited by dhuyd, 27 February 2007 - 12:07 AM.

  • 0
keyboard_czech(vk_republic);

#27 Daniel-Dane

Daniel-Dane

    GMC Member

  • New Member
  • 3581 posts

Posted 27 February 2007 - 07:15 AM

When you have extracted the extension it will turn into a self-extractor (not an executable) and install itself in the extensions folder in the Game Maker directory.
  • 0

#28 dhuyd

dhuyd

    GMC Member

  • GMC Member
  • 265 posts
  • Version:GM:Studio

Posted 28 February 2007 - 12:19 AM

Mark,

Have you ever thought of combining Game Maker, Lib Maker, and Extension Maker into one program? :GM006:
  • 0
keyboard_czech(vk_republic);

#29 Quimp

Quimp

    Pretzel fanatic

  • New Member
  • 275 posts

Posted 28 February 2007 - 02:29 AM

I'm wild guessing, that he has. Remember that both the lib maker and the extension maker are not supported.

These programs are not supported in any way
and are only provided for your convenience.
The programs are provided AS IS and all
warranties are disclaimed by the author.
See the license agreement for details.


  • 0

#30 gymnastdaniel5

gymnastdaniel5

    Roboleader

  • GMC Member
  • 1018 posts

Posted 28 February 2007 - 02:48 AM

This really useful I will most likely use it when gm7 comes out!
  • 0

#31 bluemagica

bluemagica

    Grand Wizard

  • New Member
  • 3243 posts

Posted 28 February 2007 - 04:51 AM

U cannot use it before GM7
  • 0

#32 jetbuster

jetbuster

    GMC Member

  • GMC Member
  • 26 posts

Posted 28 February 2007 - 05:02 AM

hmmm mabey i should do this for money lol
  • 0

#33 pkavidas

pkavidas

    GMC Member

  • GMC Member
  • 41 posts

Posted 01 March 2007 - 09:34 PM

im still using gm 6 were do i get 7
  • 0

#34 Iam2noob4u

Iam2noob4u

    GMC Member

  • New Member
  • 447 posts
  • Version:Unknown

Posted 01 March 2007 - 10:43 PM

www.yoyogames.com/gamemaker
  • 0
Email/MSN: iam2noob4u@gmail.com

#35 Quimp

Quimp

    Pretzel fanatic

  • New Member
  • 275 posts

Posted 03 March 2007 - 07:05 AM

The Extension Maker seems to grab the date using the computer's format. While it isn't a major problem, I think it would be better to have all the dates in the same format.

Examples:
GM Printing - Date: 20/01/2007
High Resolution Timer - Date: 2/28/2007
Quimp Data Structure - Date: 2007-03-03


And since I'm in this topic, I should add that the new mechanism is a breeze to use and truly expands the possibilities. Its implantation was a great idea.
  • 0

#36 Daniel-Dane

Daniel-Dane

    GMC Member

  • New Member
  • 3581 posts

Posted 04 March 2007 - 05:08 PM

Hey, me and a few others have thought about how the DLL system works.
When I create a DLL extension I don't have to define its functions nor free it. So is it correct understood that that is done automatically?
  • 0

#37 TheOmega

TheOmega

    GMC Member

  • New Member
  • 88 posts

Posted 27 March 2007 - 06:13 PM

I already found a bug with the extension feature, create a extension script
and put this
//this is a comment
return "ABCD";

if you call that in GM, it'll return "0.00";

I skipped 3 lines after the comment to fix it, I made several tests on this.
  • 0
Loves his girlfriend Melissa <3

#38 HaRRiKiRi

HaRRiKiRi

    GMC Member

  • GMC Member
  • 1364 posts

Posted 04 April 2007 - 07:47 PM

Yeah it has some problems with comments. I have a script with 67 lines of code and some comments. The problem is that GM puts about three lines of code in a one line (for no apperant reason) thus it now have problems. Like this code:
//This will return ok
{
return "Ok"
//and now it will close
}
And GM extension mechanism will do something like:
//This will return ok{return "Ok"//and now it will close}
Thus giving a syntax error. Mind that this code may work as I don't want to show my real code that has this problem. But this can be very big issue for this mechanism as I can't use my extension. It works perfectly while in scripts, but when I create an extension it will show errors like "symbol { expected" when it actually isn't. And I have a part of the code like:
page=-1;
if (string_copy(stringy,0,2)="//"){
    if (pages!=-1){ds_grid_resize(pagegrid[pages],answers[pages]+1,7);}
    pages+=1;
    answers[pages]=0;
    pagegrid[pages]=ds_grid_create(20,7);
    ds_grid_set(pagegrid[pages],0,0,"");
}
And it will show that negative array index in this part:
answers[pages]=0;
When actually it says pages+=1 (this 0). So it has some major flaws, and only way I could fix them is changing the syntax of my code and making three free lines after almost each line.

Edit: Typo..

Edited by HaRRiKiRi, 04 April 2007 - 07:50 PM.

  • 0

#39 muslim power

muslim power

    GMC Member

  • New Member
  • 540 posts

Posted 04 April 2007 - 08:01 PM

Sorry guys I dont understand how to use these GEX codes.
Like how do I run or use them in game maker after someone has made theme?
  • 0

#40 Daniel-Dane

Daniel-Dane

    GMC Member

  • New Member
  • 3581 posts

Posted 04 April 2007 - 08:02 PM

Use /* */ then...
  • 0

#41 HaRRiKiRi

HaRRiKiRi

    GMC Member

  • GMC Member
  • 1364 posts

Posted 04 April 2007 - 10:19 PM

Daniel-Dane: Well it's a habbit so its hard to change. I better delete all comments before compiling.
muslim power: See the GM manual. Its very clear there.
  • 0

#42 Quimp

Quimp

    Pretzel fanatic

  • New Member
  • 275 posts

Posted 07 April 2007 - 05:23 AM

Use /* */ then...

But that won't solve his problem with the second code he posted.


if (string_copy(stringy,0,2)="//"){
Replace with:
if (string_copy(stringy,0,2)="/" + "/"){

Should work. If something can be done about it, it would be nice to see it fixed. I'm guessing this could cause a lot of headaches.
  • 0

#43 gmguy249

gmguy249

    GMC Member

  • New Member
  • 118 posts

Posted 13 April 2007 - 11:15 PM

Can Someone make an online version of the helpfile because i have vista and it won't open it
  • 0

#44 ce gamer

ce gamer

    GMC Member

  • New Member
  • 134 posts

Posted 18 April 2007 - 02:27 PM

Is there are change that next to functions and constants there will also be variables in a newer version?
  • 0

#45 vinheim3

vinheim3

    GMC Member

  • New Member
  • 220 posts

Posted 14 May 2007 - 06:29 AM

great work mark with the extension maker, one question, i have finally figured out how to use .gml scripts in the extension maker by reading the help file where it says "the script must be the same name as the function", but how can i use functions from .lib's?
  • 0

#46 armigus

armigus

    GMC Member

  • New Member
  • 94 posts

Posted 07 December 2007 - 05:14 PM

I am looking for a very special event type. When GM loads a game via game_load() or its action, I want all objects in the freshly loaded game to fire a Game Load event. I need to correct some sound issues in loaded games.

Does a .GEX or DLL have the potential to add this functionality?
  • 0

#47 frankpiet

frankpiet

    ^destroyed evil chicken^

  • New Member
  • 760 posts

Posted 14 January 2008 - 06:21 AM

i know in the licence it said that we cant complain about any bugs in the software, but the help files arn't working! can someone please give me a working link!!!

edit: it works now

Edited by frankpiet, 19 January 2008 - 03:14 AM.

  • 0
Posted Image

#48 databot

databot

    admin of moonlight games

  • New Member
  • 309 posts

Posted 15 July 2008 - 08:05 PM

Just to let you know, there is a GML extension parser on my site (yoyogames is taking forever to virus check it).
Current version of the program will loop through your GML files, looking at function names and ading them to a list.
It will also set certain functions as hidden based on a prefix check ( say, set all func_sys_* functions to hidden).

To use, just select a GML file, output file for function list, and hidden functions prefix (leave blank for no prefix)
Then just open extension maker, load your GML file, then click the import button and select the file you chose to save to.

Current version may be tempermental about clicking cancel.
Page for GML parser

Edited by databot, 20 July 2008 - 11:53 PM.

  • 0
Completed:
Scrip - Command line engine in the palm of your hands Get it Here
XML - XML simplified

#49 meiamsome

meiamsome

    GMC Member

  • New Member
  • 187 posts

Posted 10 October 2008 - 08:31 PM

how do you define global variables in the gml scripts of the extension maker... none of mine work.
  • 0

#50 Primoz128

Primoz128

    GMC Member

  • GMC Member
  • 313 posts
  • Version:GM:Studio

Posted 17 November 2010 - 10:03 PM

Any hopes Gm 8.0 extension maker will be made ?
  • 0




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users