Cross Platform development
by standardization.
If
your going to make program work on different operating systems, you
need a lot of know how about etch of operating systems, in order to
support all operating systems.
The alternative is using
cross platform development libraries.
First of all I'm going to
talk about SDL and Allegro this two provides every thing you need to
make games, the idea is that you have standard commands you can use
to make sure that your game works on all operating systems they are
ported to.
SDL
* Support Graphics 2D and
3D
* Handel display
window/full screen window
* There events for
Mouse/Keyboard/Joystick/ Multi-touch.
* Audio 8bit and 16bit.
* Filesystem
* Threads
* Supports big and little
endian cpu's
Allegro
* Support Graphics 2D and
3D
* Handel display
window/full screen window
* There events for
Mouse/Keyboard/Joystick/ Multi-touch.
* Audio 8bit and 16bit.
* Filesystem
* Threads
* Supports big and little
endian cpu's
So they are similar and
provided what you need to make a games, some even make programs in
this but, that's not a good idea, there are better cross platform
libraries for programs.
Linux/BSD | Windows | AROS | AmigaOS4 | MorphOS | MacOSX | Haiku/BeOS | Score | |
Allegro | yes | yes | no | yes | yes | yes | yes | 6 |
SDL | yes | yes | yes | yes | yes | yes | yes | 7 |
Svgalib | yes | no | no | yes Wrapper for Picasso96 |
no | no | no | 1 (2) |
Picasso96 | no | no | yes | yes | yes | no | no | 3 |
Cybergrephics | no | no | yes | yes | yes | no | no | 3 |
Haxe | yes | yes | no | no | no | yes | no | 3 |
The Svgalib port for
AmigaOS4, was done by me, it might need some work, its not well
designed, but there are NOT many games or programs that use this
library, if you look at the table you see that SDL is most supported,
Allegro is not so well supported.
Some information
Allegro 5 and Allegro 4 are not 100% compatible, and only Allegro 4 is
officially supported by AmigaOS 4, I have not looked at Allegro 4 so I
can't say accurately what the difference are, anyway I have been
working a bit on Allegro 5 but not a complete port, I have only
implemented what was needed for a Game, so its not even based on
Allegro 5 source code, so don't expect a full Allegro 5 port from me
for AmigaOS 4. Developer using the
nick "Hitman", ported Allegro 4 to AmigaOS 4.
As I understand it Cybergrephics is the native graphic library for MorphOS and it was addition to Graphic.library on AmigaOS3.1, when installing a True color graphic card in your Amiga, Picasso96 is also a graphic library to enable true colors for AmigaOS3.1 / Commodore Amiga computers, on AmigaOS4.x Picasso96 is slowly becoming obsolete if your going to make new program or game. How this implemented in AROS I do not know all I know is that its supposed to be supported.
(I have excluded mobile platforms etc, or else table gets to big.)
Linux/BSD | Windows | AROS | AmigaOS4 | MorphOS | MacOSX | Haiku/BeOS | Score | |
QT | yes | yes | no | yes | no | yes | yes | 5 |
MUI | no | no | yes (clone Zune) |
yes | yes | no | no | 2 (or 3) |
Reaction | no | no | no | yes | no | no | no | 1 |
GTK | yes | yes | yes (Zune wrapper) |
no | no | yes | yes | 5 |
Windows Forms | yes (mono) |
yes | no | no | no | yes (mono) |
no | 1 (or 3) |
wxWidgets | yes | yes | no | no | no | yes | no | 3 |
AGAR | yes | yes | no | no | no | yes | yes | 4 |
Best score is 7 in this
table, but no GUI system support all 7, so in other words GUI's are
the tricky part when creating a cross platform application, the best
GUI's to support is GTK and QT, then depending on what OS you wont to
support and programming language you use MUI (Magic User Interface) or
Windows Forms.
While no GUI support all
the 7, the build system is what solve the problem, this how you can
have different GUI's for different operating systems, you really only
need to support two MUI & QT or GTK & MUI and all 7 operating
systems are supported.
Different Linux
distributions are not listed here because they are just repackaged Libs
and programs, with different install process and package managements,
I know some might disagree but lets keep this about cross platform
development and not about what brand you put on your Linux
distribution.
Anyway GUI and how things
works is what makes operating systems unique to the users, if all
operating systems behave the same there is not point having a option to
choose is there?