I finally got chance to mess around with voxel.js the other night, and thought I’d have a little fun with it. You can do an awful lot of cool stuff with voxel.js and its associated modules, including generating terrain from a PNG heightmap. But I thought it might be cool to create structures from a PNG, so you can automatically have structures built and hoisted in front of you in the 3D world, based solely on a 2D graphic. Thus, kickcraft was born.
It works best with logos, where there is only a few colours in play and fairly distinct, simple shapes. It uses the incredibly useful png2json script from within the heightmap terrain module to turn a PNG image into a JSON document. From there, kickcraft loads it in, and looks up materials for the colours it finds in the RGB data for the PNG. There is a hosted demo here which loads the KickCode boot icon by default, but you can also click here to see it running with the image data for the full KickCode logo (you’ll need to keep walking to see the entire thing, as the draw distance comes into play). You’ll need to be using a browser that plays nicely with WebGL too.
I could do a lot of cool stuff to extend it - color shading/tinting the basic materials to match the source color would be a particularly nice first step forward, so then it could automatically deal with the entire RGB range, rather than as it does currently, matching specific colours to the materials to use. Then a hosted PNG to JSON converter would mean you could point it an image URL, and have it show up in the world!
In time it might well then work as a sort of mosaic structure builder for even more complex images, but for right now it was a fun little experiment to create a 3D world with a little something of mine in there. If you’re interested in getting started with WebGL then voxel.js is a great, fun way to dive in.
Getting started with Ruby 2.0 and Rails 4.0.0 beta 1
It’s an exciting time to be a Rubyist as we get lots of new versions of things to play with. Ruby 2.0 is finally out, and with it a raft of updates across the board for various Ruby related software, including the first beta of Rails 4!
To get up and running quickly with Ruby 2 and Rails 4 (using RVM), it’s pretty easy:
rvm get stable
rvm install 2.0.0-p0
rvm use 2.0.0-p0
rvm gemset use rails4 --create
gem install bundler
gem install rails --pre
If that last command doesn’t work, try:
gem install rails -v 4.0.0.beta1
And then when the gems are installed, you can create a new app using Rails 4 beta 1:
rails new new_rails4_app
If you have SSL cert issues with Bundler under Ruby 2.0 (it’ll error on the Rails app creation as it runs bundle install by default), then you might find that the following helps:
brew install openssl
rvm get head
rvm reinstall 2.0.0-p0
The latest RVM builds against packages found in Homebrew by default, so it’ll use the Homebrew OpenSSL. You’ll then most likely need something like these commands to sync the Homebrew OpenSSL CA certs with the system keychain, or indeed this tool will add a crontab entry that regularly keeps those certs in sync, useful if any certs change in future.
The other alternative is to skip bundling when creating the Rails app:
rails new new_rails4_app --skip-bundle
And then switch from HTTPS to HTTP in the Gemfile for the newly created app, although I wouldn’t recommend it and it’d be better if you can use the above instructions to get it working over SSL.
Once that’s all installed, you can get to grips with the latest changes in Ruby 2.0 and Rails 4.0.0, so have at it! I’ll be posting more about the features these new versions introduce shortly, so follow me on Twitter!
I’ve not been too excited about the Sony PlayStation recently. The vast majority of big game releases are multi-platform, and most of them end up having better DLC support on Xbox 360, as well as the online aspect being a lot better on Xbox Live. In fact, since moving house six months ago, I haven’t even unpacked my PS3 and set it up. I did trade-in my PS Vita though and pick up a second Xbox 360 for the office (for lunchtime guitar learnings on Rocksmith, and not lunchtime online sessions of Halo 4, of course).
I am still excited about the PlayStation announcement shortly though. It seems pretty nailed-on that this is the PS4 unveil (look for Sony’s stock on the floor of Wall Street tomorrow if they don’t unveil a next-gen console), but obviously the specs, the look of it, the tech and features, and most importantly the launch games are all up in the air. I don’t imagine we’ll get a firm release date or price today, although it’d be nice if they were looking at a worldwide launch rather than EU being months behind like with the PS3, and if the UK price wasn’t just the US price with $ changed to £.
The games will most likely be a mix of franchise favourites, I expect an Uncharted, Gran Turismo, Final Fantasy, and maybe even an exclusive Metal Gear Solid perhaps. Unlikely that any of these will show off too much or even give final titles (Uncharted 4? Gran Turismo 6? Final Fantasy 54?). But it’ll get the Sony exclusive buzz back which they so desperately need.
The specs and look of the console will probably turn out to be fairly uninteresting. Specs wise I think the next-gen will be a lot more even, with both Sony and Microsoft looking to use more off-the-shelf components so that the launch price is cheaper and more affordable, and they can start to profit on each unit much quicker (traditionally very difficult at the beginning of a new console cycle). The looks won’t be as outrageous as some suggest I don’t think - people won’t be making any console the centerpiece of their living rooms, and I think these companies know that now. Instead look for something that fits in nicely amongst other AV components, but with a traditional Sony fit and finish that suggests quality.
The most interesting aspect by far is features. The PS3 lagged behind the Xbox 360 in terms of the online service and offerings by a mile, only recently starting to make inroads with PlayStation Plus. An extension of this, with the Gaikai acquisition finally being put to use as a PlayStation branded game streaming service so that you can play PS3 games on the PS4, would be pretty compelling. Still will be interesting to see how they’ll let people turn their physical PS3 game collections into games they can stream on PS4, but it’d lay down the gauntlet for MS and the next-gen Xbox.
If they could also get the hang of reasonably and competitively priced day one download releases for their flagship games, they might even have a true 21st century offering on their hands… and about time too. One thing is for sure though, it’s make or break time for PlayStation with this next-generation now, and I fully expect that Sony will have either entirely missed the point with PS4, or will have absolutely nailed it. We’ll hopefully find out tonight.
Gaming an A
Some more real life game theory application as a group of college students exposed a loophole in the scoring for their class. When told that the top score on their exam would get an A, with everyone else graded on a curve adjusted behind the highest score, they decided unanimously to boycott the exam. By all getting the joint top score of 0, they were each awarded an A!
More details over on the NYT Economix blog, but it just shows how knowing a bit of basic game theory and being logical can pay off!