{"id":2441,"date":"2012-03-26T22:56:35","date_gmt":"2012-03-26T12:56:35","guid":{"rendered":"http:\/\/www.vectorstorm.org\/?p=2441"},"modified":"2012-03-26T23:05:53","modified_gmt":"2012-03-26T13:05:53","slug":"linux-asteroids","status":"publish","type":"post","link":"https:\/\/www.vectorstorm.com.au\/2012\/03\/26\/linux-asteroids\/","title":{"rendered":"Linux Asteroids"},"content":{"rendered":"

\"\"<\/a>So I’ve gotten through most of the issues preventing me from building VectorStorm games on Linux.<\/p>\n

But in order to do it, I’ve had to disable my normal attempt to take over memory allocation;\u00a0 that’s all still causing compilation errors inside STL, via Box2D.\u00a0 More investigation required.\u00a0 I really do want to keep control of memory management as much as possible;\u00a0 giving that up really relinquishes too much debugging power for my comfort.<\/p>\n

But it works.\u00a0 Both 2D and 3D rendering, all hardware-accelerated, with bloom, lighting, and other shaders all functioning correctly.<\/p>\n

As part of this, I’ve upgraded VectorStorm to use Box2D version 2.2.1.\u00a0 This was a pretty big API change and required a lot of under-the-hood changes to VectorStorm’s collision and physics classes.\u00a0 But it’s also a lot more stable and reliable than the old version 2.0.0 that I was using before.\u00a0 Not seeing bullets bounce off of asteroids any more, yay!<\/p>\n

I’m now treating Box2D as an external dependency;\u00a0 that is, I don’t provide it inside my source control repository any more (again, except for under OS X, where I provide a pre-built framework binary.\u00a0 Because Box2D doesn’t provide one, or a way to build one).<\/p>\n

So I’ve verified that graphics, keyboard input, sound\/music, and file reading\/writing all work under Linux.\u00a0 I have not yet verified threads or networking, or gamepad support.\u00a0 But I imagine that those should be fine.<\/p>\n

I have more cleanup to do, though;\u00a0 in the process of making Linux work, I’ve broken OS X and Win32.\u00a0 So now I have to re-fix those.\u00a0 Hopefully tomorrow I’ll get stuff to a point where all three platforms will work at the same time!<\/p>\n

…and then I’ll get to think about iOS again.\u00a0 It never ends!<\/p>\n","protected":false},"excerpt":{"rendered":"

So I’ve gotten through most of the issues preventing me from building VectorStorm games on Linux. But in order to do it, I’ve had to disable my normal attempt to take over memory allocation;\u00a0 that’s all still causing compilation errors inside STL, via Box2D.\u00a0 More investigation required.\u00a0 I really do want to keep control of…<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[4,3],"tags":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/po9WK-Dn","_links":{"self":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts\/2441"}],"collection":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/comments?post=2441"}],"version-history":[{"count":0,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts\/2441\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/media?parent=2441"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/categories?post=2441"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/tags?post=2441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}