Jump to content


Photo

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


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

#1 Mike.Dailly

Mike.Dailly

    Evil YoYo Games Employee

  • Administrators
  • 4506 posts
  • Version:GM:Studio

Posted 27 January 2011 - 02:10 PM

Okay, slight sideline. Don't go nuts here.... but what single "feature" would you remove? What could Game Maker really do without? Anything? Just curious here really, but as the runner gets more and more into it, when we do a rewrite, we have to add all this stuff back again.

Now, I'm guessing that someone somewhere will want a feature others would love to see dropped, but it could be an interesting question, and at the very least, help us target performance stuff.

So... one thing you would remove, and a very brief description as to why.
  • 0

#2 varuks

varuks

    GMC Member

  • New Member
  • 982 posts
  • Version:Unknown

Posted 27 January 2011 - 02:13 PM

Gravity should go because It is buggy and hard to learn! I never even got past learning it cause it's so hard.
  • 0
All human life is equal, true. But not all humans are equal. Some through their stupidity become less superior than others through their wisdom...

#3 BlueMoonProductions

BlueMoonProductions

    BlueMoonProductions

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

Posted 27 January 2011 - 02:20 PM

The statements 'then', 'begin' and 'end'.

'Then' is not even needed, GM works flawless without, and 'begin' and 'end' are rarely used.
  • 12

#4 cookie

cookie

    GMC Member

  • New Member
  • 137 posts

Posted 27 January 2011 - 02:21 PM

Okay, slight sideline. Don't go nuts here.... but what single "feature" would you remove? What could Game Maker really do without? Anything? Just curious here really, but as the runner gets more and more into it, when we do a rewrite, we have to add all this stuff back again.

Now, I'm guessing that someone somewhere will want a feature others would love to see dropped, but it could be an interesting question, and at the very least, help us target performance stuff.

So... one thing you would remove, and a very brief description as to why.


Gravity is perfectly fine as is, what should DEFINATLY go...

Is the interpreter, remove that, have the GML parsed directly into C++ then compiled with the game maker engine with that, also, remove directx8, use only directx for the audio, use OPENGL for the rendering, the abillity to change the sound library would also be nice (To maybe use OPENAL?)

Multi threaded support is also important in my opinion. (Not for the user to be able to choose threads, but to have sounds, step, draw, collisions on different threads)

Being able to define my own instance class without all the uneccessary checks and vars slowing my stuff down would be nice! :D

Go YoYo, get those features a'crackin'
  • 10

#5 commander of games

commander of games

    Kaos Kreator

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

Posted 27 January 2011 - 02:25 PM

The statements 'then', 'begin' and 'end'.

'Then' is not even needed, GM works flawless without, and 'begin' and 'end' are rarely used.


I tend to agree with this. If there were any features I really wanted removed, they'd be "then", "begin", and "end".

@varuks: That would mean reprogramming practically every GM platformer in existance. And actually it's really easy to learn gravity. You set the gravity direction and the amount. That is all. It being hard to learn is not a valid reason to remove something. If it were, C++ wouldn't exist. ;)
  • 3

InvaderX.gif


#6 cookie

cookie

    GMC Member

  • New Member
  • 137 posts

Posted 27 January 2011 - 02:29 PM


The statements 'then', 'begin' and 'end'.

'Then' is not even needed, GM works flawless without, and 'begin' and 'end' are rarely used.


I tend to agree with this. If there were any features I really wanted removed, they'd be "then", "begin", and "end".

@varuks: That would mean reprogramming practically every GM platformer in existance. And actually it's really easy to learn gravity. You set the gravity direction and the amount. That is all. It being hard to learn is not a valid reason to remove something. If it were, C++ wouldn't exist. ;)



I wouldn't say C++ is hard, it's very deliberate and self explanatory what most things do once you get your head around the basic syntax, declelration of information can be some trickery occasionally. But C, now that's hard...

[CUT]
  • 0

#7 BlueMoonProductions

BlueMoonProductions

    BlueMoonProductions

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

Posted 27 January 2011 - 02:41 PM

remove directx8, use only directx for the audio, use OPENGL for the rendering,

OpenGL? Why? I guess we're talking about the PC version of Game Maker now, so the only reason to use OpenGL(: it is cross-platform) isn't valid now.. DirectX is way more powerful and intergrated in Windows then OpenGL. I think using OpenGL might even slow Game Maker down, but I'm not an expert.
  • 0

#8 NakedPaulToast

NakedPaulToast

    GM Studio/Mac/Win

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

Posted 27 January 2011 - 02:49 PM

mplay

It's been deprecated for years, its cumbersome and tedious and simply creates more problems than it solves because of it's port forwarding requirements for both sides of the communication.
  • 23

keep_crap_150_zpsd7af69c5.png


#9 ev149

ev149

    NinetySix Design

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

Posted 27 January 2011 - 02:52 PM

Gravity is perfectly fine as is, what should DEFINATLY go...

Is the interpreter, remove that, have the GML parsed directly into C++ then compiled with the game maker engine with that, also, remove directx8, use only directx for the audio, use OPENGL for the rendering, the abillity to change the sound library would also be nice (To maybe use OPENAL?)

Multi threaded support is also important in my opinion. (Not for the user to be able to choose threads, but to have sounds, step, draw, collisions on different threads)

Being able to define my own instance class without all the uneccessary checks and vars slowing my stuff down would be nice! :D

Go YoYo, get those features a'crackin'

This, but I'd rather see DirectX 10/11 than OpenGL, personally.
  • 1
I ain't 'round these parts too much no more...

InfraTerrra

#10 cookie

cookie

    GMC Member

  • New Member
  • 137 posts

Posted 27 January 2011 - 03:17 PM

remove directx8, use only directx for the audio, use OPENGL for the rendering,

OpenGL? Why? I guess we're talking about the PC version of Game Maker now, so the only reason to use OpenGL(: it is cross-platform) isn't valid now.. DirectX is way more powerful and intergrated in Windows then OpenGL. I think using OpenGL might even slow Game Maker down, but I'm not an expert.


Why is that statement not valid, cross platformabillity is definately a factor I think should be more than considered.


In address to the above who said they'd prefer direct x 10/11 I think doing that would require such a massive re-think of the current system when it interacts with the API of the GPU...

As with if they used Opengl 3.0

But being able to use the shader effects of the new DX or OpenGl would be amazing!
  • 0

#11 ragarnak

ragarnak

    GMC Member

  • GMC Elder
  • 19468 posts
  • Version:GM8

Posted 27 January 2011 - 03:26 PM

Gravity should go because It is buggy and hard to learn! I never even got past learning it cause it's so hard.

If you want to go on that track than I suppose 3D (all of it) should be removed too ? :whistle:

FYI : Just a few D&D commands (and a single "max(...)" command) is all I need to have a player jump everywhere (and not get stuck against a wall either). :)

The statements 'then', 'begin' and 'end'.

I could imagine the latter two (although I could imagine some people coming in from other languages will recognise and use them), but I'm still activily using that "then" keyword.

If for nothing else than for readability of one-line "if" statements.

But if you want to remove that one, what about all those superfluous semi-colons (";") at the end of lines ? :P

but what single "feature" would you remove?

I think I would agree with NakedPaulToast. MPlay has pretty-much outlived its usefullness. The existence of (several) routers and firewalls everywhere makes multi-port connections a nightmare to configure. I would suggest to take a peek at 39DLL and learn from it.


A question though: have you already thought of enhancing the usefullness of existing commands ?
  • 0

#12 gnysek

gnysek

    GMC Member

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

Posted 27 January 2011 - 03: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.

Edited by gnysek, 27 January 2011 - 05:16 PM.

  • 3

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

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


#13 Artaex Media

Artaex Media

    Artaex Media

  • GMC Member
  • 1531 posts
  • Version:Unknown

Posted 27 January 2011 - 03:33 PM

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.

Edited by Reflux Entertainment, 27 January 2011 - 03:34 PM.

  • 1

#14 Medusar

Medusar

    GMC Member

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

Posted 27 January 2011 - 03:38 PM

The statements 'then', 'begin' and 'end'.

These are not features. Plus, they are probably useful for people coming from Pascal-like languages. GML is supposed to be loose; only allowing C-style syntax goes against this philosophy. Plus, there is no need to remove them as this won't improve performance.

What I would like to see removed is...
mplay... either remove network functionality completely or implement something socket-based (39DLL-like).
Current highscore system... far too limited for most games.
Global variables such as health, I hate being forced to use hp all the time.
Game information it's ugly and too limited like the highscore system.

Plus other features that I never use (like triggers), but these may be useful to some.
  • 0

Posted Image

Q: Why do programmers always get Christmas and Halloween mixed up?
A: Because DEC 25 = OCT 31

#15 cookie

cookie

    GMC Member

  • New Member
  • 137 posts

Posted 27 January 2011 - 03:39 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.



I think triggers are made seperate from everything else within the game engine, so it's its own function in delphi, that gets called upon the condition from the step event, in a sense it would improve performance, but yeah, leave out triggers and encourage people to use switches, my god I love those bad boys...
You should leave them out because of my previous suggestion it would cause redundancy to them, if everything is parsed into native C++ then compiled.
  • 0

#16 commander of games

commander of games

    Kaos Kreator

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

Posted 27 January 2011 - 04:01 PM

This is what I would like to see removed:

-Mplay. Same reasons as everyone else. If it does get removed, please implement something similare to 39DLL.
-Built-in global variables. I also find it annoying to not be able to use 'health'.
-'Simple' mode. There's really no use for it except that it's slightly less confusing for beginners. Even then, they can just ignore the extra resource folders/icons.
  • 2

InvaderX.gif


#17 thatshelby

thatshelby

    GMC Member

  • GMC Member
  • 3823 posts
  • Version:GM8

Posted 27 January 2011 - 04:02 PM

I would say to remove mplay.
  • 3

#18 cookie

cookie

    GMC Member

  • New Member
  • 137 posts

Posted 27 January 2011 - 04:05 PM

I would say to remove mplay.


I do agree with this, mplay is redundant, and as someone stated, advanced users only use multiplayer and advanced users usually can utilize DLLS.
  • 0

#19 Orbitguy

Orbitguy

    UNS Lead Guy

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

Posted 27 January 2011 - 04:16 PM

Agreed, mplay has got to go. 39dll is much better documented on the forums as of this point I feel than mplay, and it's rather tedious to try and figure out when a lot of the active online coders seem to have switched.
  • 0

hahaaforum.jpgStick Legends Online - An Online Role Playing Adventure

 


#20 Phantom107

Phantom107

    Graphics Enthusiast

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

Posted 27 January 2011 - 04:22 PM

What the...?!

Hey, what's the fuss about? Begin and end should stay. I, for one, use it and would like to keep using it.

Just because you don't use it doesn't mean noone is.
  • 0

GMCsig.png


#21 TheMagicNumber

TheMagicNumber

    GMC Member

  • GMC Member
  • 5247 posts
  • Version:Unknown

Posted 27 January 2011 - 04:28 PM

I think these should be removed:
- Mplay
- Pascal syntax
- "Treat uninitialized variables as 0"

I'm sure you're going to remove mplay, so don't use functions similar to 39DLL, improve on them. 39DLL is garbage.

By the way, stop getting off topic. This is what should be removed, not what you want. Stop asking for compiling, threading, and OpenGL.
  • 5

#22 thatshelby

thatshelby

    GMC Member

  • GMC Member
  • 3823 posts
  • Version:GM8

Posted 27 January 2011 - 04:29 PM

Forgot about that. Remove 'Treat uninitialized variables as 0'. It causes more harm than good.
  • 1

#23 FredFredrickson

FredFredrickson

    Artist

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

Posted 27 January 2011 - 04:35 PM

Another vote here for removing mplay. The idea behind the implementation of mplay was a decent one, but it just never played out the way it should have because its usefulness was stymied by its attempt at being simple.

So I'd definitely be in favor of trimming out mplay, especially if it meant replacing it with a built-in version of something a lot more robust; something along the lines of 39dll, for example.
  • 0

#24 Nocturne

Nocturne

    Nocturne Games

  • Administrators
  • 23924 posts
  • Version:GM:Studio

Posted 27 January 2011 - 04:38 PM

Okay, my turn to list things...

  • mplay. Been said in multiple posts why!
  • Game information. Ugly and only really useful for examples... An integrated info screen/room is easy to program and looks much better.
  • Horrible built in global variables like "health" and "score". Just as easy to make your own and less confusing to newer users...
  • Triggers. I just don´t really see what they offer the user...
  • Preload on sounds... modern pc´s really don´t need it. And while we are at it, the 3D sound functions are crap too and i don´t think anyone actually uses them (although I´m probably wrong!)
  • Solid in the objects properties. I know this may not be liked by some people, but is it really that hard to program "x=xprevious" into a collision event? And it seems to cause more problems than it solves from my experience on the novice forums...
  • Treat uninitialised variables as 0. The worst sin to ever have befallen mankind... Only good for maskin your own poor programming.
I think that´s about it for me...

Edited by Mark13673, 27 January 2011 - 04:48 PM.

  • 0

Button_DynamicPuddles_zps068ef8eb.png Button_Flappy_zps7fcff3b6.png Button_RogueLike_zps6f3451a3.png IKrQvWr.png Button_MyGames_zpse9e80bb0.png


#25 paul23

paul23

    GMC Member

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

Posted 27 January 2011 - 04:39 PM

hmm though one for me...

What I'd like is if all "standard" variables are gone from objects (and only enabled (in groups) when asked). But that's more of a feature (so we can actually make structures like linked lists without a huge performance hickup).


But on a more realistic note: mplay is always a troublesome thing, I personally haven't delved too deep in it. But given the simple fact people actually recommend NOT to use it should be a good indication it's a bad feature!


@mark:
For number 6, there's a good reason for using it though. You have the functions "move_outside" (or move_bounce).. However it would move an object outside all other objects.. Now to move outside a specific object, you simply set solid to true and then use "move_outside_solid". - So if it was to be removed, consider the functionality of this function!

Edited by paul23, 27 January 2011 - 04:43 PM.

  • 0

#26 gnysek

gnysek

    GMC Member

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

Posted 27 January 2011 - 04:40 PM

I'm using "then" in code... but begin and end can be removed, same as :=. GML is not a Pascal.
  • 0

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

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


#27 Recreate

Recreate

    Furry

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

Posted 27 January 2011 - 04:43 PM

I think these should be removed:
- Mplay
- Pascal syntax
- "Treat uninitialized variables as 0"

I'm inclined to agree with this.
  • 0

If the post that you are reading was created prior to 2011. For the safety of the general public, It is not to be regarded under any circumstances.
Please don't ask me to join your group at anything.


#28 kburkhart84

kburkhart84

    Firehammer Games

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

Posted 27 January 2011 - 04:46 PM

Forgot about that. Remove 'Treat uninitialized variables as 0'. It causes more harm than good.


This is my biggest thing that should be removed.

I would second the removal of Beginner/Advanced mode.

I have never used GM's mplay, but if it is as bad as it sounds, then it is also probably a waste of space.

Most of the other suggestions should not be removed. Just because you don't use them doesn't mean no one else does. Just like the first poll with external editors, most features don't get in the way if you don't use them. I myself love timelines. I haven't used triggers but I'm sure some people do.
  • 0

My KBInput system is now on the marketplace here.  It wraps up nice and tight GMStudio's input system into a few function calls making a user configurable input system that works the same regardless of what inputs the player has chosen including keyboard, mouse buttons, and gamepad/joysticks using DInput/XInput.  The support forum topic for it is here.


#29 Nocturne

Nocturne

    Nocturne Games

  • Administrators
  • 23924 posts
  • Version:GM:Studio

Posted 27 January 2011 - 04:49 PM

@mark:
For number 6, there's a good reason for using it though. You have the functions "move_outside" (or move_bounce).. However it would move an object outside all other objects.. Now to move outside a specific object, you simply set solid to true and then use "move_outside_solid". - So if it was to be removed, consider the functionality of this function!


Could be replaced with "move_outside_object()"?
  • 0

Button_DynamicPuddles_zps068ef8eb.png Button_Flappy_zps7fcff3b6.png Button_RogueLike_zps6f3451a3.png IKrQvWr.png Button_MyGames_zpse9e80bb0.png


#30 GStick

GStick

    All Secrets Exposed

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

Posted 27 January 2011 - 04:50 PM

Definitely mplay and Game Information. Even for examples, Game Information can be replaced with rooms or the "Info" tab in Global Game Settings. I'm also not a friend of many of the built-in global variables like "score" and "health", although it's just as easy to ignore their existence and use your own, like "playerHealth" or whatever.

There's more things I would like changed than I would like removed, I think. I'm not sure I can come up with much else. ^_^
  • 0

Posted Image
The next generation of Game Maker fighting games? More like the best.
Showdown Academy | Showdown Academy Blog


Check out my new album at last.fm: KatazTrophee

#31 GPro

GPro

    Gun Powder Games

  • GMC Member
  • 293 posts
  • Version:GM8

Posted 27 January 2011 - 04:58 PM

You should be choosing what to have in your GM, (from ur personal computer) so everyone can be thanked :)
  • 0
Gun Powder Games leader

Join our crew here!

Top Down A.I. Example | RPG Combat System | Level Up System | Shield Example


#32 Dark Matter

Dark Matter

    RPG Expert

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

Posted 27 January 2011 - 05:14 PM

Variables like health, score.
Making objects solid.
Mplay should also be removed (though an alternative that works better would be good).

Edited by Dark Matter, 27 January 2011 - 05:14 PM.

  • 0
String Distortion (Now Staff Picked!)

The .gmx format disassembly

I'm always happy to help with a problem or question you have regarding Game Maker. Feel free to ask me anything you want!

#33 gnysek

gnysek

    GMC Member

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

Posted 27 January 2011 - 05:15 PM

MCI_command and cd_xxx functions. Even Sony closed their biggest CD factory in USA.

Health and Score should left for begginners - remember, some people using Game Maker at school, so it can be first time that they programming - score and health works also without GML, by drag&drop actions.

Edited by gnysek, 27 January 2011 - 05:18 PM.

  • 0

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

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


#34 NakedPaulToast

NakedPaulToast

    GM Studio/Mac/Win

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

Posted 27 January 2011 - 05:36 PM

Remove deprecated features
When a feature is deprecated, formalize its deprecating in the documentation, keep it in the next version for backwards compatibility, then actually remove in future versions.

ie. image_single

image_single was deprecated and replaced with image_speed/image_index years ago. V4 maybe V5. But it's still hanging around.

Action_* functions
I'm not saying to remove actions, but at least remove action_functions from being used directly and from within the function list and editors intellisense.

execute_string and execute_file
Horribly inefficient, can usually be avoided. The existence of these functions prevents or limits potential future GM features such as compiling or obfuscation.

cd_* functions
Do really need games to be playing CDs

max3, min3
deprecated years ago.

set_program_priority and priority related system
If a program performs poorly, the solution is to redesign and improve algorithms. Not to steal resources from my OS and other processes.

Edited by NakedPaulToast, 27 January 2011 - 05:39 PM.

  • 4

keep_crap_150_zpsd7af69c5.png


#35 Dark Matter

Dark Matter

    RPG Expert

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

Posted 27 January 2011 - 05:40 PM

Remove deprecated features
When a feature is deprecated, formalize its deprecating in the documentation, keep it in the next version for backwards compatibility, then actually remove in future versions.

ie. image_single

image_single was deprecated and replaced with image_speed/image_index years ago. V4 maybe V5. But it's still hanging around.

Action_* functions
I'm not saying to remove actions, but at least remove action_functions from being used directly and from within the function list and editors intellisense.

execute_string and execute_file
Horribly inefficient, can usually be avoided. The existence of these functions prevents or limits potential future GM features such as compiling or obfuscation.

cd_* functions
Do really need games to be playing CDs

max3, min3
deprecated years ago.

set_program_priority and priority related system
If a program performs poorly, the solution is to redesign and improve algorithms. Not to steal resources from my OS and other processes.


Yeah, I agree with most of these, though there are circumstances where execute_string is useful...
  • 0
String Distortion (Now Staff Picked!)

The .gmx format disassembly

I'm always happy to help with a problem or question you have regarding Game Maker. Feel free to ask me anything you want!

#36 ragarnak

ragarnak

    GMC Member

  • GMC Elder
  • 19468 posts
  • Version:GM8

Posted 27 January 2011 - 05:56 PM

I think these should be removed:
..
- Pascal syntax
..

If that is possible than I vote for removing any C(++/#/anything) syntax too. We're talking about GML here, not some derivative of some other language. :whistle:

Triggers

I do not know if they have any real speed advantage, but for the rest they are doing something you can already do yourself. So: agreed.

And while we are at it, the 3D sound functions are crap too and i donīt think anyone actually uses them (although Iīm probably wrong!)

Although they are not used often, 3D/directional sound can add quite a bid of atmosfere to 3D games (being able to determine from which direction your enemy tries to sneak up on you. No current 3D game could nowerdays do without it). So: Disagreed.

Solid in the objects properties. I know this may not be liked by some people, but is it really that hard to program "x=xprevious" into a collision event? And it seems to cause more problems than it solves from my experience on the novice forums...

Only if commands like "move_outside(...)" get enhanced to check for specific objects (like Mark13673 already mentioned). Alas, enhancing other functions was not part of the question. So: Disagreed.
  • 0

#37 gnysek

gnysek

    GMC Member

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

Posted 27 January 2011 - 05:59 PM

Yeah, I agree with most of these, though there are circumstances where execute_string is useful...


True. execute_string should left, it's like REMOVED) in other scripting languages. But execute_file gives you possibility to change everything in game in real time by injecting code - you can even create new objects, and gameplay in someone game! And export some data and resources without decompiling.

Edited by gnysek, 27 January 2011 - 05:59 PM.

  • 0

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

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


#38 TheMagicNumber

TheMagicNumber

    GMC Member

  • GMC Member
  • 5247 posts
  • Version:Unknown

Posted 27 January 2011 - 06:00 PM


I think these should be removed:
..
- Pascal syntax
..

If that is possible than I vote for removing any C(++/#/anything) syntax too. We're talking about GML here, not some derivative of some other language. :whistle:

Having two syntaxes that you can switch between at any time is silly. Just one is enough. :)

Of course, things like semicolons and (maybe) parenthesis-less statements would still be optional. Just make it impossible to mix begin/end and braces.

I'd also like to see the examples in the manual where all the code is in a block removed. You don't need all your code in a block.
  • 2

#39 LSnK

LSnK

    NaN

  • GMC Member
  • 1188 posts

Posted 27 January 2011 - 06:12 PM

Having two syntaxes that you can switch between at any time is silly. Just one is enough.

Unless you use it. I don't feel like 'fixing' a hundred thousand lines of code to satisfy someone else's obsessive-compulsive urges for linguistic purity.

It's not the type of suggestion they're looking for anyway. There would be no performance or filesize gain, and it's a negligable amount of work to implement.
  • 1

#40 ragarnak

ragarnak

    GMC Member

  • GMC Elder
  • 19468 posts
  • Version:GM8

Posted 27 January 2011 - 06:14 PM

Having two syntaxes that you can switch between at any time is silly. Just one is enough. :)

Having a language which accepts a number of different ways to describe what you want just caters to people (teachers?) coming from other language than that C(whatever) language. You could even claim that it enables the teenagers using GML to choose which kind of notation they are most comfortable with. [/sarcasm].

Something just popped in my mind : those "||", "&&", "^^" should go too. We already have the way more intuitive "or", "and" and for anyone having done anything with booleans, "xor" for that.

But that again, some pople here swear by those "&&", "||" aand "^^" thingies. Who am I that I should decide they should be using my way of expressing such things ? :whistle:

Of course, things like semicolons and (maybe) parenthesis-less statements would still be optional. Just make it impossible to mix begin/end and braces.

In other words: make it a strict syntax (maybe even switchable between certain preferences).

I would call that a big change to GM, and most likely not at all what Mark had in mind when he created it ...
  • 0

#41 ragarnak

ragarnak

    GMC Member

  • GMC Elder
  • 19468 posts
  • Version:GM8

Posted 27 January 2011 - 06:21 PM

But execute_file gives you possibility to change everything in game in real time by injecting code - you can even create new objects, and gameplay in someone game!

Same for "execute_string(...)". Removing the other only means that some dumb*ss now using a single command to create his most excelent saving-and-loading system now first needs to read the contents of that whole file into a string, to only than have it executed. End-result: nothing changes. :mellow:
  • 0

#42 Rusky

Rusky

    GMC Member

  • GMC Member
  • 2492 posts
  • Version:Unknown

Posted 27 January 2011 - 06:58 PM

Agree on dual syntax/semicolons, mplay, game information, built-in globals like health and score, deprecated features, simple mode, uninitialized as 0, MCI/cd_*, action_* and execute_* in their present form.

Disagree on triggers- they're not just checks in the step event- they can be named, individually executed and most of all inherited. It's much more painful to do that without them. In fact, some of the built-in events could/should be converted to trigger events as this would simplify GM's internals as well as potentially allow them to be moved into extensions.

However, most of these would need to be done with care so as not to make things worse. The syntax of old projects could be trivially upgraded to whatever the new version uses, but in some cases there's no clear consensus on which syntax is better or more widely used. Health and score actions would need to be converted to work with regular globals or even locals (which would be extremely useful for health).

The execute_* functions are useful, but also broken. Workarounds are generally painful or not generally applicable. The best way to replace them would be to find primary use cases and introduce new ways to do those things- looking up resources by name, external scripting, callbacks and closures (yes, sorry Mike :P) are a few.
  • 0

#43 Mike.Dailly

Mike.Dailly

    Evil YoYo Games Employee

  • Administrators
  • 4506 posts
  • Version:GM:Studio

Posted 27 January 2011 - 07:11 PM

Some interesting ones....

mplay is on it's way out. Regardless of who actually uses it, it's WELL past it sell by date. We will rewrite the whole networking system from scratch.

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

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!)

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

In game Help - is a pile of pooh, and will be shot at dawn, or as soon as I can get my pawns on some rusty knives to kill it with. :) An HTML web page would be far better, although most games should just do in game help themselves, it's a far better experience.

We have started using OpenAL internally. This might go into GM at somepoint, but I'm not sure how this would affect things other than give better access to stuff like MP3s, and OGG etc.

Choice of renderer is academic, and easy to have multiples types - don't worry about it. And if someone tells me what DX10 and DX11 actually has that would make such a huge difference to what Game Maker does, I'll be impressed.

Timelines - aren't terrible well implemented, but they are brilliant. We may well increase support for them and make them easier to use and visualise.

Hiscore - we've been moving to a more "contained" system, where everything comes up inside the gaming window. This is a better experience, and far more portable. Again... not sure when this will appear, probably when the C++ runner does.

execute_string(...), execute_file(...). While I really don't like these, they are used all over the place, so I'm more in favour of changing them, so you can "compile" a script yourself. This would mean you can load, compile, execute. which would then allow you to keep speed up, but still keep the flexibility.

Beginner/Advanced mode. DEF stay, in fact we may even add a PRO mode. Mark was right on the money with these ones.

CD functions... interesting. possibly, but not yet I think. you can still buy cd's, so you might want to do something with them....

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

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

Does anyone use the printer stuff?
  • 0

#44 ragarnak

ragarnak

    GMC Member

  • GMC Elder
  • 19468 posts
  • Version:GM8

Posted 27 January 2011 - 07:13 PM

I just thought of a few I would really want to have gone :

#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 ...

#2 : the "sleep" command (D&D & GML). Freezing an event-driven program is not the idea.

#3 : the "splash_show_web(...)" command (D&D & GML). Its little more than a dumbed-down version of "execute_program(...)" and "execute_shell(...)" commands, simply displaying a full webpage (whatever it might be, even some porn-site) in IE (even when you have FF as default browser) with its default security-settings. Not really to my liking. Remove please.
  • 0

#45 Nocturne

Nocturne

    Nocturne Games

  • Administrators
  • 23924 posts
  • Version:GM:Studio

Posted 27 January 2011 - 07:26 PM

Sorry Mike, but that uninitialized variables thing is NOT a good thing for beginners... Honestly I have thousands of posts in the Novice section here and I see a LOT of users who can´t solve their problems due to this. It just masks small errors until they get so big that it´s almost impossible to say where to begin to fix the problem. I think it´s better to teach people right from the start to code in a logical, clean and ordered way as well as teaching them how to debug their own code. Something that function makes very difficult...

EDIT: Oh, and I don´t use the printer options ever...

Edited by Mark13673, 27 January 2011 - 07:28 PM.

  • 3

Button_DynamicPuddles_zps068ef8eb.png Button_Flappy_zps7fcff3b6.png Button_RogueLike_zps6f3451a3.png IKrQvWr.png Button_MyGames_zpse9e80bb0.png


#46 Erik Leppen

Erik Leppen

    GMC Member

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

Posted 27 January 2011 - 07:27 PM

Timelines should stay becuase they are a clear way of scheduling things like cutscenes, animations, or anything time-based that is predefined by the programmer (like when enemies appear). Doing this another way requires GML, which makes it less accessible to novices.

Triggers should definitely stay. I use these quite a lot in my GM8 games because they clear up the code a lot. I find this very important: clean code. Trigger events help with this.

Health and score should stay. Beginners use these a lot. Especially score, since the highscore list is based around it.

I even think execute_string should stay, because it does things no other GML function does. At least I have used execute_string in a game that would've been a lot harder to code (if even possible) without (the game was about placing items on sensor platforms to change their value in such a way that a given math equation would turn true. I used execute_string to evaluate the equations. If I didn't have execute_string, I would have to either write my own equation parser, or hard-code all equations and their solutions which means I can easily forget solutions.)

Anyhow. Things mentioned by others earlier that I support for removal:
simple mode
The first thing that newbies are getting as advice when can't find something, is usually Go to advanced mode. Doing this, the GM IDE will look the same for everybody, which makes helping each other find things a lot easier.

treat uninitialized variables as 0
All this does is hiding the most useful error message you can get. If you use an unitialized variable, your code is wrong. It's that simple. An no, beginners don't need it. They need the unknown variable error to fix their coding.

Program priority setting
Explained already by NakedPaultoast in post #34. I have never seen it do anything good and it can make other processes unresponsive. Also as far as I know almost any game that lags takes 99% CPU anyway, so this won't do much.

deprecated functions like image_single, part_type_color, file_eof, font_name, ...
I mean...

image_single was deprecated and replaced with image_speed/image_index years ago. V4 maybe V5. But it's still hanging around.

It's even worse: I still sometimes see people recommend others to use image_single.
  • 0

promo_briquidmini_500x150.png


#47 ragarnak

ragarnak

    GMC Member

  • GMC Elder
  • 19468 posts
  • Version:GM8

Posted 27 January 2011 - 07:33 PM

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

Sorry my saying so, but beginners need that like a hole in their heads.

It just makes it easier for them to make all kinds of spelling-mistakes and think there is no problem. The end-result often is that they than post on this forum with the mess their program has become to ask us to figure out what went wrong ... :(

Ofcourse, this mess is only possible because GM (still) uses a resource-system in which Zero is a valid ID. :mellow: (and yes, thats a hint. :) )

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'm in favour of a more localized approach, where a few lines can be excluded from throwing errors (and than checked with the normal error-variables afterwards).

[edit]

I still sometimes see people recommend others to use image_single.

Its 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. :whistle:

Edited by ragarnak, 27 January 2011 - 07:59 PM.

  • 0

#48 Joebra

Joebra

    GMC Member

  • New Member
  • 4 posts

Posted 27 January 2011 - 07:45 PM

There are some things I would like to say, but I will just bring this up right now since I'm short of time right now.

Treat uninitialized variables as 0
In my opinion this is bad, even for beginners. Why? Well, simply because it makes it harder to debug your program. If you've missed to initialize a variable somewhere in your code (even if your code is fairly clean) it can get extremely irritating and time consuming to find that tiny mistake. It may now cause horrible bugs, but it's possible that it causes hard found bugs and that's one thing that you want to avoid. If you want your variables to initialize to 0, then write it on your code yourself. Write "variable_name = 0;" instead of just "variable_name;". The latter is just bad practice and shouldn't be allowed. It's better if beginners learn from the start of to initialize their variables and it will also prevent lots of unnecessary bugs caused by a variable that you missed to initialize.

This is just my opinion and I agree with the others that have said that this should "go". As I mentioned before, you shouldn't learn beginners something that is just bad practice. It may (I don't say it will) make it harder for them to continue on with some other language like C, C++, C#, Java, etc. Well, I'm not going to say more about this, I've already said enough. I'll probably give my thoughts about some other things at a later point, but not now.
  • 0

#49 Chronic

Chronic

    Administrator

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

Posted 27 January 2011 - 07:46 PM

I would agree to remove registry functions, and to remove program priority all together (from editor and functions).

CD and Printer functions could be moved to there own extensions.
  • 0

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


#50 Nehacoo

Nehacoo

    GMC Member

  • New Member
  • 180 posts
  • Version:GM8.1

Posted 27 January 2011 - 07:54 PM

#2 : the "sleep" command (D&D & GML). Freezing an event-driven program is not the idea.

I find it very useful for debugging loops though.

As for "Treat uninitialized variables as 0", I remember it only confusing me further when I was new to Game Maker.. I can't speak for everyone else but I don't think it's much help.

Edited by Nehacoo, 27 January 2011 - 07:55 PM.

  • 0




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users