<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jonathan Blow &#8211; The Witness</title>
	<atom:link href="https://the-witness.net/news/author/jon/feed/" rel="self" type="application/rss+xml" />
	<link>https://the-witness.net/news</link>
	<description>Explore an abandoned island.</description>
	<lastBuildDate>Thu, 10 Feb 2022 17:44:24 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.9</generator>
	<item>
		<title>A Shader Trick</title>
		<link>https://the-witness.net/news/2022/02/a-shader-trick/</link>
					<comments>https://the-witness.net/news/2022/02/a-shader-trick/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Thu, 10 Feb 2022 17:04:30 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=3555</guid>

					<description><![CDATA[(I was sending an email today about a simple trick we use in the shader system, and it seemed easy and useful to share that email publicly, so, here you go!) There's one other place where fog snaps right now, and that is in time -- it is probably pretty …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2022/02/a-shader-trick/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[
<p><em>(I was sending an email today about a simple trick we use in the shader system, and it seemed easy and useful to share that email publicly, so, here you go!)</em></p>
<p>There's one other place where fog snaps right now, and that is in time -- it is probably pretty easy to fix, though the explanation might be a little unexpected so I am Ccing it to the team as a general knowledge transfer thing.</p>
<p>In general, with floating point numbers, there is a problem with loss of precision when you do computations involving large numbers added to small numbers; the small numbers tend to get dropped and go toward zero. This is a general thing about computers, not just graphics (it is the price we pay for being able to pretend we can store real numbers in small amounts of memory). Most of the time it's not an issue and programmers don't think about it, but there are some times when it can be an issue.</p>
<p>In shaders, we often want to have a time variable, controlled by the CPU, that we can use to help generate effects. That time variable counts upward, maybe from the time the level started, or the time the game started. If that number is measured in seconds, then after 10 minutes it will be around 600, after 2 hours it will be 7200, etc. If someone leaves the game running for 3 days (a certification requirement on consoles!), it would get up over 250,000.</p>
<p>Those numbers don't seem super big, but at the same time, we also deal with numbers that are small. If the game is running at 60fps (which on PC these days is considered maybe a slow frame rate!), that's 0.017 seconds per frame, and we might be doing math that involves both this dt and the current time. At which point the ratio of the current time to the frame time is like 250,000 / (1/60) = 15 million. That is really very high and a recipe for all kinds of numerical problems you don't expect -- if you add the delta time to the current time, in a 32-bit float, the delta time is almost completely destroyed because there is not enough precision in the number. Long before this time, you'd start to see jitteriness in animation, things not matching up to where you'd expect them to be, etc.</p>
<p>One way to solve this is not to let the current time grow indefinitely -- at some point, you reset it to 0. You could pick a fixed amount of time, like I don't know, every minute, and at the end of the minute the time is back at 0 and you keep going. But if you want your effects to be seamless, they all have to match up exactly at the 1-minute boundary, which makes tuning things difficult and annoying. For example, if you want to make a cosine wave that is seamless across time, you can make the wave with a period of 1 minute, or half a minute, or 1/3 a minute, etc, and firstly this is annoying because when designers want to tune stuff, they have to know this, and it's unwieldy and confusing, and secondly, these numbers cannot be represented exactly in floating-point numbers either, so you're adding imprecision that way.</p>
<p>But there is an old graphics programmer trick that solves this very cleanly, that I think has been around for a long time (I first heard of it from Ignacio when we were working on The Witness).</p>
<p>For our cosine wave example mentioned above, we are going to be evaluating some function like cos(freq*time*2*PI), where 'time' is just the wall clock time according to the game, and 'freq' is some parameter controlling the frequency of the cosine wave, that we want it to be very easy for designers to adjust without introducing problems.</p>
<p>The constraint you have to meet, for your cosine waves to match up when the timer resets, is that they all have to evaluate to 1 at whatever the max time is -- because when you reset to time = 0, you will get cos(freq*0*2*PI), which is 1. So cos(freq*time_max*2*PI) also has to be 1, in other words, the cosine has to have gone around the circle an integer number of times. Since we have a factor of 2*PI in there, this means that our wave will be flawless any time freq*time_max is an integer.</p>
<p>How do we ensure that, easily, in a way that people don't have to think about? Pick, for time_max, a number of seconds that is 10 to some integer power -- for example, 1000. Then, any number you type into a tweak file, that has no more than 3 digits after the decimal, will result in an integer number of times around the circle. For example, if freq = 9.876, we get cos(9.876*1000*2*PI) == cos(9876*2*PI) == 1. This works for any number you pick with 3 digits after the decimal. If you need 4 digits, make time_max 10000, and so forth. If we are reading values from a tweak file, we can round them to the nearest 3 digits before sending them to the shader (and maybe output a warning, that the digits aren't being used, if the rounded number is appreciably different from the input number, to remind people of this system).</p>
<p>This works with any periodic function, we just used cosine here as an example. For linear shifts, like scrolling uv coordinates or whatnot, it's similar -- if you have uv coordinates from 0 to 1, you just need to make sure shift_rate*time_max is an integer in order for the scrolling to be perfect when the time resets. Similarly for the time parameter used to index a flipbook animation.</p>
<p>So the reason the fog is snapping after you play for a while is that the time sent to the shader system gets reset to 0 every 1000 seconds but the fog doesn't know about this. And the reason for the resetting is to make sure we maintain good precision in the time-based effects in the shaders.</p>


]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2022/02/a-shader-trick/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>MacOS System Requirements</title>
		<link>https://the-witness.net/news/2017/06/macos-system-requirements/</link>
					<comments>https://the-witness.net/news/2017/06/macos-system-requirements/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Fri, 09 Jun 2017 18:36:08 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=3354</guid>

					<description><![CDATA[We released The Witness for MacOS a little while back, and we felt it'd be a good idea to post the system requirements somewhere so we could link people to them when they ask. So... The Witness requires Metal for rendering. Metal is a graphics technology from Apple that allows …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2017/06/macos-system-requirements/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>We released The Witness for MacOS a little while back, and we felt it'd be a good idea to post the system requirements somewhere so we could link people to them when they ask. So...</p>
<p>The Witness requires Metal for rendering. Metal is a graphics technology from Apple that allows faster and more fluid graphics. These are the Mac computers that support Metal:</p>
<ul>
<li>MacBook (Early 2015)</li>
<li>MacBook Air (Mid 2012 or newer)</li>
<li>MacBook Pro (Mid 2012 or newer)</li>
<li>Mac mini (Late 2012 or newer)</li>
<li>iMac (Late 2012 or newer)</li>
<li>Mac Pro (Late 2013 or newer)</li>
</ul>
<p><a href="https://support.apple.com/en-us/HT205073">https://support.apple.com/en-us/HT205073</a></p>
<p>It's possible to build custom Mac systems with Metal support, either using an old Mac Pro and upgrading the graphics card or building it from scratch using compatible parts (Hackintosh). These configurations are unsupported, but some customers have found them to work.</p>
<p>If using an AMD GPU, the only supported add-in card with Metal support is:</p>
<p><strong>AMD Radeon 7950 (Tahiti Pro) Sapphire card.</strong></p>
<p>If using an NVIDIA GPU, any GeForce 6xx or newer should work, but it is necessary to install the latest drivers from:</p>
<p><a href="http://www.nvidia.com/object/mac-driver-archive.html">http://www.nvidia.com/object/mac-driver-archive.html</a></p>
<p>System Requirements:</p>
<p>Minimum:</p>
<pre>* OS: El Capitan 10.11.6
* Processor: Intel Core i5 @ 1.8 GHz
* Memory: 4 GB RAM
* Graphics: 1 GB of video memory
- Intel: HD Graphics 4000
- AMD: Radeon R9 M290
- NVIDIA: GeForce 640M
* Storage: 5 GB available space
</pre>
<p>Recommended:</p>
<pre>* OS: Sierra 10.12.4
* Processor: Intel Core i7 @ 2.4 GHz
* Memory: 8 GB RAM
* Graphics: 2 GB of video memory
- AMD: Radeon R9 M390
- NVIDIA: GeForce 780
* Storage: 5 GB available space
</pre>
<p>The list of Apple systems with AMD graphics that support Metal is:</p>
<pre>Mac Pro 6,1 (Radeon FirePro D300, D500, D700) - cylinder
iMac 15,1 (Radeon R9 M290, M295X)
iMac 17,1 (Radeon R9 M380, M390, M395, M395X)

MacBook Pro 11,5 (Radeon R9 M370X)
MacBook Pro 13,3 (Radeon Pro 460)
</pre>
<p>The list of Apple systems with NVIDIA graphics that support Metal is:</p>
<pre>MacBook Pro 9,1 (GeForce GT 650M)
MacBook Pro 10,1 (GeForce GT 650M)
MacBook Pro 11,3 (GeForce GT 750M)
iMac 13,1 (GeForce GT 640M, 650M)
iMac 13,2 (GeForce GTX 660M, 675M)
iMac 14,2 (GeForce GT 755M, 775M)
iMac 14,3 (GeForce GT 750M)
</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2017/06/macos-system-requirements/feed/</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
			</item>
		<item>
		<title>Anniversary!</title>
		<link>https://the-witness.net/news/2017/01/anniversary/</link>
					<comments>https://the-witness.net/news/2017/01/anniversary/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sun, 29 Jan 2017 05:00:46 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=3342</guid>

					<description><![CDATA[The Witness was first released a year ago. To celebrate, the game is on sale for 50% off on Steam, here: http://store.steampowered.com/app/210970/ Braid is also on sale, and if you already own it, you get an extra discount on The Witness: http://store.steampowered.com/bundle/2501/ Meanwhile, we are working on The Witness for MacOS, and …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2017/01/anniversary/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>The Witness was first released a year ago.</p>
<p>To celebrate, the game is on sale for 50% off on Steam, here: http://store.steampowered.com/app/210970/</p>
<p>Braid is also on sale, and if you already own it, you get an extra discount on The Witness: http://store.steampowered.com/bundle/2501/</p>
<p>Meanwhile, we are working on The Witness for MacOS, and it should be done pretty soon. iOS is also coming up but is a bit further in the future.</p>
<p>Happy 2017!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2017/01/anniversary/feed/</wfw:commentRss>
			<slash:comments>56</slash:comments>
		
		
			</item>
		<item>
		<title>The PS4 patch is out!</title>
		<link>https://the-witness.net/news/2016/11/the-ps4-patch-is-out/</link>
					<comments>https://the-witness.net/news/2016/11/the-ps4-patch-is-out/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sat, 19 Nov 2016 00:11:25 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=3325</guid>

					<description><![CDATA[With PS4 Pro and HDR support! (That is all!)<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2016/11/the-ps4-patch-is-out/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>With PS4 Pro and HDR support!</p>
<p>(That is all!)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2016/11/the-ps4-patch-is-out/feed/</wfw:commentRss>
			<slash:comments>28</slash:comments>
		
		
			</item>
		<item>
		<title>PS4 Pro patch update</title>
		<link>https://the-witness.net/news/2016/11/ps4-pro-patch-update/</link>
					<comments>https://the-witness.net/news/2016/11/ps4-pro-patch-update/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 02 Nov 2016 19:53:38 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=3317</guid>

					<description><![CDATA[Previously, I made a post listing the technical details of the PS4 patch. That was a work-in-progress, and I said at the time I'd post final specs as soon as we know them, which we now do. We are definitely supporting HDR, on both the PS4 Pro and the base model …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2016/11/ps4-pro-patch-update/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Previously, I made a post <a href="https://the-witness.net/news/2016/09/were-doing-a-ps4-pro-patch-here-are-the-technical-details/">listing the technical details of the PS4 patch</a>.</p>
<p>That was a work-in-progress, and I said at the time I'd post final specs as soon as we know them, which we now do.</p>
<p><strong>We are definitely supporting HDR,</strong> on both the PS4 Pro and the base model PS4.<strong> </strong>If the game detects an HDR TV, it will start in HDR mode. HDR works in all resolutions mentioned below.</p>
<p>If you have a PS4 Pro, and are outputting to a 1080p TV, <strong>The Witness will render at 1080p, 60fps, 4x MSAA</strong> (which is substantially higher than the base PS4's 900p, 60fps, 2x MSAA). This is the same as we announced in the earlier posting.</p>
<p>If you have a PS4 Pro, and are outputting to a 4k TV, then you get a choice of two modes from the options menu:<br />
<strong>(a) 1440p 2x MSAA rendering of the game world, upscaled to 4k, text and UI rendered at 4k, 60fps</strong><br />
<strong>(b) 4k 2x MSAA rendering for everything, 30fps </strong></p>
<p>We added option (b) because a lot of people seem to want it, and it does look really good!</p>
<p>I don't yet know the exact release date for the patch, but it is coming pretty soon, in November sometime. We are now in the process of nailing down all the little details and making sure they are good. As soon as we know the release date I will announce it here.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2016/11/ps4-pro-patch-update/feed/</wfw:commentRss>
			<slash:comments>45</slash:comments>
		
		
			</item>
		<item>
		<title>We&#8217;re doing a PS4 Pro patch! Here are the technical details.</title>
		<link>https://the-witness.net/news/2016/09/were-doing-a-ps4-pro-patch-here-are-the-technical-details/</link>
					<comments>https://the-witness.net/news/2016/09/were-doing-a-ps4-pro-patch-here-are-the-technical-details/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Thu, 08 Sep 2016 18:41:35 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=3302</guid>

					<description><![CDATA[Now that the PlayStation 4 Pro has been announced, we can tell you that we are working on a PS4 Pro patch for The Witness. The Witness already runs at a consistent 60fps on the base PlayStation 4, so rather than increasing frame rate, our patch is about visual quality. …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2016/09/were-doing-a-ps4-pro-patch-here-are-the-technical-details/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Now that the PlayStation 4 Pro has been announced, we can tell you that we are working on a PS4 Pro patch for The Witness.</p>
<p>The Witness already runs at a consistent 60fps on the base PlayStation 4, so rather than increasing frame rate, our patch is about visual quality. Please don't take the specifics mentioned here as absolute promises; things might change by release. But here's what we are aiming for:</p>
<p>When you start up the game on a PS4 Pro, it will go into one of two modes, depending on the current display device:</p>
<p>* When using PS4 Pro with a 4k display, we will render at 1440p or possibly higher, all while keeping a consistent 60 frames per second. This image will then be upscaled to 4k, and we will draw text, menus, and other UI at native 4k resolution. (This is similar to what happens on the base PS4, where we render the 3D scene at 900p, then upscale to 1080p and draw UI at 1080p). We might be able to achieve resolutions higher than 1440p based on various engineering tradeoffs (for example, if we boost the resolution of the main scene to a greater degree than we boost the resolution of the reflections in water, which tend to be distorted anyway. Also, we'll evaluate checkerboard rendering -- we're not sure if it's the right way to go for this game, but we'll see.) We'll post again when we finalize these specs.</p>
<p>* When using PS4 Pro with a display that is 1080p or lower, we will render the scene at 1080p (instead of the old 900p), and increase antialiasing quality from 2x to 4x MSAA, again while keeping a solid 60 frames per second. We are exploring additional visual quality increases, like increased streaming distance for high-resolution meshes, or decreasing the noticeability of the fade-in between faraway LODs and high-res close-up meshes. Again, we'll post details when this is finalized!<br />
We're also working on HDR support. Here in the office we just got a new LG B6P television, which is very bright and has low black levels, providing a lot of dynamic range, and it's been fun so far tweaking the look of the game on HDR displays like this.</p>
<p>We thought we were working on HDR support only for the PS4 Pro, but yesterday Sony announced that they will be enabling HDR support on all PS4s via a firmware update. Sometimes Sony even surprises developers! (Back when the PS4 was originally announced, we were surprised by some of the final specs too ... and I was on stage in that show!)</p>
<p>We think it's great that Sony are doing this. We don't know the technical details of how it will work, yet, but provided that nothing prevents us, the Witness patch will use HDR on all PS4s when available. (You will, of course, need an HDR TV or monitor for HDR mode to kick in!)</p>
<p>If all goes well, this patch will be downloadable on November 10 when the PlayStation 4 Pro is released.</p>
<p>We'll keep you posted as we continue work on this patch!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2016/09/were-doing-a-ps4-pro-patch-here-are-the-technical-details/feed/</wfw:commentRss>
			<slash:comments>64</slash:comments>
		
		
			</item>
		<item>
		<title>The Witness Long Screenshot #3</title>
		<link>https://the-witness.net/news/2016/02/the-witness-long-screenshot-3/</link>
					<comments>https://the-witness.net/news/2016/02/the-witness-long-screenshot-3/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sat, 13 Feb 2016 20:25:33 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=3222</guid>

					<description><![CDATA[ (Alcohol Reference)<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2016/02/the-witness-long-screenshot-3/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p><p><a href="https://www.youtube.com/watch?v=YJgkwRbW46k"><img src="https://img.youtube.com/vi/YJgkwRbW46k/2.jpg"></a></p>
<p><a href="https://www.youtube.com/watch?v=YJgkwRbW46k">Click here to view the video on YouTube</a>.</p>
</p>
<p><img class="alignnone" src="https://the-witness.net/esrb_e.png" width="38" height="53" /> (Alcohol Reference)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2016/02/the-witness-long-screenshot-3/feed/</wfw:commentRss>
			<slash:comments>19</slash:comments>
		
		
			</item>
		<item>
		<title>I&#8217;ll be having a reddit AMA on Friday the 12th of February</title>
		<link>https://the-witness.net/news/2016/02/ill-be-having-a-reddit-ama-on-friday-the-12th-of-february/</link>
					<comments>https://the-witness.net/news/2016/02/ill-be-having-a-reddit-ama-on-friday-the-12th-of-february/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 10 Feb 2016 00:10:45 +0000</pubDate>
				<category><![CDATA[Ill-Advised Rants]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=3217</guid>

					<description><![CDATA[If you don't know what that is, it means people can ask a bunch of questions and I type furiously to answer them in the time allotted. This will be Friday, February 12th, starting at 1pm Eastern (10am Pacific) and going for ...  a while? I have made a new …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2016/02/ill-be-having-a-reddit-ama-on-friday-the-12th-of-february/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>If you don't know what that is, it means people can ask a bunch of questions and I type furiously to answer them in the time allotted.</p>
<p>This will be Friday, February 12th, starting at 1pm Eastern (10am Pacific) and going for ...  a while?</p>
<p>I have made a new reddit account with the fabulous name of "Jonathan_Blow" for these purposes. (Note the underscore! There are some other accounts with similar names!)</p>
<p>Maybe we can also get some other people from the team in there answering questions.</p>
<p><a href="https://www.reddit.com/r/IAmA/comments/45fu74/i_am_jonathan_blow_game_development_person_ask_me/">The thread is now up.</a></p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2016/02/ill-be-having-a-reddit-ama-on-friday-the-12th-of-february/feed/</wfw:commentRss>
			<slash:comments>19</slash:comments>
		
		
			</item>
		<item>
		<title>Fun Sales Fakts</title>
		<link>https://the-witness.net/news/2016/02/fun-sales-fakts/</link>
					<comments>https://the-witness.net/news/2016/02/fun-sales-fakts/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 02 Feb 2016 21:07:07 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=3214</guid>

					<description><![CDATA[The Witness has now been on sale for a week, so it seems like a good time to post a financial summary. Often, independent developers find these kinds of numbers useful in making their own plans, and the general public can find them interesting too. There is a wrinkle, which …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2016/02/fun-sales-fakts/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>The Witness has now been on sale for a week, so it seems like a good time to post a financial summary. Often, independent developers find these kinds of numbers useful in making their own plans, and the general public can find them interesting too.</p>
<p>There is a wrinkle, which is that I can't be too precise about the sales results on specific platforms, because often when we sign a deal with a particular store, we agree not to reveal their sales numbers. I am actually not sure at this time which stores we are allowed to be specific about and which we aren't, and I would have to dig up and sort through a number of contracts to be sure about it; but that is not a good use of time right now, since I am spending most of my day supporting the users who have technical problems (shipping games on PCs these days is really not fun). The situation can be thorny in subtle ways, too, because if I post information about all stores but one, then I am implicitly revealing the sales figures for that last store, which is not allowed.</p>
<p>Finally, I want to make clear that we did not make this game in order to make money. We were trying to build a beautiful / interesting / intricate thing, first and foremost. The money just helps us stay in business in order to build new things. It is very easy on the Internet to read a financial posting like this cynically, so I urge folks out there not to do that.</p>
<p>Okay, so here's what I can say:</p>
<p>Across all platforms, The Witness has totalled over $5 million USD gross revenue in the first week, and it has sold substantially more than 100,000 units.</p>
<p>This is a good chunk more revenue in one week than Braid made in its entire first year, from August 2008-September 2009. (Braid initially launched on XBLA in August 2008, and it came to Steam in April 2009). Braid was considered a hit independent game at the time.</p>
<p>We can also compare sales by units instead of revenue; this is a little more of an apples-to-oranges comparison because The Witness has a higher price than Braid did (Braid launched at $14.99 [$16.50 when inflation-adjusted to 2015 dollars], and The Witness launched at $39.99). By number of units, the first week of each individual platform handily beats Braid's first week of sales. (Witness on PC by itself beat Braid's first week by a decent margin, and Witness on PSN by itself beat Braid's first week by a decent margin, counting only by number of units). This is great because as price goes up, naturally the number of units sold goes down. So the fact that we beat Braid by units, more than doubly, is a really nice success.</p>
<p>The Witness launched on two platforms, PSN and Windows PC. Neither of these platforms dominates our sales; PC is very strong for us, and PSN is very strong for us.</p>
<p>There are some publicly-available guesstimates for specific platforms on sites such as SteamSpy, but the numbers that SteamSpy is reporting for The Witness are a bit too low (though this is kind of to be expected, I guess, from the way that site works).</p>
<p>So, the game is doing great. That doesn't mean we have broken even on our development cost yet! Because our development budget was so high, $5 million in revenue is not enough to recover it yet (because we split that revenue with the storefronts, we have to subtract VAT in Europe, etc). However, it is looking like, as time goes on, we should break even and make a comfortable safety margin on top of that, which will allow us to make more nice games in the future -- unless some kind of world economic disaster happens.</p>
<p>As I mentioned, right now we are dealing mostly with PC graphics driver problems, and we are also working on adding some features to the game about configurable controls and rendering options, for PC and PS4.</p>
<p>After this, in the near future, we will start investigating the bringing the game to other platforms. Under serious consideration are: iOS, Android, Xbox One, OS X. We will provide more-concrete information about these as it becomes available!</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2016/02/fun-sales-fakts/feed/</wfw:commentRss>
			<slash:comments>113</slash:comments>
		
		
			</item>
		<item>
		<title>The Witness is now up on PSN in the Americas and Europe.</title>
		<link>https://the-witness.net/news/2016/01/the-witness-is-now-up-on-psn-in-the-americas-and-europe/</link>
					<comments>https://the-witness.net/news/2016/01/the-witness-is-now-up-on-psn-in-the-americas-and-europe/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 26 Jan 2016 08:36:47 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=3209</guid>

					<description><![CDATA[&#160; It should go up on Steam this morning around 9 or 10am Pacific time. I made a posting on the PlayStation Blog: https://t.co/ChsVlBzhVw<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2016/01/the-witness-is-now-up-on-psn-in-the-americas-and-europe/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>&nbsp;</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2016/01/CZodCbOW0AEYvbs-1.jpg" rel="attachment wp-att-3210"><img class="aligncenter size-large wp-image-3210" src="https://the-witness.net/news/wp-content/uploads/2016/01/CZodCbOW0AEYvbs-1-512x384.jpg" alt="CZodCbOW0AEYvbs (1)" width="512" height="384" /></a>It should go up on Steam this morning around 9 or 10am Pacific time.</p>
<p>I made a posting on the PlayStation Blog: https://t.co/ChsVlBzhVw</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2016/01/the-witness-is-now-up-on-psn-in-the-americas-and-europe/feed/</wfw:commentRss>
			<slash:comments>101</slash:comments>
		
		
			</item>
		<item>
		<title>The game is doing great on Steam &#8230;</title>
		<link>https://the-witness.net/news/2016/01/the-game-is-doing-great-on-steam/</link>
					<comments>https://the-witness.net/news/2016/01/the-game-is-doing-great-on-steam/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 26 Jan 2016 00:19:21 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=3206</guid>

					<description><![CDATA[... and this is just preorders, the game isn't playable until tomorrow! Thanks to everyone who's been following along on these forums, and everyone who's been interested in the game generally! We'll see what happens tomorrow!<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2016/01/the-game-is-doing-great-on-steam/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>... and this is just preorders, the game isn't playable until tomorrow!</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2016/01/steam_cropped.png" rel="attachment wp-att-3207"><img class="aligncenter size-large wp-image-3207" src="https://the-witness.net/news/wp-content/uploads/2016/01/steam_cropped-499x384.png" alt="steam_cropped" width="499" height="384" /></a></p>
<p>Thanks to everyone who's been following along on these forums, and everyone who's been interested in the game generally!</p>
<p>We'll see what happens tomorrow!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2016/01/the-game-is-doing-great-on-steam/feed/</wfw:commentRss>
			<slash:comments>70</slash:comments>
		
		
			</item>
		<item>
		<title>Pre-Order Widget Test</title>
		<link>https://the-witness.net/news/2016/01/preorder-widget-test/</link>
					<comments>https://the-witness.net/news/2016/01/preorder-widget-test/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Fri, 22 Jan 2016 20:25:20 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=3196</guid>

					<description><![CDATA[If this works we will put it on the front page pretty soon. This is for getting the game from the Humble Store.<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2016/01/preorder-widget-test/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>If this works we will put it on the front page pretty soon. This is for getting the game from the Humble Store.</p>
<p><center><br />
<iframe src="https://www.humblebundle.com/widget/v2/product/thewitness/xe32?theme=light" width="578" height="327" style="border: none;" scrolling="no" frameborder="0"></iframe><br />
</center></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2016/01/preorder-widget-test/feed/</wfw:commentRss>
			<slash:comments>40</slash:comments>
		
		
			</item>
		<item>
		<title>Price and Pre-Orders</title>
		<link>https://the-witness.net/news/2016/01/price-and-pre-orders/</link>
					<comments>https://the-witness.net/news/2016/01/price-and-pre-orders/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 19 Jan 2016 18:38:21 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=3183</guid>

					<description><![CDATA[A lot of people have been asking about the price, so: The price of the game on both Steam and PSN will be $39.99 / €36.99 / £29.99. A lot of people have been asking about preorders too. Preorders will go live on Steam and the Humble Store (and on …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2016/01/price-and-pre-orders/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>A lot of people have been asking about the price, so: The price of the game on both Steam and PSN will be $39.99 / €36.99 / £29.99.</p>
<p>A lot of people have been asking about preorders too. Preorders will go live on Steam and the Humble Store (and on this web site) today at noon PST. Unfortunately we won't have preorders on PSN, because apparently developers have to set those up months in advance and we didn't know that!</p>
<p>The preorders are regular price! They contain an amazing bonus pack-in: the warm fuzzy feeling that you have pre-ordered the game. (And that's all). So it's exactly the same as buying the game at launch, except earlier.</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2016/01/shot_2015.09.16__time_13_00_n37.png" rel="attachment wp-att-3194"><img src="https://the-witness.net/news/wp-content/uploads/2016/01/shot_2015.09.16__time_13_00_n37-512x288.png" alt="shot_2015.09.16__time_13_00_n37" width="512" height="288" class="aligncenter size-large wp-image-3194" /></a></p>
<p>If you buy from the Humble Store, 10% of the price goes to the Against Malaria Foundation. For a lot of us in developed nations, malaria seems like a far-away thing that you only think about when you go on a really adventurous trip, but in many parts of the world it's a serious problem. The good news is that we are making great progress in reducing incidence of malaria, <a href="https://www.givingwhatwecan.org/post/2015/12/bednets-have-prevented-450-million-cases-of-malaria/">see this report</a>:</p>
<p><center><br />
<div style="width: 540px;" class="wp-video"><!--[if lt IE 9]><script>document.createElement('video');</script><![endif]-->
<video class="wp-video-shortcode" id="video-3183-1" width="540" height="360" preload="metadata" controls="controls"><source type="video/mp4" src="https://the-witness.net/news/wp-content/uploads/2016/01/P-Falciparum-Incidence-2-10s.mp4?_=1" /><a href="https://the-witness.net/news/wp-content/uploads/2016/01/P-Falciparum-Incidence-2-10s.mp4">https://the-witness.net/news/wp-content/uploads/2016/01/P-Falciparum-Incidence-2-10s.mp4</a></video></div><br />
</center></p>
<p>The Against Malaria Foundation is rated one of the most cost-effective charities in the world by both Giving What We Can and Givewell, two organizations focused on ensuring that charitable donations do maximum good in the world. Giving What We Can has a good high-level description of <a href="https://www.givingwhatwecan.org/get-involved/what-we-can-achieve/">the philosophy behind this movement</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2016/01/price-and-pre-orders/feed/</wfw:commentRss>
			<slash:comments>130</slash:comments>
		
		<enclosure url="https://the-witness.net/news/wp-content/uploads/2016/01/P-Falciparum-Incidence-2-10s.mp4" length="2541617" type="video/mp4" />

			</item>
		<item>
		<title>Whose voices are in The Witness?</title>
		<link>https://the-witness.net/news/2016/01/whose-voices-are-in-the-witness/</link>
					<comments>https://the-witness.net/news/2016/01/whose-voices-are-in-the-witness/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 12 Jan 2016 01:03:16 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=3159</guid>

					<description><![CDATA[We're a couple of weeks away from our release date, and we've just finished recording the last of the voice acting, which means it's a good time to tell you about the actors! The Witness deliberately riffs on several traditional elements of game design, and one of those elements is …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2016/01/whose-voices-are-in-the-witness/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>We're a couple of weeks away from our release date, and we've just finished recording the last of the voice acting, which means it's a good time to tell you about the actors!</p>
<p>The Witness deliberately riffs on several traditional elements of game design, and one of those elements is the classic audio log, where you are wandering along and you find a recording that was placed there by someone before. The Witness has recordings like this, but let's just say they are done in a highly non-traditional way. When you first encounter them you won't find much in the way of answers, but, if you keep looking, you will eventually be able to piece together what's going on.</p>
<p>These are the folks whose fine voicework you will hear in these recordings:</p>
<p style="text-align: justify;"><a href="https://the-witness.net/news/wp-content/uploads/2016/01/BxbaTdTCAAAMxel.jpg" rel="attachment wp-att-3160"><img class="wp-image-3164 alignleft" src="https://the-witness.net/news/wp-content/uploads/2016/01/BxbaTdTCAAAMxel-288x384.jpg" alt="" width="112" height="150" /></a></p>
<p><strong>Ashley Johnson</strong>, who you may know as Ellie from <em>The Last of Us</em>, or from her roles in <em>Tales from the Borderlands</em> and <em>Infamous First Light</em>. She also plays the smartest person on the hit TV show <em>Blindspot</em>. <a href="https://twitter.com/TheVulcanSalute">You can find Ashley on Twitter</a>.</p>
<p>&nbsp;<P><BR></p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2016/01/image1.jpg" rel="attachment wp-att-3162"><img class="wp-image-3162 alignleft" src="https://the-witness.net/news/wp-content/uploads/2016/01/image1-311x384.jpg" alt="image1" width="112" height="138" /></a></p>
<p><strong>Phil LaMarr</strong>, who I best know as Marvin from <em>Pulp Fiction</em>, but who you may know as Vamp in <em>Metal Gear Solid 2</em> and <em>4</em>, or as Ratbag from <em>Shadow of Mordor</em>. He also played Hermes in Futurama and Ollie Williams in Family Guy! <a href="https://twitter.com/phillamarr">You can follow his random musings here.</a></p>
<p><P><br />
&nbsp;</p>
<p><strong><a href="https://the-witness.net/news/wp-content/uploads/2016/01/Matthew301-8x10.jpg" rel="attachment wp-att-3163"><img class="wp-image-3163 alignleft" src="https://the-witness.net/news/wp-content/uploads/2016/01/Matthew301-8x10-307x384.jpg" alt="Matthew301 8x10" width="113" height="141" /></a>Matthew Waterson</strong>, who played very English person Sir Lucan in <em>The Order: 1886</em>, an has recently acted in <em>Fallout 4</em> and <em>Halo 5</em>. <a href="https://twitter.com/mjwaterson">Check out Matthew's amazing Sean-Connery-themed profile picture.</a><br />
<P><br />
&nbsp;</p>
<p><strong><a href="https://the-witness.net/news/wp-content/uploads/2016/01/IMG_3356.jpg" rel="attachment wp-att-3161"><img class="wp-image-3161 alignleft" src="https://the-witness.net/news/wp-content/uploads/2016/01/IMG_3356-254x384.jpg" alt="IMG_3356" width="112" height="169" /></a> Terra Deva</strong>, an oft-performing musician, including recent hit single "At Night" with the swiss group Shakedown (though she doesn't play music in <em>The Witness</em> because we don't have music in <em>The Witness</em>! She is acting!) and veteran of... The Mickey Mouse Club!!!! (Among many other places!) <a href="https://twitter.com/TerraDeva">Terra's Twitter page is here.</a></p>
<p>&nbsp;<br />
<P><BR></p>
<p>We recorded these sessions at Warner Bros. Studios. Our voice director was Liam O'Brien, who has also done quite a bit of acting in games himself. Pierce O'Toole acted as the great force of organization throughout the process and many things would have gone worse were it not for him!</p>
<p>Having said all this, I will warn you that the story in The Witness, such as it is, is fairly subtle and happens mostly implicitly. You really have to explore and read between the lines to know what's going on. So do not expect a traditional game story like <em>The Last of Us</em> or <em>The Order! </em>All that said, we are very happy to have these actors lending their talents to our game, and I look forward to release when you'll see what we've been up to.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2016/01/whose-voices-are-in-the-witness/feed/</wfw:commentRss>
			<slash:comments>35</slash:comments>
		
		
			</item>
		<item>
		<title>Since making the previous blog post &#8230;</title>
		<link>https://the-witness.net/news/2015/12/since-making-that-post/</link>
					<comments>https://the-witness.net/news/2015/12/since-making-that-post/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 23 Dec 2015 23:05:24 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=3148</guid>

					<description><![CDATA[Arabic is fixed!<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2015/12/since-making-that-post/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Arabic is fixed!</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2015/12/shot_2015.12.23__time_15_04_n03.png" rel="attachment wp-att-3149"><img src="https://the-witness.net/news/wp-content/uploads/2015/12/shot_2015.12.23__time_15_04_n03-512x288.png" alt="shot_2015.12.23__time_15_04_n03" width="512" height="288" class="aligncenter size-large wp-image-3149" /></a></p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2015/12/shot_2015.12.23__time_15_04_n04.png" rel="attachment wp-att-3150"><img src="https://the-witness.net/news/wp-content/uploads/2015/12/shot_2015.12.23__time_15_04_n04-512x288.png" alt="shot_2015.12.23__time_15_04_n04" width="512" height="288" class="aligncenter size-large wp-image-3150" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2015/12/since-making-that-post/feed/</wfw:commentRss>
			<slash:comments>51</slash:comments>
		
		
			</item>
		<item>
		<title>Entering the Home Stretch</title>
		<link>https://the-witness.net/news/2015/12/entering-the-home-stretch/</link>
					<comments>https://the-witness.net/news/2015/12/entering-the-home-stretch/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 22 Dec 2015 22:07:48 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=3138</guid>

					<description><![CDATA[We've been averaging about a blog post a month -- not by design, it just works out that way -- which means if we stick to that pace, then in just one more posting, the launch of the game will be imminent. Well, I think we will post a little …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2015/12/entering-the-home-stretch/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>We've been averaging about a blog post a month -- not by design, it just works out that way -- which means if we stick to that pace, then in just one more posting, the launch of the game will be imminent.</p>
<p>Well, I think we will post a little more frequently, because we'll have increasing amounts to say about the game as we get closer to release. In the meantime, here's:</p>
<p><iframe width="900" height="506" src="https://www.youtube.com/embed/xzNh-hdceiU?feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<p>(It is longer than Long Screenshot #1!)</p>
<p><strong>Voiceover</strong></p>
<p>This week we just finished recording the majority of the final voiceover. We're going to do a little more in early January, but most of it is in the can. After New Year's we'll make some postings where we announce who the voice actors are (you may know some of them from other recent games!)</p>
<p><strong>Physical Box Release</strong></p>
<p>We've had some people asking us whether there will be a physical retail release of The Witness. It's seeming likely, as we have been in talks with a couple of parties for a while about that possibility. *However*, it looks like if there is a retail release, it won't happen until a little bit after the digital release. The reason is just that we need all the time we can get up until the release date in order to get all the finishing touches into the game; but because of the lead-time involved in physical manufacturing and distribution, we would have to freeze the game right about now in order to have it on store shelves for the release date. *Or* we could delay the digital release date in order to wait for the physical. But I don't see a good reason to do either of those things. I would rather just focus our energy on making the game as good as we can make it, and a retail version can lag behind by a little bit.</p>
<p><strong>What Else is Going On</strong></p>
<p>We've gotten the bulk of the translations into the game for all the languages mentioned in the previous blog posting. There is a small percentage of text that will come in a little later, but for the most part those languages are in. Also, we will be adding Hungarian to the list of languages suppoorted at release.</p>
<p>Here are some screenshots of Arabic and Russian:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2015/12/Arabic.png" rel="attachment wp-att-3142"><img src="https://the-witness.net/news/wp-content/uploads/2015/12/Arabic-512x288.png" alt="Arabic" width="512" height="288" class="aligncenter size-large wp-image-3142" /></a></p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2015/12/Russian.png" rel="attachment wp-att-3141"><img src="https://the-witness.net/news/wp-content/uploads/2015/12/Russian-512x288.png" alt="Russian" width="512" height="288" class="aligncenter size-large wp-image-3141" /></a></p>
<p>Of all the languages, supporting Arabic took by far the most programming work, and as you can see from some gaps between the letters, and a couple of cases where letters are too close to each other, it's not quite done yet. I will be working on that as soon as I finish with this blog posting! But I think even with these issues it is starting to look nice.</p>
<p>We're doing *lots* of little gameplay fixes all around the island, like, what does collision feel like in this area when you bump into things, what happens if you are standing in this doorway and the door tries to close on top of you, all that kind of thing.</p>
<p>Visuals are mostly locked down at the moment; we are no longer changing big things about how the game looks, we're more making spot-fixes here and there every time we see something we don't totally like.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2015/12/entering-the-home-stretch/feed/</wfw:commentRss>
			<slash:comments>64</slash:comments>
		
		
			</item>
		<item>
		<title>On Music, Sound Effects, Story</title>
		<link>https://the-witness.net/news/2015/11/on-music-sound-effects-story/</link>
					<comments>https://the-witness.net/news/2015/11/on-music-sound-effects-story/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Thu, 19 Nov 2015 22:03:32 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=3121</guid>

					<description><![CDATA[Music and Sound Effects Once in a while I get a question, from someone who really liked the music in Braid, what the soundtrack in The Witness is like. The answer to this question is that there isn't one. There is (almost) no music in the game. This is not …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2015/11/on-music-sound-effects-story/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p><a href="https://the-witness.net/news/wp-content/uploads/2015/11/record_player.png"><img class="aligncenter size-large wp-image-3127" src="https://the-witness.net/news/wp-content/uploads/2015/11/record_player-512x288.png" alt="record_player" width="512" height="288" /></a></p>
<p><strong>Music and Sound Effects</strong></p>
<p>Once in a while I get a question, from someone who really liked the music in Braid, what the soundtrack in The Witness is like. The answer to this question is that there isn't one. There is (almost) no music in the game. This is not an arbitrary decision, but is in fact very important to the coherence of the thing we are making.</p>
<p>The Witness is a game about being perceptive: noticing subtleties in the puzzles you find, noticing details in the world around you. If we slather on a layer of music that is just arbitrarily playing, and not really coming from the world, then we're adding a layer of stuff that works against the game. It'd be like a layer of insulation that you have to hear through in order to be more present in the world.</p>
<p>Instead, we put a great deal of care into the sounds of the world around you, in a way that maximizes immersion in the game. This is made trickier by the game's setting: you are alone on this island, and there are not even any other animals. There are no birds in the trees! In everyday life if we imagine the sound of nature, we'll think of some elements that have no place on the island: a forest naturally has the sounds of birds, plains with smaller shrubbery will have crickets, a marsh will have the sounds of many insects. There's none of that in this game because in this game you are really alone, and it has forced us to be very creative with the audio in order to ensure things have depth and texture to them. This work is being done by Wabi Sabi Sound, who did the sound for the very atmospheric Dead Space series, and more recently some smaller, artier games like Ori and the Blind Forest.</p>
<p>We thought it would be fun to release a few more small videos to give you more of a feel of what the world of the game is like, so here's:</p>
<p><iframe width="900" height="506" src="https://www.youtube.com/embed/j4PD0skohfM?feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<p><strong>Story and Voicework</strong></p>
<p>Lately I have been doing a lot of work on story and voice acting stuff. When wandering around the island, you may find voice recordings that were placed by ... well, at the outset of the game, you don't know who; and as the game goes along, there is an interesting mystery to unfold about who these people are or were. In the game currently we have what is known as "temp voice", which is me reading all the parts under very noisy conditions and just getting them into the game so we can make sure the data works properly with the engine, to get all the subtitles into the game and roughly synced with the audio (which we need to do sooner than later so we can give the translators those subtitles, which they will translate into many different languages).</p>
<p>We have cast the real actors and starting tomorrow we'll do our first test readings with those actors. We'll use this to get a new layer of temp voice in the game, which will get it closer to final; this will allow me to see how the game really feels with this stuff in there, possibly to adjust the nuances of the way the recordings appear in the game and the way they are played back. When everything feels good we'll do a set of final recording sessions. There's not a whole lot of time until release, and we have several holidays coming up, but we'll get it done!</p>
<p>We are working with Warner Brothers Game Audio in Burbank, California to do the voice stuff; they are providing the facilities and voice direction and production assistance. After we do a few recording sessions I will have more details to share in this department.</p>
<p><img class="aligncenter size-large wp-image-3128" src="https://the-witness.net/news/wp-content/uploads/2015/11/limited-512x287.png" alt="limited" width="512" height="287" /><br />
<strong>Localization</strong></p>
<p>Earlier, I mentioned subtitles. As many games do, we will be localizing our game so that people who speak many different languages will be able to understand the words. We are not recording voice acting in different languages, mainly because it is pretty hard to make sure quality is high when you do that. It is hard enough making sure acting is good in just *one* language. We generally seem to feel the same way about movies: a foreign-language dub of a movie is generally considered to be inferior to a subtitled version, because the acting is so important.</p>
<p>Our localization efforts will involve menu text and subtitles, just as for a good movie.</p>
<p>This is not 100% final, but here's the list of languages we are planning to have translations for, at launch:</p>
<ul>
<li>English</li>
<li>Italian</li>
<li>French</li>
<li>German</li>
<li>Spanish (Spain)</li>
<li>Spanish (Latin America)</li>
<li>Portuguese (Portugal)</li>
<li>Portuguese (Brazil)</li>
<li>Arabic</li>
<li>Russian</li>
<li>Chinese (Simplified)</li>
<li>Chinese (Traditional)</li>
<li>Japanese</li>
<li>Korean</li>
<li>Polish</li>
<li>Indonesian</li>
</ul>
<p>We may add more languages later but man this stuff is expensive, so there is a limit to how many languages we can do at once.</p>
<p>We will have more news for you before too long!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2015/11/on-music-sound-effects-story/feed/</wfw:commentRss>
			<slash:comments>67</slash:comments>
		
		
			</item>
		<item>
		<title>Architecture in Video Games</title>
		<link>https://the-witness.net/news/2015/10/architecture-in-video-games/</link>
					<comments>https://the-witness.net/news/2015/10/architecture-in-video-games/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 13 Oct 2015 22:01:22 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=3111</guid>

					<description><![CDATA[Deanna Van Buren, who worked with us designing the buildings for The Witness, has a blog posting on Gamasutra about video games seen through the eyes of an architect. You can read it here.<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2015/10/architecture-in-video-games/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Deanna Van Buren, who worked with us designing the buildings for The Witness, has a blog posting on Gamasutra about video games seen through the eyes of an architect.</p>
<p><a href="http://www.gamasutra.com/blogs/DeannaVanBuren/20151012/254238/Architecture_in_Video_Games_Designing_for_Impact.php">You can read it here.</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2015/10/architecture-in-video-games/feed/</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
			</item>
		<item>
		<title>New trailer and interviews!</title>
		<link>https://the-witness.net/news/2015/09/new-trailer-and-interviews/</link>
					<comments>https://the-witness.net/news/2015/09/new-trailer-and-interviews/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Fri, 18 Sep 2015 03:26:01 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=3093</guid>

					<description><![CDATA[Hey look! A new trailer! Here's my update on the PlayStation Blog. Also, we have some interviews and previews of the game: Gamespot Ars Technica Polygon Wired PlayStation Blog The PlayStation Blogcast had a nice ten-minute discussion of the game.<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2015/09/new-trailer-and-interviews/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Hey look! A new trailer!</p>
<p><iframe width="900" height="506" src="https://www.youtube.com/embed/SPMMKFX78x0?feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<p><a href="http://t.co/K4ynW5n35d" target="_blank">Here's my update on the PlayStation Blog</a>.</p>
<p>Also, we have some interviews and previews of the game:</p>
<p><a href="http://t.co/mhw3Yex11e" target="_blank">Gamespot</a><br />
<a href="http://t.co/TDEwGb9Fxx" target="_blank">Ars Technica<br />
</a><a href="http://t.co/B5gPE2Qj0b" target="_blank">Polygon<br />
</a><a href="http://t.co/1h1goJqogC" target="_blank">Wired<br />
</a><a href="http://blog.us.playstation.com/2015/09/21/the-witness-inside-one-of-2016s-most-important-games-2/">PlayStation Blog</a></p>
<p>The PlayStation Blogcast had a <a href="http://blog.us.playstation.com/2015/09/17/playstation-blogcast-180-witness-me/">nice ten-minute discussion of the game</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2015/09/new-trailer-and-interviews/feed/</wfw:commentRss>
			<slash:comments>88</slash:comments>
		
		
			</item>
		<item>
		<title>Workin&#8217; on a new trailer.</title>
		<link>https://the-witness.net/news/2015/09/workin-on-a-new-trailer/</link>
					<comments>https://the-witness.net/news/2015/09/workin-on-a-new-trailer/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sun, 06 Sep 2015 02:09:14 +0000</pubDate>
				<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=3075</guid>

					<description><![CDATA[This week we have been working on a new trailer that we hope to release before too long. It will not only show the game in a further state of visual development than the previous trailer (which is two and a half years old now -- wow!), it'll also show …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2015/09/workin-on-a-new-trailer/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>This week we have been working on a new trailer that we hope to release before too long.</p>
<p>It will not only show the game in a further state of visual development than the previous trailer (which is two and a half years old now -- wow!), it'll also show lots of scenes you probably haven't seen before.</p>
<p>The trailer isn't done yet, but here are a few stills:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2015/09/vlcsnap-2015-09-05-18h56m05s251.png"><img class="aligncenter size-large wp-image-3076" src="https://the-witness.net/news/wp-content/uploads/2015/09/vlcsnap-2015-09-05-18h56m05s251-512x288.png" alt="vlcsnap-2015-09-05-18h56m05s251" width="512" height="288" /></a> <a href="https://the-witness.net/news/wp-content/uploads/2015/09/vlcsnap-2015-09-05-18h57m01s238.png"><img class="aligncenter size-large wp-image-3077" src="https://the-witness.net/news/wp-content/uploads/2015/09/vlcsnap-2015-09-05-18h57m01s238-512x288.png" alt="vlcsnap-2015-09-05-18h57m01s238" width="512" height="288" /></a> <a href="https://the-witness.net/news/wp-content/uploads/2015/09/vlcsnap-2015-09-05-18h58m26s420.png"><img class="aligncenter size-large wp-image-3078" src="https://the-witness.net/news/wp-content/uploads/2015/09/vlcsnap-2015-09-05-18h58m26s420-512x288.png" alt="vlcsnap-2015-09-05-18h58m26s420" width="512" height="288" /></a></p>
<p>Ignore the debug text in the upper-right (including the frame rate; these were taken on a monitor that's locked at 30Hz; the game runs much faster on higher-end PCs.) Also, the actual trailer will be produced at much sharper image quality and higher resolution. These are just snippets of the non-final footage we are using to figure out the composition and flow of the trailer.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2015/09/workin-on-a-new-trailer/feed/</wfw:commentRss>
			<slash:comments>62</slash:comments>
		
		
			</item>
		<item>
		<title>Progress!</title>
		<link>https://the-witness.net/news/2015/01/progress/</link>
					<comments>https://the-witness.net/news/2015/01/progress/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Mon, 26 Jan 2015 01:19:47 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2911</guid>

					<description><![CDATA[On Friday we officially reached the Puzzle Complete milestone. This means that all puzzles that will be in the game when it ships are in the game now. It does *not* mean that the game is done. We still have a lot to do! But it *does* mean that the nature …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2015/01/progress/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>On Friday we officially reached the Puzzle Complete milestone. This means that all puzzles that will be in the game when it ships are in the game now.</p>
<p>It does *not* mean that the game is done. We still have a lot to do! But it *does* mean that the nature of the work changes and becomes simpler, because we don't have to be making high-level creative decisions any more. It is now much more about turning the finish-the-game crank (making sure stuff plays well and polishing it up) for anything related to game design, modeling and texturing.</p>
<p>There are a few categories that still need creative decisions (story stuff, the menu system, etc), but for those of you who are awaiting the game's release, this is pretty good news.</p>
<p>There are currently 677 puzzles in the game. That number might be slightly different when it ships (we might cut a few, for example!)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2015/01/progress/feed/</wfw:commentRss>
			<slash:comments>124</slash:comments>
		
		
			</item>
		<item>
		<title>What we&#8217;ve been working on lately.</title>
		<link>https://the-witness.net/news/2014/09/what-weve-been-working-on-lately/</link>
					<comments>https://the-witness.net/news/2014/09/what-weve-been-working-on-lately/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 10 Sep 2014 18:02:36 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Engine Tech]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2679</guid>

					<description><![CDATA[We built a DirectX11 rendering backend for our engine, which is likely to be the default when running on Windows. Up until now we had been running on DirectX9, which made sense when we thought the game was going to be done a while ago. But these days, DX9 is …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2014/09/what-weve-been-working-on-lately/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>We built a DirectX11 rendering backend for our engine, which is likely to be the default when running on Windows. Up until now we had been running on DirectX9, which made sense when we thought the game was going to be done a while ago. But these days, DX9 is getting pretty old and busted. So far the DirectX11 version has been very successful; the engine runs much more smoothly, especially on low-end platforms, due to the drastically lowered CPU overhead of draw calls. There's a little work to do here still -- some of our weirder shaders don't work in DX11 yet and there are a couple of lighting bugs -- but this all should be nailed down soon.</p>
<p>We've been revising the modeling and texturing for areas near the end of the game. There are some nice treats in store!</p>
<p>We've been working on some of the "special effects" in the game, most notably particle effects. Our particle system was old and slow, so we are speeding this up, and then we will make some modifications to help make particle authoring an easier process.</p>
<p>We've been making some baseline functionality smoother. For example, so that you don't need to think about saving your game, The Witness autosaves your progress every minute or so. On a high-end PC, you don't notice the autosave, but on a low-end PC or on a console (because consoles tend to have different memory access properties than PCs), scanning the world for stuff that needs to be saved can be pretty slow, like, it could take 1/10 of a second, which would result in a hitch in the frame rate happening every minute. So we are hammering on this to make it faster, which should also result in saved game files being smaller, since we'll be excluding a lot of things that don't need to be saved.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2014/09/what-weve-been-working-on-lately/feed/</wfw:commentRss>
			<slash:comments>47</slash:comments>
		
		
			</item>
		<item>
		<title>Irradiance Caching &#8211; Continued</title>
		<link>https://the-witness.net/news/2014/07/irradiance-caching-continued/</link>
					<comments>https://the-witness.net/news/2014/07/irradiance-caching-continued/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Thu, 10 Jul 2014 18:36:34 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Engine Tech]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2646</guid>

					<description><![CDATA[... ... Ignacio has posted the conclusion of his series on irradiance caching -- at long last! -- and released the source code. This code is a significant chunk of what makes lighting in The Witness as nice as it is.<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2014/07/irradiance-caching-continued/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>...<br />
...</p>
<p>Ignacio has posted <a href="http://www.ludicon.com/castano/blog/2014/07/irradiance-caching-continued/">the conclusion of his series on irradiance caching</a> -- at long last! -- and released the source code.</p>
<p>This code is a significant chunk of what makes lighting in The Witness as nice as it is.</p>
<p><a href="http://www.ludicon.com/castano/blog/2014/07/irradiance-caching-continued/"><img class="aligncenter size-large wp-image-2648" src="https://the-witness.net/news/wp-content/uploads/2014/07/neighbor_clamping_02-512x213.jpg" alt="neighbor_clamping_02" width="512" height="213" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2014/07/irradiance-caching-continued/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>Island Snapshot: What-year-is-this Edition</title>
		<link>https://the-witness.net/news/2014/05/island-snapshot-what-year-is-this-edition/</link>
					<comments>https://the-witness.net/news/2014/05/island-snapshot-what-year-is-this-edition/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Thu, 29 May 2014 22:23:50 +0000</pubDate>
				<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2527</guid>

					<description><![CDATA[E3 is happening in under two weeks, so what better thing to do than to completely destroy the part of the game everyone at E3 will play, and rebuild it from scratch in very limited time? This is of course a very crude mockup of what the new starting area …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2014/05/island-snapshot-what-year-is-this-edition/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>E3 is happening in under two weeks, so what better thing to do than to completely destroy the part of the game everyone at E3 will play, and rebuild it from scratch in very limited time?</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2014/05/shot_2014.05.28__time_15_49_n01.png"><img class="aligncenter size-large wp-image-2528" src="https://the-witness.net/news/wp-content/uploads/2014/05/shot_2014.05.28__time_15_49_n01-512x288.png" alt="shot_2014.05.28__time_15_49_n01" width="512" height="288" /></a></p>
<p>This is of course a very crude mockup of what the new starting area will be. It's smaller than the old one and should work a little better play-wise. We have yet to reshape the terrain around it, so there are huge holes. Our deadline to have this area fully rebuilt is the 6th of June!</p>
<p>Current puzzle count is 627.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2014/05/island-snapshot-what-year-is-this-edition/feed/</wfw:commentRss>
			<slash:comments>18</slash:comments>
		
		
			</item>
		<item>
		<title>Witness Wednesday on How to Program</title>
		<link>https://the-witness.net/news/2014/05/witness-wednesday-on-how-to-program/</link>
					<comments>https://the-witness.net/news/2014/05/witness-wednesday-on-how-to-program/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 28 May 2014 19:27:11 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2523</guid>

					<description><![CDATA[Sometimes people ask me for advice on how to program, and I have to say that Casey's advice here is right on: http://mollyrocket.com/casey/stream_0019.html Meanwhile, we've had a lot of Witness Wednesday posts in a row on this blog. I'll have to stop slacking and write something about the game.<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2014/05/witness-wednesday-on-how-to-program/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Sometimes people ask me for advice on how to program, and I have to say that Casey's advice here is right on:</p>
<p><a href="http://mollyrocket.com/casey/stream_0019.html">http://mollyrocket.com/casey/stream_0019.html</a></p>
<p>Meanwhile, we've had a lot of Witness Wednesday posts in a row on this blog. I'll have to stop slacking and write something about the game.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2014/05/witness-wednesday-on-how-to-program/feed/</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
			</item>
		<item>
		<title>Casey&#8217;s Witness Wednesday on Interpolation</title>
		<link>https://the-witness.net/news/2014/05/caseys-witness-wednesday-on-interpolation/</link>
					<comments>https://the-witness.net/news/2014/05/caseys-witness-wednesday-on-interpolation/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Fri, 23 May 2014 16:53:52 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Engine Tech]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2518</guid>

					<description><![CDATA[He's put up another very informative blog post, leaving the specific topic of grass planting, venturing into more general territory regarding interpolation. And there's a video, from which it is possible to learn a lot of this is a new subject. Here's the blog post. Here's the video: &#160;<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2014/05/caseys-witness-wednesday-on-interpolation/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>He's put up another very informative blog post, leaving the specific topic of grass planting, venturing into more general territory regarding interpolation. And there's a video, from which it is possible to learn a lot of this is a new subject.</p>
<p><a href="http://mollyrocket.com/casey/stream_0018.html">Here's the blog post.</a></p>
<p>Here's the video:</p>
<p><iframe width="900" height="506" src="https://www.youtube.com/embed/S2fz4BS2J3Y?feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2014/05/caseys-witness-wednesday-on-interpolation/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>Witness Friday post on Casey&#8217;s blog</title>
		<link>https://the-witness.net/news/2014/05/witness-friday-post-on-caseys-blog/</link>
					<comments>https://the-witness.net/news/2014/05/witness-friday-post-on-caseys-blog/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sat, 03 May 2014 20:23:14 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Engine Tech]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2509</guid>

					<description><![CDATA[Casey Muratori is back, with more details about planting grass when you really care about how good the results are. &#160; &#160; &#160; Update: And here's another post, complete with a video showing in detail how the grass planting works in the actual game.<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2014/05/witness-friday-post-on-caseys-blog/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Casey Muratori is back, with <a href="http://mollyrocket.com/casey/stream_0015.html">more details about planting grass</a> when you really care about how good the results are.</p>
<p>&nbsp;</p>
<p><a href="http://mollyrocket.com/casey/stream_0015.html"><img class="aligncenter size-large wp-image-2510" src="https://the-witness.net/news/wp-content/uploads/2014/05/grass_03_22-512x269.png" alt="grass_03_22" width="512" height="269" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Update</strong>: And here's <a href="http://mollyrocket.com/casey/stream_0017.html">another post</a>, complete with a video showing in detail how the grass planting works in the actual game.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2014/05/witness-friday-post-on-caseys-blog/feed/</wfw:commentRss>
			<slash:comments>18</slash:comments>
		
		
			</item>
		<item>
		<title>Working on The Witness, Parts 5 and 6.</title>
		<link>https://the-witness.net/news/2014/04/working-on-the-witness-part-5/</link>
					<comments>https://the-witness.net/news/2014/04/working-on-the-witness-part-5/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 16 Apr 2014 19:20:53 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Engine Tech]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2489</guid>

					<description><![CDATA[Casey Muratori has made new postings about the work he has done on The Witness: Working on The Witness, Part 5 Working on The Witness, Part 6 In this one he talks about how to distribute grass. Legally. As well as the different colors of noise one might want to …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2014/04/working-on-the-witness-part-5/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Casey Muratori has made new postings about the work he has done on The Witness:</p>
<p><a href="http://mollyrocket.com/casey/stream_0013.html">Working on The Witness, Part 5</a></p>
<p><a href="http://mollyrocket.com/casey/stream_0014.html">Working on The Witness, Part 6</a></p>
<p>In this one he talks about how to distribute grass. Legally. As well as the different colors of noise one might want to be familiar with in order to do this well.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2014/04/working-on-the-witness-part-5/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
		<item>
		<title>Hey look, Oculus support *plus* Steam Controller support.</title>
		<link>https://the-witness.net/news/2014/02/hey-look-oculus-support-plus-steam-controller-support/</link>
					<comments>https://the-witness.net/news/2014/02/hey-look-oculus-support-plus-steam-controller-support/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 05 Feb 2014 02:17:15 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2446</guid>

					<description><![CDATA[<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2014/02/hey-look-oculus-support-plus-steam-controller-support/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p><a href="https://the-witness.net/news/wp-content/uploads/2014/02/IMG_20140204_1812251.jpg"><img class="aligncenter size-large wp-image-2447" alt="IMG_20140204_181225[1]" src="https://the-witness.net/news/wp-content/uploads/2014/02/IMG_20140204_1812251-288x384.jpg" width="288" height="384" /></a> <a href="https://the-witness.net/news/wp-content/uploads/2014/02/IMG_20140204_1813521.jpg"><img class="aligncenter size-large wp-image-2448" alt="IMG_20140204_181352[1]" src="https://the-witness.net/news/wp-content/uploads/2014/02/IMG_20140204_1813521-512x384.jpg" width="512" height="384" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2014/02/hey-look-oculus-support-plus-steam-controller-support/feed/</wfw:commentRss>
			<slash:comments>51</slash:comments>
		
		
			</item>
		<item>
		<title>Hey look, Steam controller support:</title>
		<link>https://the-witness.net/news/2014/02/hey-look-steam-controller-support/</link>
					<comments>https://the-witness.net/news/2014/02/hey-look-steam-controller-support/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 04 Feb 2014 23:48:51 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2443</guid>

					<description><![CDATA[<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2014/02/hey-look-steam-controller-support/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p><a href="https://the-witness.net/news/wp-content/uploads/2014/02/IMG_20140204_1542451.jpg"><img class="aligncenter size-large wp-image-2444" alt="IMG_20140204_154245[1]" src="https://the-witness.net/news/wp-content/uploads/2014/02/IMG_20140204_1542451-512x384.jpg" width="512" height="384" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2014/02/hey-look-steam-controller-support/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>What that VR post was about</title>
		<link>https://the-witness.net/news/2014/01/what-that-vr-post-was-about/</link>
					<comments>https://the-witness.net/news/2014/01/what-that-vr-post-was-about/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Fri, 24 Jan 2014 19:27:49 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2432</guid>

					<description><![CDATA[Last November I made a somewhat-mysterious posting which some people speculated was hinting at stereoscopic rendering in The Witness. Indeed it was, and Now It Can Be Told. Last year I was pessimistic about VR systems in the near future, since the ones I had tried didn't seem to offer …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2014/01/what-that-vr-post-was-about/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Last November I made a <a href="https://the-witness.net/news/2013/11/what-could-it-mean/">somewhat-mysterious posting</a> which some people speculated was hinting at stereoscopic rendering in The Witness. Indeed it was, and Now It Can Be Told.</p>
<p>Last year I was pessimistic about VR systems in the near future, since the ones I had tried didn't seem to offer much (certainly not enough to justify wearing a bulky headset all the time and fighting back feelings of nausea).</p>
<p>But I was fortunate enough to get a sneak peek at Valve's virtual reality system. It is so much better than anything else I had used that I was instantly very excited by it. Right away I could see games you might design for this system that had been impossible before; so it isn't just a matter of the system being very immersive (which it is) but that it can take video games in general to a new place.</p>
<p>We worked with Valve to get support for the system in The Witness, and that's where those screenshots come from (but when I took the shots, an HMD was not plugged in, and as a result what you see is a dummy calibration that does not correspond to any useful image-warping; the screenshot was really more about just being happy about the stereo display capability.) In late November I spent a few days at Valve's offices working with Atman Binstock and Doug Church to adapt the HMD's input system more thoroughly for The Witness and to build a few scenes that are playable on the device.</p>
<p>(In theory the whole game is playable on the device, but when you are rendering for VR the performance demands become much higher, because you are rendering two scenes at higher resolution than you might previously have been rendering one scene. So the full game world with all content currently does not run fast enough for this device, but that is the kind of problem that gets solved over time).</p>
<p>We had to keep this under wraps, though, because Valve's system was not announced. But this month at Steam Dev Days they revealed details of the system.</p>
<p>For more details on the Valve system, Lee Vermeulen wrote up a nice post of his impressions:</p>
<p>http://www.3delement.com/?p=332</p>
<p>So, we will be supporting this device (and any similar devices) with The Witness. But I am really looking forward to see what gets designed specifically for devices like this.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2014/01/what-that-vr-post-was-about/feed/</wfw:commentRss>
			<slash:comments>20</slash:comments>
		
		
			</item>
		<item>
		<title>It&#8217;s been a while since we did an Island Snapshot</title>
		<link>https://the-witness.net/news/2013/12/its-been-a-while-since-we-did-an-island-snapshot/</link>
					<comments>https://the-witness.net/news/2013/12/its-been-a-while-since-we-did-an-island-snapshot/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Thu, 19 Dec 2013 02:34:02 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2422</guid>

					<description><![CDATA[... so here one is. &#160; &#160; Luis has been doing a lot of work lately on the mountain and especially the stuff at the top. Other folks have been doing a bunch of work on things that are not as obvious in this picture! Current puzzle count: 595<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2013/12/its-been-a-while-since-we-did-an-island-snapshot/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>... so here one is.</p>
<p>&nbsp;</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2013/12/shot_2013.12.18__time_18_30_n01.png"><img class="aligncenter size-large wp-image-2423" alt="shot_2013.12.18__time_18_30_n01" src="https://the-witness.net/news/wp-content/uploads/2013/12/shot_2013.12.18__time_18_30_n01-512x288.png" width="512" height="288" /></a></p>
<p>&nbsp;</p>
<p>Luis has been doing a lot of work lately on the mountain and especially the stuff at the top.</p>
<p>Other folks have been doing a bunch of work on things that are not as obvious in this picture!</p>
<p>Current puzzle count: 595</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2013/12/its-been-a-while-since-we-did-an-island-snapshot/feed/</wfw:commentRss>
			<slash:comments>35</slash:comments>
		
		
			</item>
		<item>
		<title>What could it mean??</title>
		<link>https://the-witness.net/news/2013/11/what-could-it-mean/</link>
					<comments>https://the-witness.net/news/2013/11/what-could-it-mean/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sat, 30 Nov 2013 02:57:25 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2415</guid>

					<description><![CDATA[&#160;<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2013/11/what-could-it-mean/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p><a href="https://the-witness.net/news/wp-content/uploads/2013/11/vr1.png"><img class="aligncenter size-large wp-image-2416" alt="vr1" src="https://the-witness.net/news/wp-content/uploads/2013/11/vr1-512x283.png" width="512" height="283" /></a></p>
<p>&nbsp;</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2013/11/vr2.png"><img class="aligncenter size-large wp-image-2417" alt="vr2" src="https://the-witness.net/news/wp-content/uploads/2013/11/vr2-512x280.png" width="512" height="280" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2013/11/what-could-it-mean/feed/</wfw:commentRss>
			<slash:comments>71</slash:comments>
		
		
			</item>
		<item>
		<title>A speech about Free-to-Play game design</title>
		<link>https://the-witness.net/news/2013/11/a-speech-about-free-to-play-game-design/</link>
					<comments>https://the-witness.net/news/2013/11/a-speech-about-free-to-play-game-design/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Mon, 04 Nov 2013 22:53:16 +0000</pubDate>
				<category><![CDATA[Ill-Advised Rants]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2372</guid>

					<description><![CDATA[About a month ago, I gave a speech at Creative Mornings in Portland about the way the Free-to-Play business model affects game design. I compared games to television, looking at the way television business models have drastically affected the composition of those shows. &#160; (I didn't name this speech; the …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2013/11/a-speech-about-free-to-play-game-design/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>About a month ago, I gave a speech at Creative Mornings in Portland about the way the Free-to-Play business model affects game design. I compared games to television, looking at the way television business models have drastically affected the composition of those shows.</p>
<p><p><a href="https://www.youtube.com/watch?v=AxFzf6yIfcc"><img src="https://img.youtube.com/vi/AxFzf6yIfcc/2.jpg"></a></p>
<p><a href="https://www.youtube.com/watch?v=AxFzf6yIfcc">Click here to view the video on YouTube</a>.</p>
</p>
<p>&nbsp;</p>
<p>(I didn't name this speech; the title given here was picked by Creative Mornings after the speech was given.)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2013/11/a-speech-about-free-to-play-game-design/feed/</wfw:commentRss>
			<slash:comments>77</slash:comments>
		
		
			</item>
		<item>
		<title>Recent coverage of The Witness:</title>
		<link>https://the-witness.net/news/2013/10/recent-coverage-of-the-witness/</link>
					<comments>https://the-witness.net/news/2013/10/recent-coverage-of-the-witness/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Thu, 24 Oct 2013 19:54:05 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2365</guid>

					<description><![CDATA[Interview with Adam Sessler at last week's PlayStation event: &#160; Discussion on PlayStation Blogcast (Witness talk starts around 26:25): http://blog.us.playstation.com/2013/10/18/playstation-blogcast-094-witness-the-daylight/ (From the way the PS guys talk, it sounds like it is all me making this game, but as always on games of this size, there is a whole team …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2013/10/recent-coverage-of-the-witness/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Interview with Adam Sessler at last week's PlayStation event:</p>
<p><p><a href="https://www.youtube.com/watch?v=16wLW9hJTkg"><img src="https://img.youtube.com/vi/16wLW9hJTkg/2.jpg"></a></p>
<p><a href="https://www.youtube.com/watch?v=16wLW9hJTkg">Click here to view the video on YouTube</a>.</p>
</p>
<p>&nbsp;</p>
<p>Discussion on PlayStation Blogcast (Witness talk starts around 26:25):</p>
<p><a href="http://blog.us.playstation.com/2013/10/18/playstation-blogcast-094-witness-the-daylight/">http://blog.us.playstation.com/2013/10/18/playstation-blogcast-094-witness-the-daylight/</a></p>
<p>(From the way the PS guys talk, it sounds like it is all me making this game, but as always on games of this size, there is a whole team making it happen!)</p>
<p>Interview with Gametrailers, also from the PlayStation event (you may have to sit through a commercial with army dudes to see it):</p>
<p><a href="http://www.gametrailers.com/videos/aeeuwu/the-witness-the-puzzle-of-making-puzzles">http://www.gametrailers.com/videos/aeeuwu/the-witness-the-puzzle-of-making-puzzles</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2013/10/recent-coverage-of-the-witness/feed/</wfw:commentRss>
			<slash:comments>17</slash:comments>
		
		
			</item>
		<item>
		<title>Pictures from a Demo Day at Sony</title>
		<link>https://the-witness.net/news/2013/10/pictures-from-a-demo-day-at-sony/</link>
					<comments>https://the-witness.net/news/2013/10/pictures-from-a-demo-day-at-sony/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Thu, 17 Oct 2013 04:47:38 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2355</guid>

					<description><![CDATA[Sony had an event today at their offices in Foster City to give the press some hands-on time with upcoming games running on the PlayStation 4. The Witness was among the games being shown! We were the only third-party game there. Also shown were a whole lot of Killzone: Shadow …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2013/10/pictures-from-a-demo-day-at-sony/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Sony had an event today at their offices in Foster City to give the press some hands-on time with upcoming games running on the PlayStation 4.</p>
<p><em>The W</em><em>itness</em> was among the games being shown! We were the only third-party game there. Also shown were a whole lot of Killzone: Shadow Fall, Knack, PS4 versions of Sound Shapes and Flower, and Resogun.</p>
<p>I did some interviews and talked to a number of press people who are very interested in <em>The Witness</em>. I also took some photos.</p>
<p>Brad from Giant Bomb playing <em>The Witness</em>:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2013/10/IMG_0233.jpg"><img class="aligncenter size-large wp-image-2356" alt="IMG_0233" src="https://the-witness.net/news/wp-content/uploads/2013/10/IMG_0233-512x384.jpg" width="512" height="384" /></a></p>
<p>The room we were in:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2013/10/IMG_0236.jpg"><img class="aligncenter size-large wp-image-2358" alt="IMG_0236" src="https://the-witness.net/news/wp-content/uploads/2013/10/IMG_0236-512x384.jpg" width="512" height="384" /><br />
</a> <a href="https://the-witness.net/news/wp-content/uploads/2013/10/IMG_0237.jpg"><img class="aligncenter size-large wp-image-2359" alt="IMG_0237" src="https://the-witness.net/news/wp-content/uploads/2013/10/IMG_0237-512x384.jpg" width="512" height="384" /></p>
<p></a> <em>Flower</em> at 1080p and 60Hz, with the new, more-sensitive controller, feels nice to play:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2013/10/IMG_0238.jpg"><img class="aligncenter size-large wp-image-2360" alt="IMG_0238" src="https://the-witness.net/news/wp-content/uploads/2013/10/IMG_0238-512x384.jpg" width="512" height="384" /><br />
</a></p>
<p><em> Sound Shapes</em>:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2013/10/IMG_0240.jpg"><img class="aligncenter size-large wp-image-2361" alt="IMG_0240" src="https://the-witness.net/news/wp-content/uploads/2013/10/IMG_0240-512x384.jpg" width="512" height="384" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2013/10/pictures-from-a-demo-day-at-sony/feed/</wfw:commentRss>
			<slash:comments>30</slash:comments>
		
		
			</item>
		<item>
		<title>More Screenshots</title>
		<link>https://the-witness.net/news/2013/08/more-screenshots/</link>
					<comments>https://the-witness.net/news/2013/08/more-screenshots/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Mon, 05 Aug 2013 19:46:11 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2230</guid>

					<description><![CDATA[It's been a long time since the last posting! Time flies. Normally I would post an Island Snapshot, but the viewpoint we have been using for Island Snapshots is a little bit unfortunate lately, since the main thing taking up the view is the mountain, which is an area we …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2013/08/more-screenshots/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>It's been a long time since the last posting! Time flies.</p>
<p>Normally I would post an Island Snapshot, but the viewpoint we have been using for Island Snapshots is a little bit unfortunate lately, since the main thing taking up the view is the mountain, which is an area we haven't worked on modeling-wise lately. (It is a big area so we are going to do a concentrated push on it in a little bit, when some other things get locked down.)</p>
<p>So, here are some screenshots of other stuff we have been working on lately. Both areas are in progress and will look better than this in the final game!</p>
<p>&nbsp;</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2013/08/shot_2013.08.05__time_12_14_n01.png"><img class="aligncenter size-large wp-image-2231" alt="shot_2013.08.05__time_12_14_n01" src="https://the-witness.net/news/wp-content/uploads/2013/08/shot_2013.08.05__time_12_14_n01-512x288.png" width="512" height="288" /></a></p>
<p>A lake that's central to the island...</p>
<p>&nbsp;</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2013/08/shot_2013.08.05__time_12_03_n19.png"><img class="aligncenter size-large wp-image-2232" alt="shot_2013.08.05__time_12_03_n19" src="https://the-witness.net/news/wp-content/uploads/2013/08/shot_2013.08.05__time_12_03_n19-512x288.png" width="512" height="288" /></a></p>
<p>A swampy area with light buildings and walkways. The vegetation you see here is temporary! But I am happy we are finally starting to work on this area; if you look at it in the trailer, for example, it's obviously very much more temporary.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2013/08/more-screenshots/feed/</wfw:commentRss>
			<slash:comments>40</slash:comments>
		
		
			</item>
		<item>
		<title>Island Snapshot</title>
		<link>https://the-witness.net/news/2013/06/island-snapshot-11/</link>
					<comments>https://the-witness.net/news/2013/06/island-snapshot-11/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Thu, 20 Jun 2013 01:34:56 +0000</pubDate>
				<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2197</guid>

					<description><![CDATA[Once again, we have been mostly working on things you can't see from this angle. The most-visible changes are probably the peninsula on the left in the foreground, which has undergone extensive work lately: It's been revamped by Alex, who is new on the team, helping us with the huge …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2013/06/island-snapshot-11/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Once again, we have been mostly working on things you can't see from this angle. The most-visible changes are probably the peninsula on the left in the foreground, which has undergone extensive work lately:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2013/06/shot_2013.06.19__time_18_23_n01.png"><img class="aligncenter size-large wp-image-2198" alt="shot_2013.06.19__time_18_23_n01" src="https://the-witness.net/news/wp-content/uploads/2013/06/shot_2013.06.19__time_18_23_n01-512x288.png" width="512" height="288" /></a></p>
<p>It's been revamped by Alex, who is new on the team, helping us with the huge amount of modeling we still need to do to finish the game. Hopefully we'll get a bio paragraph for him soon on the About page.</p>
<p>The current puzzle count is 590.</p>
<p>The current footstep count is 1756.</p>
<p>&nbsp;</p>
<p>P.S.: Last week we showed The Witness at E3. This was the first time we have ever shown the game running on the PlayStation 4. We got some nice write-ups about the game; here are just a few:</p>
<p><a href="http://www.destructoid.com/blow-s-enigmatic-the-witness-is-the-highlight-of-the-ps4-256341.phtml">Steven Hansen from Destructoid</a> really enjoyed the game!</p>
<p><a href="http://www.youtube.com/watch?v=MHnw7LH1w_Q">Tara Long from Revision 3</a> really enjoyed the game! (She also gave us an award at the show!)</p>
<p>Darren Franich from Entertainment Weekly put us at <a href="http://popwatch.ew.com/2013/06/13/best-of-e3-witness-watch-dogs-beyond-titanfall/">#1 on the list of most exciting games of E3</a>.</p>
<p><a href="http://www.gameinformer.com/games/the_witness/b/playstation4/archive/2013/06/14/five-features-that-define-the-game.aspx">Matt Miller of Game Informer seemed to really like the game</a>, and put together a list of defining features.</p>
<p><a href="http://www.gameplanet.co.nz/playstation-4/previews/1123010.E3-The-Witness-preview/">Chris Leggett of Gameplanet</a> says The Witness was his personal favorite game of E3. (The folks at Gameplanet who chose the photos to go on the article used some unfortuante, super-old development photos though!)</p>
<p><a href="http://www.gamespot.com/e3/the-witness-what-is-it-i-dont-even-6410248/">Tom McShea and Shaun McInnis of Gamespot</a> gave a video summary from the show, seeming to like the game a lot as well!</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2013/06/island-snapshot-11/feed/</wfw:commentRss>
			<slash:comments>20</slash:comments>
		
		
			</item>
		<item>
		<title>Here&#8217;s That Poster</title>
		<link>https://the-witness.net/news/2013/06/heres-that-poster/</link>
					<comments>https://the-witness.net/news/2013/06/heres-that-poster/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sat, 15 Jun 2013 21:21:10 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2191</guid>

					<description><![CDATA[In May, we wrote about a bunch of ideas for posters for The Witness. We couldn't say so at the time, but we were prompted to do this by the inclusion of such a poster in a PlayStation 4 promotional video. Of all the possibilities we ran through, here's the …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2013/06/heres-that-poster/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>In May, we wrote about <a href="https://the-witness.net/news/2013/05/poster-ideas/">a bunch of ideas for posters</a> for The Witness. We couldn't say so at the time, but we were prompted to do this by the inclusion of such a poster in a PlayStation 4 promotional video. Of all the possibilities we ran through, here's the one we liked the most:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2013/06/WitnessPoster.png"><img class="aligncenter size-large wp-image-2192" alt="Witness Poster png" src="https://the-witness.net/news/wp-content/uploads/2013/06/WitnessPoster-252x384.png" width="252" height="384" /></a></p>
<p>If you watch carefully and don't blink, and look past all the balloons that are blocking it, you can see the poster (in different proportions) starting around 0:57 in this commercial: <a href="http://www.youtube.com/watch?v=QOdW1OuZ1U0">http://www.youtube.com/watch?v=QOdW1OuZ1U0</a></p>
<p>Hey, it is what it is.</p>
<p>Because we picked this one as the final, we have it in a much higher resolution than the other options. If you like it, feel free to use it as a desktop image, or whatever!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2013/06/heres-that-poster/feed/</wfw:commentRss>
			<slash:comments>35</slash:comments>
		
		
			</item>
		<item>
		<title>Island Snapshot</title>
		<link>https://the-witness.net/news/2013/05/island-snapshot-10/</link>
					<comments>https://the-witness.net/news/2013/05/island-snapshot-10/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Fri, 17 May 2013 22:37:44 +0000</pubDate>
				<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2150</guid>

					<description><![CDATA[... which doesn't look too much different from last time's. Partially this is because we've been working on things that you don't see from this angle. Here's a shot from a different angle: &#160; &#160; We still have so much to do! On my end, I've been working for the …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2013/05/island-snapshot-10/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p><a href="https://the-witness.net/news/wp-content/uploads/2013/05/shot_2013.05.17__time_15_25_n01.png"><img class="aligncenter" alt="shot_2013.05.17__time_15_25_n01" src="https://the-witness.net/news/wp-content/uploads/2013/05/shot_2013.05.17__time_15_25_n01-512x288.png" width="512" height="288" /></a></p>
<p>... which doesn't look too much different from last time's. Partially this is because we've been working on things that you don't see from this angle.</p>
<p>Here's a shot from a different angle:</p>
<p>&nbsp;</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2013/05/shot_2013.05.17__time_15_25_n01.png"><br />
</a> <a href="https://the-witness.net/news/wp-content/uploads/2013/05/shot_2013.05.17__time_15_26_n02.png"><img class="aligncenter size-large wp-image-2152" alt="shot_2013.05.17__time_15_26_n02" src="https://the-witness.net/news/wp-content/uploads/2013/05/shot_2013.05.17__time_15_26_n02-512x288.png" width="512" height="288" /></a></p>
<p>&nbsp;</p>
<p>We still have so much to do!</p>
<p>On my end, I've been working for the past couple of weeks on UI-related things. For a week I was doing better touch controls (perhaps we'll post a video of this soon), and for a week I was somewhat-rewriting the code that implements tracing lines on panels. This can get surprisingly complicated, and I've rewritten it a few times. I think this is close to the last time, though.</p>
<p>The game tells me the current puzzle count is 574, which is higher than I expected, but hey.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2013/05/island-snapshot-10/feed/</wfw:commentRss>
			<slash:comments>50</slash:comments>
		
		
			</item>
		<item>
		<title>Poster Ideas</title>
		<link>https://the-witness.net/news/2013/05/poster-ideas/</link>
					<comments>https://the-witness.net/news/2013/05/poster-ideas/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 08 May 2013 00:28:02 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2134</guid>

					<description><![CDATA[We were kicking around ideas of what a Witness poster would look like if we were to make one. We eventually came up with one that we really liked, and we'll release that at some point in the future. But in the meantime we thought it would be nice to …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2013/05/poster-ideas/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>We were kicking around ideas of what a Witness poster would look like if we were to make one. We eventually came up with one that we really liked, and we'll release that at some point in the future. But in the meantime we thought it would be nice to show some of the runner-up concepts.</p>
<p>&nbsp;</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2013/05/Luis_04.jpg"><img class="aligncenter" alt="Luis_04" src="https://the-witness.net/news/wp-content/uploads/2013/05/Luis_04-259x384.jpg" width="259" height="384" /></a></p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2013/05/Luis_10.jpg"><img class="aligncenter" alt="Luis_10" src="https://the-witness.net/news/wp-content/uploads/2013/05/Luis_10-259x384.jpg" width="259" height="384" /></a><br />
<img class="aligncenter size-large wp-image-2135" alt="Luis_02" src="https://the-witness.net/news/wp-content/uploads/2013/05/Luis_02-259x384.jpg" width="259" height="384" /></p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2013/05/Luis_11.jpg"><img class="aligncenter size-large wp-image-2139" alt="Luis_11" src="https://the-witness.net/news/wp-content/uploads/2013/05/Luis_11-259x384.jpg" width="259" height="384" /></a></p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2013/05/Luis_12.jpg"><img class="aligncenter size-large wp-image-2140" alt="Luis_12" src="https://the-witness.net/news/wp-content/uploads/2013/05/Luis_12-259x384.jpg" width="259" height="384" /> </a><a href="https://the-witness.net/news/wp-content/uploads/2013/05/Luis_03.jpg"><img class="aligncenter" alt="Luis_03" src="https://the-witness.net/news/wp-content/uploads/2013/05/Luis_03-259x384.jpg" width="259" height="384" /></a></p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2013/05/Shannon_01.jpg"><img class="aligncenter size-large wp-image-2141" alt="Shannon_01" src="https://the-witness.net/news/wp-content/uploads/2013/05/Shannon_01-269x384.jpg" width="269" height="384" /></a></p>
<p>&nbsp;</p>
<p>Feel free to use these as desktop images or whatever. Unfortunately we didn't mock these up at high resolution; what you see is all there is!</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2013/05/poster-ideas/feed/</wfw:commentRss>
			<slash:comments>55</slash:comments>
		
		
			</item>
		<item>
		<title>Island Snapshot</title>
		<link>https://the-witness.net/news/2013/04/island-snapshot-9/</link>
					<comments>https://the-witness.net/news/2013/04/island-snapshot-9/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 09 Apr 2013 17:36:22 +0000</pubDate>
				<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2126</guid>

					<description><![CDATA[It's been a while since the previous post, so here's a new island snapshot. Most of what we've been working on lately is not visible in this shot, though! The biggest obvious changes are probably in the forest and beach on the left-hand side.<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2013/04/island-snapshot-9/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>It's been a while since the previous post, so here's a new island snapshot.</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2013/04/shot_2013.04.09__time_10_34_n01.png"><img src="https://the-witness.net/news/wp-content/uploads/2013/04/shot_2013.04.09__time_10_34_n01-512x288.png" alt="shot_2013.04.09__time_10_34_n01" width="512" height="288" class="aligncenter size-large wp-image-2127" /></a></p>
<p>Most of what we've been working on lately is not visible in this shot, though! The biggest obvious changes are probably in the forest and beach on the left-hand side.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2013/04/island-snapshot-9/feed/</wfw:commentRss>
			<slash:comments>36</slash:comments>
		
		
			</item>
		<item>
		<title>iPad video update #1</title>
		<link>https://the-witness.net/news/2013/03/ipad-video-update-1/</link>
					<comments>https://the-witness.net/news/2013/03/ipad-video-update-1/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Thu, 14 Mar 2013 02:26:04 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2113</guid>

					<description><![CDATA[Andy's got the iPad port far enough along that you can sort of play the game now. Here's a short video: There are some basic hacks going on; for example, right now, we are not drawing the real sky; it's just solid blue. Also, right now we are just loading …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2013/03/ipad-video-update-1/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Andy's got the iPad port far enough along that you can sort of play the game now. Here's a short video:</p>
<p><center><br />
<iframe width="900" height="506" src="http://www.youtube.com/embed/pXuPKOy_PXU?feature=oembed" frameborder="0" allowfullscreen></iframe><br />
</center></p>
<p>There are some basic hacks going on; for example, right now, we are not drawing the real sky; it's just solid blue. Also, right now we are just loading this starting area, but it should not be long before we can load the whole game (Salvador wrote the streaming system a while back and we have been testing it extensively on the PC, so for the iPad it should Just Work. Famous last words.) Also, as you can see, the panel-tracing controls could use some work.</p>
<p>When we can wander around the island generally, I'll post another video update!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2013/03/ipad-video-update-1/feed/</wfw:commentRss>
			<slash:comments>51</slash:comments>
		
		
			</item>
		<item>
		<title>Island Snapshot</title>
		<link>https://the-witness.net/news/2013/03/island-snapshot-8/</link>
					<comments>https://the-witness.net/news/2013/03/island-snapshot-8/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Mon, 04 Mar 2013 22:43:47 +0000</pubDate>
				<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2096</guid>

					<description><![CDATA[Can it be that we haven't posted an island snapshot since January 3rd? Well, you got a pretty good look at the island in the trailer we recently released in conjunction with the PlayStation 4 announcement. That version has a lot of new modeling compared to the January snapshot, because …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2013/03/island-snapshot-8/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Can it be that we haven't posted an island snapshot since January 3rd?</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2013/03/shot_2013.03.04__time_12_28_n01.png"><img src="https://the-witness.net/news/wp-content/uploads/2013/03/shot_2013.03.04__time_12_28_n01-512x288.png" alt="shot_2013.03.04__time_12_28_n01" width="512" height="288" class="aligncenter size-large wp-image-2097" /></a></p>
<p>Well, you got a pretty good look at the island in <a href="https://the-witness.net/news/2013/02/first-official-trailer-for-the-witness/">the trailer we recently released</a> in conjunction with the PlayStation 4 announcement. That version has a lot of new modeling compared to the January snapshot, because we were working on the trailer pretty hard. But some new modeling has happened since then, and there are some subtle but nice things to see here.</p>
<p>Since someone is going to ask: The current puzzle count is 499. </p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2013/03/island-snapshot-8/feed/</wfw:commentRss>
			<slash:comments>36</slash:comments>
		
		
			</item>
		<item>
		<title>A clarification about our PS4 exclusivity.</title>
		<link>https://the-witness.net/news/2013/02/a-clarification-about-our-ps4-exclusivity/</link>
					<comments>https://the-witness.net/news/2013/02/a-clarification-about-our-ps4-exclusivity/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Fri, 22 Feb 2013 18:27:53 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2091</guid>

					<description><![CDATA[There has been worry and speculation on the internet about the PS4 exclusivity that we announced during the press conference, so here are some details to help answer those questions. Our deal with Sony is a limited-time exclusivity that applies to competing console platforms. Basically it is that you will …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2013/02/a-clarification-about-our-ps4-exclusivity/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>There has been worry and speculation on the internet about the PS4 exclusivity that we announced during the press conference, so here are some details to help answer those questions.</p>
<p><span id="more-2091"></span></p>
<p>Our deal with Sony is a limited-time exclusivity that applies to competing console platforms. Basically it is that you will see the game on the PlayStation 4 for a while before you will see it on the Wii U or the rumored next Microsoft console. (We haven't been disclosed on Microsoft's next console, so I don't know anything about that platform besides the rumors that are on the internet).</p>
<p>This exclusivity does not prevent us from being on the PC or iOS at launch, for example.</p>
<p>People have been speculating that we got paid for PS4 exclusivity, but that is not the case. There was no money involved.</p>
<p>The real situation is that, because we are a small developer, we only have the ability to launch on a small number of platforms at once. We liked the idea of being on a console, and originally we thought we might be on the PS3 or Xbox 360, but eventually we decided not to target either of those, due to the relatively low system specs and the work required to do the ports. After some more time went by, and our release date drifted further into the future, we realized that the next-generation console launch time might be a good time to release the game. (For a while we were hoping to be out substantially earlier than the next consoles, e.g. right now, so we didn't start thinking seriously about this until recently).</p>
<p>To launch a high-spec version of the game on a console, it came down to a choice between the next Microsoft console or the next Sony console. There were people at Sony who really liked the game and were keeping in touch with us about it, and so we naturally started going to their PS4 developer events, got a dev kit, and started playing with it. I don't have good communication with anyone at Microsoft right now, but all our technical people like the PS4 specs a lot more than the leaked Durango specs, and we like the positioning of the PS4 (it's about games) more than what we perceive Microsoft's positioning is going to be.</p>
<p>So we just found ourselves doing a PS4 port. And once we are doing that, it is not practical for us also to think about another console port. We were going to be a <em>de facto</em> console exclusive for Sony no matter what. As I mentioned, there are people at Sony who are very interested in The Witness, so they somehow percolated up through the ranks the idea of showing the game in the launch show. </p>
<p>Of course, Sony wants that show to point out things that are going to be exclusive or special to their console. If we are in their show, but next week we turn around and announce "we changed our mind, we are exclusive on Durango forever," that would be a bit weird. So to be in the show we signed a timed exclusivity for competing consoles. But this was just a formalization of something that was already going to be the case. We like the PS4 and we like the people at Sony we are working with, so it was an easy choice to make the agreement.</p>
<p>Exact timing of our release on launch platforms has yet to be figured out. It just depends on how much we can do and when; we'll know more as we get much closer to the game being done.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2013/02/a-clarification-about-our-ps4-exclusivity/feed/</wfw:commentRss>
			<slash:comments>101</slash:comments>
		
		
			</item>
		<item>
		<title>First official trailer for The Witness</title>
		<link>https://the-witness.net/news/2013/02/first-official-trailer-for-the-witness/</link>
					<comments>https://the-witness.net/news/2013/02/first-official-trailer-for-the-witness/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Thu, 21 Feb 2013 06:05:05 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2086</guid>

					<description><![CDATA[as seen in today's PlayStation 4 announcement: (Watch it in HD + fullscreen if you have the bandwidth!)<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2013/02/first-official-trailer-for-the-witness/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>as seen in today's PlayStation 4 announcement:</p>
<p><center><br />
<iframe width="900" height="506" src="http://www.youtube.com/embed/i7h7AleSCF4?feature=oembed" frameborder="0" allowfullscreen></iframe><br />
</center></p>
<p>(Watch it in HD + fullscreen if you have the bandwidth!)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2013/02/first-official-trailer-for-the-witness/feed/</wfw:commentRss>
			<slash:comments>78</slash:comments>
		
		
			</item>
		<item>
		<title>Interview about The Witness and related design topics</title>
		<link>https://the-witness.net/news/2013/02/interview-about-the-witness-and-related-design-topics/</link>
					<comments>https://the-witness.net/news/2013/02/interview-about-the-witness-and-related-design-topics/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sat, 02 Feb 2013 04:21:38 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Ill-Advised Rants]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2067</guid>

					<description><![CDATA[On January 31, 2013, Tom McShea of Gamespot interviewed me as part of their Break Room Interview series. It was an interesting conversation! Here's the interview.<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2013/02/interview-about-the-witness-and-related-design-topics/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>On January 31, 2013, Tom McShea of Gamespot interviewed me as part of their Break Room Interview series. It was an interesting conversation!</p>
<p><a href="http://www.gamespot.com/the-witness/videos/the-break-room-interviews-jonathan-blow-6403321/">Here's the interview.</p>
<p><img src="https://the-witness.net/news/wp-content/uploads/2013/02/pic-512x286.jpg" alt="pic" width="512" height="286" class="aligncenter size-large wp-image-2073" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2013/02/interview-about-the-witness-and-related-design-topics/feed/</wfw:commentRss>
			<slash:comments>72</slash:comments>
		
		
			</item>
		<item>
		<title>If you like first-person puzzle games&#8230;</title>
		<link>https://the-witness.net/news/2013/02/if-you-like-first-person-puzzle-games/</link>
					<comments>https://the-witness.net/news/2013/02/if-you-like-first-person-puzzle-games/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sat, 02 Feb 2013 03:45:11 +0000</pubDate>
				<category><![CDATA[Other Games]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2062</guid>

					<description><![CDATA[... you may wish to see Antichamber, which has just been released on Steam. The game's web site. The Steam page. The game is primarily the work of one designer, Alexander Bruce, who has been working on it for six years. Players seem to be really into the game, and …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2013/02/if-you-like-first-person-puzzle-games/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>... you may wish to see Antichamber, which has just been released on Steam.</p>
<p><p><a href="https://www.youtube.com/watch?v=aGsnm2nOnso"><img src="https://img.youtube.com/vi/aGsnm2nOnso/2.jpg"></a></p>
<p><a href="https://www.youtube.com/watch?v=aGsnm2nOnso">Click here to view the video on YouTube</a>.</p>
</p>
<p></p>
<p><a href="http://www.antichamber-game.com/">The game's web site.</a><br />
<a href="http://store.steampowered.com/app/219890/">The Steam page.</a></p>
<p>The game is primarily the work of one designer, Alexander Bruce, who has been working on it for six years. Players seem to be really into the game, and it's been the top-selling game on Steam for two days so far.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2013/02/if-you-like-first-person-puzzle-games/feed/</wfw:commentRss>
			<slash:comments>25</slash:comments>
		
		
			</item>
		<item>
		<title>Island Partition</title>
		<link>https://the-witness.net/news/2013/01/island-partition/</link>
					<comments>https://the-witness.net/news/2013/01/island-partition/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Thu, 17 Jan 2013 02:21:09 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2048</guid>

					<description><![CDATA[This week we've been having discussions about how it's almost time to move into full-on Production Mode and start cranking out final-ish 3D models and textures ... following schedules, and all kinds of organized stuff like that. Up until now we have not been in that kind of work mode, …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2013/01/island-partition/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>This week we've been having discussions about how it's almost time to move into full-on Production Mode and start cranking out final-ish 3D models and textures ... following schedules, and all kinds of organized stuff like that.</p>
<p>Up until now we have not been in that kind of work mode, because we were figuring out the game, and in that kind of mode, I find schedules to be anti-quality. But once you have everything figured out and need to produce a volume of work, schedules are pro-quality, since they help you gauge how well you are doing, whether you need a reality check on the rate or quality of things you can produce, etc.</p>
<p>Luis has made this handy map that we are using to partition up modeling tasks, which I have then edited to remove spoilers:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2013/01/World_Map_Edited.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2013/01/World_Map_Edited-426x384.jpg" alt="World_Map_Edited" width="426" height="384" class="aligncenter size-large wp-image-2049" /></a></p>
<p>I like looking at this map because it reminds me how many distinct areas there are and how they relate to each other.</p>
<p>Today I was showing the game to someone who had not seen it before, and that's always interesting because it helps me see the game through fresh eyes a little. It really feels unlike any other game in the way it is an Open World but also a Small World, where you can be in one location and see several neighboring locations, and that helps keep you oriented, but it also helps you reflect on what you have done and orient on where you are in the course of things you are planning to do.</p>
<p>We still have <strong>a ton</strong> of work to do, though, and I was reminded of this as well. Not just in detailing all these areas, but in filling out the story, crafting details that further help the areas relate to each other, etc.</p>
<p>It is going to be an interesting time!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2013/01/island-partition/feed/</wfw:commentRss>
			<slash:comments>49</slash:comments>
		
		
			</item>
		<item>
		<title>Thoughts about App Store &#8216;Curation&#8217;</title>
		<link>https://the-witness.net/news/2013/01/thoughts-about-app-store-curation/</link>
					<comments>https://the-witness.net/news/2013/01/thoughts-about-app-store-curation/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 15 Jan 2013 20:40:51 +0000</pubDate>
				<category><![CDATA[Ill-Advised Rants]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2045</guid>

					<description><![CDATA[Last week, Jeff Grubb from VentureBeat emailed me a question for an article he was writing, prompted by Apple's rejection of Endgame: Syria. Sometimes questions like this are good excuses for me to figure out what I really think. Jeff asked me about this part of the iOS App Store's …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2013/01/thoughts-about-app-store-curation/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Last week, Jeff Grubb from VentureBeat emailed me a question for <a href="http://venturebeat.com/2013/01/15/apple-want-to-criticize-religion-write-a-book-dont-make-a-game/">an article he was writing</a>, prompted by Apple's rejection of <em><a href="http://gamethenews.net/index.php/endgame-syria/">Endgame: Syria</a></em>. Sometimes questions like this are good excuses for me to figure out what I really think. </p>
<p>Jeff asked me about this part of the iOS App Store's Developer Terms of Service:</p>
<blockquote><p>We view Apps different than books or songs, which we do not curate. If you want to criticize a religion, write a book. If you want to describe sex, write a book or a song, or create a medical app. It can get complicated, but we have decided to not allow certain kinds of content in the App Store.
</p></blockquote>
<p>And here is what I said:</p>
<p>I think this is the wrong attitude about games, but look, ultimately it is game developers' fault, not Apple's. Apple is treating games as shallow commercial entertainment experiences because they have been taught by game developers that that is what games are. </p>
<p>If we had built a world where games routinely work with serious issues in ways that people care about, Apple would not be able to take this stance, because it would not make any sense. </p>
<p>Why do they say "If you want to criticize a religion, write a book"? It's because it's obvious that banning books is bad, because there have been a lot of books that people find important (and we have had many cultural cycles involving people attempting to ban books, and culture has worked out ultimately that this is not a good thing). Games do not have this history. Right now Apple thinks a game is Angry Birds or maybe Infinity Blade. So who can blame them?</p>
<p>Apple may be badgered enough to change their policy someday, or they may not. But that doesn't matter very much because really it is just a reflection of the general cultural idea about what games are. The only way that idea will change is if a lot of developers make a lot of serious/deep/honest/touching/intrepid games for a long time. I don't know if that will ever happen. How many games can you think of to which you can seriously apply these adjectives? Certainly to none of the top-selling games on the App Store, and certainly certainly to none of those big free-to-play games that are raking in all the cash. </p>
<p>So, game developers are just sort of reaping what they have sown. What else would you expect?</p>
<p>I have not played Endgame: Syria but maybe it is a step in this direction. But to change these attitudes we need a lot of steps, consistently, not just a token step now and again.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2013/01/thoughts-about-app-store-curation/feed/</wfw:commentRss>
			<slash:comments>34</slash:comments>
		
		
			</item>
		<item>
		<title>Island Snapshot</title>
		<link>https://the-witness.net/news/2013/01/2034/</link>
					<comments>https://the-witness.net/news/2013/01/2034/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Fri, 04 Jan 2013 01:08:06 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2034</guid>

					<description><![CDATA[Current puzzle count: 505.<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2013/01/2034/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p><a href="https://the-witness.net/news/wp-content/uploads/2013/01/shot_2013.01.03__time_17_05_n01.png"><img src="https://the-witness.net/news/wp-content/uploads/2013/01/shot_2013.01.03__time_17_05_n01-512x288.png" alt="shot_2013.01.03__time_17_05_n01" width="512" height="288" class="aligncenter size-large wp-image-2037" /></a></p>
<p>Current puzzle count: 505.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2013/01/2034/feed/</wfw:commentRss>
			<slash:comments>27</slash:comments>
		
		
			</item>
		<item>
		<title>What I Did on My Christmas Vacation</title>
		<link>https://the-witness.net/news/2012/12/what-i-did-on-my-christmas-vacation/</link>
					<comments>https://the-witness.net/news/2012/12/what-i-did-on-my-christmas-vacation/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sun, 30 Dec 2012 23:34:47 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2018</guid>

					<description><![CDATA[I apologize in advance that this posting is a rambling mess. The Background Way back in 2008 when I came upon the core idea of this game, the design was the exciting part. Though I started in games mainly as a technical person who was excited about technical challenges, I …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/12/what-i-did-on-my-christmas-vacation/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>I apologize in advance that this posting is a rambling mess.</p>
<p><strong>The Background<br />
</strong><br />
Way back in 2008 when I came upon the core idea of this game, the design was the exciting part. Though I started in games mainly as a technical person who was excited about technical challenges, I have shifted into a mode of thought where, when I program, it's mainly just to get the design done in the most straightforward way.</p>
<p>Since Braid I have viewed programming as mostly pragmatic: I know what I want to do, and I know what kinds of things I have to type in to make it happen, but for the most part, the interesting mental challenges are in design, and programming is rote execution. Once you have enough programming experience, I think 95% of writing a big program is like this. There have been a few times during <em>The Witness</em> when I spent significant effort solving technical problems where I had no idea what the answer would be in advance, <a href="https://the-witness.net/news/2010/05/kriging-is-cool/">like with the terrain manipulation,</a> but even in these cases I treated the technical development in a very pragmatic way: the goal was to get something that is good enough for current needs, not to design a shining jewel of an amazing technical system (back when I was a younger game programmer, I was trying to make amazing technical systems all the time, and it came at the cost of actually getting games done).</p>
<p>Despite the fact that I am trying to focus on design, in order to make this game a reality, I had to start a company, bring people onto the project to build the game, etc. This means that nowadays I am not just wearing the programmer and designer and business development hats, I also wear the producer hat and the (admittedly small at present) HR hat. Maybe if The Witness does well, we can expand the team a little bit so that I don't have to do these things, but for now, that's the reality.</p>
<p>We are very laid back and unstructured in the way we do things, but even so, I feel there's a heavy subconscious load involving running the company, making sure nobody's work is blocked, dealing with money all the time, etc. I often find it hard to do deep design thinking when I am in the office, if only because all these issues are just ambiently around. So, in terms of design, my most productive days tend to be work-from-home days (which for me includes most weekends).</p>
<p>All this up til now is just to explain that if I take a vacation seriously, it can be very relaxing, because that subliminal load is gone, or at least mitigated for a while. The activity of the rest of the company is mostly paused, which removes urgency from my own activities. </p>
<p>At first I didn't know how I would spend vacation; at first I thought maybe I would actually treat it the way most people treat vacation, and not work. Then I thought, hmm, there is a certain sector of the game that I might like to work on, that is definitely very important, and I should get a bunch of that done while everyone is gone, so that when they come back it will be figured out. (I don't want to go into detail about what that section of the game is, because I am avoiding spoilers).</p>
<p><strong>The Vacation</strong></p>
<p>But, inspiration is a funny thing. I worked a little bit on the issues I had planned to work on, but for the first bit of the vacation, up through the 25th, I found myself most motivated by cleaning up old nagging issues on my to-do list, and shipping this improved version of the game to our very few beta players. This involved stuff like improving the feel of tracing lines on the puzzle panels.</p>
<p><div id="attachment_2026" style="width: 486px" class="wp-caption aligncenter"><a href="https://the-witness.net/news/wp-content/uploads/2012/12/export.png"><img aria-describedby="caption-attachment-2026" src="https://the-witness.net/news/wp-content/uploads/2012/12/export-476x384.png" alt="A peek at the export script, used to package the game for end-users." width="476" height="384" class="size-large wp-image-2026" /></a><p id="caption-attachment-2026" class="wp-caption-text">A peek at the export script, used to package the game for end-users.</p></div></p>
<p>After shipping that beta, I found my attention most strongly drawn toward an unexpected part of the game: an optional area, one that we could completely cut from the game and nobody would know, yet at the same time, it's an area that adds to the overall conceptual arc of the game in a strong way, and would be very rewarding for the small percentage of players who get deeply into the game. (Again, I apologize for the vagueness, but let's avoid spoilers). </p>
<p>I had roughed out a version of this area a long time ago -- maybe a year or two ago -- and had always found the basic idea very exciting. But back then the area wasn't done enough to prove the concept, and over time it decayed while the rest of the game was being worked on (which is natural on a big project like this). But, perhaps because it's an area of the game that nobody else on the team really knows about or understands yet, I had a great motivation to spend vacation time on making this area good. Now that I think about this again it makes a strange kind of sense: when development is pretty much paused, it is somehow appropriate to work on something that nobody else really knows about.</p>
<p><span id="more-2018"></span></p>
<p>At first I thought the task would just be to make the old stuff work again and then do a straightforward job of the extra functionality I needed to complete the area. Thinking about the programming I would have to do to complete the area, I saw it as a necessary bummer ("I want to be done with this game, but ugh, there is more programming I have to do that isn't even on the mainline to all the things that really need to be done.") </p>
<p>But I started programming that extra functionality, and 10 minutes into it, realized I was not so excited about the design part -- it seemed like a very rote execution, like anyone could do in any game, and The Witness ought to have something better than that. Because there was no pressure, and because I was free to do whatever I wanted, my mind was open enough to instantly see an alternative that would be much truer to the essence of the game. The chance to do this better thing was very exciting. (We'll come back to this subject of being able to see ideas, later).</p>
<p>So I started programming this more-exciting version of the functionality. Then I saw how I could make it even more interesting, and I would start doing that. Then I would see how to make it even <em>more</em> interesting, though that would introduce a lot more programming work. If I were feeling the regular pressure of the game schedule, at this time years in when it is time to be finishing the game, I might have said, "naah, we don't have time add that extra work". But because it was vacation the work was free, so I said screw it.</p>
<p>I worked in a fiercely productive way for a couple of days. New ideas would come. They would raise new issues. I would program some things, and in that way that programming often goes, new problems would come to light that I hadn't thought of, and those problems introduced even smaller 2nd-order problems when confronted. But by this time I was fully energized and just had dogged determination and was fully enjoying the whole process. In the end I programmed at least 5 times as much functionality as I had planned, but rather than being bummed about it, I enjoyed the whole excursion.</p>
<p>Those who know me will tell you that I am not predisposed toward painting things in an unduly positive light -- but I will tell you that these past four days or so have been amazing and wonderful. Here's a shot from what I did (the visuals are 'programmer art', as usual):</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/12/shot_2012.12.29__time_20_51_n06.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/12/shot_2012.12.29__time_20_51_n06-512x288.png" alt="shot_2012.12.29__time_20_51_n06" width="512" height="288" class="aligncenter size-large wp-image-2019" /></a></p>
<p>It is hard to tell you why this is so cool without huge spoilers.</p>
<p><strong>It's so amazing and wonderful because</strong></p>
<p>it's been a long time since I worked this hard and this effectively. Keeping in mind that memory is sometimes not as reliable as we think, I would tell you that the last time I worked this hard and this well was when starting my first, ultimately doomed, company (with a friend from college and a 3D artist we recruited from that same school and unfortunately put through years of meager-wage toil).</p>
<p>Here are some shots from the first professional game I ever worked on, back before we had a concept of 'indie development'. Software rendered, subpixel-accurate texture mapping, assembly-language inner loop that commandeers ebp in order to utilize a precious extra register, a la Mike Abrash, and oh yeah, it was multiplayer-only, 32-player, over 9600 baud modems:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/12/wulfram.2.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/12/wulfram.2-512x384.jpg" alt="wulfram.2" width="512" height="384" class="aligncenter size-large wp-image-2021" /></a></p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/12/Wulfram-2.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/12/Wulfram-2-512x384.jpg" alt="Wulfram 2" width="512" height="384" class="aligncenter size-large wp-image-2022" /></a></p>
<p>We were working on this game from 1996 to 1999 or so. 1996 was the year I got into professional game development, and in hindsight, it appears to have been the hardest possible time in the history of video games. Indies of today, y'all have <em>no idea</em> how much easier it is to make games now than it was in 1996. (I hate to be an old fogey who's all "back in my day, we had to walk to school in the snow, barefoot, uphill both ways," but in this case it is absolutely true.)</p>
<p>That game was never very successful. It had design problems, but also, we didn't really know how to talk about or promote a game; lastly, this was before many people played games over the internet, so the potential audience was pretty small. (Trivia Tidbit: <a href="http://en.wikipedia.org/wiki/Attack_Retrieve_Capture">There was another online game being supported by the same publishing service as our game</a>, and this other game was more popular, despite being relatively simple in a technical sense, which annoyed the hell out of us on a subliminal level that we wouldn't totally admit. The guys making this game were John Vechey and Brian Fiete; our producer at the publisher was Jason Kapalka, who later went off with these guys to start a company called PopCap, which last I heard had done okay.)</p>
<p>Back in those days I worked very hard. When we started the company I knew nothing about building 3D games; we learned very quickly. I would long hours, late into the night, intensively. At some point we all burned ourselves out, I think. </p>
<p>After we closed down that company, I went on to do a number of contractor things, game industry lecture things, magazine article things, and working on various independent projects that I never finished. Through that time, I was still very burned out. If you have never experienced burnout, it's hard to explain. Burnout is not just "I don't feel like working right now"; it is about your mind refusing to permit you to work, because it has seen what happens when it lets you work.</p>
<p>Eventually, I swore that I would design a very good game and finish it and release it to people, and the result is a game that was successful and that many people like:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/12/Braid_screenshot2.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/12/Braid_screenshot2-512x288.jpg" alt="Braid_screenshot2" width="512" height="288" class="aligncenter size-large wp-image-2023" /></a></p>
<p>A main part of the reason this game exists was that I instilled a certain discipline in myself: I wasn't going to do this game because I was excited about a technical thing, or excited about programming; I was going to minimize the amount of programming, firstly so that the game would get finished at all (I had plenty of experience by this point at not-finishing-projects, as did many of my friends; it was an endemic problem), but also so that I could focus appropriately on the design and build something very special.</p>
<p>Despite the fact that I kept the game technically simple, there was still a huge amount of programming to do. But thankfully, the strategy worked and the game was completed. Eventually.</p>
<p>Even though I'd made a successful game, I was still burned out to some degree. In 1996-1997 I was working at full capacity and was very productive, at least inasmuch as one might expect for a programmer of that age who was first starting to get real-world large-project experience. But after being burned out at that time, I never again worked at full capacity.</p>
<p><strong>What I am getting at<br />
</strong></p>
<p>I am saying all these things just as a way to get around to explaining that, during this Christmas vacation, I finally recovered fully from burnout. For about 3 days, I was working at 100% capacity, which I have not done in 15 years. It felt wonderful to have that back, to not succumb to the story that maybe game design and programming are like math of physics where you peak at 25. These few days were way better than when I was 25, because now I am substantially better at programming, and I am good at design also, and games are so much easier to make than they used to be; so the design cylinders are firing and then they turn it over to the programming cylinders, etc, and very quickly a lot of high-quality work gets banged out. And it's not just arbitrary good work, but work that helps to round out the game that I already feel is the best thing I have ever worked on, that helps put grace notes in just the right places, in the <a href="http://www.youtube.com/watch?v=OGSeLSmOALU">manner of exploratory game design</a> that Marc ten Bosch and I spoke about at Indiecade 2011. So this period of intensive work was seasoned and tempered in a way that was not possible when I was 25.</p>
<p>It has been a wonderful time and I look forward to doing more of it. Part of what allowed it to happen this way was that lack of pressure that I have mentioned, due to being on vacation. When a design idea would come to mind, and I would see that it might be cool but would lead to a lot of work, well, this week I was able to let it happen, and I was able to enjoy the challenge of going off on a minor programming rathole in order to do something really good in the design. This is to some degree a reversal of the discipline I instilled to get Braid done; you can think of it as a correction term to the equation. The 0th order term is knowing how to program and design; the 1st order term is having discipline to be able to execute efficiently without being carried away with ideas that will scuttle production; but the 2nd order term is that it is joyful and interesting to have some wiggle room in there, sometimes eroding away a bit of the 1st order term.</p>
<p>There is a kind of open curiosity about programming that I haven't had in a long time, that I allowed myself to re-discover this week in the freedom of exploring that 2nd-order term.</p>
<p>(<a href="http://www.physics.ohio-state.edu/~kilcup/262/feynman.html">Richard Feynman has an anecdote about how he was burned out on physics</a>, and how he started to get over it, which I think bears some similarity).</p>
<p>I am not explaining any of this very well. But I am doing the best work of my life, right now, and it feels great, and for the first time I could see myself working in this same fashion for the rest of my life and feeling happy that I am operating at something like my full potential. So there you have it. </p>
<p>I mentioned earlier that I would talk further about the ability to see ideas, but I guess I was lying, because this is already too long and rambling. I'll save that for a future post.</p>
<p><em>It's worth pointing out that I started Braid while working on what was supposed to be a vacation. And back when I got the impulse to start the Experimental Gameplay Workshop, I was on a plane back from a vacation to Africa. So apparently vacations are good times for me, even if I don't treat them the way Normal People do.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/12/what-i-did-on-my-christmas-vacation/feed/</wfw:commentRss>
			<slash:comments>62</slash:comments>
		
		
			</item>
		<item>
		<title>Island Snapshot</title>
		<link>https://the-witness.net/news/2012/12/island-snapshot-7/</link>
					<comments>https://the-witness.net/news/2012/12/island-snapshot-7/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 11 Dec 2012 01:22:31 +0000</pubDate>
				<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1932</guid>

					<description><![CDATA[We haven't done one of these in a while. Here's what the island looks like currently: The current puzzle count is 497. (This is lower than last time; last time was an overcount, as we had some temporary duplicates in the world that were being counted mistakenly.)<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/12/island-snapshot-7/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>We haven't done one of these in a while. Here's what the island looks like currently:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/12/shot_2012.12.10__time_17_20_n02.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/12/shot_2012.12.10__time_17_20_n02-512x288.png" alt="" title="shot_2012.12.10__time_17_20_n02" width="512" height="288" class="aligncenter size-large wp-image-1933" /></a></p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/12/shot_2012.12.10__time_17_22_n04.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/12/shot_2012.12.10__time_17_22_n04-512x288.png" alt="" title="shot_2012.12.10__time_17_22_n04" width="512" height="288" class="aligncenter size-large wp-image-1934" /></a></p>
<p>The current puzzle count is 497. (This is lower than last time; last time was an overcount, as we had some temporary duplicates in the world that were being counted mistakenly.)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/12/island-snapshot-7/feed/</wfw:commentRss>
			<slash:comments>28</slash:comments>
		
		
			</item>
		<item>
		<title>Collecting Playtest Data</title>
		<link>https://the-witness.net/news/2012/12/collecting-playtest-data/</link>
					<comments>https://the-witness.net/news/2012/12/collecting-playtest-data/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Mon, 03 Dec 2012 03:57:03 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Engine Tech]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1889</guid>

					<description><![CDATA[In The Witness, when progress in your game is saved, we also save a thumbnail that shows you where you were. This makes it easier to load a particular game later if you had multiple saves. Here is our current, very unpolished load screen: Right now, we save the thumbnail …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/12/collecting-playtest-data/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>In <em>The Witness</em>, when progress in your game is saved, we also save a thumbnail that shows you where you were. This makes it easier to load a particular game later if you had multiple saves. Here is our current, very unpolished load screen:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/12/load_game_screen.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/12/load_game_screen-512x299.png" alt="" title="load_game_screen" width="512" height="299" class="aligncenter size-large wp-image-1891" /></a></p>
<p>Right now, we save the thumbnail and the game data as separate files, but the names are mostly the same; so if you go into your game data folder in Windows you can see them living there very plainly:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/12/file_window.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/12/file_window-512x309.png" alt="" title="file_window" width="512" height="309" class="aligncenter size-large wp-image-1890" /></a></p>
<p>(It might be interesting to do it like <em>Spore</em> and embed the save data in the image file, so that there's only one file per save. Maybe we'll do this, though it's not a no-brainer; right now the image file is usually bigger than the save data, so this would involve tying a relatively small amount of crucial data to a relatively large amount of cosmetic data. Maybe that doesn't matter, though.)</p>
<p>As I mentioned in <a href="https://the-witness.net/news/2012/11/very-limited-very-closed-beta/">the previous post</a>, we are starting to get the game out to a limited number of players. It's been a long time since I've had anyone new play through the game as a whole, so I really have no idea how it plays now, and it's important to find out. However, it's not so easy, because if you sit behind someone and watch them play a game, they are going to play it differently than if you weren't there. You invalidate your own playtest data.</p>
<p>So, I wanted to set up the game to record some minimal playtest data, that would be easy for me to browse through later on, and that would get recorded without me being there to directly watch the play session. </p>
<p>One of the first approaches that programmers often consider is an input recording method. You just journal a stream of all the player's inputs, and you can play that back deterministically to reproduce the entire game session. I have never liked this method. Firstly, you need to play back using exactly the same version of the game executable that the player used, which is a pain; secondly, this kind of playback code is brittle and breaks often. An uninitialized memory read bug can render your playback data useless! (Of course, one reason you might want playback data is to track down an uninitialized memory read bug... so... there's a problem here.)</p>
<p>For these reasons I didn't want to use input journaling. It seemed to me that our saved games are small enough, and the thumbnails are nice enough, that together they almost solve the problem. All I need to do is save a series of snapshots / game states over time, without overwriting previous saves:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/12/streamsave.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/12/streamsave-512x332.png" alt="" title="streamsave" width="512" height="332" class="aligncenter size-large wp-image-1893" /></a></p>
<p>Whereas the earlier folder contained a collection of different play sessions, this one contains one play session at different moments in time. Every time the game made an autosave for this play session (overwriting the old one in the normal way), it also also copied the autosave here. The date and time that are in each filename just indicate when that game was started; the number at the end tells you which snapshot this is.</p>
<p>There's one immediate, very nice property of this: I don't even need to run the game in order to get a general idea of how someone's playtest went. Once they send me the files, I can just click on the first one in Windows to invoke the image viewer, and then click the forward/backward buttons in the image viewer to animate my way through the game.</p>
<p>But, if I have questions about what was going on, I can also dig into the save file that corresponds to any given image. I made a mode that lets me browse these saves in-game, load up any particular one into the current world state, and play from there. I invoke it by running a console command:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/12/shot_2012.12.02__time_19_36_n01.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/12/shot_2012.12.02__time_19_36_n01-512x288.png" alt="" title="shot_2012.12.02__time_19_36_n01" width="512" height="288" class="aligncenter size-large wp-image-1907" /></a></p>
<p>This loads all the saved games and thumbnails and pops them into a scrolling list at the top of the screen, in chronological order:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/12/shot_2012.12.02__time_19_36_n02.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/12/shot_2012.12.02__time_19_36_n02-512x288.png" alt="" title="shot_2012.12.02__time_19_36_n02" width="512" height="288" class="aligncenter size-large wp-image-1908" /></a></p>
<p>I just scroll to the one I want:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/12/shot_2012.12.02__time_19_36_n03.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/12/shot_2012.12.02__time_19_36_n03-512x288.png" alt="" title="shot_2012.12.02__time_19_36_n03" width="512" height="288" class="aligncenter size-large wp-image-1909" /></a></p>
<p>... then press Enter to load that game state:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/12/shot_2012.12.02__time_19_36_n04.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/12/shot_2012.12.02__time_19_36_n04-512x288.png" alt="" title="shot_2012.12.02__time_19_36_n04" width="512" height="288" class="aligncenter size-large wp-image-1912" /></a></p>
<p>It's very fast to use and it only took a few hours to program.</p>
<p>This whole system is also pretty cool because it's much more robust than the input-recording method. If I want to look into some detail that is super-nitpicky, I may need to use the same build of the game executable that the player used, but this will almost never be necessary. Usually I won't even need to use the in-game browser -- as I mentioned, I can just click through the thumbnails in Windows to get a basic sense of what's going on.</p>
<p>The fact that we only have discrete snapshots is sort of a side-bonus: because we only snapshot every minute or so, the data is not so creepy and spy-like; players can relax while they are playtesting and know that we won't later be obsessing over their every move.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/12/collecting-playtest-data/feed/</wfw:commentRss>
			<slash:comments>25</slash:comments>
		
		
			</item>
		<item>
		<title>Very Limited, Very Closed Beta</title>
		<link>https://the-witness.net/news/2012/11/very-limited-very-closed-beta/</link>
					<comments>https://the-witness.net/news/2012/11/very-limited-very-closed-beta/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Fri, 30 Nov 2012 06:59:28 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1879</guid>

					<description><![CDATA[Last Wednesday night, just before Thanksgiving, we shipped our first extremely closed beta over Steam to a few limited testers. Today we shipped an update, still to the same limited group. We have some initial tech issues to work out before we go wider (game packaging issues, graphics card incompatibilities, …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/11/very-limited-very-closed-beta/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Last Wednesday night, just before Thanksgiving, we shipped our first extremely closed beta over Steam to a few limited testers.</p>
<p>Today we shipped an update, still to the same limited group. We have some initial tech issues to work out before we go wider (game packaging issues, graphics card incompatibilities, and the like).</p>
<p>Here's a desktop screenshot from one of the testers, with someone chiding him about what he's playing:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/11/tease.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/11/tease-512x288.png" alt="" title="tease" width="512" height="288" class="aligncenter size-large wp-image-1882" /></a></p>
<p>(The Witness window in this shot is artificially resized to make room on the desktop; by default we launch at 1280x720.)</p>
<p>I know that the impulse is to think "oh wow they are almost done!" Don't think that, it's not the case. We still have a gigantic amount of work to do and it'll be a while before the game is done.</p>
<p>Random Trivia Q&A</p>
<p><strong>Q:</strong> How many footstep sound effects are in <em>The Witness?</em></p>
<p><strong>A:</strong> 1,119 so far. They sound really good! We will probably be in the Guinness Book of World Records as the game with the most footstep sounds...</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/11/very-limited-very-closed-beta/feed/</wfw:commentRss>
			<slash:comments>48</slash:comments>
		
		
			</item>
		<item>
		<title>You know the game is coming along&#8230;</title>
		<link>https://the-witness.net/news/2012/11/you-know-the-game-is-coming-along/</link>
					<comments>https://the-witness.net/news/2012/11/you-know-the-game-is-coming-along/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sun, 18 Nov 2012 06:14:32 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1862</guid>

					<description><![CDATA[... when even your barest rough drafts seem like they'd be interesting to explore. Current puzzle count: 528.<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/11/you-know-the-game-is-coming-along/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>... when even your barest rough drafts seem like they'd be interesting to explore.</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/11/shot_2012.11.17__time_22_12_n02.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/11/shot_2012.11.17__time_22_12_n02-512x287.png" alt="" title="shot_2012.11.17__time_22_12_n02" width="512" height="287" class="aligncenter size-large wp-image-1863" /></a></p>
<p>Current puzzle count: 528.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/11/you-know-the-game-is-coming-along/feed/</wfw:commentRss>
			<slash:comments>23</slash:comments>
		
		
			</item>
		<item>
		<title>Post-Shrink Screenshots</title>
		<link>https://the-witness.net/news/2012/11/post-shrink-screenshots/</link>
					<comments>https://the-witness.net/news/2012/11/post-shrink-screenshots/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Fri, 16 Nov 2012 00:24:03 +0000</pubDate>
				<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1856</guid>

					<description><![CDATA[As mentioned in the previous post, we shrank the island a bit. Here is what things look like now. They may not look tremendously different from this off-island vantage point, but when you are down there moving around, the difference is substantial. I feel a lot better about the layout …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/11/post-shrink-screenshots/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>As mentioned in the previous post, we shrank the island a bit. Here is what things look like now.</p>
<p>They may not look tremendously different from this off-island vantage point, but when you are down there moving around, the difference is substantial. I feel a lot better about the layout now.</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/11/shot_2012.11.15__time_13_01_n06.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/11/shot_2012.11.15__time_13_01_n06-512x288.png" alt="" title="shot_2012.11.15__time_13_01_n06" width="512" height="288" class="aligncenter size-large wp-image-1857" /></a></p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/11/shot_2012.11.15__time_13_00_n04.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/11/shot_2012.11.15__time_13_00_n04-512x288.png" alt="" title="shot_2012.11.15__time_13_00_n04" width="512" height="288" class="aligncenter size-large wp-image-1858" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/11/post-shrink-screenshots/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
		<item>
		<title>We are going Map Crazy.</title>
		<link>https://the-witness.net/news/2012/11/we-are-going-map-crazy/</link>
					<comments>https://the-witness.net/news/2012/11/we-are-going-map-crazy/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 06 Nov 2012 23:20:26 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1851</guid>

					<description><![CDATA[One of my primary design goals, all through development, has been to keep the island spatially small, so that there isn't a lot of wandering through empty or pointless spaces. The idea is to take the best parts of an open-world game, involving choice, exploration and discovery, but compressing these …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/11/we-are-going-map-crazy/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p><a href="https://the-witness.net/news/wp-content/uploads/2012/11/Photo-Nov-06-1-50-02-PM.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/11/Photo-Nov-06-1-50-02-PM-512x384.jpg" alt="" title="Photo Nov 06, 1 50 02 PM" width="512" height="384" class="aligncenter size-large wp-image-1852" /></a></p>
<p>One of my primary design goals, all through development, has been to keep the island spatially small, so that there isn't a lot of wandering through empty or pointless spaces. The idea is to take the best parts of an open-world game, involving choice, exploration and discovery, but compressing these into a maximally dense experience.</p>
<p>That has been going well, but there's an interesting phenomenon where, as we add more detail to the world, it starts to feel a lot bigger. When something is a mostly-featureless plain it is easy to feel like it's small, but once you are passing tiny rocks and plants that are set up very carefully, your brain has more scale reference. So there have been a couple of times during development where we stopped and said "Hey wait a minute, things are just too big."</p>
<p>Last week that happened again; we were looking at two different parts of the island on the same day, and both of them seemed much bigger than we needed. So, we decided to go back to the overall island plan and try to compress it further. We had a discussion about this on Thursday, then the architects talked it over; you see the result of those discussions in the image above. These maps are a handy guide to helping us figure out what we can cut and how we can scoot existing areas around to pack them a little better, and to better-define the areas between them.</p>
<p>This is a little painful, since we <em>almost</em> had the island back into playable shape, and this knocks it back out of playable shape for a little longer. But my hope is that we can just make a mess and then clean it up very quickly.</p>
<p>In other news, there had been a puzzle that I needed to design for two years -- in the sense that I knew I needed to build the puzzle in order for a certain area to be complete, and I knew what that puzzle vaguely had to be about, but didn't have any good ideas on how to build it. Last week I had a breakthrough on that and built it very quickly; it's now one of the best puzzles in the game. So things are coming along well!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/11/we-are-going-map-crazy/feed/</wfw:commentRss>
			<slash:comments>47</slash:comments>
		
		
			</item>
		<item>
		<title>Island Snapshot two-for-one</title>
		<link>https://the-witness.net/news/2012/10/island-snapshot-two-for-one/</link>
					<comments>https://the-witness.net/news/2012/10/island-snapshot-two-for-one/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 24 Oct 2012 00:31:29 +0000</pubDate>
				<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1844</guid>

					<description><![CDATA[<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/10/island-snapshot-two-for-one/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p><a href="https://the-witness.net/news/wp-content/uploads/2012/10/shot_2012.10.23__time_17_20_n02.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/10/shot_2012.10.23__time_17_20_n02-512x288.png" alt="" title="shot_2012.10.23__time_17_20_n02" width="512" height="288" class="aligncenter size-large wp-image-1845" /></a></p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/10/shot_2012.10.23__time_17_17_n01.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/10/shot_2012.10.23__time_17_17_n01-512x288.png" alt="" title="shot_2012.10.23__time_17_17_n01" width="512" height="288" class="aligncenter size-large wp-image-1846" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/10/island-snapshot-two-for-one/feed/</wfw:commentRss>
			<slash:comments>26</slash:comments>
		
		
			</item>
		<item>
		<title>iPad Victory Shot</title>
		<link>https://the-witness.net/news/2012/10/ipad-victory-shot/</link>
					<comments>https://the-witness.net/news/2012/10/ipad-victory-shot/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Fri, 19 Oct 2012 16:46:48 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1840</guid>

					<description><![CDATA[For the past few weeks Andy has been working on the iPad port of the game, and we now have the engine running on that device: The colors are all funny because we haven't written the shaders for the iPad yet, so what you are seeing is the surface normals …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/10/ipad-victory-shot/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>For the past few weeks Andy has been working on the iPad port of the game, and we now have the engine running on that device:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/10/ipad.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/10/ipad-286x384.jpg" alt="" title="ipad" width="286" height="384" class="aligncenter size-large wp-image-1841" /></a></p>
<p>The colors are all funny because we haven't written the shaders for the iPad yet, so what you are seeing is the surface normals of the objects in the scene.</p>
<p>We haven't written the shaders yet because they need to be OpenGL ES shaders, and the shaders we have right now are HLSL shaders all written for medium-to-high-end PCs. As the first part of the porting work, Andy made the engine work on OpenGL on the PC, and for that we converted our HLSL shaders to GLSL automatically. But the jump to ES on an embedded device is big enough that it doesn't make sense to try and use the same shaders. Instead we'll have to have some simpler shaders that we substitute.</p>
<p>As you can see from my previous post, I have been working on touch controls (not on the iPad, but on a touchscreen Windows PC). A very rough first cut of that is now working. It's nice to play the game with touch controls, as it feels more immediate than mouse and keyboard (and I have been a first-person shooter player forever!) </p>
<p>So in order to have the game fully interactive on the iPad, we just need to write the bit that translates iPad touch controls to feed them into the rest of the gameplay code, which should not take long. </p>
<p>Then, after that, we have to work out exactly how we are going to crunch all the graphical assets down to portable versions and do the streaming in an appropriate way... which is going to be a bit of work. Salvador built a streaming asset system a while back, and we have been using that daily on the PC, but we haven't tried to set it up on a lighter-weight portable system like the iPad yet. We'll see how it goes!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/10/ipad-victory-shot/feed/</wfw:commentRss>
			<slash:comments>35</slash:comments>
		
		
			</item>
		<item>
		<title>WM_TOUCH is totally bananas.</title>
		<link>https://the-witness.net/news/2012/10/wm_touch-is-totally-bananas/</link>
					<comments>https://the-witness.net/news/2012/10/wm_touch-is-totally-bananas/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sun, 14 Oct 2012 23:15:51 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1824</guid>

					<description><![CDATA[The iPad is one of the major platforms The Witness will appear on. Andy has been working on the iPad port and it is coming along. You can't actually play the game yet, but we probably are close to that. The gameplay doesn't know how to respond to a touch …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/10/wm_touch-is-totally-bananas/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>The iPad is one of the major platforms The Witness will appear on. Andy has been working on the iPad port and it is coming along. You can't actually play the game yet, but we probably are close to that. The gameplay doesn't know how to respond to a touch interface yet, though. It is important to me that this interface is very good, so I wanted to start designing for it now, to give me time to wrestle with difficult issues. Since the game runs already on Windows, it seemed natural to start designing the touch interface on Windows.</p>
<p>I am not sure that many people are going to use Windows for touch devices, at least in the Windows 8 timeframe. But at least some people will, so it'd be nice to have a high-quality touch interface built into the game on Windows.</p>
<p>With all this in mind, I started working on some Windows 8 touch hardware a couple of days ago. There is a message format that you can use in Windows 8 to get events from the touch hardware, WM_POINTER, but because I want the touch interface to work in Windows 7 as well, I wanted to use WM_TOUCH messages, which were introduced in Windows 7 and are supported in both operating systems.</p>
<p>It look me less than 20 minutes to get WM_POINTER working. It took many, many hours to get WM_TOUCH working, because WM_TOUCH is some kind of fully insane mess. None of the insanity seems to be documented, or discussed on the internet, so I am laying it out here in case anyone in the future stumbles into this same trap.</p>
<p>A WM_TOUCH message will never be returned by PeekMessage. Spy++ will tell you that WM_TOUCH is being sent to your application, but before the message is delivered, it gets stealthily converted into a mouse motion event. The type of this event will vary depending on whether you have raw input selected: if raw input, it will be WM_INPUT (0x00ff); if not, it will be WM_MOUSEMOTION (0x0200).</p>
<p>If your application handles these events, you may think it's reasonable to complete the handling without calling DefWindowProc. If you do this, you will never see a WM_TOUCH, because something buried down in DefWindowProc stealthily dispatches a WM_TOUCH to your application's windows when it sees a specially-marked WM_INPUT or WM_MOUSEMOVE.</p>
<p><em>Note that actually, you are supposed to always call DefWindowProc on WM_INPUT (for "cleanup" -- I don't know what this means and why they can't just clean it up when you get the next message -- but whatever); but WM_MOUSEMOVE has no such requirement, and if you believe you handled the event, it is natural *not* to call DefWindowProc. This will result in your never seeing WM_TOUCH.</em> Strictly speaking our game had a bug, in that we were not calling DefWindowProc after WM_INPUT, but the bug was hard to find because it persisted when I tried turning off raw input, because we also were not calling DefWindowProc after WM_MOUSEMOVE (which as I mentioned is, in theory, totally fine.)</p>
<p>Important to note: WM_TOUCH gets dispatched to your windows without you dispatching it! You may think that you can log all messages after they come out of PeekMessage, and that you are in control of your entire message stream, but this is apparently not true. WM_TOUCH will just teleport itself into your window.</p>
<p>In addition to the mouse motion events, your application will get a bunch of other mouse events that are generated by the touch interface, to emulate mouse stuff for programs that don't understand touch. There is no way to tell Windows you don't want these events (unless you do Windows 8 stuff and respond to WM_POINTER; see below). According to Microsoft, the official way you are supposed to detect and ignore these messages is like this:</p>
<p><code></p>
<pre>
#define MOUSEEVENTF_FROMTOUCH 0xFF515700
if ((GetMessageExtraInfo() & MOUSEEVENTF_FROMTOUCH) 
        == MOUSEEVENTF_FROMTOUCH) { 
     // Skip message
}
</pre>
<p></code></p>
<p>I wish I were joking. It's been this way for years; <a href="http://mollyrocket.com/forums/viewtopic.php?p=7496">Casey wrote about this in 2008</a>.</p>
<p>This mask works for events like WM_LBUTTONDOWN, but it does not work for the mouse motion events e.g. WM_INPUT. If you want to take input both from touch and the mouse, you need to disambiguate the real WM_INPUTs from the fake ones. Through a process of experimentation with message flags, I landed on this:</p>
<p><code><br />
    if ((GetMessageExtraInfo() & 0x82) == 0x82) { /* ignore event */ }<br />
</code></p>
<p>It seems to work for now, but who knows if that will mysteriously break in some future version of windows.</p>
<p>Nicely, if your application handles WM_POINTER messages, you will not get any of this mouse emulation stuff or WM_TOUCH, so all this ugliness disappears. If it is okay to make Windows 8 your minimum specification, I recommend using WM_POINTER and staying far away from WM_TOUCH.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/10/wm_touch-is-totally-bananas/feed/</wfw:commentRss>
			<slash:comments>43</slash:comments>
		
		
			</item>
		<item>
		<title>Packaging Update</title>
		<link>https://the-witness.net/news/2012/09/packaging-update/</link>
					<comments>https://the-witness.net/news/2012/09/packaging-update/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Thu, 20 Sep 2012 23:23:50 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Engine Tech]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1814</guid>

					<description><![CDATA[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 …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/09/packaging-update/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>A while ago, I wrote <a href="https://the-witness.net/news/2012/08/fun-with-package-sorting/">a post about package sorting</a> in order to minimize diffs when patching on Steam.</p>
<p>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 clear there usually wasn't a good reason for this. Our compiled shaders would contain small differences, as would many meshes in the game.</p>
<p>These looked like uninitialized memory errors and, upon further investigation, that's indeed what they were. They are fixed now, so patches are a lot smaller.</p>
<p>However, patches may never be as small as we would like, and I find there is a pretty deep philosophical issue where.</p>
<p>Right now we have 17MB of files that change in response to minimal changes in the game (say, moving a few entities in the world by small distances). These are mostly cube maps for Light Probe entities, which are used to do lighting on nearby objects. Here's what a Light Probe looks like in the game: </p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/09/shot_2012.09.20__time_15_57_n01.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/09/shot_2012.09.20__time_15_57_n01-381x384.png" alt="" title="shot_2012.09.20__time_15_57_n01" width="381" height="384" class="aligncenter size-large wp-image-1816" /></a></p>
<p>(Well, you don't see that sphere the game, only in the editor!) To generate one of these cube maps, we render the scene in all directions, from the point at the center of that sphere, then apply a blur to the result.</p>
<p>Imagine that we move a couple of entities in the world, even slightly. All Light Probes that can see those entities are going to change, by at least a pixel or two. Because we are applying a big fat blur kernel, a 1-2 pixel change becomes small changes spread across the entire image.</p>
<p>We have an automated script that preps the game for release, clearing out data that we only use for development, and ensuring that automatically-computed things get recomputed (like LODs for faraway objects). Recently we added a step to this process that re-generates all the Light Probes, because it just makes sense to update those automatically. If we have to keep track of them manually somehow we are just going to make mistakes.</p>
<p>What this means is that you can pretty much guarantee that a lot of light probes are going to change if you move some entities and patch the game. If we change anything basic about any of the shaders, which seems very likely, then <em>all</em> of the light probes are going to change (because the output of the shaders feeds back into the light probes).</p>
<p>That said, maybe it's the case now that more light probes are changing than I would expect. I am wondering if other things in the game are causing them to change. For example, when you are playing the game, foliage waves in the wind. I wonder if the animation timer for plants is ticking during the process when we generate light probes, causing them to move over time? This would cause most light probes to be different every time we bake them, regardless of other factors.</p>
<p>Now, there's a bigger issue. In addition to light probes, we have pre-baked lightmaps all over all geometry in the game:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/09/shot_2012.09.20__time_16_15_n01.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/09/shot_2012.09.20__time_16_15_n01-512x288.png" alt="" title="shot_2012.09.20__time_16_15_n01" width="512" height="288" class="aligncenter size-large wp-image-1817" /></a></p>
<p>In a way that is reminiscent of the light probes (but a bit different), we generate these by placing a camera at many points along each surface, rendering the scene from each camera, and interpolating those into a final result.</p>
<p>So, just like light probes change when entities move slightly, lightmaps are going to change also. Lightmaps will also change if shaders change, but furthermore, lightmaps will change if light probes change (because light probes determine the look of entities that shine on the surfaces we are lightmapping), and light probes will change if lightmaps change (because the lightmaps influence the objects rendered in the light probes). So we have a circular dependency, which is not so bad in practice, except it means that if you change one entity in the game, then repeat this process iteratively, you may well end up changing most lightmaps and light probes in the game.</p>
<p>The light probes are not so big, but last I checked there are between 500MB and 700MB of lightmaps. However, re-baking the lightmaps is not part of the automated build process; we have to trigger a bake manually. But it seems like good policy to do a full rebake any time we change the game significantly. So, we are probably looking at a minimum patch size in the 500MB range.</p>
<p>I guess that is not such a big deal, since we are not an online game that would be patching all the time. Hopefully once we release the initial version of the game, the "content" won't change very much (sorry, but the word "content" as used in video games is kind of absurd, so it's hard for me to use it without sarcasm quotes; it's almost as bad as "title", which is a word I refuse to use, except to make fun of its use)... the "content" won't change very much, so patches would be rare.</p>
<p>We'll see. We have a while to figure these things out.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/09/packaging-update/feed/</wfw:commentRss>
			<slash:comments>40</slash:comments>
		
		
			</item>
		<item>
		<title>Island Snapshot&#8230;</title>
		<link>https://the-witness.net/news/2012/09/island-snapshot-6/</link>
					<comments>https://the-witness.net/news/2012/09/island-snapshot-6/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sun, 16 Sep 2012 07:51:32 +0000</pubDate>
				<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1810</guid>

					<description><![CDATA[... from a different angle than usual.<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/09/island-snapshot-6/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>... from a different angle than usual.</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/09/shot_2012.09.15__time_12_58_n01.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/09/shot_2012.09.15__time_12_58_n01-512x288.png" alt="" title="shot_2012.09.15__time_12_58_n01" width="512" height="288" class="aligncenter size-large wp-image-1811" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/09/island-snapshot-6/feed/</wfw:commentRss>
			<slash:comments>22</slash:comments>
		
		
			</item>
		<item>
		<title>A note about programming language design</title>
		<link>https://the-witness.net/news/2012/09/a-note-about-programming-language-design/</link>
					<comments>https://the-witness.net/news/2012/09/a-note-about-programming-language-design/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 12 Sep 2012 19:02:24 +0000</pubDate>
				<category><![CDATA[Ill-Advised Rants]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=3085</guid>

					<description><![CDATA[This is not about The Witness, but it may be relevant future games that we do! In my spare time I am building a new programming language. Today I made a bunch of tweets about something I was thinking about there... but the ideas are hard to follow on Twitter …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/09/a-note-about-programming-language-design/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>This is not about The Witness, but it may be relevant future games that we do! In my spare time I am building a new programming language. Today I made a bunch of tweets about something I was thinking about there... but the ideas are hard to follow on Twitter so I am crossposting them here. I started out by lamenting that so many people thought that a language without member functions was unthinkable, then continued:</p>
<hr />
<p>&nbsp;</p>
<p>Even the idea of UFCS is just a massive overcomplication. It only seems simple compared to baseline C++.</p>
<p>I should say that the biggest problem I find with the idea of member functions is that they are extremely anti-code-reuse. I know this may seem paradoxical, because the whole point is to encapsulate code in an easy-to-reuse way, but I'll give an example.</p>
<p>Let's say you have some basic data type like a 3D Vector called Vector3. You want everyone to be motivated to use Vector3 so that there's no friction when passing data between the main program and various libraries, etc.</p>
<p>All that is necessary for compatibility in a fast program is that everyone agrees on the data layout of Vector3. But as soon as you tie member functions to the data, you are insisting that everyone needs to think the same way about the data that is in a Vector3, and operate on it the same way. And that will never be true, because different code needs to think about data types in different ways; and also because programmers express their personality in programs, and different programmers want to think in different ways about the most common data types.</p>
<p>So if you force people to think a certain way about Vector3 or other basic data types, you are motivating them (or *requiring* them) to go against that grain and make their own alternatives. Then the system is fragmented and you have all these data types that need to be converted again. Or, if people don't do that, they just end up passive-aggressively hating the task of programming, which is not what you want.</p>
<p>So in reality, you want Vector3 to define only a common piece of data to be exchanged. You can provide default functions for operating on Vector3, but in a way that people can easily shadow them with their own functions or else use a completely disjoint set. That is just not what most "object models" encourage. Thus they put huge amounts of friction onreuse in this particular kind of case, which is very common and very important.</p>
<p><em>(I wish people would stop telling me that member functions are good because you can do obj . and get a list of procs in the IDE after typing the dot. You can obviously do this with flat functions too. Please stop telling me this kthx.)</em></p>
<hr />
<p>&nbsp;</p>
<p>Because this came out as a series of tweets, it is probably less coherent than what I would have written if it were a straight-up essay, but hey, this is how it went.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/09/a-note-about-programming-language-design/feed/</wfw:commentRss>
			<slash:comments>29</slash:comments>
		
		
			</item>
		<item>
		<title>What a Difference a Year Makes</title>
		<link>https://the-witness.net/news/2012/08/what-a-difference-a-year-makes/</link>
					<comments>https://the-witness.net/news/2012/08/what-a-difference-a-year-makes/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Thu, 30 Aug 2012 00:56:23 +0000</pubDate>
				<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1800</guid>

					<description><![CDATA[August 2010: September 2011: August 2012:<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/08/what-a-difference-a-year-makes/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>August 2010:</p>
<p><A HREF="https://the-witness.net/news/wp-content/uploads/2010/08/shot_2010.08.18__time_21_03_n01.jpg"><img alt="" src="https://the-witness.net/news/wp-content/uploads/2010/08/shot_2010.08.18__time_21_03_n01.jpg" title="August 2010" class="alignnone" width="1600" height="1024" /></A></p>
<p>September 2011:</p>
<p><A HREF="https://the-witness.net/news/wp-content/uploads/2011/09/shot_2011.09.17__time_17_22_n01.png"><img alt="" src="https://the-witness.net/news/wp-content/uploads/2011/09/shot_2011.09.17__time_17_22_n01.png" title="September 2011" class="alignnone" width="1280" height="720" /></A></p>
<p>August 2012:</p>
<p><A HREF="https://the-witness.net/news/wp-content/uploads/2012/08/shot_2012.08.29__time_17_26_n01.png"><img alt="" src="https://the-witness.net/news/wp-content/uploads/2012/08/shot_2012.08.29__time_17_26_n01.png" title="August 2012" class="alignnone" width="1280" height="720" /></A></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/08/what-a-difference-a-year-makes/feed/</wfw:commentRss>
			<slash:comments>33</slash:comments>
		
		
			</item>
		<item>
		<title>Island Snapshot</title>
		<link>https://the-witness.net/news/2012/08/island-snapshot-5/</link>
					<comments>https://the-witness.net/news/2012/08/island-snapshot-5/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Thu, 30 Aug 2012 00:41:39 +0000</pubDate>
				<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1797</guid>

					<description><![CDATA[You can see Ignacio's new water in this shot (which will continue to improve, and already we have a lot of control over water visuals that we are not using yet). There's a bunch of new audio in the game. Art folks are working on revising various areas and getting …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/08/island-snapshot-5/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p><a href="https://the-witness.net/news/wp-content/uploads/2012/08/shot_2012.08.29__time_17_26_n01.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/08/shot_2012.08.29__time_17_26_n01-512x288.png" alt="" title="shot_2012.08.29__time_17_26_n01" width="512" height="288" class="aligncenter size-large wp-image-1798" /></a></p>
<p>You can see Ignacio's new water in this shot (which will continue to improve, and already we have a lot of control over water visuals that we are not using yet). There's a bunch of new audio in the game. Art folks are working on revising various areas and getting them into fully playable shape. Lately I have been thinking hard about how to improve various puzzles (a couple of puzzles already just got *way* better this week), and I have also started rearranging the jungle area, which you see in the left foreground. We've had a lot of discussions with the landscape architects, and they've given us a detailed topography for the island that helps define some of the features we think will be good to have, like this river you can see to the left of the mountain (solid blue for now; it's temporary!). </p>
<p>Also, a couple of us have been on vacation!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/08/island-snapshot-5/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Regarding Water</title>
		<link>https://the-witness.net/news/2012/08/regarding-water/</link>
					<comments>https://the-witness.net/news/2012/08/regarding-water/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sat, 25 Aug 2012 06:16:19 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1789</guid>

					<description><![CDATA[(Here's an internal email that Ignacio sent today that may provide some flavor on what we're doing lately.) From: Ignacio Castaño Date: 24 August 2012 I just checked in a few changes to the water shader. Note that this is still work in progress, there are some artifacts and unfinished …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/08/regarding-water/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p><em>(Here's an internal email that Ignacio sent today that may provide some flavor on what we're doing lately.)</em></p>
<p>From: Ignacio Castaño<br />
Date: 24 August 2012</p>
<p>I just checked in a few changes to the water shader. Note that this is still work in progress, there are some artifacts and unfinished features.</p>
<p>From the art point of view, the main change is that there's now a water_color_map and a water_flow_map that you can use to change the behavior of the shader.</p>
<p>The RGB channels of the color map control the water extinction color and the alpha controls the opacity factor. The previous underwater shading model was simply wrong, the new one works nicely and is easy to tweak. Note that I assume the water color changes very smoothly, avoid sharp color changes!</p>
<p>The flow_map is intended to contain additional water attributes. Right now it's only used for the stillness, but I will certainly add more in the future.</p>
<p>You will also notice that the shoreline now also has a foam layer:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/08/a.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/08/a-512x287.png" alt="" title="a" width="512" height="287" class="aligncenter size-large wp-image-1791" /></a></p>
<p>The way it's computed is by comparing the screenspace depth difference. This is not very correct, it looks OK from some angles, but it breaks badly when the underwater geometry has screen-space depth discontinuities:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/08/b.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/08/b-512x287.png" alt="" title="b" width="512" height="287" class="aligncenter size-large wp-image-1792" /></a></p>
<p>If the foam is a desirable feature, I'm considering modifying the print_map command to render a foam map, or maybe this is something that can be painted manually and added to the water_flow_map. One of my concerns is that this map may not have enough resolution. </p>
<p>Just Cause 2 seems to use this method to render foam, but they apply a big screenspace distortion to hide the artifacts, I found it sickening when you stare at it closely...</p>
<p>The way the water is shaded has also changed somewhat. First, I now approximate the specular exponent based on the position of the camera with respect to the water and the water roughness. Somewhat like the LEAN paper does, but assuming the roughness of the water is the same for the whole texture. Depending on the value of the exponent I either sample the mirrored reflection map, a filtered environment map, or blend between the two. My goal was to be able to use the mirrored reflection map only on a small subset of the lake entities. The physically based approach does not allow us to cull many, so I'll probably have to introduce some hacks. BTW, I'm doing all these work not just an optimization, but also so that we can use the light probe reflection model in the river and lakes inside the island, where the mirrored reflection map is not available.</p>
<p>The main problem with the filtered environment map is that it does not take local reflections and occlusion from the environment into account. I have two ideas to work around this, one is to store an ambient occlusion map in the lightmaps, this may be a bit too smooth and will lack directional information. The other is to do screenspace raycasting of the depth buffer to decide whether the environment map is occluded or not.</p>
<p>This is somewhat like what Crysis 2 does. Insomniac also uses a similar approach with just a single sample:</p>
<p><a href="http://www.insomniacgames.com/tech/articles/0409/files/water.pdf">http://www.insomniacgames.com/tech/articles/0409/files/water.pdf</a></p>
<p>I'm hoping we can get away with a crude approximation too. I did a quick test, where the maths are not exactly right, with only 4 samples and no smoothing, and it was starting to look promising:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/08/c.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/08/c-512x287.png" alt="" title="c" width="512" height="287" class="aligncenter size-large wp-image-1790" /></a></p>
<p>This won't allow us to use the filtered environment maps closer to the camera, but if the screenspace raycasting works well, I'm thinking about using non-filtered environment maps in place of the mirrored reflection map, whenever those are not available.</p>
<p>Finally, I've also been playing with Valve's water flow model, I have the basic implementation working, but I haven't yet been able to reproduce the workaround for the pulsing and repetition artifacts that Alex proposes.</p>
<p><a href="http://www.valvesoftware.com/publications/2010/siggraph2010_vlachos_waterflow.pdf">http://www.valvesoftware.com/publications/2010/siggraph2010_vlachos_waterflow.pdf</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/08/regarding-water/feed/</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		
			</item>
		<item>
		<title>Fun with package sorting</title>
		<link>https://the-witness.net/news/2012/08/fun-with-package-sorting/</link>
					<comments>https://the-witness.net/news/2012/08/fun-with-package-sorting/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 08 Aug 2012 20:04:16 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1766</guid>

					<description><![CDATA[As you see in the previous post, lately I've been getting the game set up on Steam. Now that it's in there and working, there are still things to think about and make better. A couple of months ago I was playing Super Monday Night Combat; a much-anticipated weekly update …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/08/fun-with-package-sorting/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>As you see in <a href="https://the-witness.net/news/2012/08/steam-is-cool/">the previous post</a>, lately I've been getting the game set up on Steam. Now that it's in there and working, there are still things to think about and make better.</p>
<p>A couple of months ago I was playing <a href="http://store.steampowered.com/app/104700/">Super Monday Night Combat</a>; a much-anticipated weekly update came along, but its file size was over 800MB! MNC is an Unreal Engine game and Unreal, like many game engines (and like The Witness), packages its data files together for robustness and speed. This package format interacts with the patch delivery system of any online distribution service, though.</p>
<p>Steam's system performs a binary-data comparison between the old version of your file and the new version, sending only the pieces that have changed. To make this analysis tractable, files are thought of as collections of 1 megabyte chunks; if anything in a particular chunk changes, even one byte, the whole chunk gets included in the patch. If you aren't careful about this, small details of your package format can trigger very large patches, and this is what was happening with Super MNC (not really the developers' fault since they were using a licensed engine; I have heard that the Unreal guys are addressing the problem.)</p>
<p>The Witness packs most of its data into a single 2-gigabyte file stored in the .zip format. Before uploading the initial version to Steam, I took a safeguard to minimize patch sizes, or so I thought: Files are sorted lexicographically and then placed into the zip file in that specific order. (Imagine that files are stored in random order: probably every patch involves every player re-downloading the entire game!)</p>
<p>Last night, as a test, I pushed a new build to Steam. The hope was that the patch would be small, since we had only done two days of work. Instead, here's what we got:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/08/steam_chunks.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/08/steam_chunks-512x94.png" alt="" title="steam_chunks" width="512" height="94" class="aligncenter size-large wp-image-1767" /></a></p>
<p>The patch was 660 megabytes. Clearly I had not done enough to prevent this. I opened up a zip file reader and took a look at the file order. In many cases, it was as you'd expect, but in the case of meshes and lightmaps we see this:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/08/sorting_problem_7zip.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/08/sorting_problem_7zip-512x162.png" alt="" title="sorting_problem_7zip" width="512" height="162" class="aligncenter size-large wp-image-1768" /></a></p>
<p>'save' is the world name and the 5-digit number is the identifier for each entity. (The world name is redundant right now, since The Witness takes place entirely in one world). We re-bake lightmaps pretty often, but we change meshes much less often. So, the packing order you see here will result in us patching more chunks than we should. Not necessarily by much, in this case, since meshes are much smaller than lightmaps, but that might not be true for all meshes, and other data types may have a similar issue but exhibit more-severe problems. So, I had the thought that instead of sorting things like this:</p>
<p><code>a.lightmap<br />
a.mesh<br />
b.lightmap<br />
b.mesh<br />
</code></p>
<p>What we really want is to sort by file extension first, then sort by name:</p>
<p><code>a.lightmap<br />
b.lightmap<br />
a.mesh<br />
b.mesh<br />
</code></p>
<p>... but not always. Sometimes we have multiple files associated with one source file, and that will all change when that source file changes, but that have different extensions. This is the case with shaders:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/08/shaders_7zip.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/08/shaders_7zip-512x107.png" alt="" title="shaders_7zip" width="512" height="107" class="aligncenter size-large wp-image-1769" /></a></p>
<p>So I hacked together a solution that sorts anything with an extension of .shader*, in terms of the global file list, as though the extension were only ".shader" -- that means all these files will stick together -- but locally, you still need to keep the full extension, so that the files for one particular shader do not randomize their order every time you make a patch.</p>
<p>The way I do this is to tack a modified extension onto the front of every filename, for sorting purposes only. So "hello.texture" becomes ".texture hello.texture", "whatever.shader_ps_text" becomes ".shader whatever.shader_ps_text", "whatever.shader_dump" becomes ".shader whatever.shader_dump".</p>
<p>If this doesn't make sense to you, don't worry too much about it, because it's not that big of a problem (and I am not even sure if those ps_text and vs_text files are needed for the running game; if we should be discarding them it would certainly mitigate the issue.) These kinds of problems would modestly increase the patch size, but I would not expect the increase to be terrible.</p>
<p>The whole time I was doing this sorting stuff, I knew it wasn't the real problem, and in the back of my mind I was thinking, "I hope the Steam patch mechanism ignores timestamps on files so that we don't have to go touching all files to a known time. (Or I hope we aren't packing a newly-generated build ID into each file or something.)" But this was an example of my brain not working properly: because we are packing all this stuff into a zip file, Steam doesn't know they are separate files! Since the zip file stores timestamps for all the files, <em>of course</em> that data changes every build (since our build process generates new files every time).</p>
<p>At first I was thinking that this wouldn't be the real problem, either, because the zip file format has a main directory that is stored compactly, and that is where timestamps would be, because you want to be able to access that data quickly. So I would have guessed that, if all the timestamps changed, the worst that would happen is that the directory would change every build, but that is at most a couple of megabytes. But looking at <a href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT">the zip file specification</a>, I discovered how wrong I was. Inexplicably, timestamps for each file in a zip archive are stored both in the central directory <em>and</em> in the local header for each file, so if you change timestamps for all your files, you are strewing changes everywhere.</p>
<p>So I made the packaging script set all timestamps to 0, but the zip library we are using didn't like that, so I set the timestamp to January 1, 2012 00:00:00 GMT.</p>
<p>After fixing this, as a test I built two patches in a row from scratch, with the game recompiling all shaders and re-compressing all textures each time. In theory the results should be exactly the same (certainly if this still generated a huge patch, we would still have some kind of big problem). Happily, we have found at least some bit of success:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/08/success.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/08/success-512x97.png" alt="" title="success" width="512" height="97" class="aligncenter size-large wp-image-1772" /></a></p>
<p>I am not sure what it is saying there about 2046 of 2262 matching, or 60 changed chunks, but saying it uploaded 0 chunks. In any case it's better than before. I am going to ask the Steam people what these various numbers actually mean.</p>
<p>Feeling good about this, I ran a final test where I moved around a few objects in the world and changed a constant in one shader:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/08/bigger.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/08/bigger-512x93.png" alt="" title="bigger" width="512" height="93" class="aligncenter size-large wp-image-1781" /></a></p>
<p>That's once again not so good (140 MB!) I had been sweeping the 18MB from the previous run under the rug, thinking "hey, it says 0 chunks sent, so maybe that 18MB is protocol overhead involved in figuring out which chunks changed, and it doesn't impact patch size." Apparently not. The next step involves asking the Steam folks for advice, hunting around for a binary diff file with which to analyze our own packages to see if we are doing something unsavory, etc.</p>
<p>Here's the current Perl code for the part of our script that builds the zip file:</p>
<p><code></p>
<pre>
sub modify_name {
    my $name = $_[0];

    my ($file, $dir, $ext) = fileparse(lc($name), qr/\.[^.]*/);
    my $orig_ext = $ext;

    if ($ext =~ m/^\.shader/) { 
        $ext = '.shader';
    }

    # Throw away 'dir' since we discard it when writing the file, anyway.
    return "$ext $file$orig_ext";
}

sub make_uncompressed_zip {  # Sort zip members alphabetically so that binary diffing will have an easier time.
    my ($source, $prefix, $dest_zip_file) = @_;

    my @unsorted = glob("$source/*.*");
    my @sorted = sort { 
        modify_name($a) cmp modify_name($b)
    } @unsorted;

    print("Sorted $#sorted files.\n");

    use Archive::Zip qw(:ERROR_CODES);
    my $zip = Archive::Zip->new();

    
    # Zip API complains if time is before 1980, so use an arbitrary timestamp in that range (yuck).
    my $timestamp_2012_jan1 = 1325376000;
    foreach my $fullname (@sorted) {
        my ($file, $dir, $ext) = fileparse($fullname, qr/\.[^.]*/);

        # print("Adding '$fullname' as '$prefix$file$ext'\n");
        my $member = $zip->addFile("$fullname", "$prefix$file$ext");
        $member->setLastModFileDateTimeFromUnix($timestamp_2012_jan1);  # Clobber timestamp. 
    }

    # Set the compression level on all the members.

    my @members = $zip->members();
    foreach my $member (@members) {
        $member->desiredCompressionMethod(COMPRESSION_STORED);
    }

    $zip->writeToFileNamed($dest_zip_file);
}
</pre>
<p></code></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/08/fun-with-package-sorting/feed/</wfw:commentRss>
			<slash:comments>71</slash:comments>
		
		
			</item>
		<item>
		<title>Steam is cool.</title>
		<link>https://the-witness.net/news/2012/08/steam-is-cool/</link>
					<comments>https://the-witness.net/news/2012/08/steam-is-cool/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Mon, 06 Aug 2012 19:58:26 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1762</guid>

					<description><![CDATA[Last night I put together a test build of The Witness for Steam. I'd been wanting to do this for a while, but the game's ability to run in full-release mode had been broken for a while. From day to day, we run the game with unpackaged data files, because …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/08/steam-is-cool/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Last night I put together a test build of The Witness for Steam. I'd been wanting to do this for a while, but the game's ability to run in full-release mode had been broken for a while. From day to day, we run the game with unpackaged data files, because we change them a lot. For a release you generally want to pack them together. </p>
<p>We finally got that working well enough; here's me getting ready to download the game on Steam:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/08/witness_download.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/08/witness_download-487x384.jpg" alt="" title="witness_download" width="487" height="384" class="aligncenter size-large wp-image-1763" /></a></p>
<p>And here I am after having launched the game:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/08/witness_played.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/08/witness_played-488x384.jpg" alt="" title="witness_played" width="488" height="384" class="aligncenter size-large wp-image-1764" /></a></p>
<p>I don't want people out there to get too excited about these screenshots: this does <strong>not</strong> mean the game is close to release. You wouldn't want to play it right now. But this will help us a lot when it comes to getting the game out to playtesters and keeping it updated.</p>
<p>For actually shipping our game off to Steam, we are using the new version of the Steam developer tools, and they are really good. The old stuff (which I had used for Braid) was serviceable but had a lot of undesirable things going on. The new stuff is exactly what you want: you write a couple of very small and easy to read config files, then you run a command and it uploads your game. This process is now fully-automated, which means developers can modify their game and push changes out to users faster and with less hassle than with any other online distribution service. (It is basically as fast as if you host the game yourself).</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/08/steam-is-cool/feed/</wfw:commentRss>
			<slash:comments>45</slash:comments>
		
		
			</item>
		<item>
		<title>Fun with in-engine color grading</title>
		<link>https://the-witness.net/news/2012/08/fun-with-in-engine-color-grading/</link>
					<comments>https://the-witness.net/news/2012/08/fun-with-in-engine-color-grading/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Fri, 03 Aug 2012 23:50:37 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1746</guid>

					<description><![CDATA[Quite some time ago, Ignacio put some color grading features into the engine, so that you could tell the postprocessor to tweak colors in particular ways. For a while these features were very experimental; we just had them on a debug menu and there wasn't a way to save the …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/08/fun-with-in-engine-color-grading/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Quite some time ago, Ignacio put some color grading features into the engine, so that you could tell the postprocessor to tweak colors in particular ways. For a while these features were very experimental; we just had them on a debug menu and there wasn't a way to save the settings. We didn't really use the features (in part because we were pretty busy just getting the basic parts of the game together).</p>
<p>Lately, Ignacio and Salvador took the features all the way so that we can use them easily in normal workflow. (This happened over some period of time, but the last parts came together this week). Now you can take a screenshot, screw around with the colors in Photoshop, and load it back into the game to control the grading. I am pretty sure this is not our idea, and we got it from the Uncharted guys or someone like that (Update: The idea was developed by Naty Hoffman and others; see the comments to this article).</p>
<p>Here's how it goes. First, I find an area the look of which I would like to change:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/08/shot_2012.08.03__time_16_13_n02.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/08/shot_2012.08.03__time_16_13_n02-512x288.png" alt="" title="shot_2012.08.03__time_16_13_n02" width="512" height="288" class="aligncenter size-large wp-image-1747" /></a></p>
<p>Next I hold down the control key while taking the screenshot, causing it to be saved with a special color bar along the top of the image:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/08/shot_2012.08.03__time_16_13_n03.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/08/shot_2012.08.03__time_16_13_n03-512x288.png" alt="" title="shot_2012.08.03__time_16_13_n03" width="512" height="288" class="aligncenter size-large wp-image-1748" /></a></p>
<p>Then I go into Photoshop and screw around with the colors. Here I am using the Hue/Saturation tool to shift the palette away from red:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/08/lut_test_1.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/08/lut_test_1-512x288.jpg" alt="" title="lut_test_1" width="512" height="288" class="aligncenter size-large wp-image-1752" /></a></p>
<p>Or, instead, I may wish to shape the histogram of the image:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/08/lut_test_2.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/08/lut_test_2-512x288.jpg" alt="" title="lut_test_2" width="512" height="288" class="aligncenter size-large wp-image-1753" /></a></p>
<p>That color bar at the top of the screen acts as a look-up table. The game doesn't need to understand what operations we have performed in Photoshop; it just knows what that color bar looked like when the screenshot was saved out, and, by comparing it to the colors in the result, knows how to transform any color in the rendered scene.</p>
<p>In the game, you can now attach these grading operations to spatial markers, so that color grading kicks in when you are inside specific areas. Here I am setting up some markers in the editor (the marker is the big white box):</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/08/shot_2012.08.03__time_16_23_n01.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/08/shot_2012.08.03__time_16_23_n01-512x288.png" alt="" title="shot_2012.08.03__time_16_23_n01" width="512" height="288" class="aligncenter size-large wp-image-1749" /></a></p>
<p>After setting up two of these boxes, one for each of the two weird color operations I created, then I can walk around in the game and have these operations apply to everything:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/08/shot_2012.08.03__time_16_28_n04.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/08/shot_2012.08.03__time_16_28_n04-512x288.png" alt="" title="shot_2012.08.03__time_16_28_n04" width="512" height="288" class="aligncenter size-large wp-image-1751" /></a></p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/08/shot_2012.08.03__time_16_27_n03.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/08/shot_2012.08.03__time_16_27_n03-512x288.png" alt="" title="shot_2012.08.03__time_16_27_n03" width="512" height="288" class="aligncenter size-large wp-image-1750" /></a></p>
<p>This gives us a really nice degree of control over how the game looks. We plan to use it to help with the color theming that will tie together specific areas.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/08/fun-with-in-engine-color-grading/feed/</wfw:commentRss>
			<slash:comments>26</slash:comments>
		
		
			</item>
		<item>
		<title>Island Update, with bonus map</title>
		<link>https://the-witness.net/news/2012/07/island-update-with-bonus-map/</link>
					<comments>https://the-witness.net/news/2012/07/island-update-with-bonus-map/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 31 Jul 2012 20:32:47 +0000</pubDate>
				<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1738</guid>

					<description><![CDATA[It's time for another island update: As you'll notice, we are starting to work on that big mountain that is closest to the camera. (Finally!) This is still an early concept; it will change a lot. Ignacio recently implemented a clean way to print an overhead map of the island, …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/07/island-update-with-bonus-map/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>It's time for another island update:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/07/shot_2012.07.31__time_13_12_n01.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/07/shot_2012.07.31__time_13_12_n01-512x288.png" alt="" title="shot_2012.07.31__time_13_12_n01" width="512" height="288" class="aligncenter size-large wp-image-1739" /></a></p>
<p>As you'll notice, we are starting to work on that big mountain that is closest to the camera. (Finally!) This is still an early concept; it will change a lot.</p>
<p>Ignacio recently implemented a clean way to print an overhead map of the island, in flat colors, which is probably useful for marking things up:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/07/world_map_2012.07.31__time_13_12_n01.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/07/world_map_2012.07.31__time_13_12_n01-384x384.png" alt="" title="world_map_2012.07.31__time_13_12_n01" width="384" height="384" class="aligncenter size-large wp-image-1740" /></a></p>
<p>On the modeling side, Eric has been refining an area that's far from the camera in these shots (you'll see some screenshots of the interior soon). Luis has been working on the style of our outdoor scenes; we have interesting problems that involve maintaining a visual style that is good for gameplay while also creating images that are most striking. Orsi has been working on refinements to a few particular areas, particularly, adding some deeper puzzle complexity to the area with the tall trees (off to the right in the screenshot image).</p>
<p>Until recently I had been bothered by some unanswered questions regarding the endgame. There were things I wanted to do that didn't fit together and that felt clumsy. But thankfully, after taking a relaxing weekend where I barely worked on the game at all, on Monday solutions to most of these problems just popped into my head. So that's cool.</p>
<p>There are still some questions about the gameplay but I think the biggest ones are now nailed down. Over the next couple of weeks I will be implementing the remaining parts of this endgame.</p>
<p>Tech-wise, Andy is pretty far along with the OpenGL renderer, which will help us hit other platforms, and Salvador has tied up the basics of asset streaming and is doing some rendering optimization stuff. Ignacio is refining the LOD system in addition to many miscellaneous tasks.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/07/island-update-with-bonus-map/feed/</wfw:commentRss>
			<slash:comments>26</slash:comments>
		
		
			</item>
		<item>
		<title>Thoughts on Consoles and Certification Processes</title>
		<link>https://the-witness.net/news/2012/07/thoughts-on-consoles-and-certification-processes/</link>
					<comments>https://the-witness.net/news/2012/07/thoughts-on-consoles-and-certification-processes/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 25 Jul 2012 00:25:57 +0000</pubDate>
				<category><![CDATA[Ill-Advised Rants]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1730</guid>

					<description><![CDATA[Last weekend I wrote an email to Kyle Orland of Ars Technica in response to a question about an independent game's certification troubles. That letter was quoted in this article, which was then summarized by gameindustry.biz, and is probably floating elsewhere around the internet too. The original letter went through …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/07/thoughts-on-consoles-and-certification-processes/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Last weekend I wrote an email to Kyle Orland of Ars Technica in response to a question about an independent game's certification troubles. That letter was <a href="http://arstechnica.com/gaming/2012/07/how-certification-requirements-are-holding-back-console-gaming/">quoted in this article</a>, which was then <a href="http://www.gamesindustry.biz/articles/2012-07-24-blow-consoles-handicapped-by-corporate-nature">summarized by gameindustry.biz</a>, and is probably floating elsewhere around the internet too. </p>
<p>The original letter went through a few examples of specific issues of certification and how they could be handled better, to help substantiate why I think these processes are so broken. These are not the kinds of details you would expect to make it into a short article for a general audience, but having typed them up, I think some people out there might be interested (especially developers who have not done console games before but are thinking about it). So, below is my original letter (edited a little bit for clarity):</p>
<p>-----</p>
<p>Hi Kyle,</p>
<p>I have gone on record a number of times, saying that the XBLA certification process makes games worse rather than better. But that is a pretty old experience for me now (4 years ago), and they are unlikely to change any of that stuff until the new console comes out anyway. Keep in mind that the Xbox people as a whole do not think of XBLA as a high priority (you can get a glimpse of this from the E3 press conferences, etc).</p>
<p>But, I think the more important issue applies globally, to all of Microsoft, Sony and Nintendo (and not just to smaller downloadable games, but to every game regardless of size). The certification processes of all these platform holders were based on the idea that all these steps they test are absolutely necessary for software to run robustly, and that software robustness is super-important for the health of their platform and its perception by customers.</p>
<p>But, look at iOS. There is almost no certification process for iOS, so by the Microsoft/Sony/Nintendo theory, the apps should be crashing all the time, everyone should think of iOS as sucky, etc. But in fact this is not what is happening. There is no public outcry for more testing and robustness of iOS software.</p>
<p>Part of this may be that iOS software is so easily patched; so maybe a heavy cert process made sense back in the disc-only days, but as we go into the next console generation it becomes unnecessary. But something tells me that Microsoft/Sony/Nintendo are not really going to let up on cert, even though they say they will. It's just "not in their DNA" as they say. The proof of this is the bizarre over-complexification that already happens with console games today, and is baked into the current certifications, that any of them could easily fix, but none of them do, because they don't care.</p>
<p>For example: every single game is REQUIRED to say on startup, "sometimes this game saves, when you see this animated icon in the corner, DO NOT TURN OFF YOUR CONSOLE, etc". This is something that developers have to implement and that has to be tested, which costs significant time and money, but worse than all that, it impacts the user experience, because the startup of the game becomes just a little more bureaucratized, and also -- this is supposed to be a fun experience, so why are you issuing warnings and strict instructions? (Just one thing like this may not seem like too much, but combined with everything else, it is a lot; I am using it as just one specific example).</p>
<p>Why is this DO NOT TURN OFF YOUR CONSOLE warning there? It's because if the game is saving a save file, overwriting an old one, and you turn off in the middle, you might corrupt the saved game. Well, guess what... the solution to this is to IMPLEMENT A MORE ROBUST SAVE SYSTEM. You save the new file next to the old file, flush the I/O, and only delete the old file once the integrity of the new one has been verified (or just don't remove it, and keep two copies of the save at all times). On load you just make sure you load the intact save file if one is corrupted. This is not hard to implement; I did it in Braid. But if consoles cared about this kind of thing, it would be built into their basic save-file API, so that it would always work perfectly and no developers would ever have to think about it.</p>
<p>If they did this, there would be fewer things to certify, certification would cost a little less and take a bit less time. Let's say you save 3 days of development and testing per game (this is conservative; the real amount can be substantially higher when you factor in the discussions and coordination about how the save notice should look, etc). Now add up how many games have been released just on the Xbox 360, multiply that number by 3 days, and what you get is probably OVER A DECADE OF DEVELOPER TIME that was wasted. Just on this one little requirement. For something that should just be built into the system by one person in a couple of weeks. Okay, that was only the Xbox, so now add in all the PS3 and Wii games, and see what a huge waste of time that represents.</p>
<p>Like I said, just this one thing by itself would not be too bad, but it is only an example. Another example that all three certification processes have is the "title-safe region" restriction. This basically means that you are not allowed to draw text or gameplay-critical information near the edge of the screen (about 10% of screen width in a margin around the edge) because you don't know if the user's TV is displaying the whole picture (even modern HDTVs often cover the edge of the display with a bezel or else just crop it entirely, which is completely stupid).</p>
<p>Okay, so at first blush this seems to make sense, so to make sure players can see everything, we have to go through each screen and each mode in every game we ever release and certify that important things don't get drawn too far toward the edge. Well, as you can extrapolate from my previous example, this also has wasted DECADES OF DEVELOPER TIME (probably many decades, because dealing with title-safe probably takes a lot more time than save/load). And it is also something that these consoles could handle at the system level if they actually cared about the problem. Just put a screen calibration menu in the dashboard, and then initialize it properly so that players would almost never need to use it (when they are using HDMI output, initialize the settings using the display's EDID; if they are outputting a different way, just default to shrinking the display a little bit).</p>
<p>10% at the edges of the screen may not sound like much, but it is actually huge. Suppose a game is rendering at 1280x720... you are only really able to use the interior 1024x576, with everything outside that just being decoration. 1280x720 is 921600 pixels; 1024x576 is 589824 pixels, in other words, you only get to use 64% of the screen area for real! Everything outside that is only allowed to be decorative. You know how the 360's new Metro interface seems to use an absurdly small amount of real estate in the middle of the screen? That is due in large part to title-safe region. You know how games always seem to have their HUD elements placed too far inward when they could be nicer, further off to the sides? Same.</p>
<p>This would also have the benefit of saving work for most people who implement 2D games. In Braid we had to program a screen calibration menu. I notice there's one at the beginning of Dyad, and one at the beginning of PixelJunk Shooter. For God's sake why??</p>
<p>This makes all games worse all the time, and makes developers have to do a lot more work, but ultimately could be fixed very easily by any of the platform holders. They just don't care enough to do it. I think they will have a hard time getting rid of these rules because bureaucracy is in their DNA.</p>
<p>These are just two examples of many... I am going to stop ranting here, but this is just the tip of the iceberg. Most certification requirements are like this.</p>
<p>The edge that both Apple and Valve have going into the future is that they both genuinely care about the end-user experience and want to make it as good as possible. (Their end-user experience is already way better than any of the consoles and they are always working to improve it). Which coincidentally seems to be the place that these consoles are handicapped due to their corporate culture. Can anyone look at the current 360 or PS3 dashboards and legitimately say that those are products of an entity that deeply cares about user experience?</p>
<p>A question a lot of developers have is: When the 720 / PS4 get launched, how many people are really going to care and buy games for those systems? Obviously some people will, but if it is less than bought games this generation -- which a lot of developers think is very possible -- then look for a "peak oil" kind of crash where a lot of too-big publishers and developers fight over a shrinking market. If the actual way the next-gen consoles work is much like now, they will be a functionally archaic in the marketplace (keep in mind that they have to compete with the iPad 4, 5, 6, 7, 8, and 9. Have you got any idea what the iPad 5 or 6 are going to look like, how powerful they are going to be, what other user experience benefits they are going to have? I sure don't.)</p>
<p>-----</p>
<p>A few days after having written this letter, I just have one more thought to add: I know that Microsoft thinks they are fixing these issues with their next console, and creating an environment more suitable to free-to-play games and downloadable things in general; I assume Sony is thinking similarly. I will be very surprised if either of them succeeds in fixing these problems. Large institutions always undercorrect; they always think they are being radical and risky when in fact they are doing something tame that is just a modified version of the status quo. When large institutions need to change course by 95% in order to do well, even if they know it's an emergency and are totally panicked, they can probably only manage about 35%. For recent illustrations of this, look at Nokia and RIM (or, uhh, look at the large governments of Earth in dealing with global warming).</p>
<p>So I would bet that Microsoft and Sony believe they are streamlining their online stuff, because they are implementing an expedited, simplified cert process for patches and content updates, or something, and that because of this they will be in a great position to compete with Facebook and Apple and Steam and whoever. Whatever they do is very likely not to be enough. Their competitors are not stopping either. (Steam, which was already pretty painless in terms of updating games, recently revamped their system; the new thing is way better than the old thing, which was already way better than what the consoles do.)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/07/thoughts-on-consoles-and-certification-processes/feed/</wfw:commentRss>
			<slash:comments>58</slash:comments>
		
		
			</item>
		<item>
		<title>Fun With Subtitles</title>
		<link>https://the-witness.net/news/2012/07/fun-with-subtitles/</link>
					<comments>https://the-witness.net/news/2012/07/fun-with-subtitles/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Mon, 23 Jul 2012 22:31:37 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1720</guid>

					<description><![CDATA[Lately I have been doing some difficult puzzle design. Today I woke up and wanted a break from that, so I decided to nail down one of the loose ends that hadn't been thought about yet: displaying subtitles during the in-game voice recordings (of which there are a lot). Originally …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/07/fun-with-subtitles/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Lately I have been doing some difficult puzzle design. Today I woke up and wanted a break from that, so I decided to nail down one of the loose ends that hadn't been thought about yet: displaying subtitles during the in-game voice recordings (of which there are a lot).</p>
<p>Originally I wasn't sure whether I wanted to implement subtitles or not. It's important to me that the game have an overall aesthetic that contains no visual language. I was worried that if we were to draw subtitles for people who don't speak English, it might ruin this. But, a year ago, I was talking to a friend who has experience in film, and he convinced me that people just understand that subtitles are a different thing, that they are a layer on top of the game or movie or whatever. </p>
<p>So, I am implementing this, and maybe it's good, because if I had been hard-line about things, it would mean that most people in the world would not be able to understand the recordings. That's not terrible, because they are not necessary to complete the game, but as long as I don't feel like, ultimately, the subtitles are ruining things, it is probably better to have them.</p>
<p>(It's going to be an interesting time when I go try to implement the main menu without any written words...)</p>
<p>It's been a very productive day. I implemented the basic subtitling system in less than 3 hours (making a subtitle data file for one of the voice tracks, loading it, detecting in-game when a voice track is playing, finding the appropriate piece of subtitle for the current time, and drawing it on the screen). Here's the result:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/07/shot_2012.07.23__time_15_21_n04.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/07/shot_2012.07.23__time_15_21_n04-512x288.png" alt="" title="shot_2012.07.23__time_15_21_n04" width="512" height="288" class="aligncenter size-large wp-image-1721" /></a></p>
<p>The data file is a very simple format that I just made up. Taking my experience in making Braid multi-language, and looking at the kind of text we will be dealing with in The Witness, it was clear that I needed a format that was mostly about the text, with very minimal markup. Right now the main markup we need is just "which recording is the following text for" and "what time in the recording should the following lines be displayed". I can imagine that later on we will add some more features to it, but probably not many.</p>
<p>Since The Witness inherits code from Braid, we already have handling for other languages in our font rendering, so I pumped the text through Google Translate to test a couple of other languages:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/07/shot_2012.07.23__time_14_46_n01.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/07/shot_2012.07.23__time_14_46_n01-512x288.png" alt="" title="shot_2012.07.23__time_14_46_n01" width="512" height="288" class="aligncenter size-large wp-image-1722" /></a></p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/07/shot_2012.07.23__time_15_02_n02.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/07/shot_2012.07.23__time_15_02_n02-512x288.png" alt="" title="shot_2012.07.23__time_15_02_n02" width="512" height="288" class="aligncenter size-large wp-image-1723" /></a></p>
<p>If you are playing in English, subtitles are OFF BY DEFAULT. It amazes me how badly many games handle subtitles, most notably, that a great many games seem to have voice acting in English and then also default to subtitling in English. This is terrible because people read at a different speed than they listen, and they probably read faster. It ends up dividing peoples' attention in a weird way. I don't know why so many games do this except that they aren't paying enough attention to user experience. So to have a good experience you have to go turn subtitles off, but sometimes that doesn't even work! A couple of days ago, I was playing Xenoblade Chronicles, and when I turn off subtitles, only about half of the subtitles in the game go away. Apparently there are two different classes of subtitles and one of them you cannot even turn off! I think they never even tested it...</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/07/fun-with-subtitles/feed/</wfw:commentRss>
			<slash:comments>61</slash:comments>
		
		
			</item>
		<item>
		<title>Island Update</title>
		<link>https://the-witness.net/news/2012/07/island-update-5/</link>
					<comments>https://the-witness.net/news/2012/07/island-update-5/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 04 Jul 2012 03:39:57 +0000</pubDate>
				<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1710</guid>

					<description><![CDATA[Here's how the island looks now: The current puzzle count is 415 (I think we have been over-counting a little recently; this is a more-accurate count). In case you missed it, I did a live Q&#038;A with Chris Hecker of Spy Party today on Kotaku. In terms of world-building, lately …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/07/island-update-5/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Here's how the island looks now:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/07/shot_2012.07.03__time_20_25_n01.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/07/shot_2012.07.03__time_20_25_n01-512x288.png" alt="" title="shot_2012.07.03__time_20_25_n01" width="512" height="288" class="aligncenter size-large wp-image-1711" /></a></p>
<p>The current puzzle count is 415 (I think we have been over-counting a little recently; this is a more-accurate count).</p>
<p>In case you missed it, I did a <a href="http://kotaku.com/5923134/weve-got--jonathan-blow-the-witness-braid-and-chris-hecker-spy-party-here-to-answer-your-best-questions">live Q&A with Chris Hecker of Spy Party</a> today on Kotaku.</p>
<p>In terms of world-building, lately Luis, Shannon, Eric and Orsi been doing a few things: (1) revisiting the most complicated areas in the game and making them playable with something resembling shipping art assets [until now they were playable only with placeholder pieces]; (2) starting to figure out what the game will look like, outdoor-wise; (3) stuff I can't spoil in a post like this.</p>
<p>On the tech side Ignacio is working on optimizing the game, as often. A big part of this has been working on the mesh LOD system, but he's also looking at performance issues related to specific subsystems like grass rendering. Salvador has done a bunch of work on asset streaming, which seems to be pretty solid so far. Andy made a number of improvements to the collision system and audio system, and has now started work on an OpenGL port of the rendering, which, when done, is a big foothold toward portability to other platforms besides Windows.</p>
<p>The audio guys, Andrew and Geoff, have done some really nice stuff in terms of sound. The audio aesthetic for the game is starting to come together. We have lots of rad footsteps and are doing some very interesting things in terms of environment sounds.</p>
<p>This is not a comprehensive account of everything everyone's been doing; it is just what leaps to mind!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/07/island-update-5/feed/</wfw:commentRss>
			<slash:comments>26</slash:comments>
		
		
			</item>
		<item>
		<title>Meeting Photos</title>
		<link>https://the-witness.net/news/2012/06/meeting-photos/</link>
					<comments>https://the-witness.net/news/2012/06/meeting-photos/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 20 Jun 2012 20:04:52 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1695</guid>

					<description><![CDATA[Every week we have a meeting with the architects where we plan the structures and landscapes on the island. Most of the week, the architects are generally off thinking about this stuff while we are building the game. During the weekly meeting we get together, talk about what concepts the …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/06/meeting-photos/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p><a href="https://the-witness.net/news/wp-content/uploads/2012/06/IMG_0401.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/06/IMG_0401-512x384.jpg" alt="" title="IMG_0401" width="512" height="384" class="aligncenter size-large wp-image-1696" /></a></p>
<p>Every week we have a meeting with the architects where we plan the structures and landscapes on the island.  Most of the week, the architects are generally off thinking about this stuff while we are  building the game.  During the weekly meeting we get together, talk about what concepts the architects have come up with, figure out how those might integrate with the game, make decisions about which ones to pursue, and iterate in detail on concepts we have already decided to pursue.</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/06/IMG_0402.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/06/IMG_0402-512x384.jpg" alt="" title="IMG_0402" width="512" height="384" class="aligncenter size-large wp-image-1697" /></a></p>
<p>A while back we took some photos of this meeting, so I figured it would be fun to post them.  </p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/06/IMG_0403.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/06/IMG_0403-512x384.jpg" alt="" title="IMG_0403" width="512" height="384" class="aligncenter size-large wp-image-1698" /></a></p>
<p>Here we are looking at a number of different possibilities for one of the areas in the game.  I had already done the gameplay design, so we had a working location that was built out of blocky programmer stuff (if you see blocky things in the island update screenshots, it was something like that).  So we knew the general shape of what we were trying to build and how it had to behave; the architects started with that and made proposals about what the location might be like in terms of its basic construction.</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/06/IMG_0404.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/06/IMG_0404-512x384.jpg" alt="" title="IMG_0404" width="512" height="384" class="aligncenter size-large wp-image-1699" /></a></p>
<p>We chose one of these ideas and iterated on it a while.  Other concerns, having to do with the overall layout of elements on the island, then caused us to change the size and shape of this location; once we had done this, the original design was felt to be a bit weak at the new size and shape, so we went back and heavily modified the concept.  Only this past week have we converged on the final design and gotten a good first approximation into the game in a playable way.  It's pretty cool.</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/06/IMG_0405.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/06/IMG_0405-512x384.jpg" alt="" title="IMG_0405" width="512" height="384" class="aligncenter size-large wp-image-1700" /></a></p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/06/IMG_0406.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/06/IMG_0406-512x384.jpg" alt="" title="IMG_0406" width="512" height="384" class="aligncenter size-large wp-image-1701" /></a></p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/06/IMG_0407.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/06/IMG_0407-512x384.jpg" alt="" title="IMG_0407" width="512" height="384" class="aligncenter size-large wp-image-1702" /></a></p>
<p>Because we're working on a lot of things at once, we usually talk about a few different locations that are at different stages of development.  At this particular meeting we were also looking at some early concepts of the visual design and modeling of the area where you start the game:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/06/IMG_0414.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/06/IMG_0414-512x384.jpg" alt="" title="IMG_0414" width="512" height="384" class="aligncenter size-large wp-image-1703" /></a></p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/06/IMG_0416.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/06/IMG_0416-512x384.jpg" alt="" title="IMG_0416" width="512" height="384" class="aligncenter size-large wp-image-1704" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/06/meeting-photos/feed/</wfw:commentRss>
			<slash:comments>36</slash:comments>
		
		
			</item>
		<item>
		<title>The Depth Jam</title>
		<link>https://the-witness.net/news/2012/05/the-depth-jam/</link>
					<comments>https://the-witness.net/news/2012/05/the-depth-jam/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 30 May 2012 04:34:51 +0000</pubDate>
				<category><![CDATA[Special Events]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1639</guid>

					<description><![CDATA[Last week, I got together with three other designers for a four-day intensive design retreat known as the Depth Jam. The other attendees were: Chris Hecker of Spy Party, Marc ten Bosch of Miegakure, and Daniel Benmergui of Storyteller. This event was an experiment. Chris and I had been discussing …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/05/the-depth-jam/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p><a href="https://the-witness.net/news/wp-content/uploads/2012/05/DSCN0920.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/05/DSCN0920-512x384.jpg" alt="" title="DSCN0920" width="512" height="384" class="aligncenter size-large wp-image-1664" /></a></p>
<p>Last week, I got together with three other designers for a four-day intensive design retreat known as the Depth Jam.  The other attendees were: <a href="http://chrishecker.com">Chris Hecker of Spy Party</a>, <a href="http://marctenbosch.com/">Marc ten Bosch of Miegakure</a>, and <a href="http://www.ludomancy.com/blog/">Daniel Benmergui of Storyteller</a>.</p>
<p>This event was an experiment.  Chris and I had been discussing the idea for a while, but it took us a couple of years to get around to it.  One of my personal goals in setting up this event was to find a new way to stimulate my professional development, because the old ways were not cutting it any more.</p>
<p>The Depth Jam was designed in reaction to shortcomings of other game-related events.  <em>In order to explain the design choices behind the Depth Jam, I will speak critically of these other events, in order to highlight the problems that the Depth Jam is meant to address.</em>  If you are a fan of these events, organize some of them, or otherwise identify closely with them, then this will be uncomfortable.  The best I can do here is to assure you that this isn't attack-style negativity; it is criticism that comes from years of carefully considering these situations and thinking hard about how to make things better.</p>
<h2>Conferences</h2>
<p>When I first started working in video games I learned a lot from conferences and lectures.  The few days I spent at the Computer Game Developers' Conference in 1996 were eye-opening, even though I wasn't comfortable enough as a game developer to know how to make effective use of that time.  As years go by and we get better at what we do, a natural shift occurs: in the beginning, we are mostly deriving benefit from other attendees and presenters; later on, we are mostly providing benefit to other attendees, getting little out of it ourselves.  I have been to the Game Developers Conference 17 times now.  I find that I still do get something from attending, but it really takes a lot of work and there are very few people I can expect to learn from.  </p>
<p>All the smart programmers I know complain about conferences and consider them basically useless (except for the smart programmers who are also on conference advisory boards).  I certainly developed this kind of frustrated "there's nothing good here to see" attitude in the early 2000s, but to mitigate this situation I shifted into being much more of a conference presenter than an attendee.  A lot of creative energy went into planning new conference sessions and making them good.  This helped extend the useful life of conferences, because I was learning a great deal by running sessions.  After about eight years, though, this ran its course and I had gotten the bulk of what I was going to get from this arrangement.</p>
<h2>Game Jams</h2>
<p>In a typical game jam, developers gather for 2-4 days to do a working sprint, the goal being to produce a finished game entirely during the event.  I was lucky enough to be around for the <a href="http://www.indiegamejam.com/">Indie Game Jam</a>, which probably started the game jam trend (though I was often too busy working on last-minute GDC lectures to make jam games, sadly!)  </p>
<p><div id="attachment_1690" style="width: 522px" class="wp-caption aligncenter"><a href="https://the-witness.net/news/wp-content/uploads/2012/05/IMG_1940.jpg"><img aria-describedby="caption-attachment-1690" src="https://the-witness.net/news/wp-content/uploads/2012/05/IMG_1940-512x384.jpg" alt="" title="IMG_1940" width="512" height="384" class="size-large wp-image-1690" /></a><p id="caption-attachment-1690" class="wp-caption-text">From the first Indie Game Jam.  Pictured: Brian Jacobson, Sean Barrett, Ken Demarest, Charles Bloom, Jonathan Blow, Brian Sharp, Doug Church.</p></div></p>
<p>The Indie Game Jams were very different from the jams we see today.  The IGJ was founded on the idea of exploring the design ramifications of a crazy technical question; we would provide attendees with some code to accomplish some technical feat, then they would see where that would lead in terms of design.  For example, the question for the first IGJ was "Graphics hardware is pretty fast now; what will people design if we give them an engine that can draw 100,000 little sprite guys on the screen at once?"  We were picky about who we invited: attendees had to be designer-programmers who were actually good at programming, because dealing with new technology on a short timeframe can be very challenging.</p>
<p><div id="attachment_1689" style="width: 522px" class="wp-caption aligncenter"><a href="https://the-witness.net/news/wp-content/uploads/2012/05/IMG_1955.jpg"><img aria-describedby="caption-attachment-1689" src="https://the-witness.net/news/wp-content/uploads/2012/05/IMG_1955-512x384.jpg" alt="" title="IMG_1955" width="512" height="384" class="size-large wp-image-1689" /></a><p id="caption-attachment-1689" class="wp-caption-text">Also from the first Indie Game Jam.  Pictured: Art Min, Charles Bloom, Robin Walker, Thatcher Ulrich, Brian Jacobson, Zack Booth Simpson, and ... I don&#039;t know, Justin Hall?  Charles Bloom again?</p></div></p>
<p>In contrast, contemporary game jams are more open.  The idea is that it's great to make a game, any game, and that even if you don't manage to finish, you were still part of a community.  This community spirit is often upheld as the best part of a game jam.  </p>
<p>I think these jams can be really nice for beginners, to show people that making a game is something within reach, and to help them meet other people interested in making games.  For experienced developers, though, I think these jams are not so good, because the jams are part of an overall social context that supports stagnation.  </p>
<p>Experienced developers would do well to continually hone their craft and push beyond their comfort zone, but jams celebrate low expectations and provide Warm Community Feelings that create a comfort coccoon.  "You made a game that is not very interesting?  You didn't finish a game at all?  Well, you are still part of a community that likes you because you are participating in a game jam, and that is what is truly important."</p>
<p>I don't think there is anything inherently wrong with desiring a feeling of community, but we must take care to separate the notion of participating in the community from the notion of success.  Participating in a game jam is not an indicator of success at game development -- nor is attending the Independent Game Summit or Indiecade.  I think that nice feelings are nice, but you want to build an ecosystem where the nice feelings coincide with behavior that will make developers robust and powerful and interesting in the long term.  You don't want nice feelings to act as a soporific.  Activities that are good for beginners are often stagnant for intermediate developers.</p>
<p>What to do about this?  I think if there were a category of game jams with higher expectations, so that advanced jams were differentiated from beginner jams, that would be a nice start.  The IGJ model definitely asked more of participants, but I don't think the IGJ is the right thing going into the future, because even if you are playing with challenging technology, the time-limited format prevents you from going deep.  IGJ was nice in 2002, but today it would just contribute further to the problem outlined in Chris Hecker's rant <a href="http://chrishecker.com/Please_Finish_Your_Game">Please Finish Your Game</a>.  We see lots of wacky but shallow game designs all over the web, and it feels like a problem, or at least a vast sea of potential unreached.</p>
<p>As Chris says in his <a href="http://chrishecker.com/The_Depth_Jam">write-up about the Depth Jam</a>, "game jams are shallow by design."  Because they are shallow, I don't feel they are the right place for me to develop as a game design practitioner.</p>
<h2>Retreat-Like Gatherings</h2>
<p>There have been a few retreat-like gatherings for forward-thinking game designers: see for example <a href="http://www.projecthorseshoe.com/">Project Horseshoe</a> and <a href="http://www.erasmatazz.com/TheLibrary/Phrontisterion/Phrontisterion.html">Phrontisterion</a>.  I have never been to these.  I like the basic idea behind these kinds of events, but the execution seems to have endemic problems. I know people who have been to both of these events, but when I ask, they do not recommend attending the events.  Certainly I have found <a href="http://www.projecthorseshoe.com/reports.htm">Project Horseshoe's written reports</a> unhelpful.  </p>
<p>The obvious problem with these events is that they are mostly just a bunch of talking.  When people get together for a bunch of talking, most of them just say a bunch of bullshit (here I mean bullshit <a href="http://press.princeton.edu/titles/7929.html">in the Harry G. Frankfurt sense</a>) that is unfocused and untethered to reality.  If it is not of critical importance whether what people say is right, then most of it is not going to be right. </p>
<p>I really like the retreat model as a basic template.  Over the past few years I've been to a number of retreats, mostly for things like meditation or silent existential contemplation.  There's a lot good about going to a far-away place where you are not bothered by the concerns of everyday life.  But looking at Phrontisterion and Horseshoe, the question arises: how does one design a retreat like this that is not just a bunch of talking?  </p>
<p>I knew some of the answer, because I've seen success in dealing with a similar question in a neighboring realm:</p>
<h2>Local Developer Meet-Ups<br />
</h2>
<p>Many cities around the world have regular meet-ups; once a month or so, game developers get together at a bar or something, and just chat and be social.  I generally don't go to these because bars are antagonistic to interesting conversations and because attendees tend toward the neophyte side, which means we have the same problem as at conferences: there's little benefit to be had for an experienced developer.  But these events also have the Horseshoe problem, in that the conversation is not focused and doesn't really matter, so people just say a bunch of nonsense.  If all you want is to get drunk and be social, these events are fine, but they don't do much for professional development.</p>
<p>Two years ago I started a series of monthly developer meetups in the San Francisco Bay Area; the idea was to keep discussion quality high by (a) holding the meetings in quiet places conducive to good discussion, like someone's house  (b) inviting only active game designers [this was not a "game industry" meeting, it was a "thoughtful game designer" meeting], and  (c) starting each meeting with one of the attendees presenting their own work.  After the presentation, we discuss that work specifically for a while; then at some point, the discussion naturally dissolves into separate, more-general discussions.  </p>
<p>(I have been to some developer meet-ups that also began with presentations, but which to me did not manage to establish a culture of quality.  One example was the Austin IGDA meetings back in 2002-2003.  I think there were many subtle things preventing quality from rising, mostly having to do with intention of the event: the goal of the meeting was to drive attendance, not to be deeply interesting; also, they were "game industry" meetings, with all the associated issues.  Also, scale matters: the Austin IGDA meetings were bigger, and they occurred in offices or at places like Dave & Buster's, which did not encourage a personal connection to the presentation or the other attendees).</p>
<p>The meetings in the Bay Area were very successful at keeping discussion quality relatively high.  The situation wasn't perfect, but it was much better than your typical bar meeting.  (I would have attended these regularly even if I were not involved in organizing them).   Other attendees really enjoyed the meetings as well.  After about a year, though, I stopped arranging the meetings because we seemed to have exhausted the supply of people willing to present, and I didn't want to start having meetings that were not kicked off by solid presentations.  Because everyone had a good time, there's a reasonable probability that in the future we will pick these up again.  I think we might be able to improve the discussions further by reducing the presenter-vs-audience asymmetry somehow (see the Depth Jam section below).</p>
<p>Key to the success of these events was having specific, concrete issues to talk about: a specific game being presented, so that discussion could be anchored to the details of that specific game.  It's also important that the game was being presented by its author; if the session is just someone talking about someone else's game that they liked or didn't like or just want to say something about, it is too easy for the discussion to be useless bullshit.</p>
<p>It seemed like this model could be applied to ground a retreat so that it would not just be a bunch of talking.</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/05/DSCN0958.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/05/DSCN0958-512x384.jpg" alt="" title="DSCN0958" width="512" height="384" class="aligncenter size-large wp-image-1662" /></a></p>
<h2>The Depth Jam idea<br />
</h2>
<p>Now, we come to the actual Depth Jam.  We settled on the basic idea very quickly: the jam would occur in a relaxing retreat-like environment.  There would be a limited number of participants; four seemed like a good number.  Each participant would have a good game that he has already been working on for a while, and which presents some deep and interesting problem he would like to solve; this problem serves as a focus for discussion.  The fact that every particpant has a game under discussion means that every participant has "skin in the game", which keeps discussion tethered and unfrivolous.</p>
<p>I'd like to emphasize this last point because it can be subtle but it is crucial.  Suppose some people are showing their games and being criticized and generally having a rough time due to all the stress that happens naturally when having one's creation dissected; and meanwhile, the people who are criticizing do not have any obligations, and they are just tossing in comments from the peanut gallery.  This situation creates a weird imbalance.  The comments and criticism will not be as thoughtful as they could be, yet they will be taken very hard by the people showing the games.  </p>
<p>If everyone is having their creations dissected, there's only one class of attendee instead of two.  It is easier to empathize and avoid unnecessary harshness.  People are going to be more careful that their ideas and criticisms are thoughtful, because they are acutely aware of wanting careful input when it comes to their own game.  </p>
<h2>The Format</h2>
<p>Our first proposal for the Depth Jam had us spending one entire day on each game, so that we could dive into each game at maximum depth without context-switching.  However, as the idea churned, we decided it would be beneficial to allow some iteration.  Why not split the day into two time slots, so that each game gets half a day and we cycle through the four games twice?  This would allow time to modify the games based on the discussion, which would give the discussion even more teeth: now we're not just talking about a particular problem in a particular game (with some kind of tendency to wax philosophical), we're actually figuring out how the author will address the problem here at the retreat, with the results of that approach to be plainly visible in the next session.</p>
<p>In our pre-jam planning meeting, we decided to go even further this way, breaking each day into four slots, cycling through all the games four times (so that each game had a two-hour slot each day).  This seemed to work pretty well and it allowed a lot of iteration, but it might have been excessive.  Daniel thinks there was too much context-switching and he might have been able to think more effectively if given more stability.  My impression is that the talking was great for the first couple of days and degraded in quality toward the end (but was still worthwhile even then).  At least two attendees did not have a problem with this, though, and found that the final discussions were very valuable for them.  </p>
<p>For the next jam I would propose a mixed format: we'd start with two 4-slot days, just like we did this time, followed by a day with no-talking, all-working-and-quiet-and-taking-a-walk, followed by a final 4-slot day.  (Or, perhaps I would lengthen the retreat to 5 days and put the rest day in the middle.)</p>
<p>The nice thing about the 4-slot-per-day format, which would not have been true of the 2-slot-per-day format, is that it gives us the maximum amount of calendar time for ideas to stew between iterations.  I have long been appricative of the role of calendar time in good design. Sometimes it doesn't matter how many hours you pack in trying to get things done; the good ideas will arrive unpredictably, and maybe you just need to allow time for this to happen.  I was curious whether this principle would also be true on the timescale of a 4-day retreat.  For me, at least, it was; I got my best idea in the shower on the morning of day 3, in response to discussions we'd had on day 2.  During my session on day 3 we discussed and refined the idea, and on day 4 I showed an implementation of it.</p>
<h2>Creature Comforts</h2>
<p>We spent some money renting a nice beach house and ordering catered food; the cost for the event was around $5000.  Chris goes into more detail about this in his write-up.  You don't need to spend any money on an event like this, but if you can afford it I recommend spending some money to help create a nice environment that minimizes stress and factors away concerns like "what are we going to eat for dinner" and "who is going to do the dishes".  The purpose is twofold: first, it helps you focus on the subject at hand; second, the minimization of external stresses helps you deal with the potential added stresses of working really hard and disagreeing with people all the time.</p>
<p>If you think that the Depth Jam will help you make more headway on even one deep problem than you would have otherwise, and thus make your game better, it's easy to think that the game will also sell a little better and that costs in the neighborhood of $1250 per attendee are easily justified.</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/05/DSCN0965.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/05/DSCN0965-512x384.jpg" alt="" title="DSCN0965" width="512" height="384" class="aligncenter size-large wp-image-1663" /></a></p>
<h2>Attitude</h2>
<p>Discussions can easily turn into arguments, or at least energy-sucking disagreements.  As peoples' energy gets drained, they become more irritable, so there's a feedback loop lurking here.  A little bit of this happened at our Depth Jam, but we saw it happening and course-corrected, so that the final day's discussion was reasonable.  </p>
<p>Prior to the jam, though, we had not thought much about this.  I think it would be helpful in future for the attendees to go in knowing that irritability is likely to happen; the mere fact of this awareness probably helps the situation, and anyway, a little bit of psychologically-aware pacing at the beginning would have gone a long way.</p>
<h2>Games and Attendees</h2>
<p>It's very important the attendees be capable both of participating in good discussions and acting on the discussions to improve their games within a short timeframe.  This latter requirement basically limits attendees to being competent designer/programmers.  If someone can't program, it's hard to see how he can participate meaningfully in this style of depth jam, because it would be very hard to iterate.  Possibly if someone is a level/world/puzzle designer who can build scenarios quickly in UDK or Unity or whatever, it can be made to work, but I still think that person would be feeling the limitations of being unable to make algorithmic changes.</p>
<p>I don't think that having teams of people would work, at least not for the format described here, because it would dilute the energy and bog down the iteration process.  If you have one designer and one programmer trying to do the job that the other people are doing as single designer/programmers, your duo is probably going to have a hard time keeping up.  If the jam is made up entirely of duos, it's going to make discussions a lot messier and lower-energy (twice as many people talking about the same number of games).  At least one of us felt that four people was already too many for high-quality discussions, because you keep having interesting ideas but have to wait for other people to stop talking in order to say them, and by that time the discussion may have moved on to a different topic.</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/05/DSCN0883.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/05/DSCN0883-512x384.jpg" alt="" title="DSCN0883" width="512" height="384" class="aligncenter size-large wp-image-1660" /></a></p>
<p>We have tossed around some ideas about how to scale the jam to larger groups, but haven't come up with anything that is fully convincing yet.</p>
<p>It's important that the games be high-quality efforts that pose problems that everyone will be interested in.  We were fortunate to have four very interesting games: <a href="http://marctenbosch.com/miegakure/">Miegakure</a>, a puzzle-platformer in four dimensions; <a href="http://www.ludomancy.com/storyteller.php">Storyteller</a>, a game about building stories through character interactions; <a href="http://www.spyparty.com/">Spy Party</a>, a heavily player-skill-oriented game about subtlety and deception in human behavior; and <a href="https://the-witness.net">The Witness</a>, a first-person puzzle game with a heavy emphasis on nonverbal communication.  </p>
<p>If time permits I may do a detailed write-up of the issues we discussed for each game and the resolutions we reached (though care must be taken here, as we don't want to disclose aspects of these games that the designers would rather keep secret).</p>
<h2>Conclusions</h2>
<p>I am happy with the way this first Depth Jam went.  I think we can certainly tweak the format to improve it, but already it is a useful tool in my further development as a game designer.  I got much more out of this four-person, four-day event than I do from attending a conference.  It seems appropriate to me to do a Depth Jam every six months.  Provided we are organized enough to get the next one together, we'll adjust the format and see how it goes!</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/05/DSCN0908.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2012/05/DSCN0908-512x384.jpg" alt="" title="DSCN0908" width="512" height="384" class="aligncenter size-large wp-image-1661" /></a></p>
<p>See also:</p>
<p><a href="http://chrishecker.com/The_Depth_Jam">Chris Hecker's write-up</a><br />
<a href="http://www.ludomancy.com/blog/2012/05/25/depth-jam/">Daniel Benmergui's write-up</a><br />
<a href="http://marctenbosch.com/miegakure/">Miegakure web site</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/05/the-depth-jam/feed/</wfw:commentRss>
			<slash:comments>37</slash:comments>
		
		
			</item>
		<item>
		<title>Island Update</title>
		<link>https://the-witness.net/news/2012/05/island-update-4/</link>
					<comments>https://the-witness.net/news/2012/05/island-update-4/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sun, 20 May 2012 06:03:59 +0000</pubDate>
				<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1635</guid>

					<description><![CDATA[Here's how things are looking now: In a strange twist of fate, the corner of the island that I chose long ago to be closest to the camera is the place that has taken longest to develop. As you can see, we are continually modifying this area but it's still …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/05/island-update-4/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Here's how things are looking now:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/05/shot_2012.05.19__time_21_14_n01.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/05/shot_2012.05.19__time_21_14_n01-512x281.png" alt="" title="shot_2012.05.19__time_21_14_n01" width="512" height="281" class="aligncenter size-large wp-image-1636" /></a></p>
<p>In a strange twist of fate, the corner of the island that I chose long ago to be closest to the camera is the place that has taken longest to develop.  As you can see, we are continually modifying this area but it's still in a very rough state.  Most other areas of the island are further along.</p>
<p>Lately I have been doing a little bit of playtesting and high-concept discussion (more on this later in the week).  I've also been doing more work on the endgame.  The modelers have been cranking away at making areas look better.  I think we have another engine technology posting coming down the pipe.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/05/island-update-4/feed/</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		
			</item>
		<item>
		<title>Peter Thiel on Secrets</title>
		<link>https://the-witness.net/news/2012/05/peter-thiel-on-secrets/</link>
					<comments>https://the-witness.net/news/2012/05/peter-thiel-on-secrets/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sat, 12 May 2012 01:56:11 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1632</guid>

					<description><![CDATA[Peter Thiel is teaching a class at Stanford about how to start a technology company. One of the students is posting thorough class notes online. In this instalment, Thiel takes the question of what kind of company to start and reframes it in terms of secrets. Thiel's point of view …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/05/peter-thiel-on-secrets/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Peter Thiel is teaching a class at Stanford about how to start a technology company.  One of the students is posting thorough class notes online.</p>
<p><a href="http://blakemasters.tumblr.com/post/22866240816/peter-thiels-cs183-startup-class-11-notes-essay">In this instalment</a>, Thiel takes the question of what kind of company to start and reframes it in terms of secrets.  </p>
<p>Thiel's point of view reminds me of the way I think about games in general.  Quite often I go out and give speeches about game design or business, and I say things that some think are overly idealistic, or oblivious to the necessities of recipients' situations, or just plain wrong.  Certainly my advice usually runs counter to conventional wisdom.  (Yet somehow, by following these principles, I seem to do okay.)</p>
<p>Thiel begins with the question: "What important truth do very few people agree with you on?" and goes on to define secrets, in this context, as "unpopular or unconventional truths".  If everyone knew these things and believed them, they wouldn't be secrets.</p>
<p>I recommend this write-up to anyone who wants to think unconventionally about game design.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/05/peter-thiel-on-secrets/feed/</wfw:commentRss>
			<slash:comments>18</slash:comments>
		
		
			</item>
		<item>
		<title>Island Update</title>
		<link>https://the-witness.net/news/2012/04/island-update-3/</link>
					<comments>https://the-witness.net/news/2012/04/island-update-3/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 25 Apr 2012 19:37:51 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1622</guid>

					<description><![CDATA[We've done a first pass at changing the shape of the island terrain, and here's the result: The changes are a little bit drastic in some spots, but overall not as drastic as I had expected. I had been worried about some issues in the natural flow of where players …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/04/island-update-3/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>We've done a first pass at changing the shape of the island terrain, and here's the result:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/04/shot_2012.04.24__time_18_01_n08.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/04/shot_2012.04.24__time_18_01_n08-512x288.png" alt="" title="shot_2012.04.24__time_18_01_n08" width="512" height="288" class="aligncenter size-large wp-image-1623" /></a></p>
<p>The changes are a little bit drastic in some spots, but overall not as drastic as I had expected.  I had been worried about some issues in the natural flow of where players would naturally end up going, especially early in the game.  It turns out we were able to solve these without changing too much.  So between last island update and this one, for the most part, some areas were moved laterally or expanded, and some new elevation changes were introduced, but areas were not shuffled around; they are all more-or-less in the same place with relation to each other.  So for the most part, things are converging, which is a good sign.</p>
<p>And, oh yeah, we are making that mountain a lot bigger.  It is the messiest part of the island right now, and has been for a while.  There are still a few things gameplay-wise to figure out here, then it will start to come together. My biggest questions in the area have to do with that white building near the bottom of the image; the puzzles inside that building will determine its overall structure, which will determine how it is worked into the surrounding terrain of the mountain.  We have some proposals from the architects on what this building will look like, but it is waiting on me to finish the puzzle design.  </p>
<p>Because we haven't done it in a while, here's the island from a different angle:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/04/shot_2012.04.24__time_18_02_n09.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/04/shot_2012.04.24__time_18_02_n09-512x288.png" alt="" title="shot_2012.04.24__time_18_02_n09" width="512" height="288" class="aligncenter size-large wp-image-1624" /></a></p>
<p>The current puzzle count for the whole game is 450.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/04/island-update-3/feed/</wfw:commentRss>
			<slash:comments>49</slash:comments>
		
		
			</item>
		<item>
		<title>Island Update</title>
		<link>https://the-witness.net/news/2012/04/island-update-2/</link>
					<comments>https://the-witness.net/news/2012/04/island-update-2/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 10 Apr 2012 16:40:55 +0000</pubDate>
				<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1569</guid>

					<description><![CDATA[Here's how the island is looking right now: But today we are going to have the first in a series of meetings wherein we think pretty hard about the topography of the island and what the flow of natural curious investigation will tend to be from various spots. Expect the …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/04/island-update-2/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Here's how the island is looking right now:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/04/shot_2012.04.10__time_09_00_n01.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/04/shot_2012.04.10__time_09_00_n01-512x288.png" alt="" title="shot_2012.04.10__time_09_00_n01" width="512" height="288" class="aligncenter size-large wp-image-1570" /></a></p>
<p>But today we are going to have the first in a series of meetings wherein we think pretty hard about the topography of the island and what the flow of natural curious investigation will tend to be from various spots.  Expect the island to look pretty different in the next update!  (Or maybe it will turn out that things are mostly fine...)</p>
<p>Lately, I have been working on some of the more sophisticated puzzles in the game.  These are things that were at least sort-of done already, but I wanted to revise the designs to improve them -- to ensure that the puzzles are as interesting as possible and built as closely as possible around the core themes of the areas that contain them.  I am happy with the way these are coming along so far, but there is definitely still some work to do here.</p>
<p>The art team has been working further to nail down the style of the game, now focusing on cliffs and plants and other natural things, as well as control panels and other bits of machinery.  We're also taking a few buildings that the architects have finished designing, and starting to build out the geometry as one really would for a video game.  (The architects give us buildings modeled in SketchUp, and they tend to come into the game a bit messy, but also, not modeled the way an experienced video game modeler would do it).</p>
<p>On the programming side, we've got lots done lately.  Andy has added a software occlusion culling system, which should help with frame rates in the game.  He's also been playing with culling for water reflections.  Salvador got animations working in the exporter and in the game, so now we can play animations on entities, which is very useful.  (We worked on the game for years and built something fully playable without this ability!)  I have been going back and doing the gameplay work for animated entities, as some things have to change in the gameplay logic.  In all it is a very nice improvement.  Salvador is now working on asset streaming, which will help the game start up faster and run better (and help it run at all on lower-end platforms like the iPad).  Ignacio's been doing a whole lot of fixes to various systems and hammering away at the todo list.  One of these things has been better control for the tone mapping process.  We now get a graph of tone mapping curve: </p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/04/shot_2012.04.10__time_09_38_n01.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/04/shot_2012.04.10__time_09_38_n01-512x288.png" alt="" title="shot_2012.04.10__time_09_38_n01" width="512" height="288" class="aligncenter size-large wp-image-1571" /></a></p>
<p>And we also get the ability to export screenshots into Photoshop that have a color key on them; then the colors can be tweaked in Photoshop and re-imported into the game to alter tone mapper settings.  This is in many cases more convenient than playing with those sliders.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/04/island-update-2/feed/</wfw:commentRss>
			<slash:comments>37</slash:comments>
		
		
			</item>
		<item>
		<title>Post-GDC update</title>
		<link>https://the-witness.net/news/2012/03/post-gdc-update/</link>
					<comments>https://the-witness.net/news/2012/03/post-gdc-update/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 27 Mar 2012 22:33:46 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1563</guid>

					<description><![CDATA[We brought The Witness to the Game Developers Conference and had the game playable privately in a hotel room to select members of the press. We had to do a lot of work to get the game back into playable condition; a lot of things had been broken since the …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/03/post-gdc-update/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>We brought The Witness to the Game Developers Conference and had the game playable privately in a hotel room to select members of the press.</p>
<p>We had to do a lot of work to get the game back into playable condition; a lot of things had been broken since the press tour last August / September.  (When you are making sweeping changes to a big and complicated game world, it is pretty easy for things to get bent out of shape).  So the GDC served as a good internal deadline to have the game banged back into shape.</p>
<p>I didn't expect a lot of press coverage to come out of this, because at the GDC there's just a lot of stuff going on, a lot of things for people to pay attention to and write about.  So I had been doing this mostly as an opportunity to keep the press up-to-date with the game, see how it is evolving graphically, etc.  But, to my surprise, we got a lot of coverage.  Here are links to what people are saying about the game lately:</p>
<p>First, a <a href="http://www.gamespot.com/events/gdc-2012/video.html?sid=6365133">video interview on Gamespot</a> (excerpted; we probably talked for 45 minutes or an hour).</p>
<p>Kirk Hamilton at Kotaku finds <a href="http://kotaku.com/5893336/jonathan-blows-the-witness-is-an-exercise-in-symphonic-game-design">a musical treatment for The Witness' game design philosophy</a>.</p>
<p>Ben Kuchera at the Penny Arcade Report, with <a href="http://penny-arcade.com/report/editorial-article/steam-vs.-xbox-live-arcade-jonathan-blow-explains-why-microsoft-is-aiming-a">a piece about online distribution channels</a>, and <a href="http://penny-arcade.com/report/editorial-article/jonathan-is-betting-2.5-million-youll-like-the-witness-as-much-as-braid">another biz-focused one</a>.</p>
<p>Ben Gilbert at Joystiq, with <a href="http://www.joystiq.com/2012/03/14/the-witness-cares-about-you-more-than-you-know">a design-oriented posting</a> and also <a href="http://www.joystiq.com/2012/03/12/the-witness-is-jon-blows-second-shot-at-all-or-nothing">a more biz-like one</a>.</p>
<p>Alex Rubens from G4 with <a href="http://www.g4tv.com/games/xbox-360/65972/the-witness/articles/76862/the-witness-preview-how-to-unbraid-modern-game-design">an overall preview of the game</a>.</p>
<p>Daniel Starkey of Destructoid, <a href="http://www.destructoid.com/gdc-witnessing-jonathan-blow-s-the-witness-223458.phtml ">with a preview as well</a>.</p>
<p>As you can see from the write-ups, people seemed to really dig the game.  So that is all good.</p>
<p>Keep in mind that, because I am known for my previous game and and the reporters are there talking directly to me, the tone that tends to get adopted in these write-ups makes it sound as though I were making the game myself.  That's not the case; there's a good-sized team of very talented people building the game!  (This reminds me that we need to update the About page to list everyone who is currently working on the project.)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/03/post-gdc-update/feed/</wfw:commentRss>
			<slash:comments>32</slash:comments>
		
		
			</item>
		<item>
		<title>Playtest; Island Update</title>
		<link>https://the-witness.net/news/2012/02/playtest-island-update/</link>
					<comments>https://the-witness.net/news/2012/02/playtest-island-update/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Fri, 24 Feb 2012 20:09:51 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1494</guid>

					<description><![CDATA[Here's how the island looks today: The current puzzle count is 440. As expected in the previous update, over the past week or so I went back and worked on the endgame again. I built an original version of the endgame last summer; I had one friend playtest it, and …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/02/playtest-island-update/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Here's how the island looks today:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/02/shot_2012.02.24__time_12_07_n02.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/02/shot_2012.02.24__time_12_07_n02-512x288.png" alt="" title="shot_2012.02.24__time_12_07_n02" width="512" height="288" class="aligncenter size-large wp-image-1495" /></a></p>
<p>The current puzzle count is 440.</p>
<p>As expected in <a href="https://the-witness.net/news/2012/02/island-snapshot-4/">the previous update</a>, over the past week or so I went back and worked on the endgame again.  I built an original version of the endgame last summer; I had one friend playtest it, and it worked out pretty well, though I felt it wasn't quite epic enough.  I didn't know what more to do with it at the time, so I just let it sit, and went to thinking about other parts of the game.</p>
<p>Lately I had more ideas for the endgame, so I went into personal crunch mode and rebuilt into something more epic.  This was one of the most productive periods of my working life (maybe the most productive) and I think this area, all taken together, may be the most interesting thing I have ever designed.  However, it may be a little too difficult for the player, at the moment!  Today I playtested this endgame and one other area of the game, with a game designer friend of mine, and it took <strong>nine and a half hours</strong> to play through these two areas (6 hours for the endgame, 3.5 hours for the other area).  I think this is a little long, so I am going to be tuning these areas and cleaning them up a little bit.  This weekend hopefully I can get in some playtest time with Jeff and Casey of <a href="http://www.jeffandcaseytime.com/s01_b02_c01out.htm"><em>Jeff and Casey Time</em></a>, so if that happens we will see how it goes.</p>
<p>(It's interesting; I haven't done a playtest of The Witness for a while, but I was still thinking of it as a 10-15 hour game, and that's what I tell people when they ask.  But if these two areas by themselves, even after being cleaned up, are 6-7 hours of playtime, that means the whole game is ... ... much longer.  Sometime in a month or two, I'll do some playtests with people who have never seen the game before, and we'll see how long it really is.)</p>
<p>Meanwhile, on the art side, we've been working on the style of the game; expect a future blog post as we come to conclusions on that.  </p>
<p>Tech-wise, Andy has been working on performance stuff.  First he made raycasting much faster; til now the game had been relatively lazy about spatial organization.  Andy implemented a quadtree for finding entities in the world and enabled k-d tree generation and serialization for casting rays against individual meshes.  (We had k-d tree code already as part of a library but weren't using it.)  Salvador is working on in-game animation playback, as well as exporting; until now we have been making do without animations, but once this is in the game it will help us with a number of issues.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/02/playtest-island-update/feed/</wfw:commentRss>
			<slash:comments>50</slash:comments>
		
		
			</item>
		<item>
		<title>Dear Esther is out.</title>
		<link>https://the-witness.net/news/2012/02/dear-esther-is-out/</link>
					<comments>https://the-witness.net/news/2012/02/dear-esther-is-out/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 14 Feb 2012 20:47:07 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Other Games]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1485</guid>

					<description><![CDATA[[This message is crossposted from the Indie Fund blog.] Our gift to you, on this very special Valentine's Day, is the worldwide release of the long-awaited game Dear Esther. If you haven't heard of Dear Esther, watch this: (Or hey, watch the trailer even if you are quite familiar with …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/02/dear-esther-is-out/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>[This message is crossposted from <a href="http://indie-fund.com/">the Indie Fund blog</a>.]</p>
<p>Our gift to you, on this very special Valentine's Day, is the worldwide release of the long-awaited game Dear Esther.</p>
<p>If you haven't heard of Dear Esther, watch this:</p>
<p><p><a href="https://www.youtube.com/watch?v=D7VJ4lP-05A"><img src="https://img.youtube.com/vi/D7VJ4lP-05A/2.jpg"></a></p>
<p><a href="https://www.youtube.com/watch?v=D7VJ4lP-05A">Click here to view the video on YouTube</a>.</p>
</p>
<p>(Or hey, watch the trailer even if you are quite familiar with the game; the trailer is beautiful and worthy of multiple viewings.)</p>
<p>We expect public reception of this game to run wide: some will love it, and others will be very concerned about whether this thing can be called a game and what that means. So far, this has certainly been the case in pre-release reviews.</p>
<p>Game Informer <a href="http://www.gameinformer.com/games/dear_esther/b/pc/archive/2012/02/13/a-haunting-indie-story-worth-listening-to.aspx">scored the game an 8/10</a>, saying: "You should consider checking out Dear Esther the same way you’d appraise a film. If you’re interested in absorbing an intellectual story and gorgeous visuals without having to exert a drop of effort, take a chance on this curious experiment."</p>
<p>VideoGamer.com <a href="http://www.videogamer.com/pc/dear_esther/review.html">scored the game a 9</a>: "Discovery is such an important part of Dear Esther, especially when everything is so phenomenally pretty."</p>
<p>Meanwhile, Destructoid <a href="http://www.destructoid.com/review-dear-esther-221082.phtml">gave the game a lowly 4.5/10</a>: "It’s as if it wants to be a part of this wonderful medium of ours without asking itself why, which is exactly why you should seek it out and learn from its failures as a game enthusiast, critic, or developer."</p>
<p>We like that there's such a big difference of opinion because it means the game is breaking new ground. It's playing in territory that is not safe; there is no established understanding there.</p>
<p>Dear Esther is a game that no publisher would have funded. Dan, Rob, Jessica and the other associates of thechineseroom have done an excellent job putting together a beautiful game. We are happy to be backing it; we hope you enjoy playing it.</p>
<p>If you'd like more information about Dear Esther, here's an <a href="http://www.gamernode.com/dear-esther-interview-with-creator-dan-pinchbeck/">interview with Dan</a>, and here's a link <a href="http://store.steampowered.com/app/203810/">the game's page on Steam</a>.</p>
<p><strong>Update: Dear Esther has been wildly successful, selling 16,000 copies in under 24 hours. </strong> As an investment, it reached profitability in 5.5 hours.  <a href="http://indie-fund.com/2012/02/dear-esther-has-reached-profitability-it-took-5-hours-30-minutes/">More details are available at a new post on the Indie Fund blog.</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/02/dear-esther-is-out/feed/</wfw:commentRss>
			<slash:comments>41</slash:comments>
		
		
			</item>
		<item>
		<title>Island Snapshot</title>
		<link>https://the-witness.net/news/2012/02/island-snapshot-4/</link>
					<comments>https://the-witness.net/news/2012/02/island-snapshot-4/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Thu, 02 Feb 2012 01:52:57 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1479</guid>

					<description><![CDATA[Here's how the island looks right now. It is a bit crazy and messy, especially the stuff nearest the camera: This is because this corner of the world is one of the last areas that we haven't really figured out, in terms of what goes where. There is sort of …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/02/island-snapshot-4/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Here's how the island looks right now.  It is a bit crazy and messy, especially the stuff nearest the camera:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2012/02/shot_2012.02.01__time_17_15_n01.png"><img src="https://the-witness.net/news/wp-content/uploads/2012/02/shot_2012.02.01__time_17_15_n01-512x288.png" alt="" title="shot_2012.02.01__time_17_15_n01" width="512" height="288" class="aligncenter size-large wp-image-1481" /></a></p>
<p>This is because this corner of the world is one of the last areas that we haven't really figured out, in terms of what goes where.  There is sort of just some random stuff dumped there right now.  That will change pretty soon.</p>
<p>Expect the next few island snapshots to show a lot of big changes.  We've reached the point where the basic gameplay is settled, I'm refining many of the specific puzzles, and we've got at least rough drafts of many of the architectural layouts.  That means we can start planning the island a bit better.  Over the next month or so, we're going to be changing the shape of the island to something a little more geologically plausible, something that carries more information.  It's going to be interesting to do this without disrupting the gameplay layout of the island too much.  </p>
<p>The current puzzle count is 427.  In January I scrapped and re-designed an area and its 60-or-so puzzles.  The previous area was inside dark caves, which is a bit cliche, and the gameplay hook that motivated my setting that area in caves, which I had hoped would be cool, didn't work very well.  In addition, I felt that the puzzles themselves, while fitting into the rest of the game, were the weakest part of the game.  I'd been feeling this way for a long time, but I didn't have a good solution for it til late December.  I moved the location and redesigned the puzzles.  Now the theme of the location is totally different, has a gameplay hook that works way better than the cave thing, and is very cool.  The puzzles situated in this area are also much stronger than before, because I found a way to change the rules of those puzzles to make them much tighter.  They'd felt wishy-washy before (people would play through that area and, after finishing, lack clarity on what the puzzles were saying.  That's no good.)</p>
<p>We certainly could have shipped the game with the old area in the caves with the old puzzles, and probably shipped the game at least a month sooner, but an important skill in building a beautiful game is knowing when something just isn't good enough.</p>
<p>Next I am going back to the endgame, which I did my first pass at last summer sometime; I've got a gameplay hook to add which I think will bring it over the top and make it extra-good. I'll be working on that over the next few weeks while also working with the landscape architects on the island revision.</p>
<p>Also, we've got a new programmer starting soon (this week or next!)  Combined with our other new addition, who's been here a few weeks (Andrew Smith, ex-Zipper and -Oddworld; hi Andy!) we will have quite a bit of tech manpower to bring to bear on finishing this game.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/02/island-snapshot-4/feed/</wfw:commentRss>
			<slash:comments>33</slash:comments>
		
		
			</item>
		<item>
		<title>The trailer for Dear Esther is out now.</title>
		<link>https://the-witness.net/news/2012/01/the-trailer-for-dear-esther-is-out-now/</link>
					<comments>https://the-witness.net/news/2012/01/the-trailer-for-dear-esther-is-out-now/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 18 Jan 2012 17:39:18 +0000</pubDate>
				<category><![CDATA[Other Games]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1466</guid>

					<description><![CDATA[If you're interested in arty games that push the boundaries of what games are doing, you may be interested in Dear Esther, which will be released on Valentine's Day of this year (much sooner than The Witness will be!) The trailer has just been released: See more about Dear Esther …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2012/01/the-trailer-for-dear-esther-is-out-now/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>If you're interested in arty games that push the boundaries of what games are doing, you may be interested in Dear Esther, which will be released on Valentine's Day of this year (much sooner than The Witness will be!)  </p>
<p>The trailer has just been released:</p>
<p><p><a href="https://www.youtube.com/watch?v=D7VJ4lP-05A"><img src="https://img.youtube.com/vi/D7VJ4lP-05A/2.jpg"></a></p>
<p><a href="https://www.youtube.com/watch?v=D7VJ4lP-05A">Click here to view the video on YouTube</a>.</p>
</p>
<p><a href="http://dear-esther.com/">See more about Dear Esther at the official site.</a></p>
<p>This will be the second Indie Fund game to release.  Just a few days ago we announced that <a href="http://indie-fund.com/2012/01/q-u-b-e-recoups-investment/">Q.U.B.E., the first funded game, is already a financial success</a>.  It appears obvious that Dear Esther will be as well.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2012/01/the-trailer-for-dear-esther-is-out-now/feed/</wfw:commentRss>
			<slash:comments>51</slash:comments>
		
		
			</item>
		<item>
		<title>Engine Tech: Concurrent world editing</title>
		<link>https://the-witness.net/news/2011/12/engine-tech-concurrent-world-editing/</link>
					<comments>https://the-witness.net/news/2011/12/engine-tech-concurrent-world-editing/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sun, 25 Dec 2011 22:39:32 +0000</pubDate>
				<category><![CDATA[Engine Tech]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1429</guid>

					<description><![CDATA[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 …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2011/12/engine-tech-concurrent-world-editing/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<h2>Summary</h2>
<p>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 a system wherein the data for each entity is stored as an individual text file.  This sounds crazy, but it works well: the use of individual files gives us robustness in the face of merge conflicts, and despite the large number of files, the game starts up quickly.  Entities are identified using integer serial numbers.  We have a scheme for allocating ranges of these numbers to individual users so there is no overlap (though this scheme could certainly be better).  The system seems now to be robust enough to last us through shipping the game, with seven people and one automated build process concurrently editing the world across 18 different computers.</p>
<p>We don't know whether this method would work for AAA-sized teams, though it seems that it might with some straightforward extensions.  But for us the method works surprisingly well, given how low-tech it is.</p>
<p><span id="more-1429"></span></p>
<h2>About the Game</h2>
<p>We have been developing a 3D open-world game called <a href="https://the-witness.net">The Witness</a> since late 2008.  For much of that time, development happened in a preproduction kind of way, where not many people were working on the game.  Recently, though, we went into more of a shipping mode, so the number of developers has grown: we're up to about 10 or 11 people now (pretty big for a non-high-budget, independent game).  Not all of these people directly touch the game data, but about 7 do now, and this number will rise to 9 in the near future.</p>
<p>The design of the game requires the world to be spatially compact, relative to other open-world games, so it is far from Skyrim-esque in terms of area or number of entities.  At the time of this writing, there are 10,422 entities in the game world.  I expect this number to grow before the game is done, but probably not by more than 2x or 3x the current amount.</p>
<p>Because the world is not too big, and some game-level events require entities to coordinate across the length of the world, it makes sense to keep all the entities in one space, that is to say, there is no zoning of the world or partitioning of it into separate sets of data.  This makes the engine simpler, and it reduces the number of implementation details that we need to think about when editing the world.  It also introduces a bit of a challenge, because it requires us to support concurrent editing of the world without an explicit control structure governing who can edit what.  One such control structure might be: if you imagine the world were divided into a 10x10 grid; so there are 100 different zones; and where anyone editing the world must lock whatever zones they want to edit, make their changes, check them in, then unlock those zones; this would provide a very clear method of ordering world edits.  (Because of the locking mechanism, two people would not be able to change the same world entity at the same time, so there doesn't have to be any resolution process to decide whose changes are authoritative). However, the straightforward implementation of such a control scheme would make for inconvenient workflow, as it is tedious to lock and unlock things.  Even with further implementation work and a well-streamlined UI, there would still be big inconveniences (I really want to finish building a particular puzzle right now, but a corner of that puzzle just borders on some region that a different user has locked, and he is sick this week so he probably won't finish his work and unlock it until next week.  Or, if my network connection is flaky then I may not be able to edit; if I am off the net then I definitely could not edit.)</p>
<p>Thus, rather than implementing some kind of manual locking, I found it preferable to envision a system that Just Magically Works.  Since we already used the Subversion source-control system to manage source code and binary source assets such as texture maps and meshes, it didn't seem like too big of a stretch for Subversion to handle entity data as well.</p>
<h2>The World Editor and Entity Data</h2>
<p>Our world editor is built into the game; you press a key to open it at any time.  Here's what it looks like:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2011/12/editor_shot.png"><img class="aligncenter size-large wp-image-1430" title="editor_shot" src="https://the-witness.net/news/wp-content/uploads/2011/12/editor_shot-512x288.png" alt="" width="512" height="288" /></a></p>
<p>The editor view is rendered in exactly the same way as the gameplay view, but you fly the camera around and select entities (I have selected the red metal door at the center of the scene, so it is surrounded by a violet wireframe).  In the upper right, I have a panel where I can edit all the relevant properties of this Door; the properties are organized into four tabs and here you can see only one, the "Common" properties.</p>
<p>These properties, which you can edit by typing into the fields of this Entity panel, are all that the game needs to instantiate and render this particular entity (apart from heavier-weight shared assets like meshes and texture maps).  If you serialize all these fields, then you can unserialize them and generate a duplicate of this Door.  That's how the editor saves the world state: serialize every entity, and for each entity, serialize all fields.</p>
<p>Originally, the game saved all entities into one file in a binary format.  This is most efficient, CPU-performance-wise, and the natural thing that most performance-minded programmers would do first.  Unfortunately, though, svn can't make sense of such a file, so if two people make edits, even to disjoint parts of the world, svn is likely to produce a conflict; once that happens, it's basically impossible to resolve the situation without throwing away someone's changes or taking drastic data recovery steps.</p>
<p>Our natural first step was to change this file from binary into a textual format.  Originally I had worries about the load-time performance of parsing a textual file, but this turned out not to be an issue.  I decided to use a custom file format, because the demands in this case are very simple, and we have maximum control over the format and can modify it to suit our tastes.</p>
<p>Many modern programmers seem to have some kind of knee-jerk inclination to use XML whenever a textual format is desired, but I think XML is one of the worst file formats ever created, and I have no idea why anyone uses it for anything at all, except that perhaps they drank the XML Kool-Aid or have XML Stockholm Syndrome.  Yes, there are XML-specific tools out there in the world, and whatever, but I didn't see how any such tool would be of practical use to us.  One of our primary concerns is human-readability, so that people can make intelligent decisions when attempting to resolve revision control conflicts.  XML is not particularly readable, but we can modify our own format to be as readable as it needs to be in response to whatever real-world problems arise.  You'll see a snippet below of the format we use.</p>
<h2>Evolution of the Textual Format</h2>
<p>The first version of our textual format was a straightforward adaptation of our binary format.  The gameplay-level code that saves and loads entities is the same for either format; the only difference is just a boolean parameter, choosing textual or binary, which is passed to the lower-level buffering code.  After the buffer is done being packed, it's written to a file.</p>
<p>In our engine, entities are generally referenced using integer serial numbers (that act as handles).  These numbers are the same when serialized as they are at runtime.  Originally, in the binary file, the order in which the entities were written didn't matter.  But if we want to handle concurrent edits, we want to make merging as easy as possible for the source control system, so we sort entities by serial number, writing them into the file in increasing order.  Thus we didn't generate any spurious file changes due to haphazardly-changing serialization order.</p>
<p>In theory, Subversion could now handle simultaneous world edits and just merge them, the same way it does with our source code.  Unsurprisingly, though, this initial attempt was not sufficient.  Though the file was now textual, it contained a bare minimum of annotations and concessions to readability.  Though I knew I would eventually want to add more annotations, I didn't want to go overboard if it wasn't necessary, because these inflate the file size and the time required to parse the files (though I never measured by how much, so it's likely the increases are negligible performance-wise and I was engaging in classic premature optimization).  As it happens, the kind of redundant information that increases human-readability also helps the source control system understand file changes unambiguously, so as we made the format more-readable, the number of conflicts fell.</p>
<p>Here's what our file format currently looks like, for entity #6555 (the Door we had selected in the editor screenshot).</p>
<pre style="padding-left: 30px;">Door
72
6555
; position
    46.103531 : 42386a04
    108.079681 : 42d828cc
    8.694907 : 410b1e57
; orientation
    0.000000 : 0
    0.000000 : 0
    -0.069125 : bd8d9184
    0.997608 : 3f7f633d
; entity_flags
    160
; entity_name
    !
; group_id
    4059
; mount_parent_id
    6554
; mount_position
    0.035274 : 3d107ba5
    0.006069 : 3bc6e19c
    0.000038 : 381ffffc
; mount_orientation
    0.000000 : 0
    0.000000 : 0
    0.000027 : 37e5f004
    1.000000 : 3f800000</pre>
<p>(The first line, "Door", is the type name; 72 is the entity data version, which is used to load older versions of entities as their properties change over time; 6555 is the entity's ID.  root_z and cluster_id (seen in the screenshot) are not saved into the file, because these properties have metadata that say they are only saved or loaded under certain conditions which are not true here.  For the sake of making the listing short, I've shown only the properties listed on that first tab in the screenshot.)<br />
You'll note that the floating-point numbers are written out a bit oddly, as in this first line under 'position':</p>
<pre style="padding-left: 30px;">    46.103531 : 42386a04</pre>
<p>This is how we preserve the exact values of floating-point numbers despite saving and loading them in a text file.  If you do not take some kind of precaution, and use naive string formatting and parsing, your floating-point values are likely to change by an LSB or two, which can be troublesome.</p>
<p>The number on the left is a straightforward decimal representation of the value, written with a reasonable number of digits.  The : tells us that we have another representation to look at; the number on the right, which the : introduces, is the hexadecimal representation of the same number.  The IEEE 754 floating-point standard defines this representation very specifically, so we can use this hexadecimal representation to reproduce the number exactly, even across different hardware platforms.  The decimal representation is mostly just here to aid readability.  However, if we decide we want to hand-edit the file, we can just delete the : and everything after it, changing that first number to a 47.5 or something; seeing no :, the game will parse the decimal representation and use that instead.</p>
<p>There are other ways to solve this floating-point exactness problem; for example, you can implement an algorithm that reads and writes the decimal representation in a manner that carefully preserves the values.  This is complicated, but if you're interested in that kind of thing, here's what Chris Hecker says:</p>
<blockquote><p>Everybody just uses David Gay's code:<br />
<a href="http://www.netlib.org/fp/dtoa.c">http://www.netlib.org/fp/dtoa.c<br />
</a><a href="http://www.netlib.org/fp/g_fmt.c">http://www.netlib.org/fp/g_fmt.c</a></p>
<p>You need to get the flags set right on the compiler for it to work. /fp:precise at least, I also do #pragma optimize ("p",on), and make sure you write a test program for it with your compiler settings.</p></blockquote>
<p>(Twitchy, and look at how much code that is!  What we did is a couple of lines.) In <a href="http://cbloom.com/3d/game_tech_04.zip">a document</a> on his <a href="http://www.cbloom.com/3d/">web site</a>, Charles Bloom discusses a scheme that was in use at Oddworld Inhabitants, similar to what we're doing in The Witness but involving a comparison between the two representations:</p>
<blockquote><p>... Plain text extraction of floats drifts because of the ASCII conversions; to prevent this, we simply store the binary version in the text file in addition to the human readable version; if they are reasonably close to each other, we use the binary version instead so that floats can be persisted exactly.</p></blockquote>
<h2>Subversion Confusion</h2>
<p>After switching to this format, conflicts still happened.  I categorize conflicts into two types: "legitimate", where two people edit the same entity in contradictory ways and the source control system doesn't know who to believe; and "illegitimate", where Subversion was just getting confused.  We did have a number of legitimate conflicts for a while, yet which were not the users' fault, because our world editor tended to do things that are bad in a concurrent-editing environment.  (See the Logistics section at the end of this article for some examples).  But even after we ironed these out, we still found that Subversion was still getting confused.</p>
<p>Here's an example of a common problem: suppose we start with a world containing data on entities A, B, and D, so our file contains: ABD.  You edit the file and delete entity B.  I edit the file and also delete entity B, but add another entity C.  (That we both deleted B may be a very common use-case, especially if this is due to some automatic editor function).  So, you want to check in a file that just says: ABD - B = AD, so the new result is AD.  I want to check in a file that says: ABD - B + C = ACD (the C goes in the middle, because remember, the entities are sorted!)  In theory this is an easy merge: the correct result is just ACD.  But Subversion would get confused in cases like this, requiring the user to hand-merge the file.</p>
<p>This is a disaster, because even with a visual merge tool such as the one that comes with TortoiseSVN, you don't want non-engine-programmers trying to merge your entity data file.  Even if that file is extremely readable, at some point someone will make a mistake; the file will fail to parse, and then you have a data recovery problem that requires the attention of an engine programmer.  When this happens it kills the productivity of two people (the engine guy, because he has to merge the data, and also the guy who generated the conflict, because until it gets resolved his game is in an un-runnable state, and anyway, the engine guy has probably commandeered the other guy's computer to fix this).</p>
<p>After we had this problem a few times too many, Ignacio suggested moving to a more-structured file format like JSON, which, in theory, source-control systems would handle more solidly.  But I thought that this would only reduce the frequency of the problem, but not solve anything fundamental; even if we achieved a situation of only generating legitimate conflicts, each conflict would still be a potential game-crippling disaster.</p>
<h2>Splitting the File</h2>
<p>It occurred to me, finally, that it could hardly get cleaner than to store each entity in its own file.  This initial thought might cause a performance-oriented programmer to recoil in horror; we have 10,422 entities right now, and it must be very slow to parse and load 10,000 text files every time the game starts up!</p>
<p>But I knew that we already had over 4,000 individual files laying around for assets like meshes and texture maps, currently loaded individually, the idea being that at ship time we would combine these into one package so as to avoid extra disk seeks and the like.  But on our development machines, these files still loaded quickly.  I figured that if we can already load 4,000 big files, why not try loading an extra 10,000 small files?  If loading all these files turned out to be slow, we could resort to this only when entity data has changed via a source control update; after loading all the text files, we can save out a single binary file containing all the entity data, which would be much faster to load, just like we used to do before we supported concurrent editing.</p>
<p>I tried this and it worked great.  So, now we have a data folder called 'entities', which holds one file per serialized entity.  The Door selected in the editor screenshot is stored in a file named after its entity ID, "6555.entity_text", which contains the text you see in the listing above.</p>
<p>As mentioned, there are currently 10422 entity files; the text files take up about 8MB of space, whereas the binary file is 1.4MB.  We're not making any effort to compress either of these formats; they are very small compared to the rest of our data.</p>
<p>&nbsp;</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2011/12/dos_box_file_list.png"><img class="aligncenter size-large wp-image-1435" title="dos_box_file_list" src="https://the-witness.net/news/wp-content/uploads/2011/12/dos_box_file_list-512x333.png" alt="" width="512" height="333" /></a></p>
<p>&nbsp;</p>
<h2>Benefits of Using Individual Files</h2>
<p>Storing each entity in a separate file solved our problems with merging: both the illegitimate source control confusions as well as the problems due to hand-guided file merging.</p>
<p>The illegitimate conflicts go away because transactions become very clear.  If I delete an entity, and you delete an entity, then we both just issue a file delete command, and it's very easy for the source control system to see that we agree on the action.  Furthermore, if we both delete B but I add C, because the change to C is happening in a completely separate file, there is no way for the system to get confused about what happened.</p>
<p>Legitimate conflicts do still happen, as multiple people edit the same entities, but these cases are much easier to handle than they were before.  The usual response is to either revert one whole entity or stomp it with your own.  Because we usually want to treat individual entities atomically -- using either one person's version of that entity or the other's -- individual files are a great match, because now the usual actions we want to perform are top-level source control commands (usually from the TortoiseSVN pulldown menu); before, this wasn't true, and merging a single entity in an atomic way required careful use of the merge tool.  If an entity ever gets corrupted somehow, for whatever reason, we can just revert that one file, knowing the damage is very limited in scope; before we've reverted it, the worst that can happen is that that single entity will not load; it won't prevent the rest of the entities in the world from loading.</p>
<p>It would be difficult to overemphasize the robustness gained.  I feel that these sentences do not quite convey the subtle magic; it feels a little like the state change when a material transitions from a liquid to a solid.</p>
<p>Sometimes, someone will update their game data in a non-vigilant way; not noticing that a conflict happened, so they won't resolve it; and then they will run the game.  Before, this would have been a disaster; Subversion inserts annotations into text files to try to help humans manually resolve conflicts (this is an unfortunate throwback to programs like SCCS), which would have caused much of the world to fail to parse.  Now, though, the damage from these annotations is constrained to individual entities. It's also easier to detect: if there is a conflict in the file for our Door #6555, then in addition to writing these annotations into 6555.entity_text (making it unparseable by the game), Subversion will also write out files 6555.entity_text.mine and 6555.entity_text.theirs, which contain the two intact but conflicting versions of the file.  The game can detect these very straightforwardly, put an error message on the HUD, and even choose one to load by default.  It is all very clean.</p>
<p>This is one of those interesting cases where reality-in-practice is starkly different from computer-science-in-theory.  In theory, a directory is just a data structure organizing a bunch of black-box data, and we happen to view this organization in a way that looks like a list of files; we could just do the same thing interior to our own file format, and it would be no big deal.  In practice, due to the way our tools work, these two arrangements are tremendously different.  The individual files just feel solid and reliable to work with, whereas one big structured file is always going to be precarious.</p>
<h2>Startup Procedure</h2>
<p>When the game starts up, we need to load all the entities from disk.  In the simplest case, this is straightforward: we just iterate through every file in the entities directory and load it.  However, as I mentioned, we wanted to keep a binary version of the entities that is preferred by the game if it exists and is up to date; partly, this might help startup speed a little (we don't have to parse all these strings), but mainly, that is the file format and code path we are going to use when the game ships, and we don't want that code to rot in the meantime.  Using it every day is the best way to prevent it from rotting.</p>
<p>So: when the game first starts up, we check for the binary entity package.  If it's not there, we load all the individual entities files, then immediately save out the binary package.  (This binary package is a private, local file; if we were to add it to source control, everyone would always conflict with everyone else.)  But suppose we start up and the binary package is already there (which it usually will be).  We need then to determine if any of the textual entities have changed since the binary package was built.  The most-general way to do this is just by looking at the file timestamps; if we were to rely on some other signal being written to the disk that says "hey, entity data has changed," then we would only be allowed to modify the entity files using sanctioned and customized tools; that would be annoying and would cause all kinds of robustness issues.</p>
<p>In concrete terms: we want to know the timestamp of the newest .entity_text file, inclusive of the directory containing these files (if we just did a Subversion update that only deleted entities, then all the .entity_text timestamps will be old, but the directory timestamp will be new; we want to ensure we properly rebuild the binary file in this case!)  To find the newest timestamp, we just iterate through all the timestamps in a brute-force way:</p>
<pre style="padding-left: 30px;">bool os_get_newest_file_modification_time(char *input_dir_name, Gamelib_Int64 *file_time_return) {
    //
    // We include the modification time of the directory as well.
    //

    char *dir_name = mprintf("%s/*", input_dir_name);
    Free_On_Return(dir_name);
    if (strlen(dir_name) &gt;= MY_MAX_PATH - 5) return false;

    //
    // best_time starts as the time for the directory (if it exists!)
    //
    Gamelib_Int64 best_time = 0;
    bool success = get_file_modification_time(input_dir_name, &amp;best_time);
    if (!success) {
        Log::print("Unable to get modification time for directory '%s'!\n", input_dir_name);
    }

    //
    // Now consider the file timestamps.
    //
    WIN32_FIND_DATA find_data;
    HANDLE handle = FindFirstFile(dir_name, &amp;find_data);
    if (handle == INVALID_HANDLE_VALUE) return false;

    while (1) {
        if (find_data.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY) {
        } else {
            Gamelib_Int64 file_time = to64(find_data.ftLastWriteTime);
            if (file_time &gt; best_time) best_time = file_time;
        }

        BOOL success = FindNextFile(handle, &amp;find_data);
        if (!success) break;
    }

    FindClose(handle);

    if (file_time_return) *file_time_return = best_time;

    return true;
}

bool get_file_modification_time(const char *name, Gamelib_Int64 *result_return) {
    HANDLE h = CreateFile(name, 0, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
                          NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY | FILE_FLAG_BACKUP_SEMANTICS,
                          NULL);
    if (h == INVALID_HANDLE_VALUE) return false;

    FILETIME write_time;
    GetFileTime(h, NULL, NULL, &amp;write_time);
    CloseHandle(h);

    if (result_return) *result_return = to64(write_time);
    return true;
}</pre>
<p style="padding-left: 30px;">&nbsp;</p>
<p>You'll notice that this is Windows-specific code, but we don't have to worry about porting it, because we only run the world editor on Windows.  Fortunately, in Windows, the file timestamp is right there in the directory data, so we don't have to open each file.  (At least in NTFS this is true, rather than being an API illusion; the timestamps are stored in the Master File Table [MFT].)</p>
<p>What's the performance like?  I typically run the game on two different machines: a high-performance Tower PC (CPU: Intel Core i7-970, hard drive: OCZ Vertex 3 SSD, RAM: 12GB) and a gaming Laptop (CPU: Intel Core i7-2820QM, hard drive: Intel SSD 500 [SSDSC2MH250A2], RAM: 12GB).</p>
<p>The time spent in os_get_newest_file_modification_time is:  Tower:<strong> .0095 sec, +/- .0015 sec</strong>; Laptop: <strong>.039 sec, +/- .005 sec</strong>.  (Timings were computed by averaging six trials, after a discarded warm-up run.)  This is definitely one of those cases where I'm glad I didn't prematurely optimize, as I would have expected this to be much slower!</p>
<p>We typically install SSDs in all our work machines, but even when people have home machines that use spinning-platter hard drives, startup times are not much slower (likely due to the MFT data staying in cache).</p>
<p>If for a large enough number of entities this timestamp-gathering process becomes too slow, we can always write some code to read the timestamps out of the MFT directly, avoiding all the API call overhead, as in <a href="http://www.autoitscript.com/forum/topic/94269-mft-access-reading-parsing-the-master-file-table-on-ntfs-filesystems/">this forum posting</a>.  To date we've had no need to do this.</p>
<p>Some people have reported performance problems when Windows has more than 100,000 files in one directory, but this can be worked around: just make 10 directories, with IDs ending with each digit from 0-9 grouped in common directories.  (Why use the least-significant "ending" digit, rather than the most-significant "starting" digit, which might be the impulsive choice?  Because if you do it that way, <a href="http://en.wikipedia.org/wiki/Benford's_law">Benford's Law</a> says your entities are likely to be unevenly distributed across the directories.  Why not just hash them into a folder?  Because it's useful to be able to manually navigate to the entity you want, without searching.  (However, partitioning by least-significant digit may be inconvenient if you want to manually edit a sequential range of entities for some reason, because that range will span many directories.  If this is an important use case, perhaps there's a good compromise like using the tens digit or hundreds digit -- though I have the itching feeling that a clearly superior solution would exist.))</p>
<p>As things stand in terms of editing the game world, we are probably not yet at the peak entity count, but there's unlikely to be more than 3x the number of entities we have now.  Given how low the timing measurements are now, it's clear that performance will not be a factor in the ability to use this system up until shipping the game.</p>
<h2>Partitioning the ID Space</h2>
<p>As I mentioned, in our engine, entity IDs are integer serial numbers.  We like this because they are easy to type (we have to type them in the editor sometimes) and at runtime, looking up an entity compiles to a fast indexing of a flat array, with a bounds check.</p>
<p>This introduces another problem for us to deal with in world editing, though: we need to ensure that two users, who are both creating new entities, do not both try to use the same number.  This would result in both users attempting to add completely incompatible .entity_text files with the same name.</p>
<p>One obvious and bulletproof solution is to have the editor connect to the network and atomically grab an ID from a central server each time one is needed.  But again, we don't want to require users to be on the network in order to edit.</p>
<p>My solution was a somewhat lazy one: we allocate a range of IDs to each computer that edits the world.  These are kept in a file called "id_ranges"; at startup time, the game queries its machine's MAC address, then looks in the file for the corresponding ID range; if not found, it claims a new range and adds a new line to the file:</p>
<pre style="padding-left: 30px;"> 6000 10000 BC-AE-C5-66-28-E9 #Jonathan_office
10000 13000 BC-AE-C5-66-28-48 #Ignacio_office
13000 16000 00-1C-7B-75-00-D8 #Jonathan_laptop
16000 19000 BC-AE-C5-66-28-93 #Shannon_office
19000 22000 BC-AE-C5-56-42-51 #Jonathan_home
22000 25000 C0-3F-0E-AA-F3-F2 #icastano_home
25000 28000 F4-6D-04-1F-D4-36 #Shannon_home
28000 31000 Baker #Baker
31000 34000 BC-AE-C5-56-43-FE #Misc_PC_office
34000 37000 00-E0-81-B0-7A-A9 #eaa
37000 40000 00-21-00-A0-8F-E3 #Orsi
40000 43000 64-99-5D-FD-97-64 #Jonathan
43000 46000 08-86-3B-42-0B-8D #Misc
46000 49000 90-E6-BA-88-9B-B7 #andrewlackey
49000 52000 48-5B-39-8C-80-5E #eaa
52000 55000 50-E5-49-55-64-BF #facaelectrica
55000 58000 00-FF-D4-C7-15-A3 #facaelectrica
58000 70000 Clusters #Clusters
71000 75000 Overflow #Overflow
75000 78000 F4-6D-04-1F-CC-77 #Nacho
78000 81000 BC-AE-C5-74-7B-A3 #Thekla</pre>
<p>On each line, everything after the # is just a comment telling us in a human-readable way whose machine is responsible for that range (it defaults to the Windows username, but we can hand-edit that if we want).</p>
<p>("Baker" is for an automated process, so I made a special case that uses the string "Baker" instead of the MAC address, just to minimize the potential for the build machine to claim a new range without us noticing and failing to check that in; see below.  "Clusters" is for an editor operation that is also run in an automated process, but which can also be done manually by anyone; cluster generation removes all previous clusters from the world, so if clusters didn't have their own space, you would end up frequently deleting entities in other peoples' ranges; this seems like it might be a bad idea, though maybe, in reality, it's fine and there would be no problem.  But as it stands we know that anything in the Clusters range is completely disposable, so if a conflict ever arises there we can just revert or delete those entities without a second thought.)</p>
<p>This ID space is naturally going to have a lot of big holes in it, but before we ship we will renumber the entities so that we can pack them tightly into an array.  In the meantime, it is sparse but not pathologically so; we can still get away with using a linear array to index the entities, though it will use more memory now than at ship.</p>
<p>This id_ranges file is a bit of a lazy solution, and it causes a few annoyances.  The most annoying thing is that, any time someone runs the editor for the first time on a new machine, they need to immediately check in the id_ranges file to publish their allocation to the rest of the team; and they need to coordinate so that nobody else is trying to do the same thing.  Because the editor just allocates the next 3000 IDs starting with the highest ID in the file, if two people try to allocate IDs simultaneously, they will both claim the same range.  We could solve this by requiring the editor to hold a source control lock to modify the id_ranges file, but I just haven't gotten around to it, because this hasn't been a big-enough problem.  Furthermore, we could have the editor automatically commit the changes to the file; but currently, nothing is ever published to the rest of the team automatically -- publishing always requires manual action, and this seems like it may be a good thing to preserve.</p>
<p>But, not having implemented these solutions, we have been taken by surprise a couple of times by interactions with a second lazy choice of this system: the fact that we file only records one MAC address per computer.</p>
<p>Most modern computers have multiple MAC addresses (for example: if your computer has a Wifi adapter and two Ethernet ports, it's probably got at least 3 MAC addresses).  My lazy code just asks Windows to iterate the MAC addresses and reports the first one for use in the file.  Sometimes, though, the reported address will change, which causes someone's machine to modify the id_ranges file when they didn't expect it; we had this problem once when an audio contractor, who works offsite, installed some VPN software.  If that user is not vigilant about source control (which non-technical people often aren't), it can be a while before this problem is discovered; meanwhile, that user has been creating entities that may conflict with someone else's.</p>
<p>Most or all occurrences of this problem could be solved by recording all of the user's MAC addresses in the file, instead of one; I just haven't done so.</p>
<p>If we weren't using integer serial numbers, we wouldn't really need id_ranges at all.  For example, if we looked up entities at runtime by hashing unique string identifiers, then we would only need to ensure that each user has a unique string prefix.  We take a slight overkill approach, where each entity ID is a somewhat long string starting with the user's MAC address; or we could even generate a Windows GUID for each entity.  MAC addresses are 48 bits wide.  If you concatenate the MAC address with a 4-byte integer, that's just 10 bytes per entity ID, which isn't much (we currently use 4, already!).  Of course encoding these as strings and storing them in a hash table is going to require more space, but it isn't ridiculous.  Looking things up in a hash table all the time is slower than indexing a flat array, so we are sticking with the way we do things for now; but this would solve some problems and simplify the overall system, so it sounds like the kind of decision I would change my mind on later, as computers get even faster than they currently are.  So if you implement a scheme like this, you can ignore everything I said about id_ranges.  The biggest problem becomes making it easy to type longer entity IDs into the in-game editor.</p>
<h2>Logistical Issues in Editor and File Format Design</h2>
<p>In closing, I want to discuss changes we made to the editor and file format, in order to make them compatible with the paradigm of concurrent editing.</p>
<h3>Arrays</h3>
<p>Just about every game wants to serialize arrays into files.  When transitioning from a binary format, the most natural thing for a performance-minded programmer is to write the array length out first, then write each member of the array.  That way, when reading the file back, we know how much memory to allocate, and we avoid all the slow things one has to do when reading an array of unknown length.  However, encoding arrays in this way results in a textual format that always conflicts, because even when people are making compatible edits to an array, nobody is going to agree on what that array count should be; also, it becomes impossible to manually edit conflicts without typing the count in: if two people add elements to an array, the merged array will contain all the items, but neither version of the file will contain the correct count!</p>
<p>To solve this, of course, we go to the common text-file convention of using a syntactic designation that an array is now over, rather than pre-declaring how many elements there are.  This is obvious, but I mention it here because it is a relatively universal concern.</p>
<h3>Automatic Changes</h3>
<p>You will also want to minimize or work around cases where the editor automatically changes entity properties without user intervention, because often these will lead to conflicts.  A simple example from our game world: the sun is represented by a few entities that are instantiated in the world, a glowing disc and a couple of particle systems.  Every frame, the gameplay code positions these entities with respect to the current camera transform so that, when the player moves around the world, the sun will seem to be infinitely far away.  This happens in the editor too, because when editing we want to see the world exactly the way it will look in-game.  So, as soon as we enabled concurrent editing, everyone was checking in different coordinates for the sun (depending on where the camera happened to be when they saved!) and this caused a lot of conflicts.  My first solution was to add a hack that zeroes the position of sun entities when saving, but upon loading, this interacted badly with the way particle systems interpolate their positions.  Instead, I added an entity flag that signifies that an entity's pose doesn't matter, with respect to thinking about whether it has changed or not, so we will only modify the sun's .entity_text files if some more-important properties are modified.  (This article is already long, but I'll say that in general, we detect differences between an entity's current state and its state when it was loaded, and we only write out .entity_text files when properties have changed.)</p>
<h3>Relative Transforms</h3>
<p>In our engine, all entities have 'position' and 'orientation' properties, which always represent the entity's frame in worldspace, flat and non-hierarchically.  If we want an entity to be attached to another entity's transform, we set the properties 'mount_parent_id', 'mount_position', and 'mount_orientation' (you can see all these properties in the listing for Door #6555 above); once per frame, the game engine computes the entity's new worldspace transform based on its mount information, properly handling long dependency chains.  Once we started using textual entity files, we found that entities' worldspace coordinates would often differ by an LSB or two, even when their parents had not moved (differences especially happening, for example, between Debug and Release builds of the game).  Even without concurrent editing, it's good to clean this up as a matter of basic hygiene, because otherwise you're checking in spurious changes all the time, increasing load on the source control system and making it harder for a human to see useful information in the change list.  I chose to solve this problem by making the mount-update code more complex: it detects whether an entity has moved of its own accord, and only updates child entities' worldspace positions if the parent entity really moved (or if the child entity really moved!).</p>
<h3>Terrain Editing</h3>
<p>There is one piece of editing workflow that used to make sense before concurrent editing, but which now does not.  We have a terrain system wherein we can move control points around in worldspace, then select a terrain entity, which has a height-field mesh, and press a key to recompute that height field with respect to the new control points.  I originally made this recomputation happen only on manually-selected entities, rather than automatically on the entire world, for UI smoothness purposes: the recomputation takes some time.  But when you only recompute one block of terrain and not its neighbors, you get discontinuities in the terrain; the longer things go on, the more discontinuities you get.  Once in a while I would fix this by selecting all terrain entities in the world, recomputing them simultaneously.</p>
<p><div id="attachment_1454" style="width: 522px" class="wp-caption aligncenter"><a href="https://the-witness.net/news/wp-content/uploads/2011/12/discontinuity.png"><img aria-describedby="caption-attachment-1454" class="size-large wp-image-1454" title="discontinuity" src="https://the-witness.net/news/wp-content/uploads/2011/12/discontinuity-512x322.png" alt="" width="512" height="322" /></a><p id="caption-attachment-1454" class="wp-caption-text">A terrain discontinuity</p></div></p>
<p>The catch is that when terrain changes, it affects other entities.  We re-plant grass, so that the grass matches the new elevations; we change the positions of trees and rocks and other objects that are rooted to the terrain at a predetermined height.  Whenever you recompute some terrain, we collect all grass/trees/rocks within a conservative bounding radius, as these are all the things that might possibly change.  When dealing with small groups of terrain blocks, this already is a bit of a recipe for trouble (it is not too hard to overlap someone else's edits this way); but it also means that if I recompute the entire terrain to eliminate those discontinuities, I am in turn editing all grass, trees, and rocks in the world, and will inevitably conflict with anyone else who has moved any of them. For now, we simply shy away from this kind of global operation; when you get a conflict in some entity that you probably didn't care about, like grass, it is easy just to accept the remote version of the file.  Long-term, I expect some kind of heavier-weight solution would have to happen here, though I hope it does not involve much locking.</p>
<h3>Issuing Source Control Commands</h3>
<p>Our editor automatically issues source control commands when entities are created or destroyed, because it would be extremely tedious and error-prone to expect users to do this.  Initially we had some problems with source control commands unexpectedly failing, which quickly leads to chaos.  After some work, issuing source control commands seems to work with full consistency, but we are still a little wary of it; so we don't, for example, want to issue the commands via a background process, adding more complexity to the system.  The problem with this is that svn commands are a bit slow.  Sometimes when I have been editing the world for a while, it can take 15 to 30 seconds to save my changes, which would have happened instantaneously without the svn commands.</p>
<h2>Conclusion</h2>
<p>We've put together a system that lets us concurrently edit an open world, using source control to manage our world edits.  It works well enough for us to ship the game, so I am happy with it.  If the scheme ever fails in some way, or requires heavy modification, I will post an update!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2011/12/engine-tech-concurrent-world-editing/feed/</wfw:commentRss>
			<slash:comments>45</slash:comments>
		
		
			</item>
		<item>
		<title>Architecture in The Witness</title>
		<link>https://the-witness.net/news/2011/12/architecture-in-the-witness/</link>
					<comments>https://the-witness.net/news/2011/12/architecture-in-the-witness/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Fri, 23 Dec 2011 21:28:02 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1389</guid>

					<description><![CDATA[This summer, we began working in earnest with architects, to bring further sophistication to the design of locations in The Witness.  Before this time, we had a game that was fully playable, but buildings and the areas around them tended to be placeholders, developed only enough to make the basic …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2011/12/architecture-in-the-witness/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>This summer, we began working in earnest with architects, to bring further sophistication to the design of locations in The Witness.  Before this time, we had a game that was fully playable, but buildings and the areas around them tended to be placeholders, developed only enough to make the basic gameplay possible.  We began working with two architecture firms, FOURM design (for buildings and such), and David Fletcher Studio (for landscape architecture).  Both firms are located in the Bay Area, so it's easy for us to meet regularly.</p>
<p>When we sat down to start working with the architects, one of the first things we did was put together a history of the island where The Witness takes place: how long has the island been there?  What groups of people lived there, and what kind of structures did they build?  How did later civilizations use the structures built by earlier groups?</p>
<p>Quickly we developed a running theme of sites that are old and have over time been used in two or three different ways.  When entering a new location, you probably first notice the most basic elements of its structure: where you can walk to easily, versus where you can't; what puzzles or goals are calling for your attention, and what walls or doors might be preventing you from getting to them.  If this is all you care about, you can then play through the area in a very utilitarian fashion.  But if you have an eye for detail, you may notice the elements of modern construction shoring up the design of an older structure with a different purpose.  The design of the new structure tells you something about what the newer guys were doing there, and how it differs from what the older guys were doing there.  And if you look really closely, you can see traces of the original footprint of the site (perhaps these are very subtle, some bricks just rising above the dirt in a few places), and infer the purpose of this very old site too.</p>
<p>If you see the different civilizations that came to this island as embodying different philosophies; and you see the structures they built as representative of the way these philosophies led them to interact with the world; and you see further that when they replaced a site, it represents the rejection of some older worldview that they consider no longer useful, then perhaps you start to get some idea of the amount of backstory that can be encoded into the world, nonverbally.</p>
<p>All of this backstory is also directly relevant to the main story -- who you are, why you are on this island, how you may get back home.  So, to put it another way, the game is constructed so that the more you pay attention to tiny details during your travels, the more insight you will have to the central story, even though it may not be obvious at any given time what a particular detail has to do with that story.</p>
<div>
<p>Having smart architecture, it seems, really helps this process work, brings it alive.  If you build a game where people are supposed to pay attention to details, but the details are wrong or naive or just don't have much thought put into them, then at some level the game just won't work.  Even if you don't know the first thing about architecture, you have been in enough buildings in your life that the deeper parts of your brain have distilled plenty of patterns about those buildings.  Your brain knows the difference between a real building and a nonsense building that wouldn't occur in the real world.  It can feel the difference in veracity between carefully-thought-out structural details -- on the one hand -- versus stuff that was just placed by a level designer to look cool.  When I showed a recent build to a friend, who had already played an earlier build of the game, he said the new structures made the game feel deeper, more serious.</p>
<p>I was a little surprised by this statement but should not have been, since really, that is what we are aiming for.  Thoughtful design of these structures and landscapes gives the game further gravitas.</p>
</div>
<div>
<p>The most-recent issue of Game Informer printed an article that showed some of the first screenshots of the newly-architected areas appearing in the game engine.  It is an interesting article; pick up the issue if you haven't!  They also put up a companion article online (but which not as extensive) here:</p>
<p><a href="http://www.gameinformer.com/games/the_witness/b/pc/archive/2011/12/06/architecture-of-the-witness.aspx">(Summary article at Game Informer)</a></p>
<p>The area featured in this article is the one that we have taken furthest so far in terms of modeling and texturing.  Here are some other shots of it:</p>
<p style="text-align: center;"><strong>The Keep, before and after</strong></p>
<p style="text-align: center;"><strong><a href="https://the-witness.net/news/wp-content/uploads/2011/12/keep_before_and_after.png"><img class="aligncenter size-medium wp-image-1413" title="keep_before_and_after" src="https://the-witness.net/news/wp-content/uploads/2011/12/keep_before_and_after-300x89.png" alt="" width="300" height="89" /></a><br />
</strong></p>
<p style="text-align: center;"><strong>The Keep, close-up 1</strong></p>
<p style="text-align: center;"><a href="https://the-witness.net/news/wp-content/uploads/2011/12/shot_2011.11.15__time_14_32_n01.png"><img class="size-medium wp-image-1416 aligncenter" title="shot_2011.11.15__time_14_32_n01" src="https://the-witness.net/news/wp-content/uploads/2011/12/shot_2011.11.15__time_14_32_n01-300x187.png" alt="" width="300" height="187" /></a><strong><br />
</strong></p>
<p style="text-align: center;"><strong>The Keep, close-up 2</strong></p>
<p style="text-align: center;"><a href="https://the-witness.net/news/wp-content/uploads/2011/12/shot_2011.11.15__time_14_33_n04.png"><img class="size-medium wp-image-1414 aligncenter" title="shot_2011.11.15__time_14_33_n04" src="https://the-witness.net/news/wp-content/uploads/2011/12/shot_2011.11.15__time_14_33_n04-300x187.png" alt="" width="300" height="187" /></a><strong> </strong></p>
<p style="text-align: center;"><strong><br />
The Keep, close-up 3</strong></p>
<p style="text-align: center;"><strong><a href="https://the-witness.net/news/wp-content/uploads/2011/12/shot_2011.11.15__time_14_35_n07.png"><img class="aligncenter size-medium wp-image-1415" style="border-style: initial; border-color: initial;" title="shot_2011.11.15__time_14_35_n07" src="https://the-witness.net/news/wp-content/uploads/2011/12/shot_2011.11.15__time_14_35_n07-300x187.png" alt="" width="300" height="187" /></a></strong></p>
<p style="text-align: center;"><strong><br />
</strong></p>
<p>We've done basic planning for some of the other areas, so I thought it would be nice to show some screenshots of work in progress.  For each of these, there's a 'before' version (when we had a fully-playable game, but basic placeholder structures) and after (once we have incorporated the architects' designs, revised the site plans and in some cases even the puzzles, etc):</p>
<p>&nbsp;</p>
<p style="text-align: center;"><strong>The Compound, before and after</strong></p>
<div><a href="https://the-witness.net/news/wp-content/uploads/2011/12/compound_before_and_after.png"><img class="size-medium wp-image-1399 aligncenter" style="border-style: initial; border-color: initial;" title="compound_before_and_after" src="https://the-witness.net/news/wp-content/uploads/2011/12/compound_before_and_after-300x84.png" alt="" width="300" height="84" /></a></div>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p style="text-align: center;"><strong><br />
Glass Factory, before and after</strong></p>
<p style="text-align: center;"><strong><a href="https://the-witness.net/news/wp-content/uploads/2011/12/glass_before_and_after.png"><img class="aligncenter size-medium wp-image-1400" title="glass_before_and_after" src="https://the-witness.net/news/wp-content/uploads/2011/12/glass_before_and_after-300x84.png" alt="" width="300" height="84" /></a><br />
</strong></p>
<p style="text-align: center;"><strong>Peninsula, before and after</strong></p>
<p style="text-align: center;"><strong><a href="https://the-witness.net/news/wp-content/uploads/2011/12/peninsula_before_and_after.png"><img class="aligncenter size-medium wp-image-1401" title="peninsula_before_and_after" src="https://the-witness.net/news/wp-content/uploads/2011/12/peninsula_before_and_after-300x84.png" alt="" width="300" height="84" /></a><br />
</strong></p>
<p style="text-align: center;"><strong>Vault, before and after</strong></p>
<p style="text-align: center;"><strong><a href="https://the-witness.net/news/wp-content/uploads/2011/12/vault_before_and_after.png"><img class="aligncenter size-medium wp-image-1402" title="vault_before_and_after" src="https://the-witness.net/news/wp-content/uploads/2011/12/vault_before_and_after-300x84.png" alt="" width="300" height="84" /></a><br />
</strong></p>
<p style="text-align: left;">Don't regard these "after" images as representative of what the game will look like!  They are still works in progress, and the final game will look substantially better: scenes like these will feel richer due to the placement of detail objects, further care put into the texture mapping and lighting, refinement of the still-rough-drafty terrain features around these structures, and many other bits of subtle game development magic.  But I wanted to show these now since they provide a good taste of the game's flavor, and they show how much structural intelligence is brought to the table by working with the architects.  Yes, we could have started with the placeholder structures and made them more elaborate and better-looking, in a general video-game-level-design way, but that's different from having well-thought-out ideas subtly embodied in the structures of the areas, which is what we are going for.</p>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2011/12/architecture-in-the-witness/feed/</wfw:commentRss>
			<slash:comments>50</slash:comments>
		
		
			</item>
		<item>
		<title>My Screenshots folder</title>
		<link>https://the-witness.net/news/2011/12/my-screenshots-folder/</link>
					<comments>https://the-witness.net/news/2011/12/my-screenshots-folder/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 06 Dec 2011 03:40:55 +0000</pubDate>
				<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1385</guid>

					<description><![CDATA[From time to time I take screenshots, to send in email to other team members, or for the architects' reference, etc.  Today I glanced at my desktop and noticed it looked pretty cool.  So here it is (with some shots, that seemed a bit too spoilery, redacted): &#160;<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2011/12/my-screenshots-folder/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>From time to time I take screenshots, to send in email to other team members, or for the architects' reference, etc.  Today I glanced at my desktop and noticed it looked pretty cool.  So here it is (with some shots, that seemed a bit too spoilery, redacted):</p>
<p>&nbsp;</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2011/12/screenshots.png"><img class="aligncenter size-medium wp-image-1386" title="screenshots" src="https://the-witness.net/news/wp-content/uploads/2011/12/screenshots-300x222.png" alt="" width="300" height="222" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2011/12/my-screenshots-folder/feed/</wfw:commentRss>
			<slash:comments>20</slash:comments>
		
		
			</item>
		<item>
		<title>New game: Q.U.B.E. will be released on December 16th.</title>
		<link>https://the-witness.net/news/2011/11/new-game-q-u-b-e-will-be-released-on-december-16th/</link>
					<comments>https://the-witness.net/news/2011/11/new-game-q-u-b-e-will-be-released-on-december-16th/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Thu, 01 Dec 2011 06:52:51 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Other Games]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1348</guid>

					<description><![CDATA[In addition to working on The Witness, I am a partner in the Indie Fund, a group of successful indies who finance imaginative indie games under developer-friendly terms. Our fund has been around for almost 2 years now, and I am happy to announce that our first funded game is …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2011/11/new-game-q-u-b-e-will-be-released-on-december-16th/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>In addition to working on The Witness, I am a partner in the Indie Fund, a group of successful indies who finance imaginative indie games under developer-friendly terms.  Our fund has been around for almost 2 years now, and I am happy to announce that our first funded game is about to be released.  It's a first-person puzzle game called Q.U.B.E., made by some guys in England called Toxic Games.  They are just out of school, this is their first game, and they managed to make it without a programmer!</p>
<p><p><a href="https://www.youtube.com/watch?v=iABxhj0ExA0"><img src="https://img.youtube.com/vi/iABxhj0ExA0/2.jpg"></a></p>
<p><a href="https://www.youtube.com/watch?v=iABxhj0ExA0">Click here to view the video on YouTube</a>.</p>
</p>
<p>&nbsp;</p>
<p>Q.U.B.E. will be available on <a href="http://store.steampowered.com/">Steam</a>.</p>
<p><a href="http://qube-game.com">(Web site for the game)</a></p>
<p><a href="http://indie-fund.com/2011/11/q-u-b-e-is-first-indie-fund-game-to-be-released/">(Indie Fund announcement page)</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2011/11/new-game-q-u-b-e-will-be-released-on-december-16th/feed/</wfw:commentRss>
			<slash:comments>18</slash:comments>
		
		
			</item>
		<item>
		<title>Update!</title>
		<link>https://the-witness.net/news/2011/11/update-2/</link>
					<comments>https://the-witness.net/news/2011/11/update-2/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sun, 27 Nov 2011 02:25:15 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1344</guid>

					<description><![CDATA[I am working hard on puzzles right now. We've had figured out, for a while, the basic set of locations you can travel to on the island, and what the puzzles are in each. These locations were defined to varying degrees of specificity, though. Sometimes we know what the puzzles …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2011/11/update-2/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>I am working hard on puzzles right now.  We've had figured out, for a while, the basic set of locations you can travel to on the island, and what the puzzles are in each.  These locations were defined to varying degrees of specificity, though.  Sometimes we know what the puzzles are, exactly (they are all designed and implemented) but aren't sure what the architecture is.  Sometimes I have concrete ideas for some puzzles but only vague ideas for other puzzles, and it's a case of "I will fill these in later on, when I have time to think about it and come up with something good here; but it is pretty clear to me that there <em>will</em> be something good here, so I am not worrying too much about it."</p>
<p>Eventually, these things have to be figured out.  Over the past month or so we've done some of that figuring.  We nailed down the architecture for a couple of areas (including the all-important area where the player starts the game).  We've done this in a way where the architecture and the puzzle ideas have synergy, which is always nice.  In particular, there was one location that, from the beginning of development, was basically a big box with a window cut into it and some puzzles stuffed inside.  For a long time (maybe 2 years!) I was never sure what to do with it, but eventually the architects suggested an idea for that location.  I mocked it up and didn't like it.  They suggested another one.  This one sparked an idea for how to make the structural properties resonate with the puzzle theme, and when I built even just a rough-draft of the building, I found the result to be strong.  Lately we've been finalizing that location too.</p>
<p>So anyway, there are all these spots on the island that represented vague ideas, with puzzles there that were just in rough form, or that weren't even implemented fully, but just served as reminders to do something there.  I've been going through and filling in a bunch of those.  </p>
<p>I have also been working with some other puzzles, which seemed "done enough to ship", and thinking hard about how to make them better.  Braid benefited from a lot of this kind of attention -- a lot of games would have shipped with just early versions of the puzzles in that game, considering them to be just fine; but the more I worked with the puzzles in Braid, the more I found better, simpler, more-to-the-point versions of them.  The same thing is happening here (though The Witness is a much bigger, more-complicated game, so sometimes it is challenging to get to that same kind of clarity.)</p>
<p>With regard to the visuals (modeling and texturing), things have been coming along nicely as well.  Pretty soon a high-profile game magazine will publish some screenshots of one of the most-finished areas of the game, showing the look we are targeting and giving a strong hint of what the game will be like stylistically.  When the magazine is out there we will link it here.</p>
<p><em>(This has not been a particularly coherent update; just wanted to let you all know what is up!)</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2011/11/update-2/feed/</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		
			</item>
		<item>
		<title>Designing to Reveal the Nature of the Universe</title>
		<link>https://the-witness.net/news/2011/11/designing-to-reveal-the-nature-of-the-universe/</link>
					<comments>https://the-witness.net/news/2011/11/designing-to-reveal-the-nature-of-the-universe/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Thu, 03 Nov 2011 05:58:09 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Other Games]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1338</guid>

					<description><![CDATA[This talk was presented by Jonathan Blow and Marc ten Bosch at Indiecade on October 7, 2011. Any system of interactivity can of course be explored: If X happens, what are the consequences? What are all the ways in which pattern Y expresses itself, and to what do those expressions …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2011/11/designing-to-reveal-the-nature-of-the-universe/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>This talk was presented by Jonathan Blow and Marc ten Bosch at Indiecade on October 7, 2011.</p>
<p><center><br />
<iframe width="420" height="315" src="http://www.youtube.com/embed/OGSeLSmOALU" frameborder="0" allowfullscreen></iframe></center></p>
<p><em>Any system of interactivity can of course be explored: If X happens, what are the consequences? What are all the ways in which pattern Y expresses itself, and to what do those expressions lead? By inspecting the structure of a system in this way, we can find the core ideas of the system, and see how those ideas illustrate fundamental truths of our universe. We present a game design aesthetic that values looking for systems that express these truths in the cleanest possible way. We explain how this is different from more-traditional combinatoric design techniques; we show examples from our games and describe a method for applying the aesthetic in general.</em></p>
<p><a href="http://www.indiecade.com/index.php/2011/Conference_videos/">Here's a link to the Indiecade page, on which there's also a presentation by Richard LeMarchand, and more to come.</a></p>
<p><em>Thanks very much to <a href="http://portfolio.idaimages.com/">Ida C. Benedetto</a> for recording the talk!</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2011/11/designing-to-reveal-the-nature-of-the-universe/feed/</wfw:commentRss>
			<slash:comments>71</slash:comments>
		
		
			</item>
		<item>
		<title>Saying hi.</title>
		<link>https://the-witness.net/news/2011/10/saying-hi/</link>
					<comments>https://the-witness.net/news/2011/10/saying-hi/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 01 Nov 2011 06:05:31 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1335</guid>

					<description><![CDATA[Hi everyone. We haven't posted anything in a while, but this is just because we have been working intensively on the game. These days we are doing a lot of working with the architects, integrating their designs with the gameplay. The result is coming out really well -- the architectural …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2011/10/saying-hi/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Hi everyone.  We haven't posted anything in a while, but this is just because we have been working intensively on the game.  These days we are doing a lot of working with the architects, integrating their designs with the gameplay.  The result is coming out really well -- the architectural designs add tremendously to the feeling of being in a world, and they also give us opportunities to make the puzzles richer.  So as we do this the game just keeps getting bigger and more sophisticated.</p>
<p>I'll post something more concrete before too long, but I wanted to at least say something, since it's been a while.</p>
<p>Team-wise, we have just hired two people (a 3D artist and a programmer), and we plan to hire another programmer as well, once his visa clears and he can get into the country.  This is a pretty big staffing-up, percentage-wise, and will allow us to make things quite nice.  The new folks will be starting over the next couple of months (they need to wind down the things they are working on currently!)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2011/10/saying-hi/feed/</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		
			</item>
		<item>
		<title>Island Snapshot</title>
		<link>https://the-witness.net/news/2011/09/island-snapshot-3/</link>
					<comments>https://the-witness.net/news/2011/09/island-snapshot-3/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sun, 18 Sep 2011 00:27:34 +0000</pubDate>
				<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1327</guid>

					<description><![CDATA[It's been a while since we did one of these: The current puzzle count is 350. Some parts of the island are pretty messed up in this screenshot. For the press tour, we made sure the whole game was more-or-less solid and playable. Just after that, though, we were free …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2011/09/island-snapshot-3/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>It's been a while since we did one of these:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2011/09/shot_2011.09.17__time_17_22_n01.png"><img src="https://the-witness.net/news/wp-content/uploads/2011/09/shot_2011.09.17__time_17_22_n01-300x168.png" alt="" title="shot_2011.09.17__time_17_22_n01" width="300" height="168" class="aligncenter size-medium wp-image-1328" /></a></p>
<p>The current puzzle count is 350.</p>
<p>Some parts of the island are pretty messed up in this screenshot.  For the press tour, we made sure the whole game was more-or-less solid and playable.  Just after that, though, we were free to tear things apart, move things around, change the sizes of areas, add new areas, and all that.  We're still in the middle of that process and not everything has been made playable again.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2011/09/island-snapshot-3/feed/</wfw:commentRss>
			<slash:comments>43</slash:comments>
		
		
			</item>
		<item>
		<title>Interview on GameSpot&#8217;s HotSpot podcast</title>
		<link>https://the-witness.net/news/2011/09/interview-on-gamespots-hotspot-podcast/</link>
					<comments>https://the-witness.net/news/2011/09/interview-on-gamespots-hotspot-podcast/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 14 Sep 2011 22:55:28 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1324</guid>

					<description><![CDATA[GameSpot's podcast, HotSpot, had Jonathan Blow as a guest for the September 14th episode. There's a bit of an interview, and chatting about various game topics; some discussion of Braid, some of The Witness, and what makes a good puzzle? Here's the link.<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2011/09/interview-on-gamespots-hotspot-podcast/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>GameSpot's podcast, HotSpot, had Jonathan Blow as a guest for the September 14th episode.  There's a bit of an interview, and chatting about various game topics; some discussion of Braid, some of The Witness, and what makes a good puzzle?</p>
<p><a href="http://www.gamespot.com/pages/features/hotspot/index.php?id=2662">Here's the link.</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2011/09/interview-on-gamespots-hotspot-podcast/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>A pleasant lightmapping update</title>
		<link>https://the-witness.net/news/2011/09/a-pleasant-lightmapping-update/</link>
					<comments>https://the-witness.net/news/2011/09/a-pleasant-lightmapping-update/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 07 Sep 2011 22:22:16 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1317</guid>

					<description><![CDATA[It's been a little bit since the last post. We have been busy doing a lot of good things with the game. Here's one of them: Ignacio just got back from vacation and implemented a simple lightmap encoding idea that improves the color resolution of our lightmaps, removing banding, like …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2011/09/a-pleasant-lightmapping-update/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>It's been a little bit since the last post.  We have been busy doing a lot of good things with the game.  Here's one of them: Ignacio just got back from vacation and implemented a simple lightmap encoding idea that improves the color resolution of our lightmaps, removing banding, like so:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2011/09/before_after.jpg"><img class="aligncenter size-medium wp-image-1318" title="before_after" src="https://the-witness.net/news/wp-content/uploads/2011/09/before_after-300x168.jpg" alt="" width="300" height="168" /></a></p>
<p>The difference is not too pronounced in this scene, but with smoother-colored textures it becomes a lot more obvious (and I do want to use more smoother-colored textures, art-direction-wise!)</p>
<p>The situation is, the lightmaps are HDR (for some definition of "high"), so we needed a way to encode those values reasonably into a bitmap.  We were using RGBM where M is just an overall brightness factor; you read RGB from the texture then multiply by M to get the output color.  We used to just encode this naively, but the problem is, when M is less than 1 then it actually kills precision in your RGB, so the solution is, well, don't ever let M go below 1; just clamp it.  This is not rocket science and in fact is the kind of thing that is a little funny, as one starts wondering why we didn't think of that a long time ago, but hey, that's how it is sometimes.  The results made me happy, though, so I am posting them.</p>
<p>The improved image quality may enable us to have higher dynamic range throughout the game (this is probably something we will evaluate later on), which would be very nice!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2011/09/a-pleasant-lightmapping-update/feed/</wfw:commentRss>
			<slash:comments>13</slash:comments>
		
		
			</item>
		<item>
		<title>A podcast with some background details&#8230;</title>
		<link>https://the-witness.net/news/2011/08/a-podcast-with-some-background-details/</link>
					<comments>https://the-witness.net/news/2011/08/a-podcast-with-some-background-details/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 31 Aug 2011 04:17:26 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1310</guid>

					<description><![CDATA[Back during the press tour, Michael Abbott invited me to come onto the Brainy Gamer Podcast, and the resulting episode is now live. It's got some inside-baseball stuff that hasn't been talked about in the press coverage. So that's something. See also the previous episodes with Manveer Heir and Matthew …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2011/08/a-podcast-with-some-background-details/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>Back during the press tour, Michael Abbott invited me to come onto the Brainy Gamer Podcast, and <a href="http://www.brainygamer.com/the_brainy_gamer/2011/08/brainy-gamer-podcast-episode-35-pt-3.html">the resulting episode is now live</a>.  It's got some inside-baseball stuff that hasn't been talked about in the press coverage.  So that's something.  See also the previous episodes with Manveer Heir and Matthew Burns.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2011/08/a-podcast-with-some-background-details/feed/</wfw:commentRss>
			<slash:comments>32</slash:comments>
		
		
			</item>
		<item>
		<title>Previews of The Witness are now out there.</title>
		<link>https://the-witness.net/news/2011/08/previews-of-the-witness-are-now-out-there/</link>
					<comments>https://the-witness.net/news/2011/08/previews-of-the-witness-are-now-out-there/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Mon, 08 Aug 2011 17:08:35 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1288</guid>

					<description><![CDATA[For the past couple of weeks I've been showing a preview version of The Witness to various folks in the press who were interested. Typically I just have them sit down and play for a couple of hours, from the beginning, with no guidance from me; afterward, we talk about …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2011/08/previews-of-the-witness-are-now-out-there/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>For the past couple of weeks I've been showing a preview version of <em>The Witness</em> to various folks in the press who were interested.  Typically I just have them sit down and play for a couple of hours, from the beginning, with no guidance from me; afterward, we talk about what they just played.</p>
<p>Previews of the game are now being published, and readers of this blog have been asking for gameplay details for a while.  So it seems like a good idea to list the previews here.  I'll keep updating this post as I find more.</p>
<ul>
<a href="http://kotaku.com/5828705/two-hours-with-jonathan-blows-the-witness-an-abbreviated-wonder">on Kotaku, by Stephen Totilo</a><br />
<a href="http://www.joystiq.com/2011/08/08/the-witness-preview/">on Joystiq, by Ben Gilbert</a><br />
<a href="http://www.gamespot.com/pc/puzzle/thewitnessnextgen/news/6327782/the-witness-preview?sid=6327782&mode=previews">on Gamespot, by Sophia Tong</a><br />
<a href="http://pc.ign.com/articles/118/1186713p1.html">on IGN, by Anthony Gallegos</a><br />
<a href="http://www.gamasutra.com/view/feature/6451/bearing_witness.php">on Gamasutra, by Christian Nutt</a><br />
<a href="http://www.1up.com/previews/witness-longform-game-from-guy-made-braid">on 1UP, by Matt Leone</a><br />
<a href="http://www.gamesradar.com/xbox360/the-witness/preview/the-witness-hands-on-preview-braid-creators-new-game-is-myst-mensa-and-a-whole-lot-of-meta/a-201108081005106031/g-20100907104014643091">on GamesRadar, by Charlie Barratt</a><br />
<a href="http://www.giantbomb.com/news/a-rough-sketch-the-witness/3569/">on Giant Bomb, by Ryan Davis</a><br />
<a href="http://www.giantbomb.com/news/unraveling-the-witness-with-jonathan-blow/3572/">on Giant Bomb, by Patrick Klepek (interview-ish)</a><br />
<a href="http://techland.time.com/2011/08/11/playing-the-witness-hands-on-with-the-next-game-from-the-creator-of-braid/">on Time Techland, by Evan Narcisse</a><br />
<a href="http://www.ifc.com/news/2011/08/jonathan-blow-and-the-witness-1.php">on IFC, by Evan Narcisse (interview)</a><br />
<a href="http://www.rockpapershotgun.com/2011/08/12/the-witness-hands-on/">by Dan Griliopoulos on Rock, Paper, Shotgun</a></p>
<p><a href="http://www.gamesradar.com/f/jonathan-blow-interview-how-to-fix-the-adventure-innovate-mainstream-games-and-do-a-sequel-right/a-20110809142133844060">interview with GamesRadar</a><br />
<a href="http://oxmonline.com/article/features/-presses/braid-creator-speaks?page=0%2C0">interview with Cory Cohen of OXM</a><br />
<a href="http://www.rockpapershotgun.com/2011/08/15/jonathan-blow-interview/">long interview with Dan Griliopoulos of Rock, Paper, Shotgun (contains a bunch of stuff not elsewhere)<br />
</a><br />
<a href="http://www.eurogamer.net/articles/2011-08-30-jonathan-blow-interview">interview with Christian Donlan of Eurogamer</a>
</ul>
<p><em>(Sometimes these previews, from the way they are worded, make it seem like I made the entire game with my own bare hands.  That is not the case; it's just how this kind of article tends to sound.  There are a number of people working on this game, who have creative input in various ways; see the About page for a partial list!)</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2011/08/previews-of-the-witness-are-now-out-there/feed/</wfw:commentRss>
			<slash:comments>40</slash:comments>
		
		
			</item>
		<item>
		<title>A few new graphical effects.</title>
		<link>https://the-witness.net/news/2011/06/a-few-new-graphical-effects/</link>
					<comments>https://the-witness.net/news/2011/06/a-few-new-graphical-effects/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 28 Jun 2011 17:10:40 +0000</pubDate>
				<category><![CDATA[Engine Tech]]></category>
		<category><![CDATA[Progress Shots]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1100</guid>

					<description><![CDATA[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 …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2011/06/a-few-new-graphical-effects/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>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:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2011/06/shot_2011.06.28__time_09_25_n02.png"><img src="https://the-witness.net/news/wp-content/uploads/2011/06/shot_2011.06.28__time_09_25_n02-300x168.png" alt="" title="shot_2011.06.28__time_09_25_n02" width="300" height="168" class="aligncenter size-medium wp-image-1102" /></a></p>
<p>Sun beams.  These are accomplished with a radial blur centered on the sun, during postprocessing.  The nice thing about this effect is how dynamic it is -- as you walk beneath the trees, the shape and intensity of the beams are changing all the time.</p>
<p>Due to the way the effect works, sometimes beams are drawn that are a little bit unphysical.  You probably have to be looking closely to see that, but I am a little bit uncomfortable with it given that the game is all about the opposite of that.  We'll see how this evolves.  We've been talking about augmenting this with other effects.</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2011/06/shot_2011.06.28__time_09_28_n03.png"><img src="https://the-witness.net/news/wp-content/uploads/2011/06/shot_2011.06.28__time_09_28_n03-300x168.png" alt="" title="shot_2011.06.28__time_09_28_n03" width="300" height="168" class="aligncenter size-medium wp-image-1103" /></a></p>
<p>A revised water reflection effect.</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2011/06/shot_2011.06.28__time_09_28_n05.png"><img src="https://the-witness.net/news/wp-content/uploads/2011/06/shot_2011.06.28__time_09_28_n05-300x168.png" alt="" title="shot_2011.06.28__time_09_28_n05" width="300" height="168" class="aligncenter size-medium wp-image-1104" /></a></p>
<p>Softening of the shoreline, so that it doesn't look like one big alpha-blended water polygon intersecting the ground.</p>
<p>Here's what the island looks like now:</p>
<p><a href="https://the-witness.net/news/wp-content/uploads/2011/06/shot_2011.06.28__time_09_24_n01.png"><img src="https://the-witness.net/news/wp-content/uploads/2011/06/shot_2011.06.28__time_09_24_n01-300x168.png" alt="" title="shot_2011.06.28__time_09_24_n01" width="300" height="168" class="aligncenter size-medium wp-image-1101" /></a></p>
<p>It's fun to look at this compared to another shot of the island, say, from about a year ago:</p>
<p><a class="shutterset_" href='https://the-witness.net/news/wp-content/gallery/area_summaries/shot_2010-07-11__time_18_02_n05.jpg' title=''><img src='https://the-witness.net/news/wp-content/gallery/area_summaries/thumbs/thumbs_shot_2010-07-11__time_18_02_n05.jpg' alt='Island Snapshot' class='ngg-singlepic ngg-center' /></a></p>
<p>The current puzzle count is 328.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2011/06/a-few-new-graphical-effects/feed/</wfw:commentRss>
			<slash:comments>31</slash:comments>
		
		
			</item>
		<item>
		<title>How to program independent games</title>
		<link>https://the-witness.net/news/2011/06/how-to-program-independent-games/</link>
					<comments>https://the-witness.net/news/2011/06/how-to-program-independent-games/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Thu, 23 Jun 2011 06:16:32 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Ill-Advised Rants]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1004</guid>

					<description><![CDATA[On April 1, 2011, I was invited by UC Berkeley's Computer Science Undergraduate Association to come give a speech. This was pretty interesting because that's where I went to school, and I was once a member of the CSUA. I approached it this way: if I were going back to …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2011/06/how-to-program-independent-games/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>On April 1, 2011, I was invited by UC Berkeley's Computer Science Undergraduate Association to come give a speech. This was pretty interesting because that's where I went to school, and I was once a member of the CSUA. I approached it this way: if I were going back to speak to my undergraduate self, what would I say to help him be most effective at making video games, programming-wise?</p>
<p>The talk's about 38 minutes long, with about 40 minutes of Q&amp;A afterward. Here's a slideshow:</p>
<div>
<div style="display: block; overflow: hidden; width: 400px; padding-top: 4px; padding-bottom: 2px; font-size: 14px; font-family: Verdana, Arial, sans-serif; text-align: center;"><p><a href="https://www.youtube.com/watch?v=JjDsP5n2kSM"><img src="https://img.youtube.com/vi/JjDsP5n2kSM/2.jpg"></a></p>
<p><a href="https://www.youtube.com/watch?v=JjDsP5n2kSM">Click here to view the video on YouTube</a>.</p>
</div>
</div>
<p>If the above embedded player doesn't work for you, or you prefer to download the files directly, here they are:</p>
<p><a href="https://number-none.com/blow/slides/CSUA%20talk.mp3">audio track</a><br />
<a href="https://number-none.com/blow/slides/CSUA%20talk.ppt">slides (ppt format)</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2011/06/how-to-program-independent-games/feed/</wfw:commentRss>
			<slash:comments>108</slash:comments>
		
		<enclosure url="https://number-none.com/blow/slides/CSUA%20talk.mp3" length="72783027" type="audio/mpeg" />

			</item>
		<item>
		<title>Thinking about color</title>
		<link>https://the-witness.net/news/2011/06/thinking-about-color/</link>
					<comments>https://the-witness.net/news/2011/06/thinking-about-color/#comments</comments>
		
		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Wed, 01 Jun 2011 23:45:22 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<guid isPermaLink="false">https://the-witness.net/news/?p=889</guid>

					<description><![CDATA[We've known for a long time that we wanted some kind of color grading to happen in the postprocessing for The Witness; recently we started thinking about what that should be. Shannon wanted to try having colored shadows, as painters often do. We considered different ways of doing this; the …<p class="continue-reading-button"> <a class="continue-reading-link" href="https://the-witness.net/news/2011/06/thinking-about-color/">Continue reading<i class="crycon-right-dir"></i></a></p>]]></description>
										<content:encoded><![CDATA[<p>We've known for a long time that we wanted some kind of color grading to happen in the postprocessing for The Witness; recently we started thinking about what that should be.  Shannon wanted to try having colored shadows, as painters often do.  We considered different ways of doing this; the "right way" to do it would involve keeping more data in offscreen buffers than we currently do, which could be expensive, but is definitely at least a hassle if you're just playing around with ideas.  So instead, we decided to play around with the ambient light color: in shadow, the color of the ambient light is going to be a large influence on the perceived color of the surface, whereas outside of shadow, the color of the sun or light source will dominate, so it can be functionally pretty close to having colored shadows.</p>
<p>But we also figured, hey, why not play around with the color of sunlight as well?  The idea is that as you walk around in the game, the color of the sun and ambient light will interpolate as you move.  We haven't hooked it up that way yet; what you see below is just done by tweaking global variables in the game.  Well be doing more experiments in this direction...</p>
<p><P><br />
<a href="https://the-witness.net/news/wp-content/uploads/2011/06/newColor-brownside.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2011/06/newColor-brownside-300x84.jpg" alt="" title="newColor-brownside" width="300" height="84" class="aligncenter size-medium wp-image-911" /></a></p>
<p><P><br />
<a href="https://the-witness.net/news/wp-content/uploads/2011/06/newColor-gold-side.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2011/06/newColor-gold-side-300x84.jpg" alt="" title="newColor-gold-side" width="300" height="84" class="aligncenter size-medium wp-image-912" /></a></p>
<p><P><br />
<a href="https://the-witness.net/news/wp-content/uploads/2011/06/newColor-green-side.jpg"><img src="https://the-witness.net/news/wp-content/uploads/2011/06/newColor-green-side-300x84.jpg" alt="" title="newColor-green-side" width="300" height="84" class="aligncenter size-medium wp-image-913" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://the-witness.net/news/2011/06/thinking-about-color/feed/</wfw:commentRss>
			<slash:comments>44</slash:comments>
		
		
			</item>
	</channel>
</rss>
