我正在开发一个相当大的游戏,并希望将Linux作为我的日常驱动器。但是,Gamemaker在我的大型项目中就无法加载我的YYP文件,所以我感觉被Windows捆绑起来了。最后我找到了导致错误的bug:Object reference not set to an instance of an object.这个错误(这是一个非常不友好的错误消息,我知道)在我上面 ^((a very not helpful error my I add))。由于我没有看到任何解决这个bug的方法帮助我,我想我也许应该分享一下我是如何解决它的。

我的问题来自于项目文件树中的目录和文件名称不符合正确的大小写,YYP文件在寻找时要求正确的大小写。例如,我在Gamemaker中有一个对象ob_Airline,在Windows上它可以正常加载。然而,在文件树中,它被称为ob_airline,Windows似乎将大小写视为功能相同的目录,而Linux似乎将它们视为不同的目录。Linux在我将目录和文件重命名为ob_Airline时正确读取了它。这不仅仅是对象的问题,我还遇到了一个与之类似的房间问题。我猜这源于我在Gamemaker中编辑对象/房间名称时为了纠正一个拼写错误而标准化了大小写。

另外,请暂时将文件从你的版本控制目录中移除,然后将修复大小写的目录和文件放回原来的位置并重新提交,以便在版本控制中修复大小写。这可能不是最好的方法,但它对我有效。

我个人是通过使用GMedit从黄色后生活来解决问题的,该工具可以在Linux上加载我的项目,并使用GMEdit-Constructor从thennothinghappened构建代码,这会抛出更有用的错误,指出需要修复大小写的特定目录。

确保更新你的目录名称和(yy)文件名称以匹配你的资产在Gamemaker/YYP文件中的正确大小写,否则它将无法在IDE中加载。