MFGG phpBB Message Boards Archive
https://phpbb.mfgg.net/

Engine / Tutorial Topic
https://phpbb.mfgg.net/viewtopic.php?f=8&t=12077
Page 11 of 12

Author:  WreckingPrograms [ Thu Apr 24, 2014 3:10 pm ]
Post subject:  Re: Engine / Tutorial Topic

I wonder if you could make an "Extensions" group? If not, add this to tutorials:

Group: Extensions (?)
Name: Wrecking's Platformer Extension
Description: An easy-to-use platformer engine that can make a platformer game in a minute!
Program: GameMaker 8.1, but it should work with earlier versions as well
Registered: Yes
User: WreckingGoomba
Link: http://www.mediafire.com/download/in7co ... reckin.gex

Also, here's a video for it: https://www.youtube.com/watch?v=YRjWcg4 ... e=youtu.be

A more detailed description for those who want it:

I made a platformer extension for GameMaker 8.1 (but I think it'll work with other versions as well). I made it as easy as possible so you can make a platformer game in a minute! It has the following features:

-Friction
-Jump
-Double jump
-Running
-Solid collision
-Smooth drawing
-Customizable physics (movement speed, jump height etc.)

Credit is appreciated, but not necessary


NOTE: Don't make comments like "With this, people will never know how to code their own games" or something. This is a base for platformer games, and only includes player movement. People will still need to code a lot themselfs to make a real game.

Author:  Gatete [ Tue May 27, 2014 3:49 pm ]
Post subject:  Re: Engine / Tutorial Topic

Syntax: [ Download ] [ Hide ]
Using gml Syntax Highlighting
var back, width, height, xx, yy, left, right, bottom, index, i, j;
/*
**  Usage:
**      draw_background_tiled_partial_ext(background,x,y,xscale,yscale,rot,color,alpha,index)
**
**  Arguments:
**      back    the background to be drawn.
**      x       the x position of the background.
**      y       the y position of the background.
**      xscale  the hor. scale of the background.
**      yscale  the ver. scale of the background.
**      rot     the angle of the background.
**      color   the color of the background.
**      alpha   the alpha transparency of the background.
**      index   to check if the background is tiled vertically.
**
**  Notes:
**      Don't change the value of the 'top' variable. That will make the background get drawn as many pixels the background has below the top background.
**
**
*/

back    = argument0;
xx      = argument1;
yy      = argument2;
xscale  = argument3;
yscale  = argument4;
rot     = argument5;
color   = argument6;
a_trans = argument7;
index   = argument8;
width   = background_get_width(back);
height  = background_get_height(back);
left    = -1;
right   = view_xview[view_current]/width+view_wview[view_current]/width+1;
top     = 1;
bottom  = view_yview[view_current]/height+view_hview[view_current]/height+1;

if (view_enabled) {
    if (background_vtiled[index] == false) {
        for (i=left; i<right; i+=1) {
            draw_background_ext(back,xx mod width+width*i,yy,xscale, yscale, rot, color, a_trans);
        }
    }
    else {
        for (i=left; i<right; i+=1) {
            draw_background_ext(back,xx mod width+width*i,yy,xscale, yscale, rot, color, a_trans);
        }
        for (i=left; i<right; i+=1)
        for (j=top; j<bottom; j+=1) {
            draw_background_ext(back,xx mod width+width*i,yy mod height+height*j,xscale, yscale, rot, color, a_trans);
        }
    }
}
else {
    if (background_vtiled[index] == false) {
        for (i=-1; i<right; i+=1) {
            draw_background_ext(back,xx mod width+width*i,yy,xscale, yscale, rot, color, a_trans);
        }
    }
    else {
        for (i=-1; i<right; i+=1) {
            draw_background_ext(back,xx mod width+width*i,yy,xscale, yscale, rot, color, a_trans);
        }
        for (i=-1; i<right; i+=1)
        for (j=1; j<bottom; j+=1) {
            draw_background_ext(back,xx mod width+width*i,yy mod height+height*j,xscale, yscale, rot, color, a_trans);
        }
    }
}

Author:  SuperArthurBros [ Tue May 27, 2014 3:55 pm ]
Post subject:  Re: Engine / Tutorial Topic

What is this for, exactly, Catezeey?

Author:  Gatete [ Tue May 27, 2014 3:57 pm ]
Post subject:  Re: Engine / Tutorial Topic

SuperArthurBros wrote:
What is this for, exactly, Catezeey?


It's an efficient way to draw backgrounds.

Author:  Gatete [ Sat Jun 07, 2014 4:57 pm ]
Post subject:  Re: Engine / Tutorial Topic

Since Game Maker Studio: Standard is now free, I replaced some stuff on all the lists.

Author:  Gatete [ Tue Jun 10, 2014 4:51 pm ]
Post subject:  Re: Engine / Tutorial Topic

Syntax: [ Download ] [ Hide ]
Using gml Syntax Highlighting
/*
**  Usage:
**      key_to_string(key);
**
**  Arguments:
**      key / variable to be turn onto a string.
**
**  Returns:
**      Returns an ASCII value onto a string of the same value.
**
*/

switch (argument0) {
    case (8): {
        return "backspace"
    } break;
    case (9): {
        return "tab";
    } break;
    case (12): {
        return "numpad middle";
    } break;
    case (13): {
        return "enter";
    } break;
    case (16): {
        return "shift";
    } break;
    case (17): {
        return "control";
    } break;
    case (18): {
        return "alt";
    } break;
    case (19): {
        return "pause";
    } break;
    case (20): {
        return "caps lock";
    } break;
    case (27): {
        return "escape";
    } break;
    case (32): {
        return "space";
    } break;
    case (33): {
        return "page up";
    } break;
    case (34): {
        return "page down";
    } break;
    case (35): {
        return "end";
    } break;
    case (36): {
        return "home";
    } break;
    case (37): {
        return "left";
    } break;
    case (38): {
        return "up";
    } break;
    case (39): {
        return "right";
    } break;
    case (40): {
        return "down";
    } break;
    case (44): {
        return "print screen";
    } break;
    case (45): {
        return "insert";
    } break;
    case (46): {
        return "delete";
    } break;
    case (48): {
        return "0";
    } break;
    case (49): {
        return "1";
    } break;
    case (50): {
        return "2";
    } break;
    case (51): {
        return "3";
    } break;
    case (52): {
        return "4";
    } break;
    case (53): {
        return "5";
    } break;
    case (54): {
        return "6";
    } break;
    case (55): {
        return "7";
    } break;
    case (56): {
        return "8";
    } break;
    case (57): {
        return "9";
    } break;
    case (65): {
        return "a";
    } break;
    case (66): {
        return "b";
    } break;
    case (67): {
        return "c";
    } break;
    case (68): {
        return "d";
    } break;
    case (69): {
        return "e";
    } break;
    case (70): {
        return "f";
    } break;
    case (71): {
        return "g";
    } break;
    case (72): {
        return "h";
    } break;
    case (73): {
        return "i";
    } break;
    case (74): {
        return "j";
    } break;
    case (75): {
        return "k";
    } break;
    case (76): {
        return "l";
    } break;
    case (77): {
        return "m";
    } break;
    case (78): {
        return "n";
    } break;
    case (79): {
        return "o";
    } break;
    case (80): {
        return "p";
    } break;
    case (81): {
        return "q";
    } break;
    case (82): {
        return "r";
    } break;
    case (83): {
        return "s";
    } break;
    case (84): {
        return "t";
    } break;
    case (85): {
        return "u";
    } break;
    case (86): {
        return "v";
    } break;
    case (87): {
        return "w";
    } break;
    case (88): {
        return "x";
    } break;
    case (89): {
        return "y";
    } break;
    case (90): {
        return "z";
    } break;
    case (91): {
        return "left windows";
    } break;
    case (92): {
        return "right windows";
    } break;
    case (93): {
        return "menu";
    } break;
    case (96): {
        return "numpad 0";
    } break;
    case (97): {
        return "numpad 1";
    } break;
    case (98): {
        return "numpad 2";
    } break;
    case (99): {
        return "numpad 3";
    } break;
    case (100): {
        return "numpad 4";
    } break;
    case (101): {
        return "numpad 5";
    } break;
    case (102): {
        return "numpad 6";
    } break;
    case (103): {
        return "numpad 7";
    } break;
    case (104): {
        return "numpad 8";
    } break;
    case (105): {
        return "numpad 9";
    } break;
    case (106): {
        return "numpad *";
    } break;
    case (107): {
        return "numpad +";
    } break;
    case (109): {
        return "numpad -";
    } break;
    case (110): {
        return "numpad .";
    } break;
    case (111): {
        return "numpad /";
    } break;
    case (112): {
        return "F1";
    } break;
    case (113): {
        return "F2";
    } break;
    case (114): {
        return "F3";
    } break;
    case (115): {
        return "F4";
    } break;
    case (116): {
        return "F5";
    } break;
    case (117): {
        return "F6";
    } break;
    case (118): {
        return "F7";
    } break;
    case (119): {
        return "F8";
    } break;
    case (120): {
        return "F9";
    } break;
    case (121): {
        return "F10";
    } break;
    case (122): {
        return "F11";
    } break;
    case (123): {
        return "F12";
    } break;
    case (144): {
        return "num lock";
    } break;
    case (145): {
        return "scroll lock";
    } break;
    default: {
        return string(argument0);
    } break;
}

Author:  Friendly Dictator [ Tue Jun 17, 2014 1:52 pm ]
Post subject:  Re: Engine / Tutorial Topic

Name: Following example
Description: This example shows how to make objects follow in the path of another object. This could be used to make eggs following Yoshi, a fire chomp, a snake game, or something else.
Download: https://www.mediafire.com/?j15gjuatdhdj3sx
Program: Game Maker 8.1
User: Friendly Dictator
Registered: No

Author:  SuperArthurBros [ Tue Jun 17, 2014 3:28 pm ]
Post subject:  Re: Engine / Tutorial Topic

Can i add this one?
Name: Hello Engine 6 Fan-Made
Description: Edit of Hello Engine that adds better physics, many new features, including some of Hello Engine 6.0.1 features for those who can't use GMS.
Download: http://www.sendspace.com/file/s3frpa
Program: Game Maker 8 Pro
User: SuperArthurBros
Registered: Yes

Author:  TrinitroMan [ Wed Sep 10, 2014 8:22 am ]
Post subject:  Re: Engine / Tutorial Topic

DarkBlueYoshi wrote:
ShadowBomb wrote:
Group: Engine
Name: SMB2 Engine
Registered: No
Function: Make a Super Mario Bros 2 US fangame
Target: Game Maker 8
Link: http://www.mediafire.com/?t4xub3ney23qqx6

NO

Uhm...sorry, but what's the problem with that engine?
I'm not that long in this place, so I have no idea, what problems this engine has.
Could someone please clear me up? Thanks in advance!

Author:  WreckingPrograms [ Sun Oct 26, 2014 7:58 am ]
Post subject:  Re: Engine / Tutorial Topic

Group: Tutorials (since this isn't technically a "fangame source")
Name: Basic Platformer Engine
Description: A basic, yet smooth platformer engine
Program: Game Maker 8+, Game Maker Studio (file contains .gmk, .gm81 and .gmz)
Registered: No
User: WreckingGoomba
Link: http://www.mediafire.com/download/89chl ... Engine.zip

Author:  SuperArthurBros [ Sun Oct 26, 2014 11:42 am ]
Post subject:  Re: Engine / Tutorial Topic

None of the recent submissions were accepted.

Author:  smbmaster99 [ Thu Jul 16, 2015 7:10 pm ]
Post subject:  Re: Engine / Tutorial Topic

I made a thread for this after forgetting this topic existed, but I'll go ahead and post it here as well :P

Group: How-To/Example
Name: Surface-less Circle Screen Transition effect
Description: Shows and explains how to make a screen transition effect where a circle closes in or opens up on a scene, without utilizing surfaces
Program: GM8, GM8.1, and GMStudio (draw_rectangle_color() should be changed to draw_rectangle_colour() in GMStudio)
Registered: Yes (utilizes sprite scaling functions)
Created by: smbmaster99
Link: https://app.box.com/s/0txgsq0tj2e6sx7lyq8ghfy2spd1gasd

Here's a preview screenshot:
Image

Author:  SuperArthurBros [ Thu Jul 16, 2015 8:52 pm ]
Post subject:  Re: Engine / Tutorial Topic

This topic needs to be revived and also have its last engines accepted or not.

Author:  xgone [ Thu Jul 23, 2015 4:32 pm ]
Post subject:  Re: Engine / Tutorial Topic

WreckingGoomba wrote:
I wonder if you could make an "Extensions" group? If not, add this to tutorials:

Group: Extensions (?)
Name: Wrecking's Platformer Extension
Description: An easy-to-use platformer engine that can make a platformer game in a minute!
Program: GameMaker 8.1, but it should work with earlier versions as well
Registered: Yes
User: WreckingGoomba
Link: http://www.mediafire.com/download/in7co ... reckin.gex

Also, here's a video for it: https://www.youtube.com/watch?v=YRjWcg4 ... e=youtu.be

A more detailed description for those who want it:

I made a platformer extension for GameMaker 8.1 (but I think it'll work with other versions as well). I made it as easy as possible so you can make a platformer game in a minute! It has the following features:

-Friction
-Jump
-Double jump
-Running
-Solid collision
-Smooth drawing
-Customizable physics (movement speed, jump height etc.)

Credit is appreciated, but not necessary


NOTE: Don't make comments like "With this, people will never know how to code their own games" or something. This is a base for platformer games, and only includes player movement. People will still need to code a lot themselfs to make a real game.

Thx, dude Omg I just laughted so hard when I just noticed your name was Wrecking HAHAHAHAHA too much Miley Cyrus

Author:  Gatete [ Sat Jul 25, 2015 2:12 am ]
Post subject:  Re: Engine / Tutorial Topic

The links on the first post has been updated.

@SuperArthurBros: Mind submitting HE6F on another site rather than SendSpace, the download has been removed.

Author:  GreenMasterMFGG [ Mon Feb 15, 2016 9:19 pm ]
Post subject:  Re: Engine / Tutorial Topic

SuperArthurBros wrote:
Can i add this one?
Name: Hello Engine 6 Fan-Made
Description: Edit of Hello Engine that adds better physics, many new features, including some of Hello Engine 6.0.1 features for those who can't use GMS.
Download: http://www.sendspace.com/file/s3frpa
Program: Game Maker 8 Pro
User: SuperArthurBros
Registered: Yes


Really? The file is not available :mad:

Author:  TheTwelfthRocket [ Mon Feb 15, 2016 11:24 pm ]
Post subject:  Re: Engine / Tutorial Topic

GreenMasterMFGG wrote:
SuperArthurBros wrote:
Can i add this one?
Name: Hello Engine 6 Fan-Made
Description: Edit of Hello Engine that adds better physics, many new features, including some of Hello Engine 6.0.1 features for those who can't use GMS.
Download: http://www.sendspace.com/file/s3frpa
Program: Game Maker 8 Pro
User: SuperArthurBros
Registered: Yes


Really? The file is not available :mad:


It's not available because the post was made two years ago.

Author:  Mario Silva [ Tue Feb 16, 2016 2:05 am ]
Post subject:  Re: Engine / Tutorial Topic

Random Music Streamer System
Random music system similar at Super Mario Maker.

You need:
• GameMaker: Studio

First, you need all the music "channels" in separate files. Here I will use 3 with prefix-name "snd_stream_"
Then you must create an object:

CREATE EVENT
Syntax: [ Download ] [ Hide ]
Using gml Syntax Highlighting
///Music System
//We must declare all 1D arrays variables.
//Channels
stream[0] = snd_stream_1;
stream[1] = snd_stream_2;
stream[2] = snd_stream_3;
//Volumes
volume[0] = 0;
volume[1] = 0;
volume[2] = 0;
//Deactivate/Activate Channel
offon[0] = 1;
offon[1] = 0;
offon[2] = 1;
//Start the music
event_user(0);
//Start the alarms
event_user(1);

ALARM 0 EVENT
Syntax: [ Download ] [ Hide ]
Using gml Syntax Highlighting
///STREAM 1
offon[0] =! offon[0];
//Turn off/on again
alarm[0] = random_range(200,800);

ALARM 1 EVENT
Syntax: [ Download ] [ Hide ]
Using gml Syntax Highlighting
///STREAM 1
offon[1] =! offon[1];
//Turn off/on again
alarm[1] = random_range (200,800);

ALARM 2 EVENT
Syntax: [ Download ] [ Hide ]
Using gml Syntax Highlighting
///STREAM 1
offon[2] =! offon[0];
//Turn off/on again
alarm[2] = random_range(200,800);

BEGIN STEP EVENT
Syntax: [ Download ] [ Hide ]
Using gml Syntax Highlighting
////Streams Control
/*This event will control volume, check if the music is still playing and also
**prevent (for an impossible case) that all channels remain muted.*/


////STREAM 1////
if(offon[0] == 1){
    //Increment volume
    if(volume[0] >= 1)
        volume[0] = 1;
    else
        volume[0] += 0.05;
}
else{
    //Decrement volume
    if(volume[0] <= 0)
        volume[0] = 0;
    else
        volume[0] -= 0.05;
}
////STREAM 2////
if(offon[1] == 1){
    //Increment volume
    if(volume[1] >= 1)
        volume[1] = 1;
    else
        volume[1] += 0.05;
}
else{
    //Decrement volume
    if(volume[1] <= 0)
        volume[1] = 0;
    else
        volume[1] -= 0.05;
}
////STREAM 3////
if(offon[2] == 1){
    //Increment volume
    if(volume[2] >= 1)
        volume[2] = 1;
    else
        volume[2] += 0.05;
}
//Change volume
audio_sound_gain(stream[0],volume[0],0);
audio_sound_gain(stream[1],volume[1],0);
audio_sound_gain(stream[2],volume[2],0);
//if the first music isn't playing, restart all (Sync)
if!(audio_is_playing(stream[0]))
    //Restart all streams
    event_user(0);
//if any stream isn't playing, activate one
if(offon[0] == 0)
&& (offon[1] == 0)
&& (offon[2] == 0)
    offon[0] = 1;
 

USER DEFINED 0 EVENT
Syntax: [ Download ] [ Hide ]
Using gml Syntax Highlighting
///Restart/Start streams
/*This event will be used to restart the streams and start for the first time.
**It mainly to synchronize all channels.*/

//Stop all
audio_stop_sound(stream[0]);
audio_stop_sound(stream[1]);
audio_stop_sound(stream[2]);
//Restart/Start all
audio_play_sound(stream[0],0,false);
audio_play_sound(stream[1],0,false);
audio_play_sound(stream[2],0,false);
 

USER DEFINED 1 EVENT
Syntax: [ Download ] [ Hide ]
Using gml Syntax Highlighting
///Start Alarms
/*This event will only be used once only, unless you go to the other
**room and he is not a persistent.*/

alarm[0] = 1;
alarm[1] = 1;
alarm[2] = 1;
 

Note: The number of channels will depend on the amount of alarms that will use.

:think: I think it can also work with 2D arrays, for you to use volume along with the music in only one var. But I don't have tested it so, I can not give certain.

This is my first tutorial, please go easy on me if I wrong something...

Author:  TrinitroMan [ Tue Feb 16, 2016 3:57 am ]
Post subject:  Re: Engine / Tutorial Topic

TrinitroMan wrote:
DarkBlueYoshi wrote:
ShadowBomb wrote:
Group: Engine
Name: SMB2 Engine
Registered: No
Function: Make a Super Mario Bros 2 US fangame
Target: Game Maker 8
Link: http://www.mediafire.com/?t4xub3ney23qqx6

NO

Uhm...sorry, but what's the problem with that engine?
I'm not that long in this place, so I have no idea, what problems this engine has.
Could someone please clear me up? Thanks in advance!

Still have no idea, what problems this engine has, and I cannot find it out myself, because the link is down.
Somebody please explain to me.

Author:  Gatete [ Fri Mar 25, 2016 7:01 pm ]
Post subject:  Re: Engine / Tutorial Topic

Here's a simple Iris transition effect that you can use with Game Maker 8, 8.1 and Studio.

CREATE EVENT
Syntax: [ Download ] [ Hide ]
Using gml Syntax Highlighting
///Simple Iris Transition Effect

//Set up the radius.
radius = 0;

//Set up the surface.
surf = surface_create(room_width,room_height);

//Set up the colour of the surface.
surf_colour = c_black;


STEP EVENT
Syntax: [ Download ] [ Hide ]
Using gml Syntax Highlighting
///Handle position and radius of the transition.

//Snap into position, you can make this snap into the player's x and y positions.
x = view_wview[0] / 2;
y = view_hview[0] / 2;

//Set up the radius of the effect.
radius += 10;
if (radius > 160) { //Add here the width of the view divided by 2.

    //Do actions here!
}


END STEP EVENT
Syntax: [ Download ] [ Hide ]
Using gml Syntax Highlighting
///Handle the surface

//Does the surface exists?
if (!surface_exists(surf)) {

    //Set up the surface.
    surf = surface_create(room_width,room_height);
}

//If the surface exists, modify it.
else {

    //Set the surface target.
    surface_set_target(surf);
   
    //Clear colour white.
    draw_clear(c_white-surf_colour);
   
    //Set the blending mode.
    draw_set_blend_mode(bm_subtract);
   
    //Draw the transition image.
    draw_circle_colour(x-view_xview[0],y-view_yview[0],scale,c_white,c_white,false);
   
    //Set the blending end mode.
    draw_set_blend_mode(bm_normal);
   
    //Reset the surface target.
    surface_reset_target();
}


DRAW EVENT
Syntax: [ Download ] [ Hide ]
Using gml Syntax Highlighting
///Draw the surface.

//Set the blending mode.
draw_set_blend_mode(bm_subtract);

//Draw the surface.
draw_surface(surf,view_xview[0],view_yview[0]);

//Set the blending end mode.
draw_set_blend_mode(bm_normal);

Page 11 of 12 All times are UTC - 5 hours [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/