Biometrics Is Better!

My Role

For Biometrics Is Better! I actually had multiple roles that I played as both the Lead/Networking Programmer and the Project Manager. While I realize the two roles can be quite different, my main job as Project Manager was handling communication between the Product Owner and the rest of the team along with making sure everyone is keeping up with their tasks. As the Lead/Networking Programmer, my main job was to create a way for Unity to communicate with a Node.js server whenever a player would use the finger print scanner or the iris scanner.

The Project

Comments

This project was worked on for about 9 full months, from March through November of 2020. The team started off as just myself and from there I was given the freedom to recruit people as I felt necessary. When all was said and done the size of the team was 6 people made up of 2 artists, 1 designer, and 3 programmers (counting myself). The game itself was designed to help factory workers understand both how to use the biometrics in their factories and to show them just how much faster and more efficient they can make their jobs by doing so.

For this particular game the largest chunk of my time was spent implementing a system for Unity to communicate back and forth with a Node.js server. In order to accomplish this I decided that the best course of action was to create a websocket connection inside of Unity that would connect to server and send a message to subscribe to all interactions that occur on the machine that it’s running on. Essentially what this would do is then send Unity a reply whenever someone used the biometrics that were connected to the specific machine that the game was running on and it would then parse that information for the specific information that we needed in-game.

This leads into the other part of what I did as a programmer for this game, which was creating a system that would verify that the user matched within the company’s database and that the match the game received was the same as the user that started the game. If it was a different user we would then prompt them to restart the game using their unique biometric ID.

The last thing that I would like to mention here is how I learned about how important it is to optimize things for hardware other than your own. What I mean by this is that I recall one particular night where we had a major problem with the game communicating with the Node.js server and it took the brain power of all 3 programmers on the team plus our Product Owner to figure out the problem. In the end it turned out to be that the issue was my computer was able to process things faster than other team member’s computers and as such mine was sending a command before everyone else’s which resulted in the subscribe being sent to the server to only work on my computer and no one else’s.

Post Mortem

The Good

  • Communication between team members was really good
  • Everyone’s work was always on time with deadlines if not exceeding them
  • Everyone got along really well which made working together fun

The Bad

  • Communication coming from the Product Owner was different from what the team was used to
  • Product Owner would notify us about game breaking bugs at the last minute
  • Target platform was only remotely accessible, which limited our ability to test effectively

Would Do Differently

  • Optimize the game for different hardware than our own
  • Weekly playtests to make sure there aren’t any major bugs
  • Hold regularly scheduled project meetings