Hi everyone,

Thanks for all the replies, definitely sounds like cross platform is a
serious headache , which is a shame as it would be good to see more titles
cross platform.  Spoke to my friend again today (and without the beer
addling  my brain quite as much  this time lol) and he said what all of you
have said in that although Xamarin  can do a lot cross platforming  there
can still be a need for some specific platform coding.

Again thanks for all the replies 

Paul Lemm

-----Original Message-----
From: Gamers [mailto:gamers-boun...@audyssey.org] On Behalf Of Dennis Towne
Sent: Sunday, November 16, 2014 6:53 PM
To: Gamers Discussion list
Subject: Re: [Audyssey] cross platform programming

Because all of my baseline code is in C++, I ended up writing a bunch of
shims for different operating systems.  I'm pretty familiar with cross
platform porting, so when I need something that ends up being different on
different platforms, I just write a shim for it.
Examples of shim layers would be general purpose thread handling, tests for
file existence, and basic network sockets.

Above the basic shim layer are some more modular pieces.  A really good
example is audio handling:  cross platform audio is a nightmare, so I wrote
my own audio stack containing the pieces I need and plug that into a driver
layer.  I'm currently using portaudio, but if I needed to swap it out for
something else, I could.

Another utter disaster for cross platform porting has been the wxWidgets
toolkit.  It's about as cross platform as something that's completely not
cross platform at all.  As a result of this, I use as little of wx as
possible, and use my own libraries instead.  Instead of using wx threads, I
use my threads; instead of using the buggy and constantly crashing wx HTTP
downloader, I use my own downloader.

I've really only been big on the cross platform thing for a couple years
now, but even so I have a pretty solid library of parts to work with, and
it's getting a lot easier to get things done on my supported platforms.

The moral of my story is twofold:  First, be very wary of anything which
claims to be 'cross platform'.  In some cases, like wxWidgets, 'cross
platform' means 'not at all cross platform in any way which is actually
useful for real projects'.  Be prepared to replace piece of cross platform
libraries which do not work correctly.

Second, be prepared to write your own shim code.  Isolate it as best you
can, design common interfaces for it, and put it somewhere centralized.
Write quick and dirty test cases for it that run on all your supported
operating systems.  Avoid putting platform specific code in your
applications unless there's a logic organization reason for it:  having
different versions of fopen in your code is bad, but having a chunk of code
for windows apps which checks for administrator permissions is probably
necessary.

Dennis Towne

Alter Aeon MUD
http://www.alteraeon.com

---
Gamers mailing list __ Gamers@audyssey.org If you want to leave the list,
send E-mail to gamers-unsubscr...@audyssey.org.
You can make changes or update your subscription via the web, at
http://audyssey.org/mailman/listinfo/gamers_audyssey.org.
All messages are archived and can be searched and read at
http://www.mail-archive.com/gamers@audyssey.org.
If you have any questions or concerns regarding the management of the list,
please send E-mail to gamers-ow...@audyssey.org.


---
Gamers mailing list __ Gamers@audyssey.org
If you want to leave the list, send E-mail to gamers-unsubscr...@audyssey.org.
You can make changes or update your subscription via the web, at
http://audyssey.org/mailman/listinfo/gamers_audyssey.org.
All messages are archived and can be searched and read at
http://www.mail-archive.com/gamers@audyssey.org.
If you have any questions or concerns regarding the management of the list,
please send E-mail to gamers-ow...@audyssey.org.

Reply via email to