Niccolo Pucci
// Programming + Design
"Ocean Survival" - Java Game
Project Info:
Title "Ocean Survival"
Course IAT 265 - Multimedia Programming For Art And Design
Role Programmer
Description
In this assignment, I was tasked with creating a fish survival game using the standard Java graphics library. The assignment objectives included use of Object-Oriented Programming, inheritance, polymorphism, key-based interactions and data structures. Over the course of two weeks, I was required to submit both a milestone and a final deliverable.
Final Deliverable - Demo
Design Process - Step 1

Step 1:
In the first step of my iterative process, I wrote the underlying structure of the game (in a JFrame and JPanel). After this, I implemented a fish (superclass) and defined its base traits and behaviors, such as movement and swimming animations.
Design Process - Step 2

Step 2:
In the second step, I created the enemy fish of the game (subclass of Fish), and determined their appropriate behavioral patterns (simple AI). Enemies were (pseudo) randomly generated in scale, color, speed, and spawn position. Off-screen boundary checking and a respawn regulation were also implemented. This marked the assignment milestone.
Design Process - Step 3

Step 3:
In the third step, I implemented the player''s fish (subclass of Fish) and added keyboard interactions (events and event-listeners), which allowed for keyboard input, enabling player control their character.
Design Process - Step 4




Step 4:
In the forth step, I added game states, designed the game menus, and added a HUD (Head-Up Display) to keep track of player stats.
Design Process - Step 5

Step 5:
In the fifth and final step, I wrote a UML diagram that modeled the entire design of the game.
Results
Conclusion:
In the end, my final deliverable functioned well, and met almost all of the assignment specifications. The only specification it failed to meet was adding decorative details to the player fish. Because the player fish was consistently growing in size, I experienced scaling issues with the decorations inherited from the base fish class.
To fix this, I would have had to redesign the fish decoration mechanism. Unfortunately, due to project time constraints, I was unable to successfully add this feature.
From this assignment, I realized that I had not been writing code as efficiently as I could have. As a result, I was unable to extend some minor parts of the program. In addition, I also learned how to better organize/document code.
Overall, the project was a great learning experience, and was a lot of fun to work on. I am happy with how well the game turned out.
Contact
GitHub