Considerations for cross-platform games

BlitzPlus Forums/BlitzPlus Programming/Considerations for cross-platform games

Markh999(Posted 2005) [#1]
I am writing a BlitzPlus game that I plan to run on a number of unknown platforms (different speeds, different graphic capabilities, standalone, network etc.).

What do I need to consider when writing my game to ensure it covers as many platforms as possible? For example:

- Is Blitz3D or BlitzMax a more robust option to write the game in (it is only a 2D game)?
- will using the clientwidth and clientheight(desktop) handle the different screen resolutions ?
- what is the most efficient way of making the game run at the same speed on different machines ?
- are there any commands to avoid ?
- are there any known bugs that can be avoided ?
- are there any considerations if the game is run on a network (it is NOT a network game but well may be installed on one)
- Presumably its best to disable debug before creating the executable.

Any help or pointers would be much appreciated.


Beaker(Posted 2005) [#2]
Blitz+ is probably more compatable than any other version of Blitz as it only requires DX1.

Speed can be throttled or you can use delta timing.

I don't know of any commands or bugs that need to be worked around.

Network can be ignored.

Disable debug before creating executable (for speed) but sometimes it is worth creating a debug version to iron out problems and find bugs on other machines.


Grey Alien(Posted 2005) [#3]
Or you can use the Retro64 method for timing (search these forums for more info) but most people use Delta timing. I do all my code writing with debug on so I get proper error messages instead of crashes and can use the Stop command. I turn it off for final exes as it can really slow down some functions. Beaker's point about leaving it on for testing on other machines is valid.

Oh yeah, here's an important point, If you run you game on a machine without a soundcard, it'll crash as soon as you play a sound sample. This is because LoadSound will have returned a null pointer. I actually test the variable of the first sound loaded and if null, I set a global varable to false. Then whenever I play a sound in my game I call a generic function that checks this global variable first and only plays the sound if it is true. This will prevent crashes on machines with no sound (i.e. office machines)


Markh999(Posted 2005) [#4]
Thank you very much guys - much appreciated.