...wait a second. I swear I've heard this before.
Why does everyone who works with voxels act so secretive about how their rendering works?
No one cares.
No one. Cares.
Really. No one is going to steal your clever memory optimizations. They don't care.
If you've done something clever, explain it. Maybe you'll get a hi-5 from someone. Being all, coy about it is just irritating.
The game dev community has a love/hate relationship with open source: on one hand a lot of widely used tools are under open source/free software licenses (box2d, SDL, etc.), but on the other hand you'd be hard pressed to find an indie willing to release his source code (Jason Rohrer I love you).
There's definitely a technical reason for it (game code is often hacky and not that reusable), but I've observed that it has to do more with the sense of pride of the developers ("my code is too ugly people are going to think I am a bad developer").
Or maybe that they just don't want to compete with people building on --or even outright cloning-- their products. Of course, they're perfectly happy building on others' work.
LD48 requires that you open source games in the jam, so that's 1000s of games with available source code, even if most of them don't live on Github. Quite a few Humble Bundle games are open source as a result of the bundle (http://indiegamebundle.wikia.com/wiki/List_of_Humble_Bundle_...) I can think of other indie games that are open source, Stephen Lavelle's games (http://www.increpare.com/), Game Maker Spelunky, Mari0, Infinite Super Mario Bros. Roguelikes are also usually open source.
Libraries or contributions to frameworks that have come from indie game developers include MojoShader (http://icculus.org/cgi-bin/finger/finger.pl?user=icculus&dat...), MonoGame for Mac OS X, Linux and NaCL, (http://supergiantgames.com/index.php/2012/08/bastions-open-s...), Flashpunk and Flixel.
I also think it's unfair to knock game developers for not open sourcing their games. Last time I checked, many startups open source libraries and helper code, but very few of them open source their product code. The indie game community is also much smaller than the startup community and also less technical on average.
It's definitely getting much much better, as you described it - but it still has a long way to go. I do tend to hang out more in very FOSS-centric circles, so maybe my perspective is a bit skewed by this.
(and I do agree with you re:startups - I wish we saw more open source product code. Gittip is doing a great job with that: https://github.com/gittip/www.gittip.com/ )
Yep. I'm sure the majority of them are also GPL violators.
They love to take but never give back.
Since when has "it's nice to share code" turned into "you're probably a criminal if you don't share code".
But one look at today's 'app store' ecosystems and current game dev culture is all the evidence I need. It's a profiteer's paradise.
I'm basing a lot of my work on things like this: http://www-cs-students.stanford.edu/~amitp/game-programming/...
I remember reading about the Genesis Engine in college. For what it's worth, I think it's awesome how you've worked your way to Voxel Quest. Good luck.
There's something magical, as a young programmer, about compiling an open-source 3d engine and walking around in the demo.
Although in my case I never did more than compile Genesis and tweak a few variables in the physics code before recompiling. (I ended up learning from the Torque Game Engine and its forebears, because they had a scripting language and sprawling outdoor terrains with multiplayer).
Those were the days :-)
Do you generate your visuals by rendering a fullscreen quad and having shaders do all the work is there actual polygon work involved?
Just curious, nice work!
EDIT: drat, it seems I missed a few comments, you already answered most of my questions. So feel free to disregard them. I'm leaving the comment to show that I really like the things you've done with the engine, it looks fantastic (and $deity knows how much fun it can be to work on something like that)
I am actually using ray-cast volumes, rendered to a hexagon (6 tris). Each vertex in the hexagon contains two points, a front and back location of the equivalent cube. (If you look a a cube in isometric perspective, it looks just like a hexagon which is why I used this technique -- another thing I'm sure that has been done before me). :) Another optimization over a standard cube is that a cube contains 12 triangles, and would have double redundancy on fill time.
Excellent work, keep it up! Gorgeous :)
I ask as I've done a bit of fractal rendering using distance-estimators before.
When I finally found the right search terms to Google on the issues I ran into I came across the real marching cubes algorithm and was actually happy I figured out most of it on my own. A good boost for my self-confidence. The fact that the patent just had ran out was nice as well.
If you scroll to the end of this page you can see some screenshots: http://github.com/aerique/okra
Is it no longer patented today? Who held the patent and was it released or did it just expire?
I think real feed back comes from people using it, and can't be given by only viewing screenshots or video demos. I m assuming you are going to license the engine out of course.
Congratulations and the engine really does look great. :)
It would be great if you find a way to sustain your development using this system.
In terms of code quality, it is actually far more difficult (IMO) to do isometric projection with a 0.5 slope (not true isometric with 120 degrees between axes). You can build a projection matrix to handle it but I actually just worked out the math by hand to handle the projections and inverse projections. So, for a while this really put a dent in how clean my code was until I refactored everything several times.
So it's not mere hyperbole to say "seizure-inducing."
I can recall when Ultima 9 was originally conceived it was anticipated to be isometric 3D RPG. Here is a screenshot http://i.imgur.com/MGDSXYP.jp . Voxels would seem to be a great fit for such an engine.
Hopefully in the afterlife I'll be able to play U7 again for the first time. What a great game and a hard act to follow.
using game data from older games sounds like a great idea (if any of those licenses allowed it)