One major challenge I have encountered in this foray into cross-platform development has been getting consistent debugging and analysis information. Doing this on one platform can be tough enough, but when doing it across different platforms, there aren’t many consistent tools or standards.
Summarizing my needs:
1) I need consistent, fast text output for debugging.
2) I need clear messages from my program which indicate what went wrong.
3) I would like some kind of performance profiling tool, to measure what parts are too slow, so I can optimize them.
4) I would like to have some idea about what my RAM usage is, to help spot memory leaks.
Just thought I’d share some silly fun stuff. The Angry Video Game Nerd (James Rolfe) and Mike Matei of cinemassacre.com signed a promo card of our retro Mac game El Ballo! Retro gamers…UNITE!!
- Casey
Read more..As expected, delving deeper into SDL yielded the next step. I present to you, a white square bouncing off of a white line! Behold the cross-platform compatible miracle:



Actually, I’m pretty excited about this, since it is the first time I’ve ever made a cross-platform game demo, even though it’s a tiny one. It works! Woohoo! As planned for the main recipe, this uses OpenGL, GNU make, and SDL on all three platforms. Additionally, on Windows, I use MinGW to provide a common Unix-like build environment, to help match what I use on OS X and Linux. Seems to be working out pretty well so far!
Now that we have basic windowing and graphics up on all platforms, it’s time to get to work on the engine, 3QuadX, so we can do something a little more sophisticated.
- Jake
Read more..It’s not much, but I finally managed to learn how to use GNU make well enough to manage a cross-platform project successfully. All the project does is create a small library, which I call libFoo, and a main executable, called HelloWorld. I’m sure you know what an executable is, but for those who may not know what a “library” is, it’s basically a pre-made “sub-part” of the program. The engine, which you may recall is titled 3Quad, is designed to be built as a stand-alone library if needed, so it was necessary to make sure I could build it as a library on all platforms.
All the program does is output the string, “Hello, World!” from the main program and “Hello from libFoo too!”, to prove that the library is being called correctly. HelloWorld is notably simple, but it’s the traditional starting point for just about any new programming adventure. Here are the screenshots from each desktop platform:
(I named my Windows and Linux installations, beavis and butthead ;-P)
So there it is in all its glory (and about as exciting as dirt), our first truly cross-platform compatible program
What’s really cool about it is that, as planned, I use only one set of source files and Makefile for all platforms, as opposed to an IDE project for each platform. To actually build the program on each platform, all I have to do is boot into the appropriate OS, then navigate to the project folder on the command line and type “make”, and it magically spits out the appropriate build for that platform. Yes, it is that easy!
That said, figuring out how to set it all up to be automatic like this took quite a bit of effort. Writing the Makefile itself, which manages the build process, took lots of trial and error and reading/studying/etc. Once I got it working on the Mac, it was trivial to get it running on Linux. Windows, on the other hand, was not as easy, but I managed to figure it out too, as you can see.
So the first step is accomplished, woohoo!
Next up: Make it a proper application on each platform, instead of a little command line executable. I’ll probably delve into SDL for that.
- Jake
Read more..










