code



Unlike a lot of my peers in university, my history with programming is relatively brief; the first real experience I had with coding was an intro to Python class I took in my senior year of high school - only about 3 years ago. This has its drawbacks, of course, but it does give me the unique chance to document and display my journey from a near-beginner to a full-fledged software engineer. While I obviously won't talk about every line of code I have ever written, I would like to show off some of the projects I have worked on, both academic and personal, in additin to giving brief discussions of my thoughts during and after the development cycle. A more complete list of my work can be found on my Github.

This is a living webpage; I will add projects as I deem them fit to be documented. The links below will take you to the section devoted to each respective completed project:


War Card Game Simulator (Spring 2021)

This is me, Benjamin! Funnily enough, War was actually my favorite card game while growing up due to its incredibly simple yet engaging premise (for a child, at least). As the game is pure chance and requires zero decision-making from the players, it is possible for a computer to simulate a match or set of matches in its entirety in mere moments, which is exactly what I had to do for the midterm of my data structures and algorithms class.

While this project - if you could really even call it that - is incredibly straight-forward in both its design and capabilities, it was the first thing I coded that I was actually proud to have made. Up until this point I still had not really developed a sense of enjoyment for coding, but after seeing my program take only a minute to play through a thousand matches of a game that normally takes dozens of minutes to play, I finally began to understand the beauty of computer science. In addition, this project also helped me internalize a lot of the knowledge regarding data structures and Object-Oriented Programming (OOP) concepts I had learned during my first year of Computer Science.



Acquire Board Game (Fall 2021)

The semester-long group assignment for my Advanced OOP class, this project had me and two other students developing a game none of us had even heard of before. What made this project unique was that it was meant to give us some introductory practices used in the real world; my team planned out how we were going to build the game by creating UML diagrams, wrote unit tests to see if our code was proficient, and tediously wrote in-depth comments for every method & class to ensure the code was well-documented. The project also familiarized me with important development tools, namely Git and Gradle.

For my part, I was mostly involved in writing parts of the actual game logic and unfortunately wasn't particuliarly involved for the GUI creation (created in JavaFX). All the same our project turned out well and earned our team a pretty good grade - maybe an A-? I forget. As part of the assignment, our team needed to make a presentation video to demo the project, which I have posted below if you care to listen to a more in-depth explanation and showcase of the game.

I thoroughly enjoyed this assignment largely due to the camaraderie & productivity of my group, and felt as though the project drastically improved my "soft" skills such as project management and ability to work within a team.



Chess Engine (Fall 2021)

This is me, Benjamin!

Developed during the winter break following my Fall 2021 semester, this project was really just a way for me to get more experience creating projects outside of the school enviroment. The project itself is self-explanotory; a digital recreation of chess complete with all pieces and the rules associated with them - including castling and en passant. While the game is neat, I can't really take much credit for it as I mostly just followed a series of videos on Youtube. Still, while nearly all of the design and implementation had already been done for me so long as I watched the videos, following along I still learned some good techniques on programming in Java and in an OOP enviroment.



Essence Toolkit (Spring 2022)

Yet another semester-long group assignment, once again I and a group of fellow students were tasked with planning, developing, testing, and deploying a Java-based application. This time, however, we were required to employ Agile practices into our development process such as having weekly Scrum meetings and maintaining a Kanban board. The project was also supposed to be worked on via iterative development cycles as opposed to the more waterfall-based approach we had done in the Acquire project.

The project itself was a set of tools based around the Essence Standard, which is a framework for discussing the theory of software engineering that attempts to uncomplicate the software development process through the use of models, practices, and methods (if that sounds far too abstract for practical use, then you and I would be in agreement). In addition to the technologies used in the Acquire project, this assignment also made use of Javalin, TextFX, Hibernate ORM, and Docker.

This is me, Benjamin!

My primary contribution was the Essence Practice Creator, which was essentially a diagram-maker used to construct graphs like the one shown on the left, and export them as .png files. I was content with this, as the practice creator gave me the GUI experience I had largely missed in the last project. A stand-alone version of the Essence Practice Creator can be downloaded here if you are interested (it is a .jar file; you must have Java installed on your machine for it to work).

Ultimately the scope of the project was a little too much for a group of four to handle in only two or so months, so the project is a little janky in some areas and downright unfinished in others. Nevertheless our professor was impressed with what we were able to produce in the given time and gave us an A- on the assignment.



Text Quest Adventure Game (Spring 2022)

This is me, Benjamin! This is me, Benjamin! This is me, Benjamin! This is me, Benjamin!

While the previous two projects had given me some experience with Java GUI development in JavaFX, I still had not yet used the older and more native Swing toolkit. In attempt to remedy this I watched a series of Youtube tutorials and created a simple text adventure game that introduced me to basic Swing concepts. Over the next couple of months in my free-time I would make several more updated versions, each with more GUI and gameplay features than the last. This included sound effects, status indicators, shops, random-chance encounters, a basic storyline, and more. The final version was completed shortly after the end of my Sophomore year in college, and takes roughly 15 or so minutes to complete from start to finish.

The Docks - the first scene in the game The Death Screen The How to Play Screen Meeting the Town Lord

This is by far the project that I have had the most fun creating, largely because it involved a great deal of creative design and media-manipulation. There is just something about being able to make independent development and artistic choices that result in the project being more satisfying to work on. While most of the illustrations are not mine and are just simply taken from the web (this was a personal project with no monetary goals, after all), all of them are edited in order to fit the art style of the game. The sound effects had to be modified as well; some of them hardly even sound like their original form anymore.

If you wish to play the game, you can download a .exe file here. You can also find the source code as well as the older versions of the game on my Github account.



Personal Website (Summer 2022)

For whatever reason, the Computer Science courseline contains ZERO courses dedicated to web development. I realized it might be a problem if I graduated with a CS degree and still didn't understand HTML, so I took it upon myself to enroll in the few web development courses ISU does offer (all listed as Informatics classes). Following my Spring 2022 semester I knew the basics of front-end development but I still lacked practical experience in designing a website from scratch. After seeing some friends of mine create on their own websites(mcdelius.com & obeliskcollective.com) I decided I would try to make one as well as a pet project to work on over the Summer.

As this site is mostly a series of static webpages, most of the 'code' is just HTML and CSS - though a little Javascript is used here and there. The site is currently hosted through Github Pages as it is both free and convenient to use, though in the future I may switch to another method of web-hosting as Github Pages does not support the use of server-side languages such as PHP. This means I have to use third-party tools in order to have a working contact form and an email associated with my website's domain-name, which is something I'm not super fond of. Additionally, creating a basic login system with a mailing list, a feature I hope to implement in the future, would also require server-side support. All the same, creating a website without the help of a website builder furthered my proficiency in the foundational skills needed for front-end web development.



D&D Website (Fall 2022)

This section is not yet finished. Please check again at a later time.



2D Tank Game (Spring 2023)

This section is not yet finished. Please check again at a later time.