YoYoGames / GameMaker-Bugs

Public tracking for GameMaker bugs
15 stars 7 forks source link

execute_func_asynk !!! #5572

Open anabah122 opened 2 months ago

anabah122 commented 2 months ago

Is your feature request related to a problem?

we cannot clean most of the files or perform complex calculations avoiding the frames loop. I mean, for example, creating vertex buffers or reading large tables from files.

Describe the solution you'd like

thank you so much that we have the ability to asynchronously load sprites and stuff.

To add more freedom, I suggest adding a new function : execute_func_asynk( func type )👍 👍 👍 and ev_exec_asynk👌

users will be able not only to asynchronously load sprites , but also to do anything bypassing the frame loop

Describe alternatives you've considered

it is possible to assemble this inside the frames loop, but it is inconvenient and also dissects the code. There is an extension, but it can only be used on Windows ( the multiplatform says so far )

Additional context

No response

DragoniteSpam commented 2 months ago

this is tantamount to multithreading (or pseudo-multithreading), which is definitely not happening in this runtime and "who knows" in the future one

anabah122 commented 2 months ago

we need at least pseudo-multithreading ) make gml great again

I talked about this with one of the core developers, but my knowledge of multithreading is insufficient, so I'm looking at it from the point of view of practical use

L-Clouds commented 2 months ago

Duplicate of #4063 or any one of these

anabah122 commented 2 months ago

yes, I agree with the author, gml is already a campaign for a full-fledged language, but it lacks full-fledged functions aimed at people who develop and do not mess around

rwkay commented 2 months ago

You mixup the concept of asynchronous (meaning it does not happen immediately) and multithreading - one does not imply the other.

Current runtime of GameMaker does not allow multi-threading (there are many reasons for this due to the age of the codebase), we do use multithreading for audio mixing and ogg decoding, also used for texture decompression (from PNG, JPG and other on disc formats) and the Garbage Collector.

GMRT (the new runtime for GameMaker) has been written with a view to multi threading (and we plan on providing an interface like JavaScript Web Workers for this, but that will not be in the initial GMRT release).

Asynchronous is not multithreading though it just means that the function will be called later (still on the main thread) at a later point in time.

anabah122 commented 2 months ago

OK, I'm looking at this from the perspective of an game developer. the point is to get away from the frame loop and not that it will really be multithreading

now I have to write a lot of extra trash code to make execute_funk_asynk