Recreating the classic Photon laser tag system using modern technologies. This project was created for the Fall 2023 semester of the Software Engineering course at the University of Arkansas.
This main branch should support MacOS and Windows. For Linux users, a linux-support branch is included which removes sounds from the game.
You may either download the project as a ZIP or clone the repository to your local machine:
$ git clone https://github.com/NineLives-CSCE-3513/photon.gitOpen 2 terminal windows and navigate to the project directory in both:
$ cd /path/to/photonYou will need to create a Supabase account. Create a new project with a table named users. Once you have created a new project, navigate to the project settings and copy the Project URL and service_role key from the API tab. You will need to set these as environment variables on your local machine. Included is a .env.example with the following contents:
SUPABASE_URL='your_url_here'
SUPABASE_KEY='your_key_here'Rename the file to .env and replace the placeholder values with your Supabase project URL and service role key. The .env file is already included in the .gitignore file, so you don't have to worry about accidentally committing your credentials to version control.
Provided in the src directory is a file named traffic_generator.py. This file will generate UDP traffic to simulate the Photon laser tag units. In one of your terminal windows, run the following to start the traffic generator:
$ python src/traffic_generator.pyThe program will prompt you to enter 2 equipment IDs for each team. We recommend using 10 and 20 for the green team and 30 and 40 for the red team.
A Makefile is provided to simplify running the main program. If you wish, you can run the program manually using the following commands:
$ pip install -r requirements.txt
$ python src/main.pyAlternatively, you can use the provided Makefile:
$ makeThis will clean compiled bytecode files, install required dependencies, and run the main program. Run the following to display a menu of available commands:
$ make helpThe player entry console will require using the <tab> key to switch between each field. When you've completed registering players for one team, use the mouse to select the other team's first equipment ID field and continue registering players. Click either the Continue button or press <F5> to finalize player registration and continue to the countdown screen. Press <F12> while still in the player entry console to clear all player entries.
Make sure that the equipment IDs you entered in the traffic generator match the ones you entered in the player entry console.
Name |
GitHub Username |
|---|---|
Thomas Buser |
|
Sophia Forrester |
|
Grace Schmidt |
|
Uyen Thi My Ho |
|
Vishal Jeyam |
|
Cade DuPont |
This project is licensed under the MIT License.
