Project : LaserTag Game System (discuss,advice collect)

I don't know if it is the right place to post, move if needed.

I post this topic to collect advices, so anyone include potential users just speak out :slight_smile:

I know LaserTag many many years ago, when I'm a young boy, dreaming of beautiful happy future, Now, I'm in the future, old.
In China, if you can make money by doing something, you will be pursued by more and more chinese, until no profit can make.
During that time, many people take part in holding laserTag game club. For this 2 reasons,I think, most of them disappeared:

  1. the price to play in club is too high (in China);
  2. government's unbelievable fear on gun / imitation gun ;
    So, this game can't spread out widely in China.

Occasionally, I browsed the website again, It surprised me indeed, this man in USA can insist for so many years, and ,there still many fans are supporting him.
And I have studied Arduino for many months, Maybe I can setup a project for DIYer, and realize a simple dream for myself.

----------------------------------------end of prequel------------------------------------------

My basic idea for this project:

  1. hardware can be diyed ;
    so, use standard arduino block as much as possible.

  2. IR send and receive executed in standalone block , same with master function;
    this means we will use 3 arduino develop boards at least.
    *for reason of safe,actually use IR instead of Laser.

  3. Lower cost to spread out;
    No one know and own , how can you say it is good?

  4. Integrate newer technology step by step;
    Long distance wireless communication , GPS , camera...

  5. Source share;
    I'm intertwined with this, in arduino world , we should open. And with source open many people will help to improve the system, the version will be rich later.
    But, I'm sure someone will just copy and dump hardware set, compete with each other by lower and lower price and poorer and poorer quality, that will just help to push the project to death as soon as possible.

--------------------------------end of basic thought ----------------------------

For I just do it by myself in free time(maybe full time later), there is no schedule, I just develop little by little, and adjustment is often too.

As mentioned before, I divide whole system into 3 blocks: Master,Sender,Receiver.

Sender : This is the most basic function: send out modulated IR , it executes fire/shot action, in order to simulate the fire, we need light : muzzle flash, and sound too . Of course, it need to communicate with master to get parameters and send back some statues(ammo info).

Receiver: It executes one of the most basic functions: IR receive and decode. It receives not only "bullet" but also command info send through IR.
For it is the first point to know hited by "enermy", I decide to let it controls the respawn funtion instead of master.
When hited by "enermy" it need to flash the led and compute the health and lifes leaved, and control the IR receive process(should not be hit again during respawning,eg.).
Communication with master is obviously needed.

Master: Any way ,there must be center control logic : master.
It monitor the whole cycle : setup a game -> start -> respawn -> tag out -> game over -> data dump.
All other accessores are atached to it : monitor(oled) ,GPS , Wireless communication module...

Why I do like that?
First of all, this will lower the requirement to MCU , for MCU just do few works, even old type will be competement.
Make it possible to hit and be hit at the same time.
Reserve space for DIY, we can just replace some parts to customise the system.
Reserve space to upgrade the system.
Make it more easy to composite or remap functions.
But, sad thing is : this make software chaos.(I'm in chaos now.)

--------------------------------end of block explanation------------------------------

Think of cost、size and processing capacity, I want to use Arduino Nano as the process board, now develop on this board.
Of course, we need to design the mother PCB to hold other function parts(and hold the nano too).
There is a decission to make: how many mother PCB to design? fewer number fewer design costs and fewer test works, but more complex interface.
Now, I want to just design 1 mother PCB:
Design 2 nano sockets on 1 PCB;
Master & Receiver deployed on 1 PCB , so, there should insert 2 nano on it.
Sender deployed on another PCB alone, so, only 1 nano needed.

Sum : 1PCB design, for each set include 2 PCBs and 3 Nanos

Master - Receiver communication interface : IIC (native)
Master - Sender communication interface : UART (native)

This is my reasons to do so:

  1. sender PCB will installed in gun;
    There is so many accessaries : sound speaker/flash LED / IR LED / Lens, they should be close to the PCB, and speaker 、 IR LED must be located in gun. so , PCB stays with them together : in the gun.
    For the distance between gun & backpack is a little long(1.5M maybe), IIC is not suitable, UART is the right choice.(but it is not convenient way, I have made a nano brick for write a test sentence in the loop(): repeat access default UART,can't upload program now.:frowning: )

2)master PCB & receiver PCB & battery & accessaries will installed in the backpack;
The safe way for younger to bring the PCB / battery is to setup a backpack, hide all of these into the bag,and in order to install the IR sensor (TSOP4840 or any ) we need vest like equipment(and armet?).
So, we can join vest and backpack together.
battery : people should be fraid of Li-Ion,so I want to use Ni-MH instead, it is not light if up to 10000MAH.

--------------------------------end of PCB overview-------------------------------------------

About game balance.
I hope some experienced people could give some advice on this subject.

The "life" in the game defined with 2 parameters : Life , health for each life.
e.g.:
Life = 2 ,health = 100, hurt by hit = 10 // actually life=3
1st hit : Life = 2 ,health = 90
2nd hit : Life = 2 ,health = 80
...
10th hit: Life = 1 ,health = 100 // health =0 -> respawn , cost 1 life, now actually life=2

In the project I studied, It gave some parameters to adjust game.
Hit-Delay : There is a short time for player to escape from danger when hit by "enermy".
Respawn-Delay : There is a long time to respawn while health of current life decreaseed to 0.
Round Per Minute : fire speed.

The player can't be hit during hit-delay and respawn-delay, so there is chance to cheat, e.g. you can rush into a advantaged postion for next fire.
If you don't provide this kind of mechanism, The player will be "killed" suddenly by concentrated fire.(you can burst tens shots in 1 second)

During code debug, I adjust the hit delay to 2s and respawn delay to 5s, for I did't move I don't know if it is suitable in game.
How to determine the value?

I wonder if the gun issue could be avoided by making your devices not look like guns. It seems like there are other forms it could take that would be equally as functional.

pert:
I wonder if the gun issue could be avoided by making your devices not look like guns. It seems like there are other forms it could take that would be equally as functional.

This is one of the problems to discuss later.
Imitation gun is forbiden in China, and same in many other countries.
"Kill" is not a good thing for younger too.

The simplest way is to change the shape, not like imitation gun,but still a "gun".
If go further, maybe we need to change the game mode, so no requirement for modern "gun".
But it looks like we can't get rid of "kill" : this kind of game is based on "hit".

I have had the idea to setup a hunting grounds, child play as hunter.
Still kill, but not human being.
Anyone have new idea?

About game balance.
I hope some experienced people could give some advice on this subject.

The "life" in the game defined with 2 parameters : Life , health for each life.
e.g.:
Life = 2 ,health = 100, hurt by hit = 10 // actually life=3
1st hit : Life = 2 ,health = 90
2nd hit : Life = 2 ,health = 80
...
10th hit: Life = 1 ,health = 100 // health =0 -> respawn , cost 1 life, now actually life=2

In the project I studied, It gave some parameters to adjust game.
Hit-Delay : There is a short time for player to escape from danger when hit by "enermy".
Respawn-Delay : There is a long time to respawn while health of current life decreaseed to 0.
Round Per Minute : fire speed.

The player can't be hit during hit-delay and respawn-delay, so there is chance to cheat, e.g. you can rush into a advantaged postion for next fire.
If you don't provide this kind of mechanism, The player will be "killed" suddenly by concentrated fire.(you can burst tens shots in 1 second)

During code debug, I adjust the hit delay to 2s and respawn delay to 5s, for I did't move I don't know if it is suitable in game.
How to determine the value?

So quiet , not like western forum :wink: