Working on The Witness, Part 1 (2012)
mollyrocket.com
mollyrocket.com
[1] Rapidly-Exploring Random Tree. Without the Voronoi bias it's not rapidly-exploring, so it's just a random tree (RT) instead.
[2] Probabilistic RoadMap. Similar to an RRT except that samples are connected to all close samples within some neighbourhood function.
But between this article and the one that was posted last week (the Nebraska problem http://mollyrocket.com/casey/stream_0015.html)...it's really thought-provoking to see the ways that a visuals-first debugger can at least spark a faster iteration of ideas, if not uniquely identify them...the OP wrote this in another of his Working on the Witness pieces (http://mollyrocket.com/casey/stream_0013.html):
> Instead of stepping through the code or even carefully reading it to see what it was doing, I did what I often do these days and added debug visualization code right away. I’ve been through these kinds of problems enough times that I know, more often than not, if you’re going to debug one thing in a piece of code, you’re going to debug a bunch of things, so you might as well add the debug code early and leverage it throughout the whole process. Why wait for the really hard bug before adding the debug code? It takes the same amount of time to write debug code earlier as it does later, but earlier means you can use it to speed debugging of all those not-as-hard bugs along the way.
It's not test-driven-development obviously, but am I wrong in assuming that this preemptive custom debugging is rare in game development? What kind of frameworks/scaffolding exist to do such testing? I thought the situation described in the OP was interesting in that it showed how one of the most annoying gamebreaking bugs can slip through...but if consistency of boundaries is dependent on designers/artists meticulously cleaning up their "blocks"...and/or a dev-type who has hacked together a tool to make inconsistencies more noticeable...I'm surprised that games don't have broken surfaces as a rule rather than an exception. Or maybe way more time goes into mundane, repetitive game testing than I had thought.
I do think Unity and Unreal both probably provide a lot of tools in this department, so the situation outside crazy developers still using custom engines is probably a lot better than I think it is.
Also, it's almost certainly true that way more time goes into mundane, repetitive game testing than you thought. The QA budgets for AAA titles are quite large, and a lot of that testing work is horrifyingly dull. Methods like this post outlines help a lot, but there's no substitute for actual people getting paid to try to break your game.
You have no idea ( http://trenchescomic.com/tales/post/9810 ).
As for visual debugging, these tools are really important because they a) convey information in a much denser form than you'd get from a tool and b) convey information which you can digest without already knowing the answer.
For example, unless you'd seen the oversampling in the picture, you probably wouldn't think to ask "Hey, do we have a lot of overlapping coverage in our walk here?". Similarly, in the case of the Nebraska problem, statistical methods would probably give you the a-okay until you actually saw the results in action, at which point you'd know something was off.
In games and graphics it's pretty much essential that you have some set of visualization debug setup to easily see what's going on--in very complex systems like physics engines it can be almost impossible to tell that something is off without having debug rendering enabled.
> Despite not even being finished, The Witness is already one of my all-time favorite games. I’ve been playing it since Jonathan Blow started developing it several years ago, and I could not be more excited about its upcoming release.
Though he could be just a corporate shill and/or have bad gaming tastes...if he was this excited about it two years ago (and had been playing it since "several years ago")...that's pretty promising. All I know is that the first thing I'll do is check to see how well-arranged the grass is.
Not all years-long development cycles are signs of trouble; generally that only applies when you have task-masters death marching a burned-out team along to various failed deadlines. When you have a single or small team of creators iterating on a core game idea with the means to actually release the title "when its done", good end results often occur.
The boundary explorer would try to move a small distance forward, if it could, it would back up, and turn right a small amount. Then it would try moving forward again, looking for the most right it could turn whilst still being able to walk forwards. This would trace the boundary clockwise.
If the lawnmower grid resolution pattern was half the smallest diameter of an obstacle. You would be guaranteed to discover the topology of the map (assuming the map walk operator is bidirectional, which it isn't, but should be.)
You shouldn't necessarily be able to walk off a cliff and then turn around and walk back up it.
The robot is usually modelled as having a non-zero footprint since coverage is often a goal, but a radius of zero can be used for exploration. To explore a space with minimum obstacle radius R and robot radius r, each sweep can be 2(R+r) units wide.
http://the-witness.net/news/2012/12/mapping-the-islands-walk...