Voxel.js: Minecraft-like Browser-Based Games, But Open Source 110
Paul Fernhout writes with a snippet from Joystiq: "Voxel.js is a new open-source project designed to allow anyone to create 3D games that run directly in a browser. Created by Max Ogden and James Halliday, Voxel.js is based on JavaScript and WebGL, and makes it relatively easy to build Minecraft-like games that play in browsers like Chrome." Paul adds a link to this interview with Max Ogden about the creation of Voxel.js in 22 days. The main site is at Voxel.js.
ChromeOS criticism got knocked down a bit (Score:5, Insightful)
Re: (Score:1)
I don't see why we can't push non-critical functionality on rendering engines
Because it's a sad waste of system resources.
Re: (Score:3, Insightful)
So is everything that's not hand coded in assembly language.
Which is to say, so is very nearly everything.
Re: (Score:2)
Call me silly, but I think there is something to this "everything through the browser" malarkey. That's not to say everything should be on the cloud, but I don't see why we can't push non-critical functionality on rendering engines. A lot of mobile apps are just native interfaces to webservices anyway.
Wait, you want everything to run on a common software platform? How revolutionary. We could call it "Doorways", because the browser would provide a path to see into the possibilities. We could have a common add-on called "Glimmer" that provides additional functionality.
I can't picture any problems with such an approach.
Re: (Score:3)
"How revolutionary."
Haha. I also like the subtle little plug: "... browsers, like Chrome."
Chrome. Not Safari, or Firefox, or Opera, or Konquerer.
Re: (Score:2)
If it's about the engine, anything that works on Chromium should also work on Safari and Konquerer.
Also I have got several of these "works only with Chrome" webapps working just fine on Firefox.
Re: (Score:1)
Browser sniffing, without feature sniffing always drives me crazy...
Opera has a built-in User Agent switcher... And I find myself using it much more commonly than I would like.
Re: (Score:1)
You're silly
Installation is the big bottleneck these days (Score:2)
The cross-platform install process is easier with Javascript than just about anything else. That is the biggest win here -- beyond the idea of open source virtual worlds which others have done before. Perhaps that didn't used to be the case years ago, but it is now for any software that is going to quickly get mass adoption. Still, it's true that Android and iOS both try to make that easy -- if you've bought special hardware. HTML5 and related technologies like WebGL are trying to create standards for being
Re: (Score:2)
For me, Firefox 18 was unresponsive for a minute or so while loading one of the voxel.js demos. It eventually loaded. I have reported the issue as https://bugzilla.mozilla.org/show_bug.cgi?id=835076 [mozilla.org].
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
I reported the issue to Mozilla (as per the link in my previous post) so they can investigate and improve things on their end. This should then benefit other complex JavaScript/WebGL applications, especially if the voxel.js code is used in web-based games and other applications.
Works fine in Chromium (Score:2)
Thanks for the info. I ended up installing Chromium to run it.
As "eksith" points out in another reply, everything has hiccups at first. The important thing is that this is working with technology that is based around open standards. And the design is modular and expandable.
Re: (Score:2)
Re: (Score:3)
Good points. I've been feeling more-and-more lately that "if something does not have a URL, it is broken". :-)
And Minecraft worlds don't have URLs. Voxel.js world do. A simple seeming difference, but the implications are huge about sharing, discovering, mashups, archiving, expanding, and so on.
Here is a discussion where I explain that idea in more detail, that it's not so much the idea of a desktop app that is broken as the idea of an app without book-markable exchangeable URLs:
http://barcamp.org/w/page/611 [barcamp.org]
Re: (Score:2)
Chromium, Firefox (and kids), Opera, WebKit (and co)... pick your poison. My point was that the browser is a handy tool to publish applications and a lot of native applications can be made more easily cross-platform through web standards.
Think of it as the corollary to "everything is a file": "Everything is a service*" to be consumed by the browser.
*And by everything, I mean what makes sense to be on the browser. I.E. Documents, chat etc...
Re: (Score:3)
Re: (Score:2)
Compare that with James J Hill, who built his
Re: (Score:2)
Re: (Score:2)
The problem here is that legislation and regulation doesn't come about for the benefit of you and me, it's designed to benefit the policy makers and corporate executives who work hand in hand for mutual advantage. And the only way to avoid that is for there to be less political power for them to grasp.
Re: (Score:2)
What I think should be looked at is how the te
Re: (Score:2)
Seriously, clam down. :/ I mentioned cloud once and I understand the pitfalls. Outside the U.S. ulimited data is very rare and in the UK especially it's bad.
Re: (Score:1)
Re: (Score:1)
...and here I thought it was pretty much the norm, at least in 1st world (and well, anything not 3rd world), for internet connections - I know it is in Finland, and we don't have no stinking data caps either.
Re: (Score:2)
AC wrote: "needs webgl to run, I think that would have been more important to mention than the whole js thing?"
Good point, AC. I should have mentioned WebGL in the article summary. That is the probably the biggest stumbling block for lots of people running this. That was a problem I myself encountered with a crashing problem with Firefox 18 when I enabled WebGL, and worked around that by trying Voxel.js in Chromium, the open source version of Chrome. Still, in another couple of years, I would think WebGL mi
hurrah its like the 90's again (Score:2, Insightful)
this comment is best viewed in ________
and they recommend you install a web browser that is made by the largest advertising company in the world.
this generation is nuts
Re: (Score:1)
Those who do not forget the past are doomed to be ignored by those who do.
Re:hurrah its like the 90's again (Score:4, Insightful)
DHTML wars -> HTML5 wars
rinse, repeat
Flash took us out of the browser ghetto. Now we're back in it.
Looks they they are using standards to me (Score:5, Informative)
First, they say "Chrome version 23 or above or Firefox version 17 or above are recommended." So, you can try either.
I had problems using Voxel.js in Firefox 18 on the Mac, so I downloaded Chromium (the open-source fork of Chrome) from FreeSMUG , and Voxel.js ran fine it it. It was actually snappier than Minecraft on my machine, but that may just be because of a smaller world?
I feel I'd probably rather download Chromium once and then surf to web pages than download a Java application like Minecraft and deal with all sorts of issues when trying to use Minecraft add-ons (given Minecraft has not prioritized supporting community add-ons). It has been a pain to manage lots of incompatible Minecraft add-ons (my wife even wrote a tool to help our kid deal with that). Also, when you download Minecraft addons, they presumably with full permissions and so could do anything to your system like read or delete files. I presume that web pages in Chromium are much more limited in what they can do (even though I have heard about theoretical WebGL exploits).
http://news.slashdot.org/story/11/06/17/121236/microsoft-brands-webgl-a-harmful-technology [slashdot.org]
Here is a pre-built download link for Chromium if Mac users need it:
http://www.freesmug.org/chromium [freesmug.org]
Or people can build it from source:
http://www.chromium.org/ [chromium.org]
It would probably be fair to say WebGL is not that well supported everywhere. I had problems with it in Firefox as above. Still, it seems to me like this group is trying hard to use open standards with JavaScript and WebGL, so I'm not sure your criticism is fair in that sense. WebGL is supported by multiple browsers, but probably just not very well yet:
http://en.wikipedia.org/wiki/WebGL [wikipedia.org]
Still, give it time, and I expect WebGL (or something similar) will run most anywhere.
Anyway, this generation may be "nuts" in their own way, true. :-) The question is, is the "nuts" of a bunch of people across the planet getting together virtually to write free and open source software (for shareable virtual worlds of abundant virtual resources) more "nuts" than a bunch of people getting together to give us, say, the "Cold War" and the artificial scarcity of software patents and endless copyrights etc.?
Blog post with more background info (Score:5, Informative)
Thanks, Max! (Score:3)
Great blog post, Max. Thanks for chiming in. I've enjoyed your previous instructional materials about CouchDB and other things like "JavaScript for Cats".
http://jsforcats.com/ [jsforcats.com]
So far our cat has only expressed limited interest in that website, but maybe over time interest will pick up? :-)
For some reason, I think it would be really cool to put some sort of Couch-like database backend to this, even though I can't think of what it could be used for? :-) But that is the beauty of your well-architected modular a
Re: (Score:1)
Re: (Score:2)
Maybe a way to get more support for this work: http://www.knightfoundation.org/blogs/knightblog/2013/1/30/news-challenge-open-gov-launches-feb-12/ [knightfoundation.org]
Re: (Score:2)
"Reeks of Java"?
I stopped reading and started skimming there. Can't take you seriously when there are subtle jabs at a tool with no justification for your disposition.
I have other gripes with the article and project as well, but I can't think of a way to word them in a way that they can be perceived as constructive criticism, so I'll just leave it at that.
Re: (Score:1)
Re: (Score:2)
Well, the statement itself wouldn't have been bad if you had linked to something else (as you had done quite a bit in that article).
In any event, it's still a bit silly to me that your opinion on the matter is based on (what seems to be) others misusing it. Moreover, that said opinion makes you more partial to other languages and platforms that give you more rope to hang yourself with (and, in this case, require more work to achieve any semblance of stability/consistency), is even stranger to me -- it seems
Re: (Score:2, Insightful)
His justification is that he's retarded and doesn't understand Java.
Re: (Score:2)
And statements like that are just as bad as his, and mister AC above.
No language is safe from misuse and shit code. Some are simply more prevalent, and thus, have more opportunities to be bastardized.
Re: (Score:1)
And statements like that are just as bad as his, and mister AC above.
Worse. A simple sentence implying the writer does not like particular language without giving any explanation in article where it's not really even the subject is minor flaw, if even that. Calling someone a retard for this is sign of some major behavior issues.
I know I would be slightly annoyed if someone said the same, but about perl - I would not automatically think that the person is retard or even that he doesn't understand perl (although it's a possibility). All in all it would be of very small signifi
Faster than Minecraft for me (Score:3)
You may have found it slow, but I have found it faster than Minecraft on a desktop (Mac Pro with eight 2.8 Ghz Intel Xeon cores, where only 60%-75% of one core seems to be used by Voxel.js under Chromium). Granted, Voxel.js may be doing a lot less than Minecraft, or the demo worlds may be smaller, I don't know, so this is not a comprehensive comparison. But at least for something simple, Voxel.js seems very useable on a Mac desktop that is more than four years old and does not have especially fancy graphics
I don't get the blocks (Score:2)
In terms of graphics, it wouldn't be so hard to make surfaces a little bit more varied. Why the blockiness in Minecraft? Why not give people roundish and triangular things to play around with too?
Re:I don't get the blocks (Score:5, Funny)
And why was Schindler's List in black and white, anyway? Couldn't they afford color film?
Re: (Score:2)
The goal of Minecraft et al. is to provide very large (or sometimes truly infinite worlds). To achieve this you have to use extremely efficient memory storage. I don't know the actual figures but I assume Minecraft stores one or two bytes per voxel, which are approximately 1 cubit-foot, so a very efficient representation.
This simply isn't enough memory to store more then a few shapes (though a sphere dose seem a good choice).
Re: (Score:2)
They would be really flat people too.
Really it's 1.6 tall. And it's in meters, which is actually legit.
As XKCD teaches us 1.6 meters is about a CD diameter shorter than Summer Glau and about doorway width longer than a light saber blade.
Re: (Score:2)
A cubic meter, actually, I believe.. two blocks are just bigger than the player.
But that's not really all that efficient of a storage representation. By far, most of the blocks in the game are of two main type - air and stone - and almost every structure in the game is composed of some volume of mostly homogeneous blocks with perhaps smaller volumes of homogenous blocks suspended almost vacuole-like inside it - It might well be possible to more efficiently describe the landscape using the surfaces rather t
Re: (Score:2)
the blocky appearance of everything is a style choice
Re: (Score:1)
Re: (Score:2)
The same reason legos are square / rectangular. It's much easier to build with squares than spheres or whatever.
Re: (Score:2)
individual Lego blocks still come in a variety of shapes other than rectangular.
Re: (Score:2)
In terms of graphics, it wouldn't be so hard to make surfaces a little bit more varied. Why the blockiness in Minecraft? Why not give people roundish and triangular things to play around with too?
If you don't want to play the game, that's perfectly OK. Not every game is everyone's cup of tea.
But you could at least look at it before passing judgement.
There are far more shapes in Minecraft than just blocks. In fact of all the items, blocks are a minority.
Look at the bottom of this wiki page: http://www.minecraftwiki.net/wiki/Items [minecraftwiki.net]
Each and every one of those things is a non-block shape!
Or here for larger icons of items (including blocks):
http://www.alymma.com/minecraft_icons/ [alymma.com]
Slimeballs and snowballs
Re: (Score:1)
Minecraft isn't infinite. You can build up to 256, dig down to bedrock (near zero) and travel x and y to new sectors.
Re: (Score:2)
Not infinite in vertical space no, but practically infinite in horizontal plane.
Y is vertical (0 to 255), X and Z are north/south, east/west axis.
Re: (Score:2)
This is true. So play minetest with mesecons, moreores and moreblocks (At least)
Re: (Score:2)
The rudimentary blocks are just a few bytes each.
But there are a lot of them.
Just one player has about 4 million blocks around them loaded, more if they're moving around a bit. Then there are all the entities, light values, special blocks and such. The world is split into 'regions' and 'chunks'. A chunk is 16x16 blocks, from 0 to 255 height.
The blockiness is to make it a hell of a lot easier to modify the environment in predictable ways. It also lends itself to modding.
You get things like 'Feed the Beast',
Re: (Score:2)
All you would need to make it look smoother is diagonal, corner, and rounded blocks. There are maybe 64 or 128 different types of those, so less than a byte per block.
Re: (Score:1)
Yeah but most of the examples are only like 200 lines of code. Do you really need comments? Also most of the examples have readme files.
Re: (Score:3)
Re: (Score:1)
Re: (Score:3)
Max, on voxeljs.com, there are two demos which work fine but have broken source code links to go to missing GItHub pages (the first and eighth demo):
http://maxogden.github.com/voxel-engine/ [github.com]
http://shama.github.com/voxel-drone/ [github.com]
Anyway, it's been great fun playing with the demos -- especially the surprising voxel-portal one. At first I thought the behavior was a bug, and then I realized it was a feature -- wow! :-)
http://substack.net/projects/voxel-portal/ [substack.net]
It's just amazing to think I can, as above, supply peopl
Re: (Score:2)
I'd figure your position might overflow at some point and plop you back on the world. Whether it occurs in your lifetime is something that the source code could tell you.
Re: (Score:1)
I don't really see the point (Score:2)
I don't really see the point. it's nice, but it's not novel.
Why not just a Java Web Start with http://jmonkeyengine.com/ [jmonkeyengine.com]
You could even run that in the web browser with a Java Applet.
It would run with 200 fps (or more) and not with the lousy 22 fps what I get in the browser. And it would be cross-platform, too.
Sorry, I don't really see the point to re-implement everything we have on the desktop now in the browser. It's like we throw everything we achieved in the last 25 years on the desktop in the trash for
Re: (Score:1)
Re: (Score:2)
Lets ignore the fact that its 3d for a moment and concentrate on your main points... Is it novel? yes i personally thing so, but novel is in the eyes of the beholder. Is it awesome? absolutely from a developer point of view... is it cross platform - yes it is. Chrome and firefox can both be downloaded for every platform that oracle java can be (and probably built for many more too).
Then theres the version dependency fun. Consider i wrote a RTF document editor as java applet, im faced with the scenario of 3
Re: (Score:2)
The Google Docs is a very good example for what not do to in the browser. Sure it can open Odf files, but for what? The time when you need to pay 300$ or more for a good Document Writer are long over. LibreOffice or OpenOffice are at least 50 times more capable then Google Docs and are not depending on a good internet connection.
The problem with the midleware of Java is only because of the Browser (and Sun) developer. They chosen long ego to not support Java as good as Flash in the Web browser. My browser i
ROTFLMAO (Score:1)
And they would go about securing JS code how, exactly? It's cleartext to the browser! You just can't protect that. I just thought of three ways to get the source, in the time it took me to type this sentence.
Re: (Score:2)
What's your point exactly? The source is intentionally available.
Re: (Score:1)
My point is, JS code is open source in fact, in all cases ever. Legality notwithstanding, it's just there to read and modify and stuff.
Re: (Score:1)
Oh, lots. It's much easier to reorganize minimized JS than to figure out disassembled code. Javascript runs several layers of abstraction above the CPU, and every call belongs in a tiny namespace, compared to what happens in assembler. It's comparing apples and industrial orange juice.
Let's be nice today shall we? (Score:1)
Extremely slow (Score:1)
I just tried it.
It barely runs at all. It's extremely slow. At 20-25 fps, walking feels more like crawling, and it uses all my computer resources, fans running as loud as they can, showing 100% CPU usage on two threads + GPU usage.
There is no point if the experience cannot at least as smooth as Minecraft.
What hardware/OS/browser? (Score:2)
Can you say what browser, OS, and hardware you tried it on?
Voxel.js was snappy when I tried it with Chromium on a Mac Pro desktop (vintage about four-five years ago with 2.8 Ghz Intel Xeon, fairly stock graphics card). It seemed to run even faster than Minecraft (granted it was probably doing a lot less with demo worlds).
Re: (Score:1)
Google Chrome 24, Linux x86_64.
Recent high-end Intel processor and NVIDIA graphics card.
Re: (Score:2)
Thanks. Don't know what to make of that, except maybe the Mac has better 3D WebGL support in Chrome/Chromium somehow?
If you really wanted to get it to work, you could try it in another browser perhaps (Chromium or Firefox) or maybe with some 3D system options changed (perhaps even under VirtualBox emulation).
add Inflatable Icons (3D shapes from 2D images) .. (Score:1)
... to get supercool authoring. As part of AgentCubes, a 3D creativity tool supporting Casual 3D design, we have created a new kind of a 3D authoring tool. Casual 3D, similarly to Voxel or Minecraft is not aimed at Pixar animators but at people who have not done any 3D authoring before and would not want to spend more than a minute to get started. Imagine combining Inflatable Icons with Voxel. One could build some pretty cool worlds and program them. You can see an early draft of a short demo video below. I
Ready Player One (Score:1)