• Hello [name]! Thanks for joining the GMC. Before making any posts in the Tech Support forum, can we suggest you read the forum rules? These are simple guidelines that we ask you to follow so that you can get the best help possible for your issue.

Windows Importing GMS 1.4 project

Nathan

Member
Has anyone imported and converted their project from Studio 1 to Studio 2? I am curious how tedious of a process it is because the trail version of 2 will not allow me to import, and that's the whole reason I'm on the fence about upgrading. I want to figure out how much code will need redoing, how long to import and convert all my folders, assets, etc. I don;t want to pay to find out it won't import my project, or that I will have to rewrite 90% of the code, because in that case I will just start over in Unity. Any input would be helpful, thanks!
 

Nocturne

Friendly Tyrant
Forum Staff
Admin
Yes, the guy that made the amazingly good Rock God Tycoon (our very own @Seabass (The Human) ) ported the whole game into 2.0, so maybe he can tell you how he got on. I have tested my game Skein in 2.0 and simply importing it and pressing play had it working fine... which was fantastic, although the FPS was a tiny bit slower than on 1.4, but that's due to the use of compatibility scripts and the fact I use a LOT of old tile functions which arent in 2.0 anymore (they have compatibility scripts for them so they do work, but are slower). However, ideally you want to import the project and then edit out the compatibility scripts for native new functions, and that's when it gets tricky... large projects will need a LOT of work, and you'll need to invest some time in studying the compatibility scripts to get a handle on how things are done now before changing things.

So, tl;dr, all projects should imprt and "just work", but if you want to make use of new functionality you'll need to do some editing. :)
 

Nathan

Member
Thanks for the quick reply. How would I learn more about the compatibility scripts? Is there a master list?
 
Thanks for the quick reply. How would I learn more about the compatibility scripts? Is there a master list?
Compatibility scripts are just that - compatibility scripts.

Here's an example - instance_create was replaced, so if you import a project with instance_create it will generate this script:
Code:
/// @description Creates an instance of a given object at a given position.
/// @param x The x position the object will be created at.
/// @param y The y position the object will be created at.
/// @param obj The object to create an instance of.
var myDepth = object_get_depth( argument2 );
return instance_create_depth( argument0, argument1, myDepth, argument2 );
 

Aaron Craig

Member
I just upgraded to the desktop version of GMS 2 and imported a project I've been working on. It printed out the compatibility report and seemed to be fine. But when I run the project, it loads up, shows the GameMaker logo, and then crashes, saying it ended with a non-zero status. And the last line is:
FAILED : Run Program Complete

I can run the game fine in GM 1.4. Part of the problem is it just doesn't give me much information to go off, so I don't know where to start. There's no syntax errors, compile errors, or anything that I'm familiar with.
Any help would be appreciated.
 

Mike

nobody important
GMC Elder
I just upgraded to the desktop version of GMS 2 and imported a project I've been working on. It printed out the compatibility report and seemed to be fine. But when I run the project, it loads up, shows the GameMaker logo, and then crashes, saying it ended with a non-zero status. And the last line is:
FAILED : Run Program Complete

I can run the game fine in GM 1.4. Part of the problem is it just doesn't give me much information to go off, so I don't know where to start. There's no syntax errors, compile errors, or anything that I'm familiar with.
Any help would be appreciated.
Can you please file a bug and include the ORIGINAL 1.x project with the report. Someone can then take a look and see what's happened.
 
@Nathan The compatibility scripts work just fine. As @Nocturne said, the scripts could slow things down a tiny bit but honestly, it isn't really a big deal unless you are calling the scripts a lot per frame. Even then, gml_pragma("forceinline") will improve the speed a bit.
 

psyke

Member
@Nathan The compatibility scripts work just fine. As @Nocturne said, the scripts could slow things down a tiny bit but honestly, it isn't really a big deal unless you are calling the scripts a lot per frame. Even then, gml_pragma("forceinline") will improve the speed a bit.
Now that you mentioned gml_pragma, do you know what are the limitations of it? And in what situations should I use it?
For example, can I use it inside a step event?
 

psyke

Member
So, it basically copies the content from the script to every place that the script is being called?
 

Lukan

Gay Wizard Freak
I also imported a very LARGE project into 2.0. I didn't originally have the intention of using it, I just wanted to test.
However, I get some nice speed improvements, and the IDE's new features lured me in.

I don't remember how long it took, but I don't think it was any longer than 5-10 minutes for the whole conversion.
And my game ran flawlessly the first time. If it runs in GMS 1.x, GMS 2 should run it with compatibility scripts.
 

Mike

nobody important
GMC Elder
Mk, I've done that. I hope they can figure it out.
remember that it'll only upgrade properly if it works in the latest 1.4 build of Studio. We do not upgrade projects that old work in older versions of Studio. So make sure it works in that first!
 
G

Guest User

Guest
Has anyone imported and converted their project from Studio 1 to Studio 2? I am curious how tedious of a process it is because the trail version of 2 will not allow me to import, and that's the whole reason I'm on the fence about upgrading. I want to figure out how much code will need redoing, how long to import and convert all my folders, assets, etc. I don;t want to pay to find out it won't import my project, or that I will have to rewrite 90% of the code, because in that case I will just start over in Unity. Any input would be helpful, thanks!
I've been wondering the same too, in fact I tried to "cheat" the other day. a friend of mine has bought GMS2 and I gave him my project to import and save out as a GMS2 project. Thinking I could simply load it into my beta version and see what would need changing, but alas no. YYG saw that one coming and it won't allow you to load a project someone else saved.

lol, fair play YYG, but you can't hate me for trying it ;)
 

Nathan

Member
@Mike @Seabass (The Human) @Nocturne - Ok so I went ahead and purchased GMS 2.0 and while trying to convert my GM 1.4 project everything has gone relatively smooth except for the importing of Drag and Drop items that contain the DnD "If". It is trying to convert them to code (which would be great if it produced the correct code) but for every "If" if it generating garbage code. I believe this is a bug, considering "If" statements are fundamental to all programming languages. I will explain it here with the reference screenshot images attached.

1. This is the Object inside of GM 1.4, note the DnD "If" statements
gms14 copy.jpg


2. This is what GM 2.0 is converting the same "If" Statements into. Every piece of code is generated correctly except the 'If' statements which it is adding arbitrary code such as adding var __b__; __b__ = action_if_variable etc etc when there is no variable b anything

gms2 copy.jpg

3. The code should be converting to this as it is a simple If statement.

gms2_proper.jpg

Is this a bug? We have 500+ objects to convert so it would be great if this could be solved by having the DnD 'If' statements correctly converting in a future update to Studio 2 as you work through the Beta process. Please let me know as we are stalled in our conversion currently. Thanks!
 

Lukan

Gay Wizard Freak
You converted a DnD project to GML... Is there no option to chose between them when importing?
I know GMS2 had a DnD mode, and the DnD is muuuch nicer than previous iterations.
 
You converted a DnD project to GML... Is there no option to chose between them when importing?
I know GMS2 had a DnD mode, and the DnD is muuuch nicer than previous iterations.
When you convert a GMS2 DnD project to GML, if() statements are properly translated into GML. Seems strange that they wouldn't when importing as well.
 

Nathan

Member
You converted a DnD project to GML... Is there no option to chose between them when importing?
I know GMS2 had a DnD mode, and the DnD is muuuch nicer than previous iterations.
I did not convert it to GML by choice, that is how it is handled by GM2.0, it is automatically converting the DnD If() to code. I am not given an option of converting it to DnD. I tried making a new project in 1.4 as a test, it has one object with one DnD If() statement, on import it does the same thing, it is saying the var __b__ garbage code is a Compatibility Script, but it changes the structure and is not compatible at all for what the function is supposed to do.

Can I file a bug report?
 

Nocturne

Friendly Tyrant
Forum Staff
Admin
This is not a bug and won't be getting "fixed". DnD in 1.4 is very different to 2.0 and this is just the way it is. Keep in mind that 2.0 is not strictly backwards compatible with 1.4 anyway and requires compatibility scripts to work. The code being created works fine, it's just a bit ugly... so, not a bug.
 

YellowAfterlife

ᴏɴʟɪɴᴇ ᴍᴜʟᴛɪᴘʟᴀʏᴇʀ
Forum Staff
Moderator
You could use a tool I made a while ago to convert 1.4 DnD to 1.4 GML and then convert now-DnD-less project to 2.0.

If there's a lot of things like that in your project, you have some sort of budget, and would like to sponsor the act, I could potentially reassemble the tool into a downloadable one that could be given a project directory and would change the object files automatically.
 
This is not a bug and won't be getting "fixed". DnD in 1.4 is very different to 2.0 and this is just the way it is. Keep in mind that 2.0 is not strictly backwards compatible with 1.4 anyway and requires compatibility scripts to work. The code being created works fine, it's just a bit ugly... so, not a bug.
If someone is learning GML via translating DnD, this seems like a obscure "if()" methodology to learn from.

Inefficient as well, but who's complaining...
 

Nocturne

Friendly Tyrant
Forum Staff
Admin
If you are learning code from DnD, then you use the DnD from GMS 2, which even gives you a code preview, and not from some project imported from 1.4... ;)
 

Nathan

Member
For the record we are not learning coding this way. The game has been in development since Game Maker 5.1 My brother has been programming for years, not just in Game Maker. The issue is that for whatever reason the needs of the customer are being ignored for what should be a basic functionality for converting all 1.4 games to 2.0 After looking at the converter @YellowAfterlife created, it further disappoints me that the GM team doesn't adapt this tool into their software to offer better support for the community who funds their continued work on Game Maker. If a third party can make it work, why can't you at least implement what he has already created?

I love GameMaker, but it's very frustrating in times like this.
 
Top