Minecraft + Physics + WebGL 3D = Amazing

DZone 's Guide to

Minecraft + Physics + WebGL 3D = Amazing

· Web Dev Zone ·
Free Resource

Minecraft is addicting. This is a truism, and roughly synonymous with 'making things is fun.'

Minecraft does not look beautiful, however. And its physics are hilarious, and..well, if you're criticizing it on these grounds, you're not really that interested in Minecraft.

But sandbox games can sometimes also boast the some of the commercial-style sophistication Minecraft lacks. Populous was popular around 1990, and From Dust -- an incredible-looking game, though reviews were mixed -- was released just a few months ago.

Because sandbox games simulate the world, they don't seem an obvious choice for web games -- because web games usually seem as far from simulating as possible.

But because powerful GPUs are widespread these days -- and because WebGL exists -- and because sandbox games have resurged in popularity over the past few years -- now seems like a perfect time to put something like From Dust into the browser.

But of course, this seems hard. Even From Dust -- created by acclaimed game designer Eric Chahi -- suffered from low framerates, and many other technical problems.

And then came Florian Boesch, graphics programmer extraordinaire, sandbox gamer, and serious WebGL developer.

Before reading on, take a look at his results:

He made that in WebGL. It runs in your browser. (Though my computer can't handle it.)

That's right -- the water erodes the landscape. And it's interactive.

Florian's blog discusses the program in some detail, and links to most of what he doesn't explain in the current entry.

If you're casually interested in WebGL development, read Florian's post for a high-level overview. If you're really serious about graphics in the browser, follow some of his links (which delve into computer graphics pretty deeply) and follow as far as you want to go.


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}