eScape, an unfinished prototype on development hold, is fully automated computer artist that focuses on landscape imagery, designed and coded by Jason Doucette, lead programmer, and Matthew Doucette, senior programmer. The infinitely detailed images below contains no human influence and are produced by an artificial intelligence and procedural landscape system. It features fully solid 3D textures and other effects beyond today's 3D accelerated graphics cards. A computer not only played the role of a graphics tool, but also a graphics artist (the only graphics artist), in the creation of these scenes. Unretouched, this is an example of true computer generated imagery.
eScape was placed on hold for our Xona Games venture, and remains unreleased.
eScape Prototype Screenshots:
eScape's Code (a note from Jason):
"...prior to Xona Games, I worked on a software terrain generation and rendering software. I don't speak about the details on my personal resume page since it was a private project. This project is where my expertise in C++ arose from.
I learned C++ and Windows programming for it. The code base is designed with portability in mind, such that all OS specific functions are in their own units, and thus the code can be ported merely by updating the OS components. The generator and renderer are designed to operate in the background while the system is being used by the user, and thus must with minimal CPU usage and most importantly, have a tiny memory footprint.
The terrain information is generated from infinitely detailed 3D noise functions, and all data maps are compressed. The code has generic multi-threading capability, in which you pass the work that you require, and it handles the rest, include cases where subsections of the work load depends on other sections being computed first, and even auto-detects logical deadlock. Everything runs on top of this function to take full advantage of the CPU power. The renderer renders columns at a time, such that after an initial screen is rendered, additional columns can be generated to scroll the view without needing to wait for a entirely new render.
The entire project is based on a random seed, and using the Mersenne twister pseudo random number generator, it can replicate entire worlds from a single seed, and can also never generate the same image twice on any two machines in existence.
I've implemented an error code system that reports back real error messages and variables, on every level of the call stack, with no degradation to performance if all is well. There is also the memory leak tracker that I wrote that article about. The project employs unit testing, with a vigorous mode for overnight testing, to hammer out those 1 in a billion chances of error, which can happen with extensive floating point code."
- Jason Doucette, 2011