GameMaker "Accept Spine License"

So is it necessary to check the box for spine use for any reason other than actually using that tool? I have no idea. I don't use Spine, but was concerned that somehow something is running in the software that is part of it which would mean I would have to "accept" even though I didn't buy the software? Could someone clear this up for me?

Let me also apologize in advance if the answer to this question is somehow obvious, as I'm not a programmer, and I'm just trying to cover all of my bases. :)

thx
 
Last edited:

rIKmAN

Member
So is it necessary to check the box for spine use for any reason other than actually using that tool? I have no idea. I don't use Spine, but was concerned that somehow something is running in the software that is part of it which would mean I would have to "accept" even though I didn't buy the software? Could someone clear this up for me?

Let me also apologize in advance if the answer to this question is somehow obvious, as I'm not a programmer, and I'm just trying to cover all of my bases. :)

thx
That only pops up if you are using .json sprites in your project, and if so then yes you have to accept the licence agreement as GMS2 uses the Spine runtimes which require that you own a Spine licence to legally use them.

This applies even if you aren't using Spine itself to create your skeleton as the Spine licence is required to allow you to use the runtimes integrated into GMS2 - the tool you use to create the json files is irrelevent.

See this post for more information from Esoteric Software, the makers of Spine.
 
That only pops up if you are using .json sprites in your project, and if so then yes you have to accept the licence agreement as GMS2 uses the Spine runtimes which require that you own a Spine licence to legally use them.

This applies even if you aren't using Spine itself to create your skeleton as the Spine licence is required to allow you to use the runtimes integrated into GMS2 - the tool you use to create the json files is irrelevent.

See this post for more information from Esoteric Software, the makers of Spine.
What I'm understanding from your linked thread is that although these spine runtimes are automatically integrated into GMS2, one must only get the license if their animations/sprites are bone-based (no matter the software used to make the "bone-based)...? In my case, I've only been using png sprites/strips... I've never received a prompt when loading assets/publishing. So I'm in the clear I would think?
 

rIKmAN

Member
What I'm understanding from your linked thread is that although these spine runtimes are automatically integrated into GMS2, one must only get the license if their animations/sprites are bone-based (no matter the software used to make the "bone-based)...? In my case, I've only been using png sprites/strips... I've never received a prompt when loading assets/publishing. So I'm in the clear I would think?
Ah I misread your OP and thought you were saying the popup was appearing to accept the licence, but re-reading it you are talking about the tickbox in the options.

The popup only appears if you add .json sprites into your project but the tickbox is always there, so if you aren't using any .json sprites and are using regular .png images then you aren't using the Spine runtimes and so are not required to own a Spine licence and you don't need to tick the box to accept the licence.

Sorry for the misunderstanding.
 

Yal

🐧 *penguin noises*
GMC Elder
It might also be worth pointing out that it's not rocket science to make a skeletal animation system in pure GML, I did it for one of my asset packs... You just need to store an array of angles for each bone for each keyframe and smoothly interpolate between them. The positions are directly related to the angle of the parent bone. You can compute how the bones are attached to each other using lengthdir_x / y using their current angle and their length, the trickiest bit is to figure out the order they're dependent on each other. (In my system, this is done using a hardcoded routine, but you could get fancy and do this dynamically). Also, it's important to draw the bones from the bottommost to the topmost (this order is different from the angle/position dependency). For instance, the arm the closest to the camera should be drawn on top of the body. For this, I just used a "draw order" array - this approach lets you reorder body parts on the fly when a character turns around (swapping the left and right arms).

You might ask yourself why you'd want to do all this work... well, not having to pay for a Spine license is one thing, but secondly you have much more control over the sprites drawn for each bone this way. For instance, all the bones making up the skeleton enemy in the SoulsVania Engine scatters when they're killed. You can also draw any sprite for any bone in the animation skeleton, so you can mix and match freely (instead of having to bake all variations into the same texture for a spine animation). Instead of having multiple pre-colored versions of an armor set or skin tone, you could use image_blend to recolor each limb individually (I do that for the skin color selection in my engine). You could even run separate shaders on some bones! (If you like breaking texture batches and slowing down the game... :p)
 
It might also be worth pointing out that it's not rocket science to make a skeletal animation system in pure GML, I did it for one of my asset packs... You just need to store an array of angles for each bone for each keyframe and smoothly interpolate between them. The positions are directly related to the angle of the parent bone. You can compute how the bones are attached to each other using lengthdir_x / y using their current angle and their length, the trickiest bit is to figure out the order they're dependent on each other. (In my system, this is done using a hardcoded routine, but you could get fancy and do this dynamically). Also, it's important to draw the bones from the bottommost to the topmost (this order is different from the angle/position dependency). For instance, the arm the closest to the camera should be drawn on top of the body. For this, I just used a "draw order" array - this approach lets you reorder body parts on the fly when a character turns around (swapping the left and right arms).

You might ask yourself why you'd want to do all this work... well, not having to pay for a Spine license is one thing, but secondly you have much more control over the sprites drawn for each bone this way. For instance, all the bones making up the skeleton enemy in the SoulsVania Engine scatters when they're killed. You can also draw any sprite for any bone in the animation skeleton, so you can mix and match freely (instead of having to bake all variations into the same texture for a spine animation). Instead of having multiple pre-colored versions of an armor set or skin tone, you could use image_blend to recolor each limb individually (I do that for the skin color selection in my engine). You could even run separate shaders on some bones! (If you like breaking texture batches and slowing down the game... :p)
I may look into these kind of approaches in the future, but I believe it would take my having a way better grasp of programming to even plan for that type of asset-making. In my first game, "The Yellow Ladder," my main character looks as though he's doing the diarrhea shuffle when walking mainly due to that I made the animations manually... I was going for a kind of early 90s arcade-type motion anyhow. It was basically just me in my garage against a green tarp posing every step. :)
 
Ah I misread your OP and thought you were saying the popup was appearing to accept the licence, but re-reading it you are talking about the tickbox in the options.

The popup only appears if you add .json sprites into your project but the tickbox is always there, so if you aren't using any .json sprites and are using regular .png images then you aren't using the Spine runtimes and so are not required to own a Spine licence and you don't need to tick the box to accept the licence.

Sorry for the misunderstanding.
No problem at all... I'm the king of misunderstanding on this forum. Thanks for always helping me out on here. :)
 

rIKmAN

Member
You might ask yourself why you'd want to do all this work... well, not having to pay for a Spine license is one thing
For some the time and effort required to write, bugfix, update etc a system like this is worth more than the $69 an Essential Spine licence costs, but it's definitely doable if you don't want to buy a Spine licence. Nux has written an extension that does this for example: https://forum.yoyogames.com/index.php?threads/2d-skeletal-animation-animation-states.44898/ which supports Spine, DragonBones and Spriter exports and I believe they are planning to update it again once the GML update gets released.
For instance, all the bones making up the skeleton enemy in the SoulsVania Engine scatters when they're killed.
Spine skeletons don't prevent you from doing this, you'd just swap out the skeleton and write a small system like the one you mention for drawing the exploding sprites at the correct position / rotation.
You can also draw any sprite for any bone in the animation skeleton, so you can mix and match freely (instead of having to bake all variations into the same texture for a spine animation).
You don't have to bake all variations into the texture, you'd just use slot attachments to show whichever image you wanted for each bone.
Instead of having multiple pre-colored versions of an armor set or skin tone, you could use image_blend to recolor each limb individually (I do that for the skin color selection in my engine).
You don't need to have multiple precoloured sprites since v2.2 (I think it was) when "slot colouring" was added natively (it was always in Spine itself, just not supported in GMS for whatever reason). Before that I wrote an extension that allowed you to do the same thing as it was quite a big omission from the Spine support in GMS.

Not disagreeing that it's possible to write your own system, just wanted to clear up your misconceptions that the examples you mentioned are not doable with Spine.
my main character looks as though he's doing the diarrhea shuffle when walking mainly
Hahaha, we've all been there right?....Right guys?....Guys? :D
 

Yal

🐧 *penguin noises*
GMC Elder
Huh, so the Spine/vector support has gone from being almost unusably rudimentary to being worth using? That's good news, I suppose. I don't really use skelatal animation :p (One of the main reasons I wrote my own system is that I'd rather use something I knew how it worked than spend time learning something new). Between disliking proprietary formats out of principle and fearing bugs arising from different software interacting with each other, I still think that "100% control over what the system does" is a pretty good reason to make systems yourself. But hey, you don't always need 100% control, after all, and there's nothing innately bad with off-the-shelf software that you can actually find people with experience in.

(also I was mostly trying to shill my engine instead of advocating that EVERYONE should make their own system =P)
 

rIKmAN

Member
The vector support is still pretty basic and comes with a load of caveats that make them unusable for anything complex, but that's nothing to do with Spine, they are two separate things.

I was the biggest and most vocal critic of the poor Spine support for a long time, but I also have to give them credit now because it has come on leaps and bounds since then and GMS2 now supports most features available upto version 3.7.94.

This includes mesh deformation, IK, splines, tint black, masking etc...too much to list and lot of stuff that would be a huge amount of work - if not impossible to implement yourself as an extension or using GML due to the lack of backend access.

Note some of those features are Spine Pro only and not available in the cheaper Essentials version.

Also, shill away, no problem with that just wanted to clear up the inaccuracies regarding Spine from your comment - ultimately people should use the best tool for the job given their circumstances.
 
Last edited:
Top