Following one man's task of building a virtual world from the comfort of his pajamas. Discusses Procedural Terrain, Vegetation and Architecture generation. Also OpenCL, Voxels and Computer Graphics in general.
Tuesday, January 29, 2013
AiGameDev.com Live Broadcast
Next Sunday February 3rd I will be doing a live interview at AiGameDev.com
You can find the right moment to tune in for you time-zone here in this page, where the broadcast will eventually appear:
http://aigamedev.com/broadcasts/procworld/
Make sure you catch it on time. The archived version may be playable only to members of the AiGameDev community.
Sunday, January 20, 2013
Don't be square!
Minecraft gets many things right, but the top in my list is how easy it is to create. Nothing is simpler than laying out boxes. Since everything is square (even the cows), being limited to boxes does not feel bad at all.
If you are doing some sort of sandbox environment going beyond just boxes is not trivial. One possible approach is to do like Blockscape, where in addition to the classic box you now have a large repertoire of prefixed angular shapes. I do not like this approach as it makes the interface very complex and frustrating. It makes you forehead veins pop.
So I chose a different approach, where you still lay boxes the same as in Minecraft, but then you can go back and alter them. I saw that a single operation was enough to produce both curved and straight angled surfaces. If you applied it gently you would get curves. If you applied it more, it would straighten out.
Here you can see a round hole and a needle, both initially created as boxes. It only takes a few clicks to shift their shapes:
I think this is the right direction. Still it is not simple to implement. While I got this thing working, there are many issues to fix.
I leave you with a video, let me know what you think:
If you are doing some sort of sandbox environment going beyond just boxes is not trivial. One possible approach is to do like Blockscape, where in addition to the classic box you now have a large repertoire of prefixed angular shapes. I do not like this approach as it makes the interface very complex and frustrating. It makes you forehead veins pop.
So I chose a different approach, where you still lay boxes the same as in Minecraft, but then you can go back and alter them. I saw that a single operation was enough to produce both curved and straight angled surfaces. If you applied it gently you would get curves. If you applied it more, it would straighten out.
Here you can see a round hole and a needle, both initially created as boxes. It only takes a few clicks to shift their shapes:
I think this is the right direction. Still it is not simple to implement. While I got this thing working, there are many issues to fix.
I leave you with a video, let me know what you think:
Saturday, January 19, 2013
Voxel Playset
One last post about kids and I will shut up.
It turns out I have been using my kid's toys to help me think about voxels and other algorithms. This is by far my favorite:
This thing really helps. Some of the work you do with voxels becomes a lot easier if you have a way to look around them with your eyes instead of just your mind.
Several of these cubes now have little annotations done by me with a sharpie: numbers, face indices and other stuff like that. These numbers can also be found in the source code.
Here is another time saver:
It turns out I have been using my kid's toys to help me think about voxels and other algorithms. This is by far my favorite:
This thing really helps. Some of the work you do with voxels becomes a lot easier if you have a way to look around them with your eyes instead of just your mind.
Several of these cubes now have little annotations done by me with a sharpie: numbers, face indices and other stuff like that. These numbers can also be found in the source code.
Here is another time saver:
No need to waste paper if you just want a temporary drawing for something you need to understand.
Wednesday, January 16, 2013
Monkey Testing
It is hard to find bugs in software you have written. A developer is always conditioned to the way the software its built. The scenarios that you will test are only those you anticipated. It is like playing chess against yourself.
When it comes to a fresh point of view, nothing can rival an actual monkey. Monkeys are guaranteed to exercise every bit of interface you expose. Now monkeys are hard to come by. If you lack one the next best thing is a two-year old human.
I have two-year old twins girls, so I decided to give it a try. It was surprisingly easy to get them to play with the software. (I did tell them there was a pretty bird hiding somewhere in the trees.)
Did they find any bugs?
They found several bugs I had not seen before. Most were about camera collisions, and there was one really nasty synchronization bug with a garbage collector. That bug alone was worth the experiment.
And there is also proof you can advance a software project and look absolutely adorable in the process.
When it comes to a fresh point of view, nothing can rival an actual monkey. Monkeys are guaranteed to exercise every bit of interface you expose. Now monkeys are hard to come by. If you lack one the next best thing is a two-year old human.
I have two-year old twins girls, so I decided to give it a try. It was surprisingly easy to get them to play with the software. (I did tell them there was a pretty bird hiding somewhere in the trees.)
Did they find any bugs?
They found several bugs I had not seen before. Most were about camera collisions, and there was one really nasty synchronization bug with a garbage collector. That bug alone was worth the experiment.
And there is also proof you can advance a software project and look absolutely adorable in the process.
Friday, January 11, 2013
Google you still don't get this
Nothing to do with procedural generation, but maybe a bit about artificial intelligence.
Almost two years ago I was complaining about Google's lack of intelligence in matching ads to content. A bit later I was doing posts about tree and forest generation and Google kept serving ads about gardening and genealogical trees.
You would expect two years would have made a difference, then a week ago I started posting about T.I.L.E.S. These are the ads I get now:
Just makes no sense to me. With all the tracking and understanding they do, just a few words are enough to get them off the scent.
I'm glad they got Ray Kurzweil and all, but I begin to wonder whether the Singularity will be just sub-par intelligence at a massive scale. We are bracing for this:
When what we may be getting is this:
Almost two years ago I was complaining about Google's lack of intelligence in matching ads to content. A bit later I was doing posts about tree and forest generation and Google kept serving ads about gardening and genealogical trees.
You would expect two years would have made a difference, then a week ago I started posting about T.I.L.E.S. These are the ads I get now:
Just makes no sense to me. With all the tracking and understanding they do, just a few words are enough to get them off the scent.
I'm glad they got Ray Kurzweil and all, but I begin to wonder whether the Singularity will be just sub-par intelligence at a massive scale. We are bracing for this:
When what we may be getting is this:
Subscribe to:
Posts (Atom)





