The shield that libelium designed for the xbees is atrocious. It covers up a bunch of pins, is not well supported (physically), and does not play well with other shields.
The LCD shield that digikey sells has all the same issues (except for support).
You could design a board to mount the xbee and passed all the pins through, similar to the prototyping shield but with the xbee in the center, instead.
The only problem with this approach is the antenna. The xbee needs to be at the top of the stack of shields, for it's antenna to be useful.
An IR angle of 17 degree is probably good. I don't know that 40 meters is a possible range. I think you should prototype that part of the project first.
Set up two Arduinos with IR senders and receivers, and some LEDs (say 5 each) and buttons. Send a signal every time the button is pressed. Every time the IR receiver receives a signal, turn on another LED.
Get a friend to help you test them. Run around outside, and see how sensitive and accurate they are, standing still AND moving rapidly. After all, in a shoot-em-up game, nobody is going to stand still.
Once you are satisfied that the IR stuff works, add three xbees - one for each Arduino/gun and one attached to the computer. Have each xbee send data whenever it "gets hit".
Make sure you can receive the data, and know which "gun" it came from.
Then, try sending data back to the "guns", and lighting the LEDs based on data received by the xbee.
Once all that is working, figure out what you want to display on the LCD, and integrate the LCD, not using a shield.
When it all works bread-boarded, you will know whether you want to design a custom PCB to incorporate the Arduino, the LCD shield, and the xbee shield into one board.