FPS Bomb Simulator

MEGA2560 BASIC Model:

  • Version 1.94
  • Build Date: 27 Aug 2020
  • Sketch uses 45412 bytes (17%) of program storage space. Maximum is 253952 bytes.
  • Global variables use 1257 bytes (15%) of dynamic memory, leaving 6935 bytes for local variables. Maximum is 8192 bytes.

Introduction

The FPS Bomb Simulator is a device that is meant to bring the excitement of console games such as Battlefield ™, Call of Duty™, CounterStrike™, and Team Fortress™ to real life. Augmenting any Airsoft, LaserTag, MilSim, Nerf, or Paintball game, catered towards three types of styles.

  1. The "Search and Destroy" and "Sabotage" game modes are for players who love the game type in which Terrorists and Counter-terrorists battle against each other to plant and/or defuse a bomb.
  2. The Domination and Conquered game modes are perfect for those that are more into a “King of the Hill” type games.
  3. The “Escape Room” game mode is perfect for those that like a challenge. It can only be disarmed with a “Passcode”, find clues to get the passcode before it explodes!

Language Menu

Each of the games can be played in one of seven languages, selectable at game start:

  • English
  • French *
  • Spanish *
  • Portuguese *
  • German *
  • Italian *
  • Dutch *

    * Note: Only English characters are printed on the LCD using a 4×20 Charater display

PnP upgradable addon modules:

All modules are auto-detected when the bomb is powered on

Addon modules affect available options for game play

All game modules are “Plug and Play” and easy to install, using the following steps:

  1. Remove the battery. (The FPS Bomb Simulator must be fully powered off.)
  2. Modules are keyed and labelled, place the module in the corresponding “slot”.
  3. Replace the battery.
  4. Power on the device.

The modules are automatically detected upon device startup. Game configuration options for each individual module will only become available once a module has been enumerated.

  1. Cutwire Module (4 wires)
    • Not available in Domination and EscapeRoom modes.
    • Cutwire module will be disabled if any wires are not connected before the bomb is armed.
      • Plug in 4 wires (Red to Black connector), if wires are not connected the Cut wire option will not function.
      • 1 wire is randomly selected each game to "Disarm the bomb".
      • 1 wire is randomly selected each game to "Explode the bomb".
      • 1 wire is randomly selected each game to "Speedup the bomb timer".
      • 1 wire is randomly selected each game to "Nothing".
      • If all wires are cut at the same time the bomb will explode.
  2. Relay Module (4 ports)
    • the first 3 sockets can be used to power 3 externally attached lights, mirroring the RGB LED indicator
    • the 4th can be used to power a plug in device for the "Bang" when the bomb explodes (example: smoke machine)
  3. Servo Key Box enables Escape Room game mode
    Remaining devices are in development (current or Future)
  4. Sound with YX5300 (Currently in Development) will use hardwareserial1 on ATMega2560
    1. The “MP3 Sound Module”, enable actual voice prompts (in chosen language) at key points of the game, available in all game modes.
    2. With “voice in” enabled Walkie-Talkies broadcast to the entire game area!
  5. Laser Tag IR Module (Currently in Hardware Development) uses the "MilesTag II Data Protocol"
  6. Wireless modules
    • Future Development
      • Additional game modes to be developed
      • using hardwareserial2 on ATMega2560
      • Wireless Master
      • Wireless Numbered Slave (Multiple slaves possible)
      • Add 4 new game modes
        • Area Domination
        • Area Conquered
        • Capture the Flag
        • Pandemic (Virus transport)
  7. sw420 Module shock/vibration sensor. (Currently implimented in code but not recomending public release)
  8. Accelerometer
    • Future Development
      • possibly the MPU6050 i2c module to replace the sw420 Module

Currently 5 Game modes for FPS (Airsoft/Paintball/LaserTag)

  • Search and Destroy
  • Sabotage
  • Armed!
  • Domination
  • Conquered

and 1 Game mode for Escape Rooms

  • Escape Room

Search and Destroy

In this game mode the device acts as a bomb.

  1. When the "button" mode is used:
    1. The Red button Arms the bomb.
    2. The Green button Disarms the bomb.
  2. When the "Passcode" mode is used:
    1. The time for Passcode entry has a programable time limit.
    2. "A" is used to initialize the passcode entry to Arm the bomb.
    3. "D" is used to initialize the passcode entry to Disarm the bomb.
    4. You can set the length of the passcode to a value between 04 and 16 digits
    5. The "Passcode hint" system is available.
  3. Common for both "passcode" and "button" modes:
    1. The bomb can be armed and defused only once.
    2. The bomb has to be defended by the GREEN team for the duration of the Game Time.
    3. The attacking RED team’s objective is to arm the bomb and once it is armed, they must prevent the GREEN team from defusing it, until it detonates.
  4. There are three ways to finish the game.
    1. The Game time expires and the RED team was unsuccessful in placing and arming the bomb; the GREEN team wins.
    2. The RED team was successful in placing and arming the bomb, but unable to prevent the GREEN team from disarming it; The GREEN team wins.
    3. The RED team was successful in placing and arming the bomb, the GREEN team fails to disarm it and the bomb detonates; The RED team wins.

Sabotage

In this mode the device acts as a bomb.

  1. When the "button" mode is used:
    1. The Red button Arms the bomb.
    2. The Green button Disarms the bomb.
  2. When the "Passcode" mode is used:
    1. "A" is used to initialize the passcode entry to Arm the bomb.
    2. "D" is used to initialize the passcode entry to Disarm the bomb.
    3. You can set the length of the passcode to a value between 04 and 16 digits
    4. The "Passcode hint" system is available.
  3. Common for both "passcode" and "button" modes:
    1. The bomb can be armed and defused as many times as the game time allows.
    2. The bomb has to be defended by the GREEN team during Game Time.
    3. The attacking RED team’s objective is to arm the bomb and once armed must prevent the GREEN team from defusing it, until it detonates.
  4. There are two ways to finish the game.
    1. The Game time expires and the RED team was unsuccessful in placing and arming the bomb; the GREEN team wins.
    2. The RED team was successful in placing and arming the bomb, the GREEN team fails to disarm it and the bomb detonates; The RED team wins.

Armed!

In this mode the device acts as a planted bomb.

  1. When the "button" mode is used:
    1. The Green button Disarms bomb.
  2. When the "Passcode" mode is used:
    1. The time for Passcode entry has a programable time limit.
    2. "D" is used to initialize the passcode entry to Disarm the bomb.
    3. You ca set the length of the passcode to a value between 04 and 16 digits
    4. The "Passcode hint" system is available.
  3. Common for both "passcode" and "button" modes:
    1. The bomb starts armed with the countdown to detonation already triggered.
  4. There are two ways to finish the game.
    1. The bomb time expires and the GREEN team was unsuccessful in disarming the bomb, and the bomb detonates; The RED team wins.
    2. The GREEN team succeeds in disarming the bomb; The GREEN team wins.

Escape Room:

In this mode the device acts as a planted bomb and key safe.

  1. Only the "Passcode" mode is available:
    1. The time for Passcode entry has a programable time limit.
    2. "D" is used to initialize the passcode entry to Disarm the bomb.
    3. You ca set the length of the passcode to a value between 04 and 16 digits
    4. "hint" system is unavailable.
    5. "cutwire" module is unavailable.
  2. In this mode:
    1. The bomb starts armed with the countdown to detonation already triggered.
  3. There are two ways to finish the game.
    1. The bomb time expires and the GREEN team was unsuccessful in disarming the bomb, and the bomb detonates; Game Over.
    2. The GREEN team succeeds in disarming the bomb; The Key Box Opens.

Domination

In this mode the device acts as a base.

  1. Only the "button" mode is available
    1. The Red button Captures the zone for the RED Team.
    2. The Red button Neutralizes a GREEN zone.
    3. The Green button Captures the zone for the GREEN Team.
    4. The Green button Neutralizes a RED zone.
  2. This is a time limited game.
    1. When the game starts, the base is a Neutral (BLUE) Zone.
    2. The objective for both (GREEN and RED) teams is to capture the base.
    3. Once the base is captured, the controlling team’s time is displayed on screen.
    4. While the base is neutral no time is accumulated for either Red or Green teams.
    5. Game can be configured to Neutralize the Zone after a set time => forces teams to patrol the zone to keep control.
    6. When auto neutralize zone is enabled teams can recapture the zone to reset the auto neutralize time.
  3. The only way to win is:
    1. The team with the highest total time in control of the base wins.

Conquered

In this mode the device acts as a base.

  1. Only the "button" mode is available.
    1. The goal is to be in control of the base with a total Captured time equal to a specified time.
    2. The Red button Captures the zone for the RED Team.
    3. The Red button Neutralizes a GREEN zone.
    4. The Green button Captures the zone for the GREEN Team.
    5. The Green button Neutralizes a RED zone.
  2. This is a time limited game.
    1. When the game starts, the base is a Neutral (BLUE) Zone.
    2. The objective for both (GREEN and RED) teams is to capture the base.
    3. Once the base is captured, the controlling team’s time is displayed on screen.
    4. While the base is neutral no time is decreased for either Red or Green teams.
    5. Game can be configured to Neutralize the Zone after a set time => forces teams to patrol the zone to keep control.
    6. When auto neutralize zone is enabled teams can recapture the zone to reset the auto neutralize time.
  3. The only way to win is:
    1. The team that has a total time in control of the base equal to the specified time wins.

How to play

To go through the menus press “A” for up and “B” for down.

To select a Menu item on screen press “D”.

Language Menu

Set the language that will be displayed on screen.

The chosen language will become the default displayed language.

The following languages can be selected:

  1. English
  2. Francais (French)
  3. Espanol (Spanish)
  4. Portugues (Portuguese)
  5. Deutsche (German)

Game Mode Selection

Select one of the games to start the game configuration menu.

  1. Search and Destroy
  2. Sabotage
  3. Armed!
  4. Domination
  5. Conquered
  6. Escape Room

Game Configuration

The game configuration menu will only display items relevant to the chosen game mode.

If any modules have been installed and the game mode supports the device, you will be able to configure it through the menu.

Game Time HH:MM

This is to set the approximate maximum time that the game can last.

  1. The game ends sooner if the bomb detonates.
  2. If the bomb is armed with less time left than the “Bomb Time”then the game will continue until:
    1. The bomb explodes.
    2. The bomb is disarmed.

Time is programmable to a maximum of 99 hours and 99 minutes (100 hours and 39 minutes). Once the game is started, the remaining minutes and seconds will be displayed on the LCD. For example, with a 3 hour game, the remaining time will be 180 minutes.

To set the time use the corresponding keypad numbers. To program a 45 minute game, press 0 0 4 5 and “D” to save the time or “C” to cancel and reset the game time.

Bomb Time HH:MM

This is the time that must elapse from the moment the bomb is armed until it detonates. It is configured the same way as the game time. For the “ARMED!” and "Escape Room" game modes this is the game time.

Passcode

You can select to use a passcode to arm or disarm the bomb.

Set passcode

Use the numeric keypad to set the passcode used to arm or disarm the bomb. Once set you will be prompted to re-enter the passcode to confirm it.

Passcode Hints

You will be given the option to display passcode hints. The hints will be displayed at the bottom of the screen when you are in Arming or Disarming mode.

Arming Time

This is the required time to keep the button pressed to arm or disarm the bomb.

If the passcode option was selected it is the amount of time you have to enter the passcode.

Sound

Enable or disable the sound in the game.

Relay Enable

Enable or disable the relay module without having to physical remove the module.

Cutwire

Its function is to force the bomb to be deactivated by cutting one of the 4 wires. If this function is active and one of the cables is not correctly connected before starting the game, there will be a warning to verify the connection.

Each of the 4 cables can are automaticaly set with one of the 3 available functions

The available functions are the following:

  1. "Explode"function: The bomb detonates once the cable has been cut.

  2. "Disarm"function: The bomb is deactivated once the cable has been cut.

  3. "Nothing"function: Cutting the cable has no effect on the bomb.

Settings Menu

Mode to check all the systems of the simulator.

  1. 2C Device List
  2. Sound Test
  3. Relay Test
  4. Input Test
  5. Cutwire Test
  6. LED Test
  7. Set Relay Time
  8. Set Start Delay Time

Development Notes Things To Test

  • [ ] Quick Game Menus

  • [ ] DTMF (Telephone Keypad Sound) funtion requires Shield version 1.2+

Domination game mode

  • Reset Auto-Neutralize timer from last captured button press
  • Red/Green buttons Blink when in control of zone (requires hardware v1.2+, Hardware v1.1 is always on)
  • Winning Team’s Button lights up at end of game (requires hardware v1.2+, Hardware v1.1 is always on)

Sound with YX5300 => use hardwareSerial for ATMEGA2650

  • Currently only available under "settings => test sound"
  • Set Volume Level integrated into settings menu

Cutwire Module

  • RandomWireGen optimized code, now sets the following variables
    • wireDisarm
    • wireExplode
    • wireFaster => "timeMultiplier = 2" variable to increase game clock to double the speed
    • wireSlower => "Nothing"
  • use variable to change game timer speed
    • "currentMillis = ((millis() - startMillis) * timeMultiplier );"

Added pins to control the Button LEDs

  • Requires FPS-Bomb-Mega-Shield-v1.2+ shield changed to reflect changes

Board ID

  • Variables and Function created shieldVersion Value

Escape Room game mode

  • Added servo for Escape Room gamemode (Servo will unlock a box holding a key, Used for "Escape Rooms")
  • replaced display names
    • "Green team" ==> "Captives"
    • "Red team" ==> "Jailers"

LaserTag Module

  • Code created for IR pulse (Explode Player), integrated menu code to enable option

To Do

Due to Program space using ATmega2650 to add the remaining options:

  • Add settings for each Game Mode that are accessible at boot time
    • Test each quick game
  • [ ] MP3 Sound Module

    • Create function
    • Integrate into game modes.
    • Create sound files for different languages

    FPS Bomb Simulator Board v1.2+

  • Add Servo Key Box for Escape Room game mode
  • LaserTag Module
  • Create 2nd separate board for Pro edition
    • Move Wireless Module to 2nd separate board
      • Wireless LoRa modules, "E32 915T20D" => up to 3km, "E32 915T30D" => up to 8km
      • Wireless Master
      • Wireless Numbered Slave
        • Multi Slave to Master
      • Add 3 game modes for wireless play:
        • Area Domination
        • Capture the Flag
        • Epidemic
    • Move SPI GLCD Module to 2nd separate board
      • 12864 Graphic LCD Module
      • Support for non-English characters
  • Add difficulty must press a button to activate arm/disarm button?? Reqires major hardware modifications.
  • Accelerometer MPU6050 i2c module to replace sw420 vibration sensor
  • Add GPS?? to enable finding the device

BUGs

  • Green LED always on juring game play, changed pins fixed issue
  • Static sound on tonePin2 pin
  • Change VibrationSensor Pin

Notes

What’s left on the project (as of 2020/08/27):

  • Finish testing the source code (currently v1.94)
  • Add Feature Request Game Modes
  • ReDesign and print circuit board then sent to China for fabrication
    • Required to use all available functionality of the device (version 1.2)
  • Build the actual device using PCB
    • Currently working with PCB version 1.1
    • Build with new PCB version 1.2
  • Install and calibrate system
    • See BUGs for current issues
  • Come up with a cooler name for this than "FPS Bomb Simulator"
  • Write and publish instructables page
  • Make a youtube video to demonstrate this project