Or... Package your game into a vmdk with something which uses WINE and XFCE or LightDm... Just a handful of megabytes and everyone is happy Plus, no need for installers or the like. Write once, run anywhere... If that rings a bell
Or... Package your game into a vmdk with something which uses WINE and XFCE or LightDm... Just a handful of megabytes and everyone is happy Plus, no need for installers or the like. Write once, run anywhere... If that rings a bell
I once tried to change the world. But they wouldn't give me the source code. Damned evil cunning.
In theory a minimal system with just the desktop environment on top of the linux kernel and the libraries you need should zip up pretty small... So it'd be like a Java VM, just full on x86
Might do this for my entries from now on...
I once tried to change the world. But they wouldn't give me the source code. Damned evil cunning.
It's not that difficult when you are making apps with Lazarus Simplest requirement is not to include Windows in the uses list. Second is converting all paths to fit operating system. For this there is a internal constant PathDelim, which is \ or / depending on OS. But also you can get tips from nxPascal FixPath() function
That should be all there is to crossplatform. Use OpenGL, not DirectX. Some differences with dll libraries, but that's a problem outside of compiled executable.
Actually, this is much easier to say than to do. In reality, when you have worked on Windows platform for too long, it *is* difficult porting to other platforms. OpenGL is nice, but its initialization differs (unless you use GLUT or similar helpers, which have its own problems - for one, they are not readily available on Windows and are outdated). Sockets (anything beyond trivial) are considerably different due to WinSock specifics. Other helpers such as temporary path folders, registry configuration, dynamic libraries, etc. all all different too.
Also, you need to be very careful with the code you write to keep it portable.
To resume, for some very basic or crippled games/applications that will work and look poorly on all platforms - sure, it is relatively easy to acomplish, but as soon as you start working on features beyond trivial you *have* to start using platform-specific routes, which makes the code considerably more complex by adding many different code paths. Just take a look at actual LCL source code to see the real scope of a cross-platform project.
However, it is still a good idea to pursue multi-platform PGD challange and it will help people to work out issues in their code. Making and running your applications on different platforms is an ultimate challenge for writing applications, that requires discipline and experience to make proper architectural decisions.
Or you could write it using Oxygene for Java and it will run on Windows, Linux, and Mac OSX if Java is installed LOL
Games:
Seafox
Pages:
Syntax Error Software itch.io page
Online Chess
http://gameknot.com/#paul_nicholls
Games:
Seafox
Pages:
Syntax Error Software itch.io page
Online Chess
http://gameknot.com/#paul_nicholls
You know guys, if this was a Delphi-only competition then things might be a little easier. I joke!
However multiple platforms does provide the bulk of the tool, development and testing logistical problems of running competitions. And in the future it looks to be even more level of a playing field with at least 5 (maybe 6 including the web browser with HTML5?) major platforms PC and mobile combined. I can only see volunteered "judges" as the way to make official scores for entries.
However there can be some kind of unofficial scoring or value I guess, even for those that don't make their game for ALL possible platforms. That would require all entries to submit at least 1 video capture of their game after being completed, being played, recorded and posted on YouTube or Vimeo for public viewing. That does have a little bit of a problem of course as not everyone may have the software or know-how to make such a recording of their game or an account on YouTube or Vimeo to post with.
Not as big a problem as trying to port or code their game for all top platforms, so it's a possible solution. All submissions that wanted to take part in the "community impressions" scoring would need to make a thread and post the video so that it's embeded into the post so it can be watched here on PGD. From there all PGD community members can vote by using the "Rate This Thread" option and giving it their own personal rating as they seem it fit. That's an easy way of doing that, but is it anywhere near what you guys would like in the next competition?
From personal experience (I develop on a Mac exclusively now.) setting up your project from Windows to a Mac takes a lot of IFDEFs or a separate unit to handle resource paths (like what I use now) and some extra configuration in the Project Options to account for multiple platform compilation and bundling. It's not impossible or so complicated that it's barely doable without a rocket scientist degree, but it is a wee bit involved (you need to know Lazarus well!) and you might need some extra guidance from someone that has done it themselves often enough before.
It took me a good month or so to get Lazarus working for me on my Mac and to convert some of my projects so that they'll compile and run in the IDE and debug properly.
Sadly with the removal of X11 as standard in the latest version of Mac OS X (Mountain Lion) you now require a 3rd party (open source) project version of X11 for Mac to run my games. I still haven't weeded out X11 linking from my projects yet it seems. I have yet to figure it out.
So there is a lot of know-how involved when developing across platforms...
Bookmarks