I’ve finally got OpenGL rendering Banished with identical output to both the DX9 and DX11 renderers. I’ve still got a little bit of work to support the boring parts of a rendering engine, such as handling window resizes, switches to fullscreen, and handling renderer changes at runtime. But all that’s platform specific code. What really matters here is I now have a working GL implementation that should (hopefully) seamlessly work on OSX and Linux.

Here’s a screenshot – which is pretty boring, except it’s rendered with OpenGL and isn’t missing any features.

Initial tests show that the OpenGL renderer is currently not as fast as DX11, but faster than DX9. Not having even tried an optimization pass yet, I’m fairly happy with the level of performance so far.

Getting OpenGL to work has been a bit of a learning experience. I hadn’t used GL since around 2003 – and obviously it’s changed a lot from 1.1 to 4.5. At least I no longer have to use a ton of extensions (but still a few!).

To support a large variety of systems, I’m limiting the renderer to using version 3.2. I like some of the API features in OpenGL/GLSL 4 better, but 3.2 supports everything Banished needs, and potentially supports everything I’d need for future games in the next few years.

Now that I do have OpenGL working, I can’t say that it’s any better or worse than Direct3D 9 or 11 (not that I didn’t do a bit of yelling and face palming while getting the implementation working). I don’t like the API as much as some others, but I’ve got a lot of years of bias on graphics APIs.

In the end it’s still just getting triangles on the screen mapped with textures with some fancy shader programs running. Anytime I’ve used a new system it’s required a new platform specific renderer – Playstation 2, 3, GameCube, Wii, Xboxs, etc all use different APIs, and in the end you get the same picture on the screen at the end of the day. Using GL is really no different. When Vulkan, Mantle, and DX 12 are more widely used, I’ll be doing this all again, but probably with different games.


    May 1, 2015 10:47 am

    Sounds good Luke. Glad you managed it to get it working with nice performance.
    And all this contributes on future projects which is one of the best idea’s I think. 😀

    May 1, 2015 10:51 am

    Vulkan is almost certainly the long-term future. At least it supports GLSL, so that’s one less thing to learn.

    May 1, 2015 11:02 am

    Awesome ! I have no idea what all this means but i’m guessing its good 😛
    Any chance this will solve the lagging issue we get when we hit around 1000pop and above ?
    I love the game, the mods are amazing, keep up the good work Luke !

    May 1, 2015 11:13 am

    Yay! Any plans about beta testing on an extra steam beta branch? (Linux here)

    May 1, 2015 11:40 am

    Awesome ! What a relief for you !

    May 1, 2015 11:48 am

    Muito bom, um melhor desempenho para futuras novas funcionalidade, quanto melhor renderização OpenGL.

    Abraço e Continue sempre melhorando
    Brasil – Piracicaba – SP

    May 1, 2015 12:30 pm

    “but probably with different games.”
    Let us know when that happens, so that we can throw money in your general direction once again.
    Love your work.

    May 1, 2015 12:51 pm

    Great work. Non windows users getting a great game to play :)

    May 1, 2015 1:53 pm

    It’s impressive to look at everything you’ve been able to accomplish on your own. With this, you have accomplished something where many major game publishers have failed to deliver. Really outstanding.

    May 1, 2015 2:44 pm

    Congrats! Then there’s the testing, Intel, Nvidia, AMD, open-source and closed source drivers, different desktop environments, windows managers, possible additional dependencies. The usb-sticks/live-cd’s/VM’s will be needed a lot, even if aiming only for Ubuntu/Mint/SteamOS/OS X.

    When I ditched Windows for Linux, I’ve been waiting for native version so much! Gallium3d and even Wine can render the game pretty good, but native is native and I can go back to maxed settings.

    May 1, 2015 2:50 pm

    Yay, sounds good for Linux support! 😀
    Keep it up, and good luck!

    May 1, 2015 2:53 pm

    you are a really good developer, with your own way. hopefully to see more of your fantastic game and development.

    I wish you good luck like Sapan :)

    May 1, 2015 3:36 pm

    Yay! I can’t wait to play this on my mac

    May 1, 2015 4:54 pm

    I’d buy this if I knew it had a linux binary :) .. I’d even buy it to do testing for ya.

    May 1, 2015 6:20 pm

    Looks awesome! Can’t wait to play this on linux natively :)

    May 1, 2015 8:56 pm

    You are great, thank you sir

    May 1, 2015 9:26 pm

    Great to hear yet.
    Im here just waiting for a Linux version.
    Just a Hint: for the platform specific parts, for Mac and Linux, I _deeply_ recomment you take a look at SDL2. It will save ou from a lot of pain (specially in Linux)

    Tom Duhamel
    May 1, 2015 11:51 pm

    I’m one of those who never managed to get Banished to run on Linux, so I’m glad to learn that you are another step forward to let me play this game again. I played it on Windows, but I suddenly decided to give up on Windows last fall. I never regretted the move, except for Banished that won’t work, despite the fact that most other games are working just fine.

    Miss Doo
    May 2, 2015 1:37 am

    You have no idea how excited about this I am! I had Banished on a Windows computer but I no longer have access to said computer. I’m a daily Mac user, so this is so awesome. I appreciate all the hard work you’re doing to get it accessible for us weirdo computer users! *happy dance*

    May 2, 2015 2:20 am

    Thanks for all the hard work. Looking forward to use a native version of banished on my Mac.

    May 2, 2015 3:15 am

    Yay, thanks! Penguin party time soon :-)

    May 2, 2015 4:52 am

    Its very great game, but I’ll buy it only with multiplayer feature (still have hope)

    Liam Dawe
    May 2, 2015 6:35 am

    Looking forward to the Linux version, hope it uses SDL2 as well, will make windowing nice on Linux.

    May 2, 2015 9:01 am

    Thats so great! If you need help to translate it into german, i can help you.
    Keep it up! I love banished!

    May 2, 2015 6:32 pm

    Linux user, here. Take my money! :)

    Philippe Morin
    May 5, 2015 11:38 am

    If you ever need testers for Mac OS 10.10.3 and Intel HD Graphics 4000 1024 MB (MacBook Air mid-2012), I’m available. I’m a casual gamer so don’t expect technical-heavy feedback from me. I’m a really nice and patient person though… 😛

    Philippe Morin
    May 5, 2015 11:38 am

    I forgot to mention that I already bought the game on GOG for PC.

    May 6, 2015 3:18 am

    I’m so looking forward to Banished on Linux! Thanks! :)

    Anthony Scopatz
    May 6, 2015 6:41 pm

    Thanks a million for supporting Linux! This looks great!

    May 8, 2015 1:01 pm

    Glad to see this is making progress. I have a PC copy with a wine wrapper that I played along time ago. Once this is native I’m looking forward to getting back to this game!

    May 9, 2015 8:15 pm

    Thank you so much for supporting Linux (&Mac)! I’m so exited to play your game! My friends love it, the press loves it, Let’s Players love it!

    This post made me actually buy the game on the Humble Bundle site (where they have a sale ATM)! :)

    May 9, 2015 8:16 pm

    There’s one question I have: Will the Mods be working on Linux if the coder was taking care of case sensitivity?

    May 10, 2015 2:23 am

    Can we expect a working fix for the infamous “Fatal Error… Runtime-steam-x64.dll” crash soon?

    May 11, 2015 5:47 pm

    Hello developer,

    About 6 months ago you mentioned that you may decide to make textile limit work. You explained that this would require pastures to ignore that limit so as not to interfere with food.

    The modding community desperately hopes you did not forget this an we beg you please please consider it.

    Regards, Shockpuppet (Colonial Charter developer)

    May 18, 2015 6:33 am

    Great news! I’ll buy it as soon as it s ready for linux!

    May 19, 2015 11:38 pm

    I spent about 5 hours playing Banished before I realised there was just not that much to it. Still I thought it was in development and so things would be added in time.

    But here we are over a year later and all you seem to be doing is rewriting graphics engines. A Great graphics dev != great game dev. You need to spend more time on gameplay design, less on graphics engines. Sorry for being harsh but I’m a paying customer.

    May 20, 2015 4:10 am

    Oh… I remember the time when people bought games and stayed at home with it, not complaining about more content for free.

    May 22, 2015 10:32 am

    Excited for the OSX port. I switched to mac when they made Windows 8, I think that the thing that I miss most is Banished.

    May 22, 2015 8:44 pm

    Hey Ash! Actually it’s his first game! There are good mods that add additional features to the game!

    The idea is that he can now use the engine to build new games with longer gameplay etc – rewriting the engine does help him to deliver the game on mac and linux.

    I’m a LINUX user and I’m a paying customer, too! And that’s why I only buy linux games. Got it? 😉