My GM rant

Posted by Gordy on Dec. 31, 2012, 8:15 a.m.

Let me warn you; this post contains much rant, however, it adequately sums up my growing distaste for GM:S. Also, don’t expect coherence between paragraphs.

Yoyo, why can’t I have more than one project open at a time? It is so absolutely frustrating trying to switch between multiple projects, even more so with the horrendously slow and terrifyingly unusable file selection amalgamation you’ve got.

Just, let me open more than one instance of GM:S, please.

The new theme (gmHTML?) is.. interesting, to say the least. (And don’t you dare try and say ‘but you can change the theme!’ because that functionality is near useless and only aids in making GM look even more abhorrent.)

I’ve been using GM since version 5.1, and as the new versions came, the UI got better, and better, and more useable (My favorite being GM7/GM8). When GM8.1 came out, the improvements to the room editor were a nice touch, and overall, I only had a few gripes with it.

Maybe it was just the change of scenery, but with GM:S, I can’t help but feel something happened, something very, very terrible; I started to notice things. To be more precise, I started to notice, more things. This new, dark theme is so, lackluster.

Now, I can propose YoyoGames’ thinking behind it; Unity, Photoshop, and multiple other high end programs have taken on the dark theme as a sort of, badge of quality, and Yoyo felt they needed to emulate it. Well, it failed. Why, you ask? Because the combination of the layout, the icons, the god awful start/file selection make it look entirely juvenile. And no, I don’t mean, “This software can be used by juveniles!â€? I mean, “This software was designed by juveniles!â€?

Look, if you’re going to redesign your UI for whatever reason, please, just hire someone who knows what they’re doing. I mean that most sincerely too, it’s really a shame how far visually GM has degraded. So, as a condolence, I’m offering my own UI and product design services to you Yoyo, for free. Please, please do something about this, my eyes will thank you.

I’ve always had gripes with the way GM handles the windows for objects, sounds, sprites, etc, because it always seemed so, cumbersome. Let me explain,

What we have: the ability to open 1 code editor/sprite viewer/sprite editor/script editor at a time.

What I want: the ability to open multiple code editors/sprite viewers/sprite editors/script editors at a time.

Switching between the windows, or having to close the currently open code window just to edit one pixel on a sprite can get excruciatingly annoying after a while. Trying to copy some RGB color values from a sprite becomes physically tiring, as I have to navigate to the first level of windows and back just for 3 numbers. Let me switch between code windows with a tab (at the very least) or something, I shouldn’t need to close the window, find the object window, open the code window, and repeat, just to copy a line of text. And seeing as I spend 90% of my time in GM coding, it’s become one of the most frustrating things.

This is more, ‘out there’ as they say, but please, add another event to objects, “Globalâ€?. What do I mean by this? I mean, let me put all of my create, step, alarm, draw code, in the same code block, why? Because It’s good practice, and nearly every advanced language gives you the option of using and defining classes and functions inside a single script. If you’re aware of OOP coding, you’ll understand, if you’re not, here’s a pseudocode example:

define object Player {
	x = 0;
	y = 0;
	hp = 1;
	name = NULL;
	sprite_index = NULL;
	sprite_subimage = 0;

	function func1(arg0) {
		name = arg0;
	}	
	function func2(arg0) {
		hp = arg0;
	}
	function func3(arg0,arg1) {
		sprite_index = arg0;
		sprite_subimage = arg1;
	}
	
}

define image Sprite {
	width = 0;
	height = 0;
	origin_x = 0;
	origin_y = 0;
	source = NULL;
	frames = 0;
	sprite_speed = 30;

	function loadImage(arg0,arg1) {
		source = arg0;
		frames = arg1;
	}
} 

event Create {

ob_character = new Player {args(
	x => 32,
	y => 32,
)};

sp_character = new Sprite;
sp_character.loadImage(“img/player.gifâ€?,12);

ob_character.func1(“Dartâ€?).func2(100).func3(sp_donkey,0).setSpriteSpeed(15).setSpriteOrigin(16,16);

}

event Step {

	ob_character.x = (ob_character.x + 1) mod room_width;

}

event Draw {

	ob_character.draw();
}

This allows me to keep all of my data in the most important place it should be; accessibly in front of me. On the topic of pseudocode, the current implementation of instance_create(x,y,obj) is such a pain to use. Let me set some initial variables when I call the script without having use “with (object)â€? or a = instance_create, because they both require I rewrite all the variables out, even if they’re unchanged from the inherited event.

The “Advancedâ€? setting, should be exactly that, advanced. Timelines and fonts; seriously? How about a deeper view, with more emphasis on the IDE. I don’t use Drag n’ Drop, and I thought choosing “Advancedâ€? would acknowledge that, but alas; it did not, and is no more advanced than a stick to a twig.

Suggestion: Allow the customization of the view, or, give us the option to enable a real advanced setting, for those who spend more time coding, with a much larger emphasis on an IDE. This is probably my most important point, I want to be using a professional program, heck, I just want to feel like I’m using a professional program; but GM:S cannot even deliver on that. Focus more on what GM:S should be, an Interactive Development Environment. I know I’m just one of those “smelly, basement-dwelling programmer thingsâ€? but at least give me some dignity.

3D Graphics. I know GM is primarily a 2D development environment, but you added 3D support, so don’t cop out on it, there are only 3 things I want, just 3. 1, Shaders. 2, 3D Room Editor (with defined objects having a simple 3D bounding box). 3, Access to vertices of models, or even better, support for .obj and animated bones/models.

I know this may all sound fairly, negative, and while that was my initial intention, I want to make it clear; GM has always had a lot of potential, even more so now, but it’s buried beneath a layer of terrible usability, lackluster design, and frustrating quirks.

If anyone from YoyoGames is reading this, please, do yourself and your customers a favor, and hire a professional software designer (As I said before, I’d be willing to do it for free). Usability and functionality are far more important and valuable than any theme, or any petty update. If professionals can’t properly use your program, then you’ve done them a disservice by taking their money.

(posted to GMC titled "GM is an IDE; with the functionality of a rock.")

Comments

Alert Games 11 years, 11 months ago

I posted about the UI a while ago too. I posted the link in your GMC thread.

Juju 11 years, 11 months ago

I'm going to pretend I didn't see that Obelisk.

svf 11 years, 11 months ago

Programming in GML < Creating your own scripting language.

Nah just kidding, but seriously… I now hate GML with very much passion after switching to a real language (C++, and Java). Although GML is great for beginners I hate how it has so many differences then Java, and C++.

There is just so much wrong with GML, that isn't worth getting into.

Juju 11 years, 11 months ago

1. …Additionally, any content that opens 64digits.com to potential legal persecution is not permitted.