# Kakamora Game - Individual Project


- Name: Haeri Kim
- Student ID: 20254236
- Email: kimhaeri@kaist.ac.kr
- URL of the git repository: https://git.prototyping.id/20254236/kakamora-game.git 
- Check out the Demo: https://youtu.be/b40nqw1cudM

---

### [About the Game]
Inspired by Disney's Moana, players craft their own army of coconut warriors (Kakamora). The journey begins at the carving station, where you shape each warrior by dragging your mouse across a coconut as if wielding a knife. The speed of your strokes determine the warrior's defensive power. Once you've carved a crew of 7 warriors, your ship sets sail across the open sea.From a shadowy cave along the coast, enemies throws rocks at your ship, threatening to set it on fire. Each warrior must rise to defend the ship in turn.

### Controls:
Arrow keys — move left and right along the deck
Spacebar — raise your shield and strike the incoming rock

The more precisely you time your defense and the more accurately you connect with each rock, the higher you get your score. 

### Main Classes used in code :
The game is built in a single `sketch.js` using p5.js. Here are the main classes:


| Class | Role |
|---|---|
| `Rock` | A rock thrown at the player's warriors during the battle. It flies in an arc, grows bigger as it approaches. |
| `Particle` | A tiny flying chip that appears when the player slashes a coconut. |
| `ImgParticle` | A spinning sprite effect that also pops out during coconut slashing. |
| `WakeParticle` | A small foam dot left behind the ship as it sails. |


---

Libraries used:
- p5.js
- p5play
- Matter.js
- GSAP

---

I used AI for building this game project and here are the list of services I used.

Image and sound sources:
- For Image generation, I used Nano Banana and chatGPT.
   - Prompt: I want to use this as a p5play animation frame sequence. Create a series of images that can be used consecutively so that the character appears to be moving. 
   ![Img](./assets/reference/sequence1.png)
   ![Img](./assets/reference/sequence2.png)

- Sound sources from https://mixkit.co/free-sound-effects/ 

Claude Code Example Prompts:
- using these frame sequences image, animate the idle animation using p5play library.
- Award different points depending on how close the sword swing comes to the rock.
- Calculate defense power by awarding different points based on the speed of the sword swing.
- Implement an animation of the coconut falling from the tree to the ground, and have it land in the center of the screen.
