Kaliam
Member
This is something I have been pondering as of late as it has been a constant difficulty I have been having with the scale of my current project. Specifically I am creating a large Open world real time strategy which is based in space and as such requires lots of room space.
This brings me to my problem which is looking onward to the future of GMS2. This is far off at least as we know it, but proper 64 bit support is eventually going to be coming to GMS2. And with this comes the possibility of much more precise calculations using the precision of double values. Currently how gamemaker and most game engines work is by using floating point math to calculate "world space" or in GMS2's case, calculate the coordinates of your instances in a gamemaker "room". Unfortunately due to the limits of floating point math,
(8 digits 99999.99) once an object reaches a point past 99,999.99 x,y,z(depth) it will encounter precision errors. What this does it cause awful render "jittering" caused by the computer's inability to calculate the exact coordinates of the object due to the limit of floats.
Example of precision loss as coordinates get larger:
99.00000
990.0000
9900.000
99000.00
990000.0
I know that gamemaker is more designed towards smaller projects which really don't need precise math or very large rooms, but I call on YoYoGames to go against the grain and give their engine full 64bit support when 64bit is released in the future. I think that not only will this future proof GMS2 as an engine, but it will also make GMS2 a sought after resource for creating amazing large scale projects which not many engines are currently capable of doing.
When it comes to performance demands of double precision, there are minimal losses when executed on a 64bit system. This means that there would be little to no effect on the actual performance of the engine itself. This is due to how 64bit processors actually calculate math. I don't know how Gamemaker works on the backend, but I have enough experience in several other programming languages to know that this is no small task.
One modern game that uses this feature is StarCitizen. This allows that game to have a nearly infinite world with precise collision no matter how far from the origin(0x 0y 0z) you are. What I am asking is that YoYoGames consider something like this when the future 64bit update eventually comes into the works. This will most likely become the standard in the coming decade as there are less and less 32 bit devices. Why not go all the way when GMS2 gets updated to 64bit and future proof the engine? Imagine being able to create rooms with usable space up to 999,999,999,999.0000xyz to -999,999,999,999.0000xyz (nearly two trillion pixels squared!) without losing any kind precision. The possibilities for massive games are endless! =P. This combined with 64bit memory integration could make GMS2 an even greater engine/tool than it already is!
Anyway thanks if you read all the way to the bottom of my ramble, I know it was a little tech heavy, I just felt that this needed to be said. Computers are continuing to evolve and the tools that use them should evolve with them to allow greater possibilities for us all!
This brings me to my problem which is looking onward to the future of GMS2. This is far off at least as we know it, but proper 64 bit support is eventually going to be coming to GMS2. And with this comes the possibility of much more precise calculations using the precision of double values. Currently how gamemaker and most game engines work is by using floating point math to calculate "world space" or in GMS2's case, calculate the coordinates of your instances in a gamemaker "room". Unfortunately due to the limits of floating point math,
(8 digits 99999.99) once an object reaches a point past 99,999.99 x,y,z(depth) it will encounter precision errors. What this does it cause awful render "jittering" caused by the computer's inability to calculate the exact coordinates of the object due to the limit of floats.
Example of precision loss as coordinates get larger:
99.00000
990.0000
9900.000
99000.00
990000.0
I know that gamemaker is more designed towards smaller projects which really don't need precise math or very large rooms, but I call on YoYoGames to go against the grain and give their engine full 64bit support when 64bit is released in the future. I think that not only will this future proof GMS2 as an engine, but it will also make GMS2 a sought after resource for creating amazing large scale projects which not many engines are currently capable of doing.
When it comes to performance demands of double precision, there are minimal losses when executed on a 64bit system. This means that there would be little to no effect on the actual performance of the engine itself. This is due to how 64bit processors actually calculate math. I don't know how Gamemaker works on the backend, but I have enough experience in several other programming languages to know that this is no small task.
One modern game that uses this feature is StarCitizen. This allows that game to have a nearly infinite world with precise collision no matter how far from the origin(0x 0y 0z) you are. What I am asking is that YoYoGames consider something like this when the future 64bit update eventually comes into the works. This will most likely become the standard in the coming decade as there are less and less 32 bit devices. Why not go all the way when GMS2 gets updated to 64bit and future proof the engine? Imagine being able to create rooms with usable space up to 999,999,999,999.0000xyz to -999,999,999,999.0000xyz (nearly two trillion pixels squared!) without losing any kind precision. The possibilities for massive games are endless! =P. This combined with 64bit memory integration could make GMS2 an even greater engine/tool than it already is!
Anyway thanks if you read all the way to the bottom of my ramble, I know it was a little tech heavy, I just felt that this needed to be said. Computers are continuing to evolve and the tools that use them should evolve with them to allow greater possibilities for us all!