Jump to content


Photo

GM Studio - Whishlist


  • Please log in to reply
489 replies to this topic

#1 Mr Game

Mr Game

    GMC Member

  • New Member
  • 177 posts
  • Version:GM8

Posted 05 March 2012 - 03:21 PM

As you know, GM Studio is still in beta stage, and that means that it doesn't include all of its planed features.
We can use the time until the final GM Studio release to introduce our needs to YYG, hoping that they'll fulfil our demands.

Feel free to post your wishes below, in order to be added by me to this wishlist. Any stupid, impossible or repeated wishes will be simply ignored.

The deleted ones were officially marked as 'NO WAY' or already made real :thumbsup: (or they were just a simple mistake...)

Those with the strikethrough were officially rejected

GM Studio - Wishlist:

-NetPlay support for portable devices
-Access to sensors (gyroscope, proximity sensor, etc.), camera, vibrations, bluetooth and geo position
-OpenGL for 3D functionalities (with shaders)
-Customizable code completion help for user-made scripts
-Better loading screens
-OGG and MP3 sounds playback
-More string functions
-Regular expressions functionality
-Export sprites as GIF animations
-Support native libraries (Android)
-JavaScript support for non-HTML5 runners
- get_dpi(function)
-Get rid of 'YoYo_' at the start of certain functions
-Faster loading and compiling
-Run project files with the runner
-Subtraction and division operations for ds_grid
-Sorting for ds grids
-More built in 3D vector functions
-FileSytem I/O
-Application folder/cache directory for external resources
-Access to the whole SD card
-Saving/Loading
-show_menu(str,def)
-A framecounter underneath the "Show Preview" (in "Edit Sprite")
-Auto prefixing for resources (obj_, spr_, fnt_, etc.)
-Multiple object selection in the room editor
-Better debug (details http://gmc.yoyogames...dpost&p=3944386)
-Sound panning & pitch shifting
-Sound pausing and continuing (+set/get current playing position)
-All string functions zero-indexed
-Bassmod support
-GOTO statement
-Support other OSes (Symbian, BlackBerry, Windows Phone)
-Room editor like that: http://www.youtube.c...h?v=KKtbiTAUpeA
-Notifiactions
-Background app functionality
-Advertisement networks support
-Triggers!
-"Bucket" tool for tiles
-Joystick support
-Sprite and Background group saving
-Shiftable layers (http://gmc.yoyogames...dpost&p=3952997)
- room_enter and room_leave events
- d3d_check - or a variable that returns whether d3d_start() has been init

Edited by Mr Game, 10 June 2012 - 09:05 AM.

  • 2

#2 King Tetiro

King Tetiro

    King of Orenna

  • GMC Member
  • 2187 posts
  • Version:GM8

Posted 05 March 2012 - 04:51 PM

A working variable_local_exists() would be fantastic as it is can be used as a failsafe for programming. It is in GMS, however it is unknown if it is intended for HTML5/iOS/Android or if it is broken.
  • 0

#3 NakedPaulToast

NakedPaulToast

    GM Studio/Mac/Win

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

Posted 05 March 2012 - 04:58 PM

A working variable_local_exists() would be fantastic as it is can be used as a failsafe for programming. It is in GMS, however it is unknown if it is intended for HTML5/iOS/Android or if it is broken.


This has been discussed dozens of times since the release of GM:HTML5.

Checking if a variables exists is simply not necessary, it's slow, it's prohibitive to future compiling.

Instead initialize all variables, which you should be doing anyway. Then check if it still has it's default init value.
  • 2

#4 Zesterer

Zesterer

    Professor of Articul

  • GMC Member
  • 1021 posts
  • Version:GM8

Posted 05 March 2012 - 05:00 PM

GM really needs a 'speed_in_direction(vx,vy,dir)' where you can input an x/y vector (usually hspeed and vspeed) and a direction(dir) and it will tell you the given vector distance in that particular direction. It's easy to do with trig, but it would be a useful function to have...

Zesterer
  • 0

#5 Mr Game

Mr Game

    GMC Member

  • New Member
  • 177 posts
  • Version:GM8

Posted 05 March 2012 - 05:19 PM

A working variable_local_exists() would be fantastic as it is can be used as a failsafe for programming. It is in GMS, however it is unknown if it is intended for HTML5/iOS/Android or if it is broken.

Added!
  • 0

#6 bobhoil

bobhoil

    GMC Member

  • GMC Member
  • 1523 posts

Posted 05 March 2012 - 05:22 PM

Maybe along with the 3d a 3d based physics library would be nice. Would allow for me to make some sweet games I would think.

Edited by bobhoil, 05 March 2012 - 05:22 PM.

  • 0

#7 Mr Game

Mr Game

    GMC Member

  • New Member
  • 177 posts
  • Version:GM8

Posted 05 March 2012 - 05:22 PM

GM really needs a 'speed_in_direction(vx,vy,dir)' where you can input an x/y vector (usually hspeed and vspeed) and a direction(dir) and it will tell you the given vector distance in that particular direction. It's easy to do with trig, but it would be a useful function to have...

Zesterer

We are talking about general GM Studio functions, not GML functions (except for those which existed in previous GM versions)

And you can code a 'speed_in_direction(vx,vy,dir)' by yourself or google for that script <_<

EDIT: double post again *facepalm*

Edited by Mr Game, 05 March 2012 - 05:23 PM.

  • 0

#8 Erik Leppen

Erik Leppen

    GMC Member

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

Posted 05 March 2012 - 05:29 PM

Concerning the variable_ functions, you can use a ds_map with as key the variable name and as value its value. variable_local_get then simply becomes ds_map_find_vale, variable_local_set becomes ds_map_replace, etc. With this you can replicate almost all basic functionality of the variable_ functions. Of course the local variables become a local map, and the global variables become a global map. Arrays become a bit more complicated, maybe you could make a ds_map of which the values are ds_grid indices... (but I always find this kind of scary when I think about the code involved to just read such a thing. But in that case you can simply create an extension to duplicate all those functions to work on maps. Why not start already writing that extension? ;))

About Zesterer's idea, the function dot_product comes very close to what you want.

What I like to have is a list of incompatibilities between Windows, HTML5 and the other systems. A simple checklist of things to keep in mind when creating one codebase for a game meant for different distributions. For example, do the ini functions work in Html5, what about surfaces, what about blend modes, what about zwriteenable in d3d, etc.

I'd like code completion help for scripts, similar to what is done for extension functions. The ability to set the number of arguments and their names for scripts, and that a help line is displayed with the currently edited argument in bold (just as with functions).

I'd like the code editor to have a special color for everything deprecated. Since a lot of stuff will be going or changed, it'll be of very big help to users if deprecated functions are specially marked. This will severely reduce the number of "why does this not work, this has always worked before" questions on the forums.

There's so much to wish for. But I hope their top priority is to get a stable working product first :)

With proper error handling :P
  • 2

#9 Mr Game

Mr Game

    GMC Member

  • New Member
  • 177 posts
  • Version:GM8

Posted 05 March 2012 - 05:38 PM

There's a 10% probability that Mark Overmars will see this topic right now
  • 0

#10 Zesterer

Zesterer

    Professor of Articul

  • GMC Member
  • 1021 posts
  • Version:GM8

Posted 05 March 2012 - 06:04 PM

And you can code a 'speed_in_direction(vx,vy,dir)' by yourself or google for that script <_<


Thats what I just said...
  • 0

#11 Mr Game

Mr Game

    GMC Member

  • New Member
  • 177 posts
  • Version:GM8

Posted 05 March 2012 - 06:10 PM


And you can code a 'speed_in_direction(vx,vy,dir)' by yourself or google for that script <_<


Thats what I just said...


But here we are talking about BUILT-IN functions, not scripts! :angry:
  • 0

#12 alexandervrs

alexandervrs

    GMC Member

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

Posted 05 March 2012 - 06:11 PM

Ability to playback OG... *smack*

Well a wish I posted a little while ago is to turn "Web Events" into "Load Events" so they are more useful than just in HTML5.
That way sprite_add() etc. would be threaded and we could use the Load Events to check if the resources are available.
It would be useful for in-game loading screens or threaded loading in the background as you play the game.

Most of other wishes I have though are complex and more suited for GM9 (OGG sound, Shaders, 2D Lighting System, Better Loading Screens, Visual Particle Editor)
  • 0

#13 Mike.Dailly

Mike.Dailly

    Evil YoYo Games Employee

  • Administrators
  • 1504 posts
  • Version:GM:Studio

Posted 05 March 2012 - 06:19 PM

variable_local_exists() is not required anymore. You can now swap creation order so that the object's create event is run BEFORE room creation code, and this means you can now initialise defaults and then override them in the creation code.

You really shouldn't have needed this outside of this case, and you now don't need this anyway.

Maps in Studio have been rewritten, and while a bit faster, aren't great for simple variable lookup, so I'd be careful using them for general variable storage.

If you think you need variable_local_exists() for another reason, I'd be interested to hear about it.... but I reserve the right to mock you and call you Susan.

We will not be added 3D physics stuff.

OpenGL is already used for rendering 3D..... how else did you think we'd do it?!?!

Look up the YoYo_???? functions for access to accelerometer functions, and other things for that matter.
  • 1

#14 Mr Game

Mr Game

    GMC Member

  • New Member
  • 177 posts
  • Version:GM8

Posted 05 March 2012 - 06:19 PM

Ability to playback OG... *smack*

Well a wish I posted a little while ago is to turn "Web Events" into "Load Events" so they are more useful than just in HTML5.
That way sprite_add() etc. would be threaded and we could use the Load Events to check if the resources are available.
It would be useful for in-game loading screens or threaded loading in the background as you play the game.

Most of other wishes I have though are complex and more suited for GM9 (OGG sound, Shaders, 2D Lighting System, Better Loading Screens, Visual Particle Editor)


I'll add "Load Events", Bettter loading screens, ogg sound, and shaders, but 2D lighting and visual particle editor are things already achieved by the users.... :mellow:
  • 0

#15 alexandervrs

alexandervrs

    GMC Member

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

Posted 05 March 2012 - 06:28 PM

but 2D lighting and visual particle editor are things already achieved by the users....


Yes, I know you can do lighting effects with surfaces, however compiled ls_* functions would be even faster. :)
And also, indeed there are some utilities out there to view and generate particles but it should be really built-in, would be much help to newcomers to get started with particles and very practical for advanced users to preview how things look.

Edited by alexandervrs, 05 March 2012 - 06:30 PM.

  • 0

#16 TheSnidr

TheSnidr

    That guy

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

Posted 05 March 2012 - 06:29 PM

If you think you need variable_local_exists() for another reason, I'd be interested to hear about it.... but I reserve the right to mock you and call you Susan.

I'm using it to keep track of what models are initialized in GM OGRE, the 3D graphics dll. Instead of saving models to variables, they're saved to strings. For example:
radius=32
hrep=2
vrep=1
str="sphere" + string(radius) + "," + string(hrep) + "," + string(vrep)
if !variable_global_exists(str)
{
    variable_global_set(str,1)
    create_sphere(str,other stuff)
}
use_model(str)
Of course, my point will be invalid in case you've decided to never support OGRE again, in which case I'd really like to request you add shader support and possibility for some nice effects in 3D.

The variable_global_exists is not stricly necessary here either though... but it makes finding what models are already initialized much easier, to prevent making the same model twice.

Edited by TheSnidr, 05 March 2012 - 06:36 PM.

  • 0

#17 GameDevDan

GameDevDan

    Procrastinator

  • Reviewer
  • 942 posts
  • Version:GM:Studio

Posted 05 March 2012 - 06:38 PM

As you know, GM Studio is still in beta stage, and that means that it doesn't include all of its planned features.
We can use the time until the final GM Studio release to introduce our needs to YYG, hoping that they'll fulfil our demands.


Tbh, I'm rather hoping that it's just fixed in it's current form so that it is working to a decent standard and released before they go adding other things.

-Access to sensors (accelerometer, gyroscope, proximity sensor, etc.),



That's done isn't it?

-Re-add variable_local_exists()


¬______¬

-Better loading screens


What's wrong with the current loading screen?

Edited by GameDevDan, 05 March 2012 - 06:39 PM.

  • 0

#18 alexandervrs

alexandervrs

    GMC Member

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

Posted 05 March 2012 - 06:41 PM

Forgetting the redundant splash_* functions and only keeping the video-related ones. Would it be hard to add video playback in GM:Studio?
I managed to create an extension for HTML5 which puts a video as overlay on top of the game canvas, but can't yet figure out DirectShow on Windows (which I think that was what GM was using to play video).

I have small animated cutscenes in my game and could really be benefited by such an addition.
I am pretty sure iOs and Android have built-in video support and codecs.

Is this a big task to add natively in GM?

Tbh, I'm rather hoping that it's just fixed in it's current form so that it is working to a decent standard and released before they go adding other things.


I agree with this.

What's wrong with the current loading screen?


Needs more control over how it looks, see Stencyl's loading screen editor for example, and ability to turn it off completely. ("Make partially transparent with alpha" is not doing it right)

Edited by alexandervrs, 05 March 2012 - 06:43 PM.

  • 0

#19 GameDevDan

GameDevDan

    Procrastinator

  • Reviewer
  • 942 posts
  • Version:GM:Studio

Posted 05 March 2012 - 06:44 PM

Forgetting the redundant splash_* functions and only keeping the video-related ones. Would it be hard to add video playback in GM:Studio?
I managed to create an extension for HTML5 which puts a video as overlay on top of the game canvas, but can't yet figure out DirectShow on Windows (which I think that was what GM was using to play video).

I have small animated cutscenes in my game and could really be benefited by such an addition.
I am pretty sure iOs and Android have built-in video support and codecs.

Is this a big task to add natively in GM?


I probably wouldn't use this as I find animating a cutscene in GM with objects easier than using an animation program, but it's definitely a good idea for a feature. I'm sure I've seen several apps (on iOS at least) playing videos.

Needs more control over how it looks, see Stencyl's loading screen editor for example, and ability to turn it off completely. ("Make partially transparent with alpha" is not doing it right)


Meh, again not something that bothers me, but I can see it being a useful addition.

Edited by GameDevDan, 05 March 2012 - 06:45 PM.

  • 0

#20 DanRedux

DanRedux

    GMC Member

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

Posted 05 March 2012 - 06:44 PM

There is something that would increase the performance of almost every complex came.

First, you need to add proper callbacks. Right now, you can only pass in a script that you made (because the ID's are only generated for custom ones). Just generate ID's for the built-in scripts.
Second, allow callback() syntax, it shouldn't be TOO hard.
Finally, provide a script, one for each data structure, that quickly loops the data structure applying the provided callback to it.

With that function, say, ds_grid_walk, you wouldn't have to look it in GML and the speed benefits would be huge. Also, pass in the value at each index, and replace it with the returned value from the function.

To square a list, I should just be able to do this:
ds_list_walk(my_list,sqr)
  • 0




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users