Keys vs Zombies banner

Overview

Keys vs Zombies was created as part of a CS2212 group project where the assignment was to build a typing game. Our group chose a Plants vs. Zombies-inspired direction and focused on creating a complete game experience with menus, popups, progression, and a strong visual theme.

My Role

I was primarily responsible for designing and implementing the menus and popups in JavaFX. I also created wireframes, worked on the visual flow of the project, and contributed to presentation material like the demo video and supporting documentation.

Project Screenshots

A few screens from the project and menu system.

What the Project Included

Menu System

Login, dashboard, level selection, settings, tutorial pages, parental controls, and popup flows built around a consistent interface.

UI Structure

Wireframed screens, menu transitions, and layout planning with a strong focus on making the game feel complete and visually consistent.

Gameplay Direction

A typing-based zombie game concept with progression, levels, and support systems wrapped in a more polished front-end experience.

Team Feedback

Comments from group member evaluations at the end of the project.

Simon Angarita Diaz

“Across this project, Ben demonstrated extremely strong overall performance and was one of the most valuable contributors on the team. A major strength of Ben's work was his reliability, as he was the most dependable team member in the group and consistently stepped up to pick up slack whenever parts of the project needed improvement or additional attention. In the design documentation, Ben created all of the wireframes for the program, using Figma creating the sprites, menus and all pictures that I personally used to make the gameplay. His contribution allowed me to make the game look its best and keep the theme consistent. In the testing documentation and demo video, Ben was responsible for creating the demo video as well as the main page and introduction sections on GitLab, making sure important project materials were completed and presented properly. His final implementation and delivery contributions were also significant. He created the README file, designed and implemented all of the menu GUIs in JavaFX, integrated menus for features like account storage, login functionality and more. He also kept the GitLab repository updated with meaningful commits and was responsible for recording meeting minutes throughout the semester, which showed strong organization and accountability. Ben upheld the team contract by attending every meeting, completing tasks on time, communicating consistently, and contributing more than the minimum expected workload for the project."

Vincent Do

“Ben has by far been the MVP during this project, taking on a large workload at each milestone and delivering quality content. He did a great job on the wireframes for the design documentation. He also took on the burden of learning the GUI library JavaFX and implementing it. He created all the screens based on his wireframes and did a great job at ensuring they all worked together. He was also in charge of creating the demo video and made sure it covered all the requirements that we needed. On top of all that, he attended every team and TA meeting while upholding his part of the team contract. One of Ben's strengths is his work ethic and consistency. For each milestone throughout this course, he has finished his work and was able to help others cover what tasks they couldn't finish."

Kieran Pollock

“Ben's overall performance on the project was very good, he did all his work on time, and he also made sure all the work was done on every milestone and filled in the gaps that were missed by us. He attended every meeting and offered valuable insight. Ben also did a lot on the final project, where he designed and implemented all of the menu GUIs. and integrated logic menus to support features such as user account storage, login functionality, parental controls. Ben fulfilled his team contract commitments, and he was quick with his responses in our group chat, which was very helpful in our communication. His comments in his part of the code were also done well and useful. His work on the demo video was also done well, and he also was the one who was submitting everything to Kritik [evaluation software] which was done without issue. One of Ben's strengths was that he was good at coordinating the group during each milestone, he planned out what work each of us were going to be doing and what needed to be done."

What I Learned

Keys vs Zombies was my first real experience working on a larger software project as part of a team. CS2212 is a software engineering course built to simulate real-world group development, and this project was my first time having to plan, build, revise, and present something at that scale with other people. It gave me experience with team coordination, dividing work, managing deadlines, and making sure different parts of the project fit together into one final product.

Looking Back

Another major part of the experience was learning JavaFX from scratch. Neither me or my group members had worked with it before, so building the project meant figuring out the framework while actively using it to create a complete game. That challenge made the project especially valuable, since it gave me experience learning new tools quickly, adapting as problems came up, and building something functional even when the whole team was starting from zero.