-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Scribble fails to "recognize font" in latest Beta #8304
Comments
This seems to be not a bug. It's caused by using font name as string in GM, so preference "Automatically remove unused assets when compiling" removes that font from project, because default font is referenced as string, not as resource (either using nameof() or font_get_name() ). Until it's not solved in Scribble, you can find examples of how to solve it in Scribble issue I've made: JujuAdams/Scribble#584 |
Closing as above, thanks. It's also already written in the release notes. |
Scribble 9.3.4 attempts to detect when this asset stripping is enabled and will direct developers to disable it. |
why not just fix it? this is a user requested feature and will be required for prefabs... |
Because it is not a solveable issue my end. Users reference sprites and fonts in-line in strings and regularly reference these assets only in strings (and these strings may or may not be stored in external files). A "solution" would require the user to manually reference every single font and, more problematically, every single sprite that they intend to use with Scribble separately to the text content. This isn't reasonable and opens the door for human error. I can think of further established practices in GameMaker that this feature will break. This feature is too aggressive. There are situations - prefabs - where pruning at compile time is sensible but pruning the main project itself will cause many problems for games of a certain complexity. This undermines the value of the feature for larger games that might benefit from it. There are good reasons to clean out a main project file from time to time but this should be done as a UI component where the developer can decide for themselves what is and isn't worth keeping. |
There are cases, when it cannot be fixed in library, like: Auto enabling it by default is bad IMO, I've wrote more about it in #8305 . |
Unfortunately the compiler cannot know that you are using an asset without a reference - there are several ways you can get around that
One solution that I will experiment with is always enabling the feature - but when Using unused assets is off just setting all the assets of the main project as Used and leaving the prefabs as Unused (so the prefab assets will be stripped) - and only report the main project assets as being stripped (as that is all the user really cares about). We don't want to add a tick box to every asset to say to "keep" it as that is an unnecessary burden on the UX and user to tick everything. |
Understandable, but if gamemaker-assets are kept in the hierarchy in asset browser, you could send part of the responsibility to the user and allow him to "keep" an entire tree of assets. with one tick. not a thousand ticks. we could organize our projects then in a way, with, say like a group named "dynamics" as a root node in the project and just tick this one node as "keep". so everything below it, will stay. |
That’s definitely a more preferable outcome. Marking assets unused is already pretty possible (like with sprites & audio via texture groups, and then telling the compiler to not export that group for every platform). A feature like this is great, but not something I think SHOULD be enabled by default either. I know it’s something that should be user controllable on how much unused assets are processed. So having more options on how assets are handled is good. If someone wants to go full on aggression mode, that’s their choice. If someone wants it just that aggression on prefabs, again, their choice. Or have it off. These are the kinds of things that should be controllable enough by the user that they have options.
I can understand that, and not something I could argue against other than the IDE already supports adding asset tags as a whole. Which suffice to say, hasn’t been a huge UX burden. (Outside of tags not being automatically applied to per group folders… I swear that in itself is a feature request but I cannot recall the current state of it). But in terms of textures and audio, you already effectively got an easy way of having “Keep” applied (as mentioned above) Nonetheless, I think this is the situation I suspect would be good down the line.
|
Behaviour of Remove unused has been subtly changed see #8312 |
Description
Title basically - importing Scribble into a blank project and trying to render text, in the latest Beta, renders a "Font xxx not recognised". This happens in all platforms.
Now I realize this is a third-party library, but it works perfectly both in monthly, LTS and the previous Beta, so it has to do with something that was changed in this last iteration.
Steps To Reproduce
scribble("Hi world").draw(room_width/2, room_height/2);
Which version of GameMaker are you reporting this issue for?
IDE v2024.1100.0.665 Runtime v2024.1100.0.691
Which operating system(s) are you seeing the problem on?
Windows 10.0.26100.0
Which platform(s) are you seeing the problem on?
GX.games, HTML5, Windows
84e53f2e-f222-444f-8272-ebba745f2cb0
The text was updated successfully, but these errors were encountered: