The main objective was to get custom laser tag gaming on an arduino based platform as cheap as possible. Kids would be able to play pickup games easily at our church. I wanted to add a lot of really useful features and the list just kept on getting longer and longer.
The current feature set:
Everything runs on the Teensy 4.1 by PJRC
upgraded from 6xAA batteries to lipo battery with built in recharging
replaced monochrome screen to full color LCD st7789 screen
i2s class D amplifier for audio effects (using the stock speaker)
added large vibration motor in the handle and small vibration motor embedded in the trigger
added visible laser
added neopixel strips down each side of the gun and drilled out holes
replaced navigation panel buttons with joystick and 2 tactile switches
added rfm69 packet radio for long range communication
I'm still using the original housing/shell, the optics, the barrel tx/rx, the dome tx/rx, switches and triggers, but everything else inside the gun is scrapped.
In addition, I'm using Circuit Playground Express boards by Adafruit as bases/respawn points. they also have rfm69 packet radios attached and they function as a node network to keep the current state of the game and aid in long range communication throughout the church
Game play is modeled after Halo. there are multiple weapon types: AR, pistol, shotgun, sniper, rocket launcher
each weapon has unique abilities:
the AR is full auto, low damage, low accuracy, high magazine size and high total ammo size, long reload time. Full auto has a side effect ability in that it is harder to get shot at while you are shooting, it acts like a shield. This is mainly because while a gun is sending out IR signals I have to ignore those signals being reflected back into the dome receiver.
the pistol is semi auto, medium damage, medium range, and has the ability to lock on to a target and confirm a head shot single kill. This is accomplished using the rx barrel and a beacon sent out of every gun's dome much like how the original LTTO worked (but without the "warning warning" voice prompts). the pistol also has a silencer option.
the shotgun used to shoot out of the dome, but that didn't work as well as I expected, so now it shoots using the radio. This doesn't make it very shotgun-like: it's spread is 360 degrees, it shoots through walls, etc. But this ended up being really important to balance the guns because this means it can interrupt the AR's full auto, and it can increase damage the closer you get to your target. Too far away and it won't do any damage, right next to someone and it will kill them in one shot. The shotgun is also needs to be pumped for each shot and held for full reload with a long reload time.
the sniper is also able to get headshot one-shot kills, with high damage otherwise. it is long range.
the rocket launcher is the highest damage and can actually kill groups of people. If you are hit with a rocket, or if a base is hit with a rocket, the blast will repeat and anything in the near area will get hit. At first I was using the dome to relay the hit, but I changed to sending a command via radio
Adding the radios was a game changer because I was able to get RSSI values that gave a good estimate as to how far away to player were to each other or how far a player was from any number of bases. This allowed me to implement some incredibly awesome features.
There are 10 bases throughout my church, and on the screen of the gun I've painstakingly drawn out a map of each level of the church. using the RSSI beacons from all the bases each gun is able to triangulate and estimate its position. Boom. Radar.
I also use the RSSI values to set the range of certain weapons and to detect when you are at a certain base. The bases act as respawn points and the can hold bonus items, weapons, ammo, flags, etc.
Health is regenerative like in Halo. That was one feature...Read more »