For this hackathon, I worked with four other people, two of whom I'd known prior to the event, and two of whom I'd never met before. We ended up making an interactive adventure game called "Welcome to the Wilderness" that tests the player on math knowledge. The project can be found at the following Github repository.
This project ended up presenting me with a large number of challenges. Aside from all of the technical issues I faced with trying to work with new programming languages for the first time, it was also a little awkward working with new people at first.
Through this experience, not only did I learn a lot of technical information and how to debug a variety of problems with my code, but I also learned how to work with new people on a fairly complex project over a short period of time. During my career, I will inevitably meet many new people and have to work with them, regardless of my previous familiarity with them, so this will no doubt be a valuable experience for me as I encounter similar experiences in the future.
Our game is designed to help tackle one of the main issues teachers are experiencing with online learning: a difficulty keeping students engaged. The game tests student learning with repetitive practice, using a fun story to entertain players.
Our product is an interactive text-based adventure game. The player starts off in the center of a field and must progress through 3 different levels to escape. Each level contains a different enemy, increasing in difficulty, that presents the player with a different type of math problem. It starts with basic math, then unit circle practice, then concludes with derivative practice.
Our design process began with a rough draft of the story and a visual model of the game layout. Once we knew what we wanted to accomplish, we started to create the functionality of the program. At first we were programming in Java, but eventually moved over to a more front-end approach. We used a basic HTML page, then created a CSS stylesheet to improve the appearance. The functionality of the program is created using logic statements in JavaScript. We tied these 3 components together to make one interactive website.
As a team, we are more familiar with Java, so after putting together the back-end code in Java and doing a little research about how that could be incorporated into a JavaScript program, we ended up making several Java applets for the monster fights. However, after further research, the current version of HTML, as well as most web browsers no longer support the use of Java applets, so we ended up not being able to use the applets at all. The whole program then had to be manually translated into JavaScript to be implemented with the rest of the code.
For most of us on the team, it was our first time encountering JavaScript, HTML, and CSS. Thus, learning how to program in these new languages in 36 hours was quite a tall order, especially considering it was our first hackathon for all of us. Seeing as we managed to create a fully finished product with most of its planned functionality despite these initial challenges, we are very proud of how far we have been able to come.
This experience gave us a chance to work with web development and front-end programming. For the majority of our team, we had only coded in Java and a little bit of Python prior to this hackathon. Being exposed to Web development through HTML, CSS, and JavaScript not only through the workshops offered, but also through working on this project has been an incredibly interesting and educational experience for all of us.
Primarily, we would like to implement a win condition. We would also like to improve the syntax for submitting responses and reading the questions. To make the game more interactive and competitive, we would want to add things like a more extensive GUI (so the user can see their position), more complicated mechanics such as power-ups, an achievement system, and leaderboards.