The 'Laser' target systems that I know use IR for hitting the target. The gun is a variation on the TV remote, with a lense to focus the IR. Yes, you can focus IR just fine. Or use a LED that has a narrow beam by itself. The target uses an IR detector module, like a TSOP1738 or a newer variant.
The laser is only for the spectacle. (Indoors they use mist machines to make the laser vissible, outdoor systems often don't use a laser at all).
A this very moment 10 student groups are developing the firmware for 'laser' tags for me for a course in 'embedded systems programming'.
For a suggestion on what to implement you can read any website that talks about sending and/or receiving IR control signals. No need to use a specific one, as you make both the sender and the receiver.
Fun to re-read this a few years later. The target chip changed from LPC2148 to LPC1114 and now to SAM3X8E (Arduino Due), but the course assignemnt hasn't changed a bit.
Personally I would go (and have in the the past gone) the FFT route. However I wouldn't use an 8-bit AVR, I'd use something somewhat faster.
My personal weapon of choice is the PIC32, which has more than enough power to do a good job of the FFT, but there are other good choices besides that - such as one of Atmel's 32-bit ARM chips (SAM3X for instance, like in the Arduino Due), or many of the other ARM chips that there are out there.
The trick with FFT is you need a good fast sample rate and enough memory to store a complex sample buffer. Say you want 1024 samples (which would give you 512 FFT buckets to play with), at 16 bits per sample, plus 16 extra bits for the complex FFT component, you're talking a minimum of 4KB of RAM just for the sample storage. Also, if you want it to be smooth then you want to be using DMA to read the samples in to one buffer while running FFT on another buffer, so a ping-pong double-buffer would increase that to 8KB.
With FFT you get half the number of buckets, or frequency ranges, as you have samples. The frequency range is also half the sample rate. So if you have 1024 samples recorded at 48KHz, that gives you a frequency range of 0-24KHz, with (24000/512=) 46.875Hz per bucket.
Reducing to 128 samples would give you 64 buckets, each at 375Hz per bucket.
Best Answer
They use a solar cell as a photo-detector and it looks like they modulate the laser with a square wave at 1kHz.
After the solar cell, the signal connects through a bandpass filter to "reject" dc (from sunlight) and all frequencies other than those close to 1kHz. The square wave now looks like a sinewave (because of the filtering) and this can be seen on the oscilloscope.
They seem to imply (in the written words below the video) that they have "tightened" the bandwidth of the low pass filter using a phase locked loop (PLL). I suspect they are using a switch-capacitor filter at this point because of the mention of the PLL.
This improvement will give a much tighter pass-band and once "something" is detected, the PLL will produce a multiple of the 1kHz (maybe 64kHz) to clock the switched capacitor filter.
Another advantage of using a PLL is that if the originating frequency drifts slightly, the PLL can be set to track it. So, if it drops down to 990Hz, the PLL will produce 63.36kHz and keep the switching filter "in tune".
The PLL might also set limits for upper and lower "acceptable" modulation frequencies. This is another advantage using this method.
A great switched capacitor filter is this part, the LTC1068 as recommended to me by Anindo Ghosh.