Pirate Sinker is a short game, created as part of a Game Physics assignment. I features custom physics, an upgrade system, and general polish.
The game makes use of custom physics for projectile movements. It is designed to be consistent and deterministic, which makes it more deploy-able across different platforms.
The codebase was designed to be modular with as few inter-dependencies as possible. Various systems communicate using signals and variables (that are scriptable objects). This in turn makes the game more scale-able and easier to modify or add new features.
A fully functional upgrade system where each upgrade is bound to a data asset. These assets contain the upgrade's descriptions, cost, conditions, and effects.