Suggestion Please expand coverage on API integrations + extensions

FrostyCat

Redemption Seeker
Following the libPNG fix, I think YoYo really needs a sprint or two dedicated to extensions, API upgrades and related documentation.

Reasons:
  • The runtimes for Flash and Spine are way out of date, suffer from serious performance issues and constantly get flak from people who use them.
  • The Android extension ecosystem is falling apart at the seams with constant compile/lint errors.
  • The tutorials for extension development covers only string/real return values and limited callback support on iOS/Android, but nothing beyond that.
  • Advertisement and API integrations are becoming obsolete on several exports, but little action has been taken to update them.
  • Users are constantly told to implement features themselves as extensions, yet there is no documentation on how to access the window/layout, audio stream, drawing surfaces or the sandbox file system from an extension.
  • Additional data types have been added to GMS since 1.3, but still only strings and reals are supported.

Extensions are fundamentally important for developers who need to monetize from their work, do licensing work for integrations and add features that don't fit YoYo's use case assumptions. If YoYo still wants GMS 1.x to be treated as a professional development platform, these issues should be addressed ASAP.
 

XanthorXIII

Member
This is baffling on why YoYo is so silent on these issues and concerns. The only thing I see from them any more is emails about their products on sale. I own a Master License and have no need for those emails. What I have a need for is how GMS is planning to compete with Unity and the others that are catching up like Godot.
 
P

PlayLight

Guest
(insert 'thumbs up' emoji here)

Documentation or a range of (ranked) tutorials on external access of GM:S functions would, in itself, give developers vast control over feature extension implementation, while also minimising extension content already available in the GM:S Class files and libraries.

Developers can browse the GM:S Class files to get a rough idea of what is accessible, though it can be a little daunting with the lack of sufficient code structure, commenting and library based functions (which understandably was never required by developers pre 1.3, but is essential in some aspects post 1.3).

Personally I wouldn't mind having a pinned (locked) topic on the GMC in relation to the Android Module,
- Information, setup & breakdown of the SDK & NDK.
- Extension access and ranked examples.
- Gradle + Manifest layout, injection & merge tools.
- Common build errors and how to address them.
- Understanding and using Lint.
- Android Debug Bridge & log.
- Loading and using the Dalvik Debug Monitor
- etc, etc...
but ideally, clear detailed internal documentation would be more of an asset to the product down the track.

Providing this as internal Documentation would of course be time consuming for limited manpower. So if a pinned topic is of any interest to get things moving, i would be more than happy to join in, help out and provide as much time as possible to add, maintain and update this topic, as it would give members a better understanding of the Android platform environment and how native extensions work with GM:S.

This would at least eliminate the repeated help requests for basic SDK and NDK build issues. ;)
 
Last edited by a moderator:
J

jackhigh24

Guest
i like @PlayLight idea here for a android thread to get pinned with input down to certain members, this way it wont get full of how do you do what ever, it would make it a lot easier for users to get their android working and save many multiple tech help threads all asking the same basic stuff, a tizen one would also be good but maybe not until it gets an update, im sure quite a few of us can maintain it and save @Nocturne some time to do other important things, such as ordering a larger supply of cream eggs for @Mike ;).
 

Surgeon_

Symbian Curator
Additional data types have been added to GMS since 1.3, but still only strings and reals are supported.
Could you elaborate on this? I'd be interested to hear which data types are new. For example, I found out that "struct" cannot be used as an identifier although it doesn't do anything at the moment. Is that one of the new data types you're talking about?
 
N

NPT

Guest
Could you elaborate on this? I'd be interested to hear which data types are new. For example, I found out that "struct" cannot be used as an identifier although it doesn't do anything at the moment. Is that one of the new data types you're talking about?
Struct is used in shaders, it very much does something.
 
K

Kios

Guest
Just to reinforce this post, I made a post in the same vein that was moved to off topic. here.
You can clearly see that the developer themselves would have made an extension if this was accessible to them.
Extensions really need to be upgraded if GMS 2 is to truly grow beyond 1.x and fully develop.
 

Ruimm

Member
just writing to say I really think this is a big issue. There are other engines with better integration of iAP, Ads and so on... it would be great if GM could improve on this :(
 
  • Like
Reactions: HW.

Dmi7ry

Member
Just to reinforce this post, I made a post in the same vein that was moved to off topic. here.
You can clearly see that the developer themselves would have made an extension if this was accessible to them.
Extensions really need to be upgraded if GMS 2 is to truly grow beyond 1.x and fully develop.
I used Creature in one project with my own engine (based on SFML) and what I was really liked - very high performance. There were about 300-400 (and could be more, but I was not needed more) bone-animated characters at the same time (60 FPS).
 

Surgeon_

Symbian Curator
I used Creature in one project with my own engine (based on SFML) and what I was really liked - very high performance. There were about 300-400 (and could be more, but I was not needed more) bone-animated characters at the same time (60 FPS).
Well, to be fair, it's probably more due to the fact C++ is the granddaddy of compiler optimizations (plus, it's machine code so it does not have the VM overhead). Also, when you're building your own engine, you don't have to include a whole bunch of stuff that would slow it down just for the sake of flexibility, like GMS does.
 

Dmi7ry

Member
Well, to be fair, it's probably more due to the fact C++ is the granddaddy of compiler optimizations (plus, it's machine code so it does not have the VM overhead). Also, when you're building your own engine, you don't have to include a whole bunch of stuff that would slow it down just for the sake of flexibility, like GMS does.
When I was investigate what an animation system would be best for my project, I tried Spine, Creature, Spriter, DragonBones and couple other. All was tried with same conditions. And Creature beat all other (only in my case - I wasn't needed IK, and some other features from Spine, etc). Because of well architecture which was perfect for my project. Two thing I liked especially: 1. It uses user's texture atlases and 2. It has mesh editor (you can define how many triangles will be used for each image, can mix different sizes, etc).
 

Surgeon_

Symbian Curator
When I was investigate what an animation system would be best for my project, I tried Spine, Creature, Spriter, DragonBones and couple other. All was tried with same conditions. And Creature beat all other (only in my case - I wasn't needed IK, and some other features from Spine, etc). Because of well architecture which was perfect for my project. Two thing I liked especially: 1. It uses user's texture atlases and 2. It has mesh editor (you can define how many triangles will be used for each image, can mix different sizes, etc).
Ah, okay then. I thought you were comparing performance of Creature with C++/SFML with performance of Spine with GMS.
 
K

Kios

Guest
I used Creature in one project with my own engine (based on SFML) and what I was really liked - very high performance. There were about 300-400 (and could be more, but I was not needed more) bone-animated characters at the same time (60 FPS).
That sounds pretty cool, it's unfortunate that YYG doesnt realize they really shouldn't be wasting their valuable resources on external functionalities(IAP, Analytics, etc). And what they should be doing is providing a stellar base for third party vendors and service providers to build runtime and editor plugins on, effectively providing that functionality themselves, or the community will step in of course.
I hope they change that approach going forward, I'm sure it would usher a new era for GM.
 

FrostyCat

Redemption Seeker
That sounds pretty cool, it's unfortunate that YYG doesnt realize they really shouldn't be wasting their valuable resources on external functionalities(IAP, Analytics, etc). And what they should be doing is providing a stellar base for third party vendors and service providers to build runtime and editor plugins on, effectively providing that functionality themselves, or the community will step in of course.
I hope they change that approach going forward, I'm sure it would usher a new era for GM.
YoYo has spent next to no time on IAP and analytics for the past 2 years. If they were spending enough time on IAP and analytics for people to call it a waste of time, this topic might not have existed.

If there's anything YoYo needs to stop wasting their valuable resources on, it's the built-in image editor. While it sees a lot of use by amateur GM developers scraping by with "programmer art", good luck finding professional graphics artists using it. I don't think YoYo recognizes the survivor bias inherent in IDE telemetry. It doesn't capture how much clientele it has handed to competitors for not adequately supporting what professional graphics artists do use. Hell, Mike has taken the effort to ask about the state of the image editor and where it needs work (link), but nobody on the YoYo team did the same for monetization, extensibility or integration with third-party editors. That says a lot about where their priorities are --- not with the professionals.
 

kburkhart84

Firehammer Games
I'm with you guys on this one. I think both the image editor and the roadmap's basic sound editor are wastes of time. If there wasn't separate software that could do it, so much better, and for free, it would be a different story.

There is a competitor engine(3d though, and I'm not mentioning names though it isn't needed really) that does this stuff right. The IDE is basically total access via code. You can have full on stuff going on in the IDE, like node editors for shaders, configuration stuff, and lots of things I'm not mentioning. If I could get this kind of thing going in GMS2, I could have the configuration for my FHInput extension be done via a separate window in the IDE instead of having you open a separate program and then copy/pasting stuff. Someone could make a custom editor for 3d, right in the IDE. There could be a nice particle system editor too, and whatever custom stuff someone could code...all right there in GMS2's IDE. This would open up so much capability for asset developers too.

This of course depends on Yoyo. They have to provide a base for these things... They finally added shaders, which opened up lots of doors for people to make cool things... this could be the "next big thing!"
 
H

HW.

Guest
According to me, YoYo really needs to spend more time on updating and fixing their own official extensions e.g. Google Play Services. Bring the Admob rewarded videos. etc. Implement new Up-to-date APIs and SDKs of the extensions....

Those extensions are "HALF Soul" of the $399 mobile module we bought and it should be updated regularly and it doesn't waste time AT ALL to update it. And i think the time should be less than implementing image editor features.

Fact and Reference: According to this official url:
https://marketplace.yoyogames.com/assets/2008/google-play-services#reviews_pane

@Kios YoYo never wasted time on extensions, they rarely update their extension in fact, but i hope and i wish they want to "spend" more time.

Please see the ratings of the extension and the reviews. It should be 4-5stars, really. Unfortunately it is NOT, and sadly only 2* (at this time, i hope it can increase if it is updated next time). As other engines really cares about the monetization functionality. I think GMS2 also needs to compete, Please give more attention to this obsolete extension.

If YoYo spends more time caring about their own official extensions. It means that they in fact are " investing " with their engine's reputation and will gain good reviews from the mobile module customers who want to monetize their apps. If their customers can earn money from their apps as a professional, then their next products e.g. GMS3 WILL be bought again in the future, absolutely. They will have money to update and migrate from previous version of the engine.

I think most of us that is willing to buy mobile export module (andoid/ios) do not use it "only" for a prototype or as a hobby tool. As it is meant to enter the market industry (Google Play Store and Apple AppStore). I also agree with the opinion that the keyword "Pro" or "Studio" on GMS /GMS2 really needs to represents the meaning "more". I remember the time i chose GMS compared to Unity, it was the permanent license factor and the custom splashscreen that GMS wins my heart. Of course that is without mentioning other pluses such as "novice-friendly GML" and the great documentation of help files and the people and the community, many videos on youtube and assets on marketplace. That was a part of event before i chose GameMaker. I also wanted to use Godot that is a free engine including the built in monetization functionality, i spent months learning it before buying GMS1 but i didn't continue with it because there was lack of the documentation at that time, failed to implement ads with ease though it was ready with up to date apis at that time (lack of experience as a novice, i am sure for advanced users they will successfully implement it with ease), so instantly at that time i felt the GMS won in term of the user-friendliness of making 2D games for mobile devices, so i determined to pay the cost of GMS1.4 + Android export module and it goes on with GMS2 Mobile (ios,android). I love it. I am satisfied overall with the ease of workflow process GMS2 provides, except one thing, this obsolete extension thing.
--- It just needs to be updated regularly -- as the condition of the mobile industry (android/ios) is regularly updated time after time.

@FrostyCat Absolutely agree with you! Built-in image editor, i don't use it AT ALL since GMS1 and GMS2 and i don't plan to either on next GMS3, and so on. I prefer using external image editors Photoshop/Illustrator, and many more.

Instead of image editor, i prefer they release lightweight objects or anything that should bring stability, speed, and efficiency.

The engine for now i think overall is awesome. BUT still need tweaks and bug fixes. And of course up-to-date "essential" extensions.

Recently, i often see crash logs on my developer account for my android apps, and it is related to Google Play Services extension from what i can see from the log. And the project using the extension or without, it really has a different amounts of lint errors.

It is now time to update it, YoYo!. Last time it was updated when it was still in GMS1 era (Dec 2016).

In GMS2 era (2017), you don't update it yet.

YoYo Google Play Services extension version 2.9.0 (Dec 2016) needs to be updated this year.

Oh now it is already November 2017!

Please could you update it once for this year at least as a Xmas gift of this year before 2018, please please?

Thank you.
 
Last edited by a moderator:

Surgeon_

Symbian Curator
I find it funny that GMS2 is priced like a professional tool (especially with additional exports) but I really can't start seeing is as such. I'm not going to repeat what you guys have said in this thread, but it's obvious by now that it's making some things really hard for professionals, and a thousand glaring bugs and nuances doesn't exactly scream "professional software" either. Meanwhile its main claim to fame is being beginner friendly and that's being reinforced with improving the integrated image editor, now adding the sound editor etc... But really, if I'm truly a beginner will I agree to pay a few hundred dollars for an IDE? Well, some might, but I think most would just find a nice and free alternative.

I personally got into Game Maker big time when GMS was free because I could explore it to its fullest without having to pay upfront. When I decided I was comfortable with it, then I bought the Pro edition.

Now, to be clear, I'm not trying to bash on the YoYo team here, because I don't know what the story is like from their point of view. I'm just expressing my sentiment that GMS2 now looks as if it's in a really awkward spot, torn between two worlds, while not being a perfect fit for either... I think that if there was a "modding" or "extending" API for Game Maker the community could make it a lot better, kind of like what's happening with Bethesda's games and modders (Yeah, we can release a half-finished game, the modders will fix it anyway...)
 

rIKmAN

Member
I agree with pretty much everyone that has posted so far, but I just wanted to add my own thoughts on a couple of things.

I'm not sure how many of you are aware of this but there are regular "GameMaker Meetups" which have started recently in/around London where prominent GMS users and staff give talks and presentations etc whilst chatting to other like minded GMS users, which is great.
(Shaun Spalding hosts some of the talk videos on his YouTube channel, for anyone interested)

After the latest meetup Russell answered a few questions (offstage I think) and the answers were posted on the Discord channel, a couple of which caught my eye.
If you want to see the full list - join the /r/gamemaker Discord, good bunch of guys over there!
"When are you planning on implementing inline functions and/or lightweight objects?"
All the work on extending GML gets done by me in my spare time. I have three kids so you can appreciate that I don't have much time spare! We do have this feature close to release but we need to make sure it gets the appropriate amount of QA time.
OK so first, whilst I do appreciate the obvious work Russel is doing in his own time - is it just me or is it crazy to anyone else that a company that was bought for millions of dollars is having it's language changes done by a single person in his spare time?

This isn't a dig at Russell at all - in fact it's quite the opposite in that I feel for him having to do it on his own in his spare time - he is obviously going above and beyond what is required of him, and I do appreciate his effort and dedication.
It's more just....disbelief at that situation as a whole.

Why would something like this not be done in work time as part of scheduled updates to the engine?
Is there anything that you'd want to see the community do with GameMaker that hasn't been done yet?
Use high-resolution digital art and vector graphics. I'd like to see GameMaker be known for "good 2D games" rather than "good pixel art games".
How can anyone that seriously wants to create a game using high res digital art consider GMS as a suitable tool to do it when support for anything other than pixel art is so poor and outdated, and (as has been said above) all YYG talk about is how used, important and in need of updates the IDE sprite editor is.

"It's the most used feature" we keep getting told - and that may be true by metrics such as "time spent in sprite editor" due to people using it to create placeholders, collision tiles, importing images / frames made in other programs etc, but certainly not by people trying to create high quality digital art within it.

I just posted some Spine related stuff in another thread but I'll repeat it a little here:
The current recommended version of Spine for use with GMS is v3.4.02 which is 15mths old, and basic features such as skeleton scaling and slot colouring are still nowhere on the radar to be implemented.
I filed a suggestion for slot colouring 9mths ago and didn't hear anything back, and there is another related suggestion dated back to 2015 which is still "open" and "assigned".

You can also only still only have 1 texture page for your skeleton, so how that's supposed to work out with "high res digital art" for a character with a lot of animation requiring a lot of custom transition frames I'm not quite sure.

Yeah you could probably write your own custom texture page management system, but when the official runtimes already support multiple texture pages, we shouldn't need to.
Not to mention that being forced to use a 15mth old version of the Spine IDE means we don't get any bugfixes, UI improvements, tweaks etc that have been made to the IDE since then, and there are a lot.

This isn't crazy functionality being asked for here, these are simple functions already in the official runtimes and are as basic as it gets - they just need to be hooked into by YYG in GMS.

In terms of vector art - which most people would associate with high res, scalable digital art as Russel mentioned above, has anyone tried to use vector art in GMS?
I'm talking actual .swf here, not vector art rendered to sprites (which is then pixel art)

I tried for the first time last week by creating a 64x64 tile, and placing ~20 of them as sprites into an empty room on an asset layer (GMS2), and my texture swaps were near 50. Twenty 64x64 sprites, fifty swaps - extrapolate that out to trying to make a full game using vector art...

Add to this that I was getting constant error messages that my version of Flash was too new and only upto version 11.x was supported, that I was using unsupported features "but it may work" (it didn't) because I dared to try and have a gradient in the vector image, that any animation you want HAS to be on the main timeline or else you will just get frame 1 for any animation not on the main timeline shown throughout...I won't go on, but there are more.

Who in their right mind is going to consider GMS as a tool for creating a high res digital art game when it's just problem after problem and constantly having hurdles put in your path when you try to do anything other than create a pixel art game.

If "good 2D games" is what is wanted to be associated with GMS and not just "pixel art games" then give users the support and tools to allow them to even consider that as being an option in the first place.

Broken outdated extensions, runtime implementations that are years out of date and vector support that makes seriously trying to create a large game using them so prohibitive. with workarounds and performance issues at every turn, that you realise after minimal testing it's out of the question.
That's not not the way to head towards "Good 2D games" as an end goal.

If they worked out a way to prioritize in the right areas and keep on top of extensions, runtimes and changes/updates in other 3rd party tools so it didn't become a massive job for them to do multiple versions worth of updates in one go it would be so much better.

Washing your plate after every meal takes 1min, but if you keep putting the dirty plate on the side and using clean ones then you eventually run out of plates and have to spend an hour washing dirty pots.

It also wouldn't be such a headache for end users having to find an old outdated particular version of a tool which is the only one that works without issues, or trying to workaround things that are supported on the box but don't quite work in real world use .

I guess money talks though, and of course I don't have any metrics as to where the main userbase is, what demographic they need to be hitting and all the rest of it which will ultimately make them the most sales - which is what it's all about.

I just think things like those mentioned above would go a big way to helping sales due to the increased features and viability of the engine to so many more devs who choose other engines that themselves are not perfect, but offer less hurdles than GMS currently does for anything other than pixel art and is (IMO) why GMS primarily gets the pixel art crowd and not the "high res digital art" crowd.

Mike has stated before that users here are tiny percentage of the GMS userbase so whether what is said on here ever holds any weight I have no idea, but hey it's a forum for discussing opinions so may as well write them anyway.

This has got a little "ranty" I guess, and that wasn't my intention but I it's because I really like GMS2 and it's just so frustrating that it could be and offer so much more, as well as be a viable tool to so many more game devs that choose other engines because of issues like those I mention above.

Apologies for the length of this post, guess I got carried away.
 
Last edited:

kburkhart84

Firehammer Games
Rant or not, I agree with the points, at least in a general sense. I haven't been as affected by this because I never use the spine stuff, or vector art in general. And for raster art I don't see any performance issues, even with higher resolution stuff.
 

Yal

šŸ§ *penguin noises*
GMC Elder
It's more just....disbelief at that situation as a whole.

Why would something like this not be done in work time as part of scheduled updates to the engine?
^ I second this question...

I don't use vector/skeleton art because I generally feel it looks flat and uninspired, so I'm not personally affected or anything, but a properly documented extension system that lets you make plugins for GM (that can access and modify any resource using a well-defined set of rules) would really elevate it higher since now people could get anything they wanted into it.
 
D

davidknight7

Guest
The only thing I see from them any more is emails about their products on sale. I own a Master License and have no need for those emails.
 

2Dcube

Member
Maintaining extensions must be a lot of work.
Implementing all of the SDKs out there isn't possible so I think a kind of extension template could be useful, so the community can implement the rest.
For example, some SDK's require a reference to the current activity on Android (took me a while to figure out it's RunnerActivity.CurrentActivity) or want you to run something on the UI thread, etc. Having some basic functions implemented that give you access to everything an extension might need would be useful.

In any case, I don't think Game Maker can compete with *certain 3D engine* in this area, but it can be the best and fastest tool for creating 2D games.

Aren't additional data types just making things more complicated? That seems counter to the idea of fast and intuitive game creation in my opinion. I understand they can make games run more optimally, but from a conceptual standpoint they don't make a game better or more interesting. Maybe I'm missing something as I'm not sure what data types are planned to be added.
 
  • Like
Reactions: Yal
Top