Long ago, I started a minesweeper game, which I made for about 75 percent already. Now I have finished the game more or less.
Minesweeper game
The game is made with Game Maker 5.3A, but I did not start making it that long ago. Game Maker 5.3A games are the most protable: they run under Windows 95 - Windows 8, and also with Linux wine.
The game has many options and four different grids, of which one I haven't seen before in a Minesweeper game by someone else. I will not tell you more here, since it is more fun finding that out yourself. ![]()
- Game Maker Community
- → Viewing Profile: Topics: brac37
brac37
Member Since 26 Feb 2005Offline Last Active Yesterday, 06:53 PM
Community Stats
- Group GMC Member
- Active Posts 765
- Profile Views 3460
- Member Title GMC Member
- Age Age Unknown
- Birthday Birthday Unknown
-
Gender
Male
-
Version
GM7
Friends
brac37 hasn't added any friends yet.
Latest Visitors
Topics I've Started
Minesweeper Game
28 March 2013 - 10:37 PM
Minesweeper
12 March 2013 - 11:06 PM
Long ago, I started a minesweeper game, which I made for about 75 percent already. Now I have finished the game more or less.
Minesweeper game
The game is made with Game Maker 5.3A, but I did not start making it that long ago. Game Maker 5.3A games are the most protable: they run under Windows 95 - Windows 8, and also with Linux wine.
The game has many options and four different grids, of which one I haven't seen before in a Minesweeper game by someone else. I will not tell you more here, since it is more fun finding that out yourself. ![]()
EDIT: I removed the old beta version and replaced it with a normal version.
draw_sprite_mapped
19 December 2010 - 11:32 PM
I have the following script lying around, it might be useful.
/*
** Usage:
** draw_sprite_mapped (sprite,subimg, x,y,A11,A12,A21,A22,rot,col,alph);
**
** Arguments:
** The first 4: same as draw_sprite () and draw_sprite_ext ()
** A11,A12,A21,A22: matrix of map
** rot, col, alph: (optional) same as draw_sprite_ext ()
**
** Returns:
** nothing
**
** Notes:
** The origin is still drawn on (x,y).
** This script ignores transformations (to save calls).
**
** brac37
*/
d3d_transform_stack_push ();
var angle, yangle, xscale, yscale;
xscale = point_distance (0,0,argument4,argument6);
yscale = point_distance (0,0,argument5,argument7);
yangle = point_direction (0,0,argument5,argument7);
angle = point_direction (-xscale*argument5,-xscale*argument7,
yscale*argument4,yscale*argument6);
d3d_transform_set_scaling (lengthdir_x(1.414213562373095,yangle-angle),
lengthdir_y(1.414213562373095,yangle-angle),1);
d3d_transform_add_rotation_z (argument8 + angle);
d3d_transform_add_translation (argument2,argument3,0);
var col, alph;
col = argument9;
alph = argument10;
if ((argument8 == 0) and (col == 0) and (alph == 0)) {
col = c_white;
alph = 1;
}
draw_sprite_ext (argument0,argument1,0,0,
xscale,yscale,45,col,alph);
d3d_transform_stack_pop ();How do you actually get syntax highlighting here?
Some Ideas For A Better Registration System
14 June 2009 - 12:51 AM
In order to attack the abuse of Gamemaker by the bad guys, YoYoGames introduced a new registration system that works by way of the internet, the softcrap system. This digital rights management system is a disaster that affects the good guys: they cannot use GM7.0 in a legal manner, while the bad guys, people that use the cracked version of GM7.0 from the beginning, are not affected in any way.
My ideas for a better registration system are as follows:
(1) A GameMaker interpreter for everyone.
The GameMaker IDE is replaced by an interpreter, i.e. a program that does not generate executables. Anyone may use this program (but not reverse-engineer it in order to make it generate stand-alone executables).
(2) Stand-alone executables are generated by YoYoGames.
So users send their GameMaker source file to YoyoGames and receive back the stand-alone executable. Only registered users are allowed to do that. A public key cryptosystem is used by YoYoGames: the private key to encode the executables and the public key to decode them at load time.
(3) The executable contains watermarks of its creators.
The one that sends the source file to YoYoGames is one of the creators (and also registered) by definition. The other creators are members of YoYoGames as well (one might choose not to require them to have paid for GameMaker as well). The other creators receive the uploaded source for approval, after which the stand-alone executable is released to all creators (or simply put on the YoYoGames site if all creators approve).
There are many advantages:
(1) Turning an interpreter into a compiler is way much more hell of a job than bypassing a security protection. So the bad guys are affected, which is exactly what we want. Furthermore, YoYoGames can do a good job here by making e.g. a script compiler and thus both developing GameMaker and encouraging registration/discouraging piracy on the interpreter.
(2) Again the bad guy is affected. The stand-alone executable could be cracked in order to get more adaptable code, but faking a stand-alone executable generated by YoYoGames is a totally different story. You have to crack the public key cryptosystem for that, which simply cannot be done by way of reverse-engineering.
(3) The creators are connected to their games, but due to the encryption system, it is really hard to fake their watermarks. The best way seems to crack the site of YoYoGames and/or its user-accounts. I think it is necessary to print watermarks in executables in order to attack abuse of licenses effectively.
The watermark system is somewhat "Big Brotherish" in the sense that the creators can easily be pinpointed. But shouldn't one be responsible for his games? I think one should be.
Equivalent Code
16 December 2008 - 02:17 AM
It appeared that one script used lengthdir_x and legnthdir_y and the other cos(degtorad) and sin(degtorad).
Further investigation revealed that lengthdir_x and lengthdir_y are incorrect in neighborhoods of multiples of 90 degrees.
Before I am set back again to novice, here is some code:
#define lengthdir_x2 return argument0*cos(degtorad(argument1)); #define lengthdir_y2 return -argument0*sin(degtorad(argument1)); #define point_direction2 return radtodeg (arctan2 (argument1-argument3,argument2-argument0));point_direction does not seem to have incorrect behavior.
- Game Maker Community
- → Viewing Profile: Topics: brac37
- Privacy Policy
- GMC Rules and Forum Rules ·



Find content
