Jump to content


Photo

What should go........?


  • This topic is locked This topic is locked
131 replies to this topic

#51 ragarnak

ragarnak

    GMC Member

  • GMC Elder
  • 19468 posts
  • Version:GM8

Posted 27 January 2011 - 08:03 PM

I find it very useful for debugging loops though.

:) Thats the only thing I can remember I've ever used it for. For loops that visually did something.

Ofcourse, I only used it as a replacement for the "show_message(...)" box I had there earlier, as that gave me the possibility to single-step (and keeping a button down also is a kind of slow sleep :) ).
  • 0

#52 Chronic

Chronic

    Administrator

  • Global Moderators
  • 2729 posts
  • Version:GM:Studio

Posted 27 January 2011 - 08:09 PM

Sleep is also useful when adding a pause button to your game, however using the de/activate instance functions can give you the same effect.

io_clear();
while !keyboard_check_pressed(vk_anykey) sleep(100);
instance_deactivate_all(true);

  • 0

My recent tutorials: [Auto-Tiling] [Text Based Menu] [Sprite Based Menu] [View more at my site]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
R.I.P Mom (1951-2008)


#53 IceMetalPunk

IceMetalPunk

    InfiniteIMPerfection

  • GMC Elder
  • 9603 posts
  • Version:GM:Studio

Posted 27 January 2011 - 08:36 PM

io_clear();
while !keyboard_check_pressed(vk_anykey) sleep(100);

Is that not identical to:

io_clear();
keyboard_wait();

?

-IMP ;) :)
  • 0

:GM123: Are you an artist who likes creating original creature designs? Maybe you can help out with Elementa here! Give it a look; you might like the idea :)

:bunny: :excl: :bunny: :excl: :bunny: :excl: :bunny: :excl: :bunny: :excl: :bunny: :excl: :bunny: :excl: :bunny: :excl: :bunny: :excl: :bunny:


#54 FredFredrickson

FredFredrickson

    Artist

  • Global Moderators
  • 9217 posts
  • Version:GM:Studio

Posted 27 January 2011 - 08:38 PM

How about removing the Game Maker "game UI" (the UI of the boxes like show_message() produces) and make the default message boxes whatever is native to the OS you create your game for? That would make GM games seem much more "legit", I think (plus I can't stand those ugly black boxes).
  • 0

#55 IceMetalPunk

IceMetalPunk

    InfiniteIMPerfection

  • GMC Elder
  • 9603 posts
  • Version:GM:Studio

Posted 27 January 2011 - 08:41 PM

How about removing the Game Maker "game UI" (the UI of the boxes like show_message() produces) and make the default message boxes whatever is native to the OS you create your game for? That would make GM games seem much more "legit", I think (plus I can't stand those ugly black boxes).

Seconded. There's no need to have a separate, verbose extension to replicate exactly the same things as the default functions, but with a recognizable interface.

-IMP ;) :)
  • 0

:GM123: Are you an artist who likes creating original creature designs? Maybe you can help out with Elementa here! Give it a look; you might like the idea :)

:bunny: :excl: :bunny: :excl: :bunny: :excl: :bunny: :excl: :bunny: :excl: :bunny: :excl: :bunny: :excl: :bunny: :excl: :bunny: :excl: :bunny:


#56 commander of games

commander of games

    Kaos Kreator

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

Posted 27 January 2011 - 08:52 PM

score, health etc. all stay. Beginners use them.


Beginners should be able to get along without score and health. All they need to do is create a global variable called health or score... Maybe(I know this isn't the place to suggest features)have a setting the Global Game Settings that will allow you to choose if these are 'pre-defined' or not?
  • 0

InvaderX.gif


#57 FredFredrickson

FredFredrickson

    Artist

  • Global Moderators
  • 9217 posts
  • Version:GM:Studio

Posted 27 January 2011 - 08:56 PM


score, health etc. all stay. Beginners use them.


Beginners should be able to get along without score and health. All they need to do is create a global variable called health or score... Maybe(I know this isn't the place to suggest features)have a setting the Global Game Settings that will allow you to choose if these are 'pre-defined' or not?


Thing is, these things make it easier for beginners, and don't affect advanced users at all. There's no point in getting rid of them just for the sake of getting rid of them.

Maybe it'd be more useful if in Advanced or Pro mode you could disable some of the default globals like these. I'm not really sure how that would help, other than to make sure that your game throws errors if you accidentally use one of those var names or something, but hey, just a suggestion.
  • 1

#58 Erik Leppen

Erik Leppen

    GMC Member

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

Posted 27 January 2011 - 08:56 PM

One even more evil setting is the possibility to disable the showing of errors. Misteriously failing programs galore. End yes, I had the displeasure to have tried to figure out how to help members to recuperate something of their (often) hard work.

I disagree. The hide errors function has actually a purpose - on a finished product one might want to hide error message and instead replace them with their own error handling system (using a Trigger event with error_occurred in it ;) ). In fact I have done this on a GM program. This way you can style your error message the way you want and e.g. write on the error message "please report this to [...]". This can look much more professional than the default GM error message. When writing large programs, never automatically assume it is error-free. Especially not if it has to handle a lot of user-generated content. So if you want a polished product, the ability to create a polished error handling system for it, for just in case, is, to me, a very big plus.

So, Hide error messages should stay.

And also I think I have encountered a bug in the error system twice, that I could find only by looking at the error in game_errors.log, because both bugs gave a normal error message followed by a series of access violations (yes, GM is not bug free as we all know). Although of course the solution to this is to fix the error system (assuming it is the cause of the two bugs). Those bugs have been reported to YYG's bug system a while ago already by the way.

ts a one-stop setting of a certain sub-image and telling the instance not to animate: one command instead of two. Sounds like a good decision to me

I don't think it's a good idea to recommend a deprecated (and undocumented) function, because sooner or later this will be removed from the program. I think it's much better to learn the right way, even if it's one line longer. (Woo. One whole line. Disaster. ;) )

But I don't really care either way.
  • 1

promo_briquidmini_500x150.png


#59 Revel

Revel

    ɹǝqɯǝɯ ɔɯƃ

  • GMC Member
  • 4935 posts
  • Version:GM8

Posted 27 January 2011 - 08:57 PM

Built in variables: You already said beginners use them, so maybe have an option to disable them.
Treat uninitialized variables as 0: This is TERRIBLE programming practice and should be removed. Beginners need to learn that programming involves careful variable declaration and usage. Otherwise, if this feature wasn't removed, whenever a variable was initialized via this system, it could have a "flag" on it saying it was declared via the system and could produce a warning to the programmer saying that it hasn't been declared manually.


Registry - WILL go. It's a massive security hole that needs nuked as quickly as possible.

Posted Image
  • 2

#60 FunnyGames

FunnyGames

    GMC Member

  • GMC Member
  • 362 posts

Posted 27 January 2011 - 08:58 PM

to commander of games:
You're wrong, when I first start using Game Maker, I had no programming experience at all, and I did used the health and score, I used D&D of course, but still when moving to GML, I used the health and score, so removing it will create beginners many problems.
And I do agree with the other posts here. (About game help, treating unknown variables as 0, etc).
  • 0

#61 deformed thought

deformed thought

    GMC Member

  • GMC Member
  • 133 posts
  • Version:GM7

Posted 27 January 2011 - 09:04 PM

How about we...

1) Allow users to make instances that disclude variables,

2) Allow users to delete other variables, such as arrays;

3)Compile a game for running only with the functions it USES and what is neccessary to emulate it! That would massively improve performance issues.

EDIT:
Treating Uninitalized variables is useful when you have random "this variable doesn't exist" statements, which I've had, and when you need to know the errors besides the fact that the variable isn't defined.

Edited by deformed thought, 27 January 2011 - 09:07 PM.

  • 0

#62 Jess Horton

Jess Horton

    GMC Member

  • GMC Member
  • 230 posts
  • Version:Unknown

Posted 27 January 2011 - 09:13 PM

I'm with Fred on the custom ui boxes, get them out. I agree with a lot of people on removing MPlay. I am super excited about you guys rewriting a new networking system. Chronic is on top of things with his list, I like the idea of having CD and Printer functionality by choice ... moving them to extensions.

I've seen many talking about removing syntax, you are not forced to use it. I've never used then, begin, end, ever. I think stuff like that should stay. It's easy for all of us to be selfish and think about what things we want because we are experienced, but if we get too crazy, then the whole beginner aspect of GM becomes too daunting. Sure it makes sense to me to remove health, score, and what have you, because I can make my own, but newer people do rely on these things.

Edited by Jess Horton, 27 January 2011 - 09:18 PM.

  • 0

#63 lacie

lacie

    GMC Member

  • New Member
  • 18 posts

Posted 27 January 2011 - 09:26 PM

MPlay. There is 39dll and with this extension you can make much better working multiplayer. Since multiplayer is for experts in GM, it's not a problem to use DLL or GEX extension - so mplay can be removed to save some bytes in exe file.

Timelines - I don't have use for them, you can do the same using one variable and step event in many ways and with better control... but requires some knowledge of course, so maybe not for all it's the best idea.

Game information - you can make room with text, images or sth which looks much better. It can be left in IDE file as form of internal notepad, maybe some people makes notes there about their project during development, but it shouldn't be saved and available into executable.

Triggers - it's just step event with condition, it's equivalent for "execute piece of code" action with: "if some_variable = true { <trigger actions here> }". It's like splitted step event only, because you have action blocks in two events.... but it's still step event.


Timelines
Rarely use them...
You can also use an object with step event, that checks for the current second (or step) then do the action?

Triggers
Because I've never used them before, and it works fine without them.

Game Information
Rarely use it, and a room with info looks much better.

For a newbie is same as me, i really need them. Don't remove... especially for Timelines.

Edited by lacie, 27 January 2011 - 09:28 PM.

  • 0

Bored feeling


#64 gnysek

gnysek

    GMC Member

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

Posted 27 January 2011 - 09:32 PM

About "Treat Unitialized variables as 0":

if my_very_long_variable = true {}
if my_very_long_variable = true {}
if my_very_long_variab1e = true {}
if my_very_long_variable = true {}
if my_very_long_variable = true {}

Do you see line which should give us error, but are not giving, and is treated as false even if I set my_very_long_variable to true?
Begginner user will make 1000 topics about this, gonna insane and then he create game one again from scratch, because his "if" is not working even if he setting this variable one line before.



In third line there is no 'L' letter in variable, there is '1' (one). Copy and pase it some where you don't have monospace font and check if you don't belive. The same can go in for loop or when you are using arrays.

Edited by gnysek, 27 January 2011 - 09:35 PM.

  • 1

Previously game developer at YoYoGames, Currently PHP developer in DB-Team
Programming and working with: GML/C#/PHP/JS/MySql/CSS/HTML

Follow 
@GameMakerUpdate to get info about latest versions of GM when they are released: https://twitter.com/GameMakerUpdate or visit website.

(it's managed by bot, not by human, remember)


#65 commander of games

commander of games

    Kaos Kreator

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

Posted 27 January 2011 - 09:37 PM

to commander of games:
You're wrong, when I first start using Game Maker, I had no programming experience at all, and I did used the health and score, I used D&D of course, but still when moving to GML, I used the health and score, so removing it will create beginners many problems.
And I do agree with the other posts here. (About game help, treating unknown variables as 0, etc).


I used health and score too, but that was not my point. Why would it create problems? All they need to do is add a 'set variable' action with 'global.health' to whatever value they want. It isn't hard.

Besides, they SHOULD be reading the manual before they make something, so they SHOULD know what a variable is.
  • 0

InvaderX.gif


#66 Jess Horton

Jess Horton

    GMC Member

  • GMC Member
  • 230 posts
  • Version:Unknown

Posted 27 January 2011 - 09:50 PM

I used health and score too. All they need to do is add a 'set variable' action with 'global.health' to whatever value they want. It isn't hard. Besides, they SHOULD be reading the manual before they make something, so they SHOULD know what a variable is.


Haha, I'm sorry but that was just the most obvious contradiction I've seen in a while. The point is that they use them. It's not for you or us to decide when they should learn about variables. The very real point of GM is ... and I quote the Game Maker's Apprentice "Game Development for Beginners". Again, beginners use them. You used them, I used them. We now know better ways, but once we used them.

Edited by Jess Horton, 27 January 2011 - 09:55 PM.

  • 0

#67 Mike.Dailly

Mike.Dailly

    Evil YoYo Games Employee

  • Administrators
  • 4852 posts
  • Version:GM:Studio

Posted 27 January 2011 - 10:03 PM

Actually... let me revise the uninitialised variable issue. In the past when I learnt BASIC, your variables were zeroed, and this was assumed. I totally understand that this is an issue, and actually agree, but it's hard for us to really remember the VERY beginning, where you struggled to even get your first few lines going, and having to initialise everything first is a nightmare at this stage.

BUT! (and here's the revision) What I think it actually needs.... is proper error messages telling you it hasn't been initialised yet... This then PROMPTS them to fix it and doesn't just give a different error (instead of 0+12, you might have 234+12; same problem and just as hard to track down). If the variable wasn't set up, you would get an unreproducible error (as the memory will keep changing), and this is very hard for even pros to track down. It has to be consistent, and reproducible.

However... give an error when someone tries to READ a variable that hasn't been set yet, and it's then VERY obvious that you have to set it to something first, and this aids the learning process.

So actually... I would now drop that feature, and replace it with a much BETTER one, of reporting variables as uninitialised. This would be far, FAR better, reasonably simple - but would take a speed hit. Perhaps a debug/release more thing would start to help in this regard. We already have it (DEBUG/Build EXE), so we could expand that...


Dialogues. - I would prefer to replace them (show_message() ) with native ones ( Windows or Mac standard ones ). I think this gives a better user experience (Mac users love to see proper Mac dialogues etc.)
  • 0

#68 Desert Dog

Desert Dog

    GMC Member

  • GMC Elder
  • 6409 posts
  • Version:Unknown

Posted 27 January 2011 - 10:07 PM

There are a few things here, which I'd like to talk about.

Timelines Are very useful. Should NOT go.

Built-in help I use it as a to-do list, for when I'm devving my game. It's useful in that respect, and also useful for providing a sort of help for small projects. I'd like to see it stay, but would looove to see it with a few more features. [for instance, adding images]

built in global variables like health very useful when I was a beginner, only a touch confusing when I was trying to learn GML.. these are fine, why remove them?
  • 0
HTML5 games for mobile:
HexDogs Bugz Burn! Captain George Golfing Block Memory

Games for Androids
*NEW* Word Dog - Published by Dangerous_Dave


Code: General Array Functions - GM-S friendly. sorting, shuffling. Includes a quicksort.
Use the quicksort to sort ds_lists 10-18 times faster than ds_list_sort()!

#69 ragarnak

ragarnak

    GMC Member

  • GMC Elder
  • 19468 posts
  • Version:GM8

Posted 27 January 2011 - 10:15 PM

The hide errors function has actually a purpose - on a finished product one might want to hide error message and instead replace them with their own error handling system

When I was thinking how to write what I wrote that I already thought someone would come up with that. And that is exactly why I included that "local error handling" paragraph.

The problem is that that "don't show errors" mode is often engaged quite early in the development-phase (instead of allmost at the end), resulting in the earlier-mentioned messs.

I was even considering to suggest a "reset to default at loading" feature (forcing the person creating the game to re-evaluate any errors that might pop-up), but this was about removing features, not a request for more stuff to implement. :)

I don't think it's a good idea to recommend a deprecated (and undocumented) function

I do not either. But I can't help but wonder : why should that command go ? It has no negative side-effects or is just plain ugly. And yes, that made me mischievous and play a bit of the advocate of the devil. :) To be honest, I have not used it for ... wel, directly after I switched to v6.x I guess.

Although its funny to see that this "should go" command has been depricated but survived 3 versions and about 6 years now.

In this regard (using undocumented commands ) I must say I was a bit baffeled to see the "action_...()" commands prominently displayed in GM v8.0s "show build-in functions". :mellow: Maybe they should be removed there (mike, looking at you). :whistle:

Registry - WILL go. It's a massive security hole that needs nuked as quickly as possible.

<snip star-treks facepalm picture>

I agree with you here. But when its put that way ("WILL go") I know when to shut up.

And luckily we have some capable programmers here which will probably replace that killed functionality with a simple DLL, eventually embedded in an extension-package. In short: you probably won't even notice it was gone. :) (And yes mike, this is a (somewhat) silent protest, as well as showing you the futility of your decision).
  • 0

#70 FredFredrickson

FredFredrickson

    Artist

  • Global Moderators
  • 9217 posts
  • Version:GM:Studio

Posted 27 January 2011 - 10:18 PM

Registry - WILL go. It's a massive security hole that needs nuked as quickly as possible.

I'm a tiny bit sad to see the registry commands go away. I know they are an awful security risk - probably the worst one in Game Maker - but I also liked having a global place to store cross-game information easily that existed on all Windows platforms. But eh... so be it.

set_program_priority (and similar functions). Yes, I think they should go too...

Does anyone use the printer stuff?

Never. I had actually forgotten that these functions existed... and now I kind of want to, haha. Anyone remember that old game that EA (?) tried about ten years ago that involved the player receiving telephone, email, and fax messages in the real world? :D
  • 0

#71 Mnementh

Mnementh

    15151

  • GMC Elder
  • 6370 posts
  • Version:GM:Studio

Posted 27 January 2011 - 10:32 PM

So actually... I would now drop that feature, and replace it with a much BETTER one, of reporting variables as uninitialised. This would be far, FAR better, reasonably simple - but would take a speed hit. Perhaps a debug/release more thing would start to help in this regard. We already have it (DEBUG/Build EXE), so we could expand that...

I'm not sure I understand. We already have an error message for uninitialized variables, don't we? How does your suggestion differ from the extant "Unknown Variable" error message? Wording? If so, I think that's a great idea. Game Maker's error messages are descriptive, but often require experience and knowledge to comprehend, and making them easier to understand would be extremely helpful for beginners and advanced users alike.

Regarding the build in "score", "health", and "lives" variables: I agree that beginners use them and they should remain because they act as a bridge between the beginner's preexisting knowledge of video games and variables, but I would like to see them lose their global-by-default status. I've seen quite a few problems resolved because a beginner didn't realize that those variables were global. Perhaps an "Applies to" dialog could be added to the relevant actions, so that no overall functionality is lost. It seems logical that a bullet, upon impacting on the player, should take away one of the player's lives.

Finally, I'm curious as to the reason you won't consider removing the beginner/advanced mode distinction, and the reason you would consider adding a third mode. The beginner mode has little impact on the actual use of Game Maker, beyond making it impossible to find "advanced" features. If it really is a beginner mode, should it make Game Maker easier to understand? I don't see that it makes anything easier at all.

But I can't help but wonder : why should that command go ? It has no negative side-effects or is just plain ugly.

It has a negative side-effect of ugly forum posts. That's reason enough, in my opinion. :P
  • 0

#72 ragarnak

ragarnak

    GMC Member

  • GMC Elder
  • 19468 posts
  • Version:GM8

Posted 27 January 2011 - 10:43 PM

What I think it actually needs.... is proper error messages telling you it hasn't been initialised yet...

Doesn't GM already have that ? In the way of reporting an "unknown variable" when you try to read from it ?

Or have I misunderstood you and are you really thinking about declaring a variable before initializing it ? And than regarding/renaming that switch as an "option explicit" equivalent ?

Actually, I think I would like to see the possibility to have a "declare before usage" switch. It not only makes short process with mis-spelling variables you want to read from, but than also for the ones you want to write to.

However... give an error when someone tries to READ a variable that hasn't been set yet, and it's then VERY obvious that you have to set it to something first, and this aids the learning process.

Yep. Apart from a novice getting the heck confused outof him why certain variables stay Zero when they are sure they did put something into them they will actually learn something. :)

Oh, by the way: Another thing I would like to see gone : GM silently ingnoring strings where it expects numbers and use the value Zero instead. I would rather see an error there. It does when you do the reverse (a value where a string is expected), so why not the other way around too ?
  • 0

#73 Schyler

Schyler

    Noskcirderf Derf

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

Posted 27 January 2011 - 10:49 PM

Everything I'm about to say is directly related to runner speed and size. I have no concern for the people who used these functions - most useless, anyway.

mplay - Better done with extensions, please remove it (and don't try and make an equivalent - I think using extensions is fine, since its not included in the runner to take up space). If you want to include it with GameMaker, why not include it as an extension so we can choose to add it?

Timelines - I personally never use them. It also frees up some computation per object, because of all the timeline related variables that are automatically created and checked each step.

Global score/lives/health - Annoying to code around, since they have very generic names. I'd prefer if they were just removed, but I can understand why you might not want to.

Triggers - I can see this being a performance hit somewhere in the runner. I don't want to see them added again; alot of people find them useless.

cd_*, execute_*, max3, min3, image_single... - Please deprecate the functions that need to be deprecated. If you're rewriting the runner, dont rewrite it to be backwards compatible. Things that are deprecated eventually need to be removed - rewrite it for speed and a small filesize. That's what we've been begging you to do for ages.

d3d_ - Remove the existing 3D lights system and rewrite it to be handle based (saving memory, and making it easier to use).

EDIT:

Dialogues. - I would prefer to replace them (show_message() ) with native ones ( Windows or Mac standard ones ). I think this gives a better user experience (Mac users love to see proper Mac dialogues etc.)

PLEASE DO THIS. <3

Edited by Schyler, 27 January 2011 - 10:53 PM.

  • 0

#74 ~Dannyboy~

~Dannyboy~

    ~hoqhuue(|~

  • GMC Member
  • 2144 posts
  • Version:GM8

Posted 27 January 2011 - 10:51 PM

To add to the list of functions which do things to my computer that I would rather games didn't:
display_set_all
display_set_colordepth
display_set_frequency
display_set_size
Games shouldn't need to change the resolution, it's really not that hard for people to just scale the game with views. Why on earth a game would want to change your frequency or colordepth I don't know.
  • 0

I cannot comprehend how intelligent people who spend much of their time designing and creating graphics, audio and code
refuse to believe that they themselves must have been designed and created.

Table Soccer | Yet Another Pacman | Astroblobs | GM Credits | GM Lego NXT | My Site

Posted Image


#75 paul23

paul23

    GMC Member

  • Global Moderators
  • 4103 posts
  • Version:GM:Studio

Posted 27 January 2011 - 10:52 PM

@the topic of solid removal:
-Well this still wouldn't solve it.. What if I want to move out of A & B, but not C.. And later I would like to move out of A & C but not B? - using "Solid" allows you to easily (& quickly compared to deactivating) "group" objects.


So actually... I would now drop that feature, and replace it with a much BETTER one, of reporting variables as uninitialised. This would be far, FAR better, reasonably simple - but would take a speed hit. Perhaps a debug/release more thing would start to help in this regard. We already have it (DEBUG/Build EXE), so we could expand that...

It's always the hidden things which are the best news! - Different builds would allow gamemaker to have soo many "upgrades"! Finally you have the possibility to don't add comments in the release build.
Also this would allow you to do a quick scan for any use of the "score" (and other build in) variables, and possibly not include them in the release build?


Dialogues. - I would prefer to replace them (show_message() ) with native ones ( Windows or Mac standard ones ). I think this gives a better user experience (Mac users love to see proper Mac dialogues etc.)

I honestly greatly disagree with this: in any professional game you see the interface is always made specifically to match the game. - Independent of the OS! Using the OS interface style would make a game look like an office application.

@dannyboy, I take it you don't play any "big" game then? 100+% of those games allow you to set those things (well apart from the frequency). Removing those would severly limit gamemaker to only make minigames!

Edited by paul23, 27 January 2011 - 10:54 PM.

  • 0

#76 frankpiet

frankpiet

    ^destroyed evil chicken^

  • New Member
  • 760 posts

Posted 27 January 2011 - 10:58 PM

Remove all CD functions, everyone rips music now.


Choose whether you want to remove the mask interface in the sprite editor (for a inbuilt one) or the mask option in the object editor. I see no point for two.
  • 0
Posted Image

#77 ugriffin

ugriffin

    Idiot

  • Global Moderators
  • 1587 posts
  • Version:Mac

Posted 27 January 2011 - 11:02 PM

Mplay. There are far better open source alternatives that you can pillage and add into the GM runner (39dll, 39dylib?). :medieval:

In fact, this has already been done in GM4Mac (dead mplay), and it's not missed one bit.


I'm against removing the registry functions, some of us find it useful when we *want* to hack something using Game Maker (then again, this doesn't concern me anymore).


In game help ought to be rewritten, not nuked. Something to fit .CHM in Windows and .help in Mac OS...


CD functions should stay and expand.


Something people tend to forget are INI functions. They're dead useful, but you can only keep one open and it can only be in the game's root directory, so it NEEDS love.
  • 1

#78 Schyler

Schyler

    Noskcirderf Derf

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

Posted 27 January 2011 - 11:02 PM

I honestly greatly disagree with this: in any professional game you see the interface is always made specifically to match the game. - Independent of the OS! Using the OS interface style would make a game look like an office application.


If you want your own Dialogs, you write your own dialog engine to draw the frame, then add the text. Professional games dont use ones that pop outside the game anyway - they are usually integrated into the foreground.

Native dialogs would instantly make GM much more professional, and it would also free up some (more) runner space because YoYo could remove the existing dialog style commands that people rarely use.

Edit: IPB Really dosn't like this post. Constantly deletes half the stuff I write. Maybe there's a bull**** filter.

Edited by Schyler, 27 January 2011 - 11:05 PM.

  • 1

#79 ~Dannyboy~

~Dannyboy~

    ~hoqhuue(|~

  • GMC Member
  • 2144 posts
  • Version:GM8

Posted 27 January 2011 - 11:03 PM

@dannyboy, I take it you don't play any "big" game then? 100+% of those games allow you to set those things (well apart from the frequency). Removing those would severly limit gamemaker to only make minigames!

Well. You've got me there. I guess what I don't like is games which choose the resolution for me and change it without permission. You're correct that having options in the game which allow you to change the resolution can be useful. Perhaps rather than removing the functions, a warning could be added to the manual stating that using these functions without allowing the user to decide is not good, but no one would read that...
  • 0

I cannot comprehend how intelligent people who spend much of their time designing and creating graphics, audio and code
refuse to believe that they themselves must have been designed and created.

Table Soccer | Yet Another Pacman | Astroblobs | GM Credits | GM Lego NXT | My Site

Posted Image


#80 paul23

paul23

    GMC Member

  • Global Moderators
  • 4103 posts
  • Version:GM:Studio

Posted 27 January 2011 - 11:09 PM


I honestly greatly disagree with this: in any professional game you see the interface is always made specifically to match the game. - Independent of the OS! Using the OS interface style would make a game look like an office application.


If you want your own Dialogs, you write your own dialog engine to draw the frame, then add the text. Professional games dont use ones that pop outside the game anyway - they are usually integrated into the foreground.

Native dialogs would instantly make GM much more professional, and it would also free up some (more) runner space because YoYo could remove the existing dialog style commands that people rarely use.

Edit: IPB Really dosn't like this post. Constantly deletes half the stuff I write. Maybe there's a bull**** filter.

Well have you ever tried creating your own dialog (input fields for example) system?

It's a hell. & slow
  • 0

#81 Schyler

Schyler

    Noskcirderf Derf

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

Posted 27 January 2011 - 11:14 PM



I honestly greatly disagree with this: in any professional game you see the interface is always made specifically to match the game. - Independent of the OS! Using the OS interface style would make a game look like an office application.


If you want your own Dialogs, you write your own dialog engine to draw the frame, then add the text. Professional games dont use ones that pop outside the game anyway - they are usually integrated into the foreground.

Native dialogs would instantly make GM much more professional, and it would also free up some (more) runner space because YoYo could remove the existing dialog style commands that people rarely use.

Edit: IPB Really dosn't like this post. Constantly deletes half the stuff I write. Maybe there's a bull**** filter.

Well have you ever tried creating your own dialog (input fields for example) system?

It's a hell. & slow

Not at all - It's easy to do.

And by using native dialog windows, we won't be scrapping input boxes. Both Mac and Windows support input box dialogs without too much fuss. They'll just look more system-specific - something the player is used to seeing.
  • 3

#82 makerofthegames

makerofthegames

    Octagon-Man

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

Posted 27 January 2011 - 11:18 PM

Timelines - I personally never use them. It also frees up some computation per object, because of all the timeline related variables that are automatically created and checked each step.
...
Triggers - I can see this being a performance hit somewhere in the runner. I don't want to see them added again; alot of people find them useless.

Selfishness wins out, eh? "I don't use them, so we shouldn't have them."
  • 0

Awesome-120110725-22047-1faqsqh.gif?131124npmp3.png Awesome-120110725-22047-1faqsqh.gif?1311

Mirrors Avatar by Stubbjax1337. 3000. 3999. 4444. Karoshi 2.0 custom levels. religious belief time: christian
http://ask.fm/AnUntitledAbridger


#83 Hach-Que

Hach-Que

    RoketGames Admin

  • New Member
  • 1490 posts

Posted 27 January 2011 - 11:25 PM

Treat uninitialised variables as 0.

This needs to be replaced with variables defaulting to a null or nil value, which would be illegal to provide as an ID to functions or act as a numeric or string value (i.e. the engine won't implicitly convert null to 0 or ""). This allows people to still know when they've got spelling mistakes, and gives advanced users the flexibility to set variables to a "unset" value (so we don't have to have a separate boolean value just to indicate whether some numeric counter is set or not).

GML

Seriously, replace it with Lua or something of that nature. You know you want to.

Edited by Hach-Que, 27 January 2011 - 11:25 PM.

  • 1

I don't visit these forums (and I haven't for quite some time). You can

see my latest community projects at the Redpoint Blog.


I never thought I'd see myself writing the above.. :(


#84 commander of games

commander of games

    Kaos Kreator

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

Posted 27 January 2011 - 11:40 PM

I used health and score too. All they need to do is add a 'set variable' action with 'global.health' to whatever value they want. It isn't hard. Besides, they SHOULD be reading the manual before they make something, so they SHOULD know what a variable is.


Haha, I'm sorry but that was just the most obvious contradiction I've seen in a while. The point is that they use them. It's not for you or us to decide when they should learn about variables. The very real point of GM is ... and I quote the Game Maker's Apprentice "Game Development for Beginners". Again, beginners use them. You used them, I used them. We now know better ways, but once we used them.

I fail to see your point. Basically your saying that because you onced used something, it isn't a good idea to remove it. Declaring a simple variable is not hard. A beginner could learn it in about fifteen minutes. All they need to do is READ THE FREAKIN' MANUAL(If you don't read the manual, that is YOUR fault). If you can't declare a variable you will be unable to create anything. It's a skill that MUST be learned sooner or later.

GML

Seriously, replace it with Lua or something of that nature. You know you want to.


No... Just no.
  • 1

InvaderX.gif


#85 ev149

ev149

    NinetySix Design

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

Posted 27 January 2011 - 11:41 PM

The Runner
Seriously, compile the games. The current interpreter makes it too easy for people to extract the source code.
SoftWrap
There has to be some better form of DRM that you can implement, SoftWrap is buggy and annoying.
  • 1
I ain't 'round these parts too much no more...

InfraTerrra

#86 Jess Horton

Jess Horton

    GMC Member

  • GMC Member
  • 230 posts
  • Version:Unknown

Posted 27 January 2011 - 11:52 PM

I fail to see your point. Basically your saying that because you onced used something, it isn't a good idea to remove it


Really? I thought I made it very clear. Here let me try color coding and bold letters on emphasized words. The point you fail to see is ... once you are done using the basic variables, you are done using the basic variables. That does not mean that future beginners are, unless everyone in the world gains knowledge every time you do. Basically you are saying that ... because you know how to do it, so should beginners.

Declaring a simple variable is not hard.


Never said it was. To those beginners who really have never programmed before, it may be.

All they need to do is READ THE FREAKIN' MANUAL(If you don't read the manual, that is YOUR fault)


Haha. Oh my calm down. Yes I agree with you that they should read the manual. If you read the manual you would know it starts with "Using Game Maker". Then it goes to "Advanced Use". Then the very last item is "The Game Maker Language (GML)". I believe it's structured for a reason. I mean sure you have the headstrong who wish to jump right into the meat (GML), but I think the majority of beginners want to start slow and get more advanced over time.

Edited by Jess Horton, 28 January 2011 - 12:13 AM.

  • 0

#87 Schyler

Schyler

    Noskcirderf Derf

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

Posted 27 January 2011 - 11:56 PM

Timelines - I personally never use them. It also frees up some computation per object, because of all the timeline related variables that are automatically created and checked each step.
...
Triggers - I can see this being a performance hit somewhere in the runner. I don't want to see them added again; alot of people find them useless.

Selfishness wins out, eh? "I don't use them, so we shouldn't have them."

It's not selfishness to repeat what's already been repeated hundreds of times in this topic.
  • 0

#88 makerofthegames

makerofthegames

    Octagon-Man

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

Posted 28 January 2011 - 12:03 AM

Just because a lot of people are selfish doesn't make it not selfish.
  • 0

Awesome-120110725-22047-1faqsqh.gif?131124npmp3.png Awesome-120110725-22047-1faqsqh.gif?1311

Mirrors Avatar by Stubbjax1337. 3000. 3999. 4444. Karoshi 2.0 custom levels. religious belief time: christian
http://ask.fm/AnUntitledAbridger


#89 commander of games

commander of games

    Kaos Kreator

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

Posted 28 January 2011 - 12:07 AM

I fail to see your point. Basically your saying that because you onced used something, it isn't a good idea to remove it


The point you fail to see is ... once you are done using the basic variables, you are done using the basic variables. That does not mean that future beginners are, unless everyone in the world gains knowledge every time you do.

Declaring a simple variable is not hard.


Never said it was. To those beginners who really have never programmed before, they may be.


I never said that future beginners were done learning basic variables. I was saying that if you can't even declare a variable, you should not be making games. Period. Even if GM is supposed to be easy and for people who have no prior knowledge of programming, there are still some basic skills you'll have to learn if you ever wan't to make anything.
  • 0

InvaderX.gif


#90 Andy

Andy

    GMC Veteran

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

Posted 28 January 2011 - 12:13 AM

I don't know, maybe people do use this, but I don't really get why there is a "simple mode." I guess it just hides some stuff – not much stuff though. Personally I could do without that.

Removing the, change game priority, option in the global options would be ok. I think you should still be able to change it though GML though.

I use the, treat uninitialized variables as 0, option and would not want to see it removed. I guess I could do without it though.

I think keeping the game information option would be nice. Again I could do without it.

-

I do not think removing gravity, or other pre-set global variables like health, would be a good idea. Many people, including myself, use them with no problems. This would really be aggravating to beginners.

I was saying that if you can't even declare a variable, you should not be making games. Period.

I highly disagree with this, game designers are not always programmers, for a long time Mr. Chubigans used only D&D. Game Maker is designed to help those beginners, ones who cant declare a variable, be creative.

Anyway, on another note, the GML syntax should stay basically the same in my opinion. ...My very strong opinion. *Stern look.* :P

Edited by Andy, 28 January 2011 - 12:23 AM.

  • 0
Please visit Andygames.com today!

#91 GameGeisha

GameGeisha

    GameGeisha

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

Posted 28 January 2011 - 12:14 AM

uninitialised variables to 0. Stays. Beginners need this. It's just easier for them if it's there.

That option doesn't make a novice's life easier any more than an automatic syntax error fixer would. Errors that should have been reported directly would need to be discovered via observations with the debugger. This would increase the debugging load for novices and those who help them as well.

begin/end/then etc. all stay. GML is simple to get into because it understands many syntaxes. However... I'm starting to think we need an option to selected various syntaxes. Lax, Pascal, C, C#.. etc.. (just examples!)

Won't having to adapt to several syntaxes on top of each other in the same language confuse a novice even more? Look, nowhere in the manual did it say that we can use and, or and xor as boolean operators, begin and end as block delimiters and then as part of if statements. These aren't even in the standard to start with, so they should go away.

Does anyone use the printer stuff?

Not me. But since it is implemented as an extension, there's the option of leaving it out of finished games. That's fine with me.

The same cannot be said for the cd_*() functions, because it's built into the runner. Although I still have a couple of CDs, I don't play them with GM and the code for it just takes up space in the runner. Feel free to put them in extensions, but I don't want it in the main runner.

Triggers - I can see this being a performance hit somewhere in the runner. I don't want to see them added again; alot of people find them useless.

I would vote for trigger to stay. Rusky has already posted the reasons for why they should stay from page 3, see for yourself. Besides, it was originally implemented for a request for custom events that automatically trigger --- what will fill that void?

My most recent game uses a trigger-based pausing mechanism which allows me to selectively pause certain step activities with the change of a single global variable. Inheriting these activities over an object hierarchy is where triggers shine over step-checks.


As for a short list of things that need to go:
- All deprecated functionalities, except for instance deactivation. (It's about time they go for real.)
- All GML constructs not present in the GM manual, including the use of = for equivalence checking. (Keep the standard consistent.)
- mplay_*() (DirectPlay's fallen from grace, and so should this.)
- script_get_text() (I don't see any useful applications of this.)
- secure_mode (Really, who doesn't use external files and DLLs nowadays? It doesn't work when GM isn't running, either.)
- score, lives, health, show_score, show_lives, show_health, caption_score, caption_lives, caption_health (Please, just make the novices learn about variables, it's not that hard.)
- sleep() (Too easily mistaken for freezing.)
- sound_set_search_directory() (I don't think anyone would use this, given the presence of sound-playing DLLs and tracker formats.)
- Simple mode (Many settings and properties that still have effects, such as views and scripts, get hidden this way --- just trash it.)
- Game Information (Looks ugly, limited in functionality, kill it.)
- solid (Causes lots of issues with collisions.)
- "Treat unitialized variables as 0" and "Show all errors" checkboxes (There is only one good setting for these things.)
- execute_string() and execute_file() (Inefficient, opens up potential security threats and prevents GML from being compilable)
- set_program_priority() (NPT has explained why pretty well.)

Things that can stay but should be moved into extensions:
- cd_*(), MCI_command()
- ini_*()
- highscore_*()
- date_*()
- registry_*()

GameGeisha
  • 1

Latest Releases:


#92 Hach-Que

Hach-Que

    RoketGames Admin

  • New Member
  • 1490 posts

Posted 28 January 2011 - 12:30 AM


GML

Seriously, replace it with Lua or something of that nature. You know you want to.


No... Just no.


Maybe not replace, but in addition to. Because Lua is awesome. And is dead easy to bind to C++ code.
  • 0

I don't visit these forums (and I haven't for quite some time). You can

see my latest community projects at the Redpoint Blog.


I never thought I'd see myself writing the above.. :(


#93 mcmonkey

mcmonkey

    mcmonkey

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

Posted 28 January 2011 - 12:35 AM

*cough* Remove nothing, everything is useful to someone...
  • 3
Spam prevents spam by spamming the spammers spam bots with spam.
YYGF Archive: http :// mcmonkey . org / yygf/classic/index . html
3794 Post on YYGF before the end.
Game Maker 8 Documentation Online: http :// mcmonkey . org / chmstore/gm8/files/index . html

Disclaimer: I reserve the right to massively exaggerate my points more often than humans take steps on Earth.
Disclaimer: My jokes are poorly planned and may end up looking like insults. They are not.

I finally got a real domain name! http://mcmonkey.org

#94 Takagi

Takagi

    GMC Member

  • GMC Elder
  • 4282 posts
  • Version:GM:Studio

Posted 28 January 2011 - 12:43 AM

#1 : the "keyboard_check_direct(...)" command (and other methods behaving like it). A game should not be able to see what another other programs input is. Maybe the addition of an "Abort now key" would than be neccessary though ...

I'd like to keep this. My problem was solved by this. I had no other programs running, yet my game still seemed to not detect the keyboard input with keyboard_check. Yeah, personal experience.

I'd also suggest keeping execute_string. I currently use it as a "bug fixer", so I can play around with variables in the EXE without reloading. Changes would be fine, but I'd suggest keeping it.
  • 0

#95 Rusky

Rusky

    GMC Member

  • GMC Member
  • 2492 posts
  • Version:Unknown

Posted 28 January 2011 - 01:00 AM

BUT! (and here's the revision) What I think it actually needs.... is proper error messages telling you it hasn't been initialised yet... This then PROMPTS them to fix it and doesn't just give a different error (instead of 0+12, you might have 234+12; same problem and just as hard to track down). If the variable wasn't set up, you would get an unreproducible error (as the memory will keep changing), and this is very hard for even pros to track down. It has to be consistent, and reproducible.

This already exists. If the option is disabled it gives you an error, not junk memory. All you need to do is remove the option. However, like Hach-que said it might be nice to have a null value rather than an immediate non-existing variable error. I'm not sure which of these would work better for GM- non-existing name errors or default null values.

Regarding the build in "score", "health", and "lives" variables: I agree that beginners use them and they should remain because they act as a bridge between the beginner's preexisting knowledge of video games and variables, but I would like to see them lose their global-by-default status. I've seen quite a few problems resolved because a beginner didn't realize that those variables were global. Perhaps an "Applies to" dialog could be added to the relevant actions, so that no overall functionality is lost. It seems logical that a bullet, upon impacting on the player, should take away one of the player's lives.

This. There is absolutely no reason for built-in global variables for score, health or lives. That causes more confusion than it's worth- the names are taken and as soon as you try to make instance-local health for monsters you run into a problem: your game fails to work without so much as an error message, and you get to debug it. There's really no reason for them to be built-in, either. Once they're not global anymore, you can use them exactly the same way whether they're built-in or not.

Finally, I'm curious as to the reason you won't consider removing the beginner/advanced mode distinction, and the reason you would consider adding a third mode. The beginner mode has little impact on the actual use of Game Maker, beyond making it impossible to find "advanced" features. If it really is a beginner mode, should it make Game Maker easier to understand? I don't see that it makes anything easier at all.

Also agree here. I know I immediately switched to advanced mode when simple mode was missing half the stuff from tutorials. The only reason to hide things in the UI is to make thing simpler, and making it harder to find things is not simpler. A much better solution than adding yet another mode would be to have a single mode that is more intuitively designed.
  • 0

#96 commander of games

commander of games

    Kaos Kreator

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

Posted 28 January 2011 - 01:04 AM

I was saying that if you can't even declare a variable, you should not be making games. Period.

I highly disagree with this, game designers are not always programmers, for a long time Mr. Chubigans used only D&D. Game Maker is designed to help those beginners, ones who cant declare a variable, be creative.


You can declare a variable with D&D using the Set Variable action. And technically even when your using D&D you are programming. I find it hard to imagine that there are any games, other than maybe Catch the Clown or something, that don't use user defined variables. So I repeat, if you can't declare a variable you will not be able to make anything serious.
  • 0

InvaderX.gif


#97 Jess Horton

Jess Horton

    GMC Member

  • GMC Member
  • 230 posts
  • Version:Unknown

Posted 28 January 2011 - 01:30 AM

So I repeat, if you can't declare a variable you will not be able to make anything serious.


You've repeated this many times but I don't recall anyone arguing that. Defining a variable is the easiest thing ever, but some beginners might not think so. It doesn't matter anyhow, Mike said those basic variables will stay because they help beginners which was what I've wasted two posts on trying to explain to you anyway.
  • 0

#98 Andy

Andy

    GMC Veteran

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

Posted 28 January 2011 - 02:09 AM

@The idea to remove preset variables:
Would any improvement, to Game Maker, be made by removing them? If not I think that they should stay. It would be making simple tasks a lot harder for new users / lazy people. I demand a good reason, for me to have to program my own gravity system, when the inbuilt one works fine.

Edited by Andy, 28 January 2011 - 02:13 AM.

  • 0
Please visit Andygames.com today!

#99 Yourself

Yourself

    The Ultimate Pronoun

  • GMC Elder
  • 7352 posts
  • Version:Unknown

Posted 28 January 2011 - 02:54 AM



GML

Seriously, replace it with Lua or something of that nature. You know you want to.


No... Just no.


Maybe not replace, but in addition to. Because Lua is awesome. And is dead easy to bind to C++ code.


If not that then at least a more comprehensive and robust extension API that would allow people to create their own GM bindings in other languages. But that's not what we're talking about right now.
  • 1

#100 Mnementh

Mnementh

    15151

  • GMC Elder
  • 6370 posts
  • Version:GM:Studio

Posted 28 January 2011 - 03:21 AM

In the spirit of making things easier for beginners and advanced users: what if built in variables, like "score", "health", and the corresponding actions were only available when Game Maker was in beginner mode? That is, what if the things that make beginner mode unusable were eliminated, and elements of Game Maker that are undesirable to more advanced users, such as the global-by-default variables* were removed from the advanced mode? If the simple and advanced modes operated in such a way - as opposed to the useless manor in which they currently operate - I think that the majority of users of the simple mode would also use drag-and-drop, and most users of the advanced mode would use GML. It may be possible to avoid the use of variables using D&D, but can we agree that no significant usage of GML can occur without variables? If so, then the presence of the built in variables only in the simple mode is logical because D&D users may not be familiar with the way game concepts translate to variables - so Game Maker can do it for them, in the form of the frequently used "score", "health", and "lives" variables. GML users, on the other hand, have a steady grasp of variables and can function better without intrusive built in features.
  • 0




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users