• Home
  • Media
  • About
  • Support
  • Privacy
YouTube Twitter Facebook
The Witness
Explore an abandoned island.
 
Skip to content
  • Home
  • About
  • Media
  • Privacy
  • Support
    • Support FAQ

Category Archives: Engine Tech

scope(exit) in C++11

I really like the scope(exit) statements in D. They allow you to keep the cleanup code next to the initialization code making it much easier to maintain and understand. I wish we had them in C++. Turns out this can be implemented easily using some of the new C++ features. …

Continue reading

Ignacio Castaño November 19, 2012 March 26, 2015Engine Tech 61

Packaging Update

A while ago, I wrote a post about package sorting in order to minimize diffs when patching on Steam. I ended up running a straightforward test where we would change the game minimally and build consecutive patches. The patches turned out to be quite large, but upon investigation, it was …

Continue reading

Jonathan Blow September 20, 2012 September 20, 2012Development, Engine Tech 40

Seamless Cube Map Filtering

Modern GPUs filter seamlessly across cube map faces. This feature is enabled automatically when using Direct3D 10 and 11 and in OpenGL when using the ARB_seamless_cube_map extension. However, it’s not exposed through Direct3D 9 and it’s just not available in any of the current generation consoles.

Continue reading

Ignacio Castaño February 27, 2012 March 3, 2012Engine Tech 23

Engine Tech: Concurrent world editing

Summary A small team with limited manpower, we wanted a low-effort way to use our existing version control system (svn) to facilitate concurrent world editing for our open-world 3D game (i.e. we desire that multiple users can edit the world at the same time and merge their changes).  We developed …

Continue reading

Jonathan Blow December 25, 2011 December 26, 2011Engine Tech 45

Irradiance Caching – Part 1

This is the first article I wanted to publish when I started writing about the technology behind The Witness. I had just spent a week or so implementing irradiance caching with rotation and translation gradients. Extending the equations of the gradient estimation to the hemicube sample distribution had proven to …

Continue reading

Ignacio Castaño July 14, 2011 April 7, 2015Engine Tech 19

A few new graphical effects.

Lately we started thinking about making the game look better, finally. Ignacio has been working on some graphical effects to this end (though he’s been putting forth a lot of effort on performance as well). Here are a few things he’s been working on: Sun beams. These are accomplished with …

Continue reading

Jonathan Blow June 28, 2011 June 28, 2011Engine Tech, Progress Shots 31

Grassing it up…

Since The Witness takes place in the outdoors much of the time, we knew from early on that we were going to want to have grass of some kind. We added grass into the engine quite a long time ago (starting around December 2009?) and it’s gone through several iterations …

Continue reading

Jonathan Blow February 26, 2011 February 26, 2011Development, Engine Tech 38

A glimpse into the terrain design process.

This is an experiment in writing up a blog post for a development task while I actually perform the task!  So right now, as I start writing this, I don’t know how it will end! I was talking to David Hellman about the game the other day, and he was …

Continue reading

Jonathan Blow February 13, 2011 February 22, 2011Development, Engine Tech 21

Adventures in Fisheye Lenses

During the past couple of weeks, we have been doing some experiments for The Witness that involve pre-rendering a scene with a fisheye lens and then using that render during gameplay. If I were to say exactly what this is for, it would be a massive spoiler, so I’ll just …

Continue reading

Jonathan Blow January 22, 2011 January 22, 2011Development, Engine Tech 20

Experiments in Texturing

Something like a year and a half ago, when I was starting to get serious about making The Witness, I was talking to Casey Muratori about 3D modeling and texturing. Braid was a 2D game; The Witness being 3D meant that it would be much more expensive and difficult to …

Continue reading

Jonathan Blow November 5, 2010 November 5, 2010Development, Engine Tech 19
Older posts
Newer posts
  • Recent Comments

    • Dan Bechard on A Shader Trick
    • Matthew Haycock on CVG appear to be a bunch of lousy hacks.
    • Chari on The Witness is finally on iOS!
    • Moodie-1 on Thekla!
    • Andreas on The Witness is finally on iOS!
  • Recent Posts

    • A Shader Trick
    • Congratulations to the grant recipients!
    • Testing the Jai Compiler
    • The Witness is finally on iOS!
    • MacOS System Requirements
  • Categories

    • Announcements
    • Development
    • Engine Tech
    • Ill-Advised Rants
    • Other Games
    • Progress Shots
    • Special Events
    • Uncategorized
Powered by Tempera & WordPress.