It’s St. Valentine’s day! Apart from delivering coffee and jam on toast to Mrs. Prince, I’ve been beavering away losing hair and sanity making our games work nicely on Linux through Steam. I now have about two handfuls less hair, but also for your perusal, delectation and delight, all of our Steam games working on Linux!
It also happens to be the case that Valve are celebrating the official release of Steam for Linux starting today, and so we’re doing a special sale of all our games on Steam at 50% off! Now there’s a reasonable chance you’ve already bought one of our games if you’re reading this blog, so if you fancy spreading the love a bit, why not buy the gift of a game for that special friend that you forgot to buy flowers for this morning? A copy of Titan Attacks for the object of your affections will surely go a long way to getting you past first base. You might even find out what first base is! I never got to find out myself, I just looked at Mrs. Prince funnily one day and bam! Pregnant. But that’s another story.
Don’t forget that all our games are also “Buy Once, Play Anywhere” – your games will run on any operating system even if you buy the Linux version. And all you existing Puppygames customers – you can still go here to get your FREE Steam keys (note that you have to register your game first though).
Java On Linux
For the technically inclined, you might be interested to know how our Java stuff works on Linux. Well, the Steam versions are actually fractionally less interesting in this regard, as they’re currently 32-bit only, but if you grab one of the downloads from Puppygames you can see how it works. We’ve got a hybrid 32/64 bit OpenJDK 7 server JVM. Both the 32 and 64 bit binaries are included in the same JVM, and I’ve hacked out the common part of the ginormous rt.jar and separated the two architecture specific parts into rt32.jar and rt64.jar (the arch. specific parts largely deal with integration with X). The appropriate rtxx.jar is prepended to the normal rt.jar classpath using the -Xbootclasspath/P option (see the shell script that executes the game).
One of the best bits about using Java on Linux is that the OpenJDK people have worked out all the compatibility problems, dependencies, etc. with Linux, which means that I am literally writing once and running everywhere, just like was almost hinted at by Sun back in the day. Obviously LWJGL has a big hand in the cross-platform aspect as well, providing trivial handling of graphics, audio and input handling.
Steampuppy
We are the custodians of the Steampuppy library, which is our Java interface to the Steamworks APIs. Steampuppy is a very straightforward way to do all the fancy things in Steam such as leaderboards, achievements, DLC, DRM, or whatever. This release sees me lose my g++ virginity – I’ve actually gone and built a libsteampuppy.so library, which cost me only one handful of hair. I actually did it using the Eclipse C++ IDE, so I’m not quite as manly and bearded as a proper Linux beard. This one’s just 32 bit at the moment but I’ll do a 64 bit one when Steam gets a bit more 64 bit friendly.
It turns out that Java + LWJGL is a really awesome way of developing Steam games. If you’re developing a game in Java for Steam, you’ll be wanting to use Steampuppy too. Drop us a line.
I bought all 3 of them just now, thank you! 😀 Also, I love the Steam <3 Linux image.
Awesome news!
I already own all of them, but can’t wait to get home to replay them and check out the Steam achievements 😀
Awesome work guys!
Oh yeah! I’ll check it out on my Ubuntu system!
Might as well get the games I still don’t own from you to show support 😉
Great job!
Absolutely loving the games. I hope you release Ultratorn on Steam too, I’ll be getting it the very minute it’s out.
Ultratron is currently in-dev but scheduled for release fairly soon.
That’s great news! Though I always imagined Linux + Steam + Java would make an excellent fit.
This “Steampuppy” library sounds very useful. Are you going to open source it? I certainly know a handful of developers making games with jMonkeyEngine who would love to have a closer look at it.
I can open source the public part of it but the private bit which wraps Steam’s APIs is under NDA with Valve. Of course it’s rather easy to decompile … 😉
Sounds good to me 🙂
I can’t seem to subscribe to new comment notifications in here, but you should have my e-mail, so feel free to send e a quick note if you get around to open sourcing it.
So we can contact puppygames for mor info about the Steampuppy library? I work with the JMonkeyEngine too! It’s amazing fir me to see some Java support here! It’s normally so hard to find!
Sorry about the word mistakes! I didn’t see those before I submitted!
I don’t really have the resources right now to actually “support” Steampuppy as such and it exists in the rather strange sort of world where half of it is entirely publically discussable and the other half is basically under NDA – and the public part is useless unless you’re already under the same NDA anyway.
I love the games, but I’ve run into a problem at first – all of them start in fullscreen, which is a mess on multimonitor setups (I could only see half the game). Could you change the default to be windowed so I don’t have to turn of my second screen on first install?
Absolutely loving them though, so much fun in Titan Attacks!
It actually chooses randomly on first run but fear not, you can tweak: check this post out.
Bought all three games and having much fun playing them!
Visiting your website just now, I can see there’s a fourth game called Ultratron. Are you going to release it for Linux on Steam as well?
Yes, though in a completely different form to what we currently have on display….
I think you forgot to mark the DLC as working on Linux. Or is it not available on Linux yet?
We did mark it as Linux – seems Valve just don’t stick a penguin next to DLC yet. Perhaps. At any rate it’s 100% compatible.
Ah, ok. I was confused since CK2 DLC shows as Linux compatible. Thanks for answering.
Thanks for taking the time to support linux. I already owned Revenge of the titans before, but now I bought your other titles, too. Awesome! 🙂
Thanks hugely for your support!
Great work on Droid Assault 1.91.4 and nice write-up! I’m running it on a Ubuntu 12.10 64 bit system and the performance is excellent.
I also waiting for Ultratron new version after seeing the update video. I bought the Ultrabundle in past because your games remember me ald good days from C64. Still missing the DLC from ROTT and I will probably buy it someday. +1 for linux. Good luck inf future projects 🙂
I bought Droid Assault a couple of weeks ago & seeing that & the others show up on Steam gave me the incentive to buy them as well, Ultratron is on my list to buy as well. THANK YOU!!!