Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

That's a great question! And, like a lot of the hardware parts of BCI, one that has a lot of variables with it.

For the single-button scenario we will be primarily using the commercial Emotiv Epoch system purchased a few years ago. This system is good in some design aspects in that it lets you control aspects of the 'click output' directly (such as hold time, and latency) but only to a degree. So I can change on the system itself how long it simulates holding the button for, (e.g. 20-500 ms), but it can only take a single value per keystroke. So if you have something like classic Mario where holding down the button will give you a bigger jump, we could only get one consistent jump size usually.

Now onto your question about latency - the short answer is the latency depends on how reliably the system is picking up brain signals. A good rule of thumb (from my perspective) is you don't want to design your game such that immediate twitch reactions (<1 second window) are required. Things like needing to have a sudden change with only one second to hit the button may be hard to accomplish, as the system has to 1.) Decide you are attempting to do a specific brain pattern as compared to the other constant monitoring; 2.) Decode what that brain pattern is; 3.) Send the keystroke with all the added information to the system.

This is all then complicated by the fact that the system is constantly monitoring so that sometimes spurious brain activities might be sent as 'intended action' when they weren't actually intended. In such cases the key might be pressed immediately with no delay, or might be sent multiple times in quick succession. Back to the Mario example, this is the equivalent of trying to do a running jump, but having Mario jump much to early only for you to be locked out of the 'right' jumping window. What might be more appropriate (from my naive perspective!) are things like QTEs with more generous windows (say 2-5 seconds), or 'bars' that fill up with multiple button presses.

Finally the 'next press' of the button again depends on how well the system picks up activity. If the person is continuously providing strong signal, we can actually select the latency between sending button presses so that we can increase/decrease the number of buttons sent in succession. (This is done again through the Emotiv's software). In our current set-ups this usually is only set at 20 ms, so if a person is able to generate the right signals repeatedly (and we aren't telling the computer to hold the button) multiple inputs will be sent in quick succession. 

Hope that helps some!

Excellent information, thanks!