Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Is there a reason you didn't wire them in a normal grid (with diodes for NKRO) so you could read all 100 keys with only one arduino and 20 I/O lines?

Two primary reasons: 

1. We didn't do a Matrix because we didn't know a way to do a matrix that would allow for simultaneous presses, which seemed important for this board. A matrix would probably be a more efficient system, which actually feeds into the second reason. 

2. It was super cheap and relatively straight forward to do it the way that we did. I'm using Elegoo Mega 2650's, which are $12 a piece and with a docking station attachment I also don't have to soder. I have a pile of I/O expanders I bought to do it the other way, but this seemed a touch more efficient . For a larger scale project I might go the I/O expander route, but with a prototype I didn't want to necessarily soder and then, upon finding that I'd done it wrong, de-soder and then soder again. I have steady hands, but I don't know if I have "soder 100 tiny wires to tiny boards" steady. 

Ah, OK.  To detect all keys with a matrix you just have to add a diode per key so the electricity can't flow back the "wrong way" through the matrix and confuse things. Then you loop over the rows powering up one at a time and reading off the columns. But if you don't want to solder...yeah, you'd have to add a breadboard or two, or get wire wrap tools or something.

I see you also don't have any debouncing code on the Arduino.  Are you doing that on the Unity side, or just writing games where it doesn't matter?

The games we were developing didn't require it, but we'll add it to the Arduino code.