Building a Cybersecurity Game with Three.js - Inspired by Google’s Interland
Tags: javascript, opensource, gamedev, cybersecurity
Published: 2022-10-28 03:55:03

## Project hunting 🔍

Over the summer for our project management and implementation course (PRJ 566 and PRJ 666), we were tasked to create a project entirely of our liking. We had the freedom to choose, plan, and manage a project all by ourselves with weekly mentorship and guidance from our professor. The only requirement was - we had to do something creative and complex. But complex looks very different from one person to another. We had to justify why what we chose to do was complex enough to pass the course. It was unclear to us what we were going to do. We brainstormed and brainstormed as a team. The fields of AI seemed pretty appealing, and we were thinking of something to do with optical character recognition (OCR) because I was dealing with an OCR-related project as a research assistant at Seneca Innovation at the time. 

It just so happened that on that day when I was listing down all the cool ideas that could potentially be our project for PRJ566 and PRJ666 – [Batuhan](https://github.com/batunpc) (our team leader) and I came across this podcast talking about a skill shortage in the cybersecurity industry.

That got us thinking. Hmm… what if we did something related to cybersecurity? Why not build a game? We started googling cyber security games for inspiration and came across [IBM Terminal](https://www.ibm.com/security/digital-assets/cybersecurity-ops/terminal/) – an awesome browser-based cybersecurity game. Then we found [Google Interland](https://beinternetawesome.withgoogle.com/en_us/interland) – another amazing quiz-based cybersecurity game built with three.js. 

As a team we were thrilled. It finally clicked. We were going to build something similar to [Google Interland’s Reality River](https://beinternetawesome.withgoogle.com/en_us/interland/reality-river). We named our project – [Exploit](exploitt.herokuapp.com). 


## River of trouble ⁉️

Well, the only problem right now was – none of the four team members ever coded a game before. Never authored the most basic line of three.js before. More challenging and complex than the game itself was the learning curve. With a time constraint of 16 weeks, four team members ([Samina](https://github.com/saminarp), [Batuhan](https://github.com/batunpc), [Lihan](https://github.com/lhtlh), [Vansh](https://github.com/Vansh20062002)) a steep learning curve, zero game development experience and four other challenging courses in the semester – we questioned our sanity for choosing to work on this project. However, our professor showed so much faith in us that it boosted our confidence and we were determined to not let him down. We got started on our Software Requirements Specification and passed the class with a shining A+. 


***Note: This is a work in progress, and we hope to have the most basic game ready by mid-December. We spent the entire summer planning the project and will spend the entire Fall coding it. The demo site currently contains dummy questions and not the actual ones. So tag along with us!***


##### [Modules](https://exploitt.herokuapp.com/game/3xploit-modules) 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ycub883366h1ing24img.png)



## Moving forward 🚀

We are currently building the game environment. We already have the fully functional little game character we call “threat hunter”. Maybe we will come up with a cooler name later on. This little guy - very similar to the Interland's character - moves forward in their environment, answers questions, and collects points. We are constantly filing issues and documenting our progress in our [GitHub repository](https://github.com/XpI0It/3xploit). This is going to be a many part series. So stay tuned for the next blog! 


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/182xf5g3cfahotzy2hkh.jpeg)