To try Native Client by running 4s (tetris) or 5s or Spacewar:

1. Build the Go distribution for your native system.

2. Download the Native Client SDK and install it.
    http://code.google.com/p/nativeclient-sdk/wiki/HowTo_GetStarted
  * You only need to do steps 1 and 2.

3. Copy "./native_client*/toolchain/*/bin/sel_ldr"
   from the Native Client distribution somewhere in your path as "nacl".
   This will let you run binaries using "nacl -M 8.out".
   The -M flag enables multithreaded access to the video library.

4. Build the Go distribution again, this time for Native Client:
	cd $GOROOT/src
	./all-nacl.bash
   * If you didn't do step 3, the tests at the end will fail, but that's okay.
   * If you are on a Mac, your dock will flicker as the "nacl" binary
   starts and stops while the tests run.  You can stop the tests at any time.

5. Run the programs by using
	nacl -M $GOROOT/src/pkg/exp/4s/8.out
	nacl -M $GOROOT/src/pkg/exp/4s/8.5s
	nacl -M $GOROOT/src/pkg/exp/spacewar/8.out
	
6. If you have an old copy of the Native Client plugin, you may be
   able to run the programs in your browser, by running
   "godoc --http=:5103" and then visiting
  * http://localhost:5103/src/pkg/exp/4s/4s.html
  * http://localhost:5103/src/pkg/exp/4s/5s.html [sic]
  * http://localhost:5103/src/pkg/exp/spacewar/spacewar.html

   This usage is deprecated in favor of newere APIs in recent
   releases of Native Client.  More work will be necessary to support
   interactive graphics when using those releases.

