I have loved the Legend of Zelda series since I was a child. This specific mini game was featured in The Wind Waker, and I thought it was the perfect opportunity to showcase my skills from school while making a game that I like.

What it does

The Legend of Zelda: The Wind Waker had a minigame called sploosh kaboom! where there are 3 squids on a 7 X 7 grid that must be shot down by cannons. You only have 24 shots to shoot the squids however, so make every shot count! This is an interactive game that runs on the Linux terminal

The rules of the game are there is 1 four squid, 1 three squid, and 1 two squid that must all be shot down in 24 shots. No two squids must ever intersect one another and all must be placed on the grid. The game starts with an empty 9 X 9 grid and 3 random locations for where the squids might be. I increased the size to make it more challenging.

How I built it

Using my knowledge from school, I was able to build this game in C and run it on the Linux terminal. I wanted to apply the various concepts I learned from my CS classes this semester such as runtime analysis and heap allocations to pointers, so plenty of pointers and dynamic allocations were made for this project.

Challenges I ran into

Definitely GitHub. My team member and I had trouble getting version control to work in our favor, so we instead decided to use one account and work on the same machine. However, I would say that GitHub was a vital resource.

Another problem is with C pointers. I would get segmentation faults for various reasons running the game, and the biggest reasons why were that pointers were not declared with enough storage allocated to them (resulting in illegal accesses) or no storage allocated to them at all!

Another problem was the generation of the squids being broken. The coordinates for these squids are supposed to be adjacent to each other, but many of these squids had coordinates that were spaced far away from each other on the grid. The fix for this problem was simple, but it was so small and pernicious that I had to take a step back and really consider how I was generating the various squids in the first place

Accomplishments that I'm proud of

I'm proud of the fact that I used concepts from my CS classes to make a game that I like and am passionate about.

I'm proud of the fact that I stuck through the arduous development phase of this game and managed to see it through to then

I'm proud of the fact that my code is commented well and has good form

I'm proud of the fact that I was able to see the fullest extent of my motivation and work ethic, and was able to practice my leadership skills (since I was the head of development for this project)

What I learned

The biggest thing I learned when making this game was perseverance. There were times I spent blankly looking at the screen on non working code and wondered if this was the right project for me to work on; however, I still persevered and managed to create a game that I feel proud of.

Another thing I learned on this project was the various applications of pointers, and how I can use them to improve my programs in terms of efficiency and reliability. I learned in class that pointers are powerful but dangerous tools; however, I learned that when you take the time to learn them and eventually master them, they can become your greatest asset in programming tools and allow you do do many things that you wouldn't be able to do in other languages that do not have pointers.

Another thing that I learned on this project was how to break apart a complex program into simple components and work on accomplishing each task one at a time.

What's next for Sploosh Kaboom!

I might come back to this project in the future and make a fully fledged GUI for this. Since this project was made in under 24 hours, running it in the terminal seemed to be the easiest way for me to deliver this game.

Built With

Share this project: