6 Commits

Author SHA1 Message Date
7eb9616337 Merge pull request 'main' (#4) from 20254236/homework5:main into 20254236
Reviewed-on: andrea/homework5#4
2026-04-21 23:37:57 +00:00
d5d200456f done 2026-04-21 18:12:19 +09:00
6f65c876a2 ready 2026-04-21 13:32:26 +09:00
0b9a3c4415 Ready 2026-04-21 13:29:50 +09:00
0570efcdfc test 2026-04-21 13:26:12 +09:00
9e96f5dcbf test 2026-04-21 12:16:09 +09:00
11 changed files with 133 additions and 41 deletions

133
PROPOSAL_20254236.md Normal file
View File

@@ -0,0 +1,133 @@
# Kakamora: C🥥c🥥nut Carvers
Haeri Kim (20254236) | [git.prototyping.id/20254236/homework5](https://git.prototyping.id/20254236/homework5)
### Table of Contents
- [Concept Overview](#concept-overview)
- [Core Mechanic: Carving](#core-mechanic-carving)
- [Progression System](#progression-system)
- [Tribe and Combat Phase](#tribe-and-combat-phase)
- [Win and Lose Conditions](#win-and-lose-conditions)
- [Key Controls](#key-controls)
---
## Concept Overview
> *Inspired by the Kakamora from Disney **Moana**. Tiny coconut warriors who go absolutely wild at sea.*
![Moana](assets/Moana.jpg)
A **first-person crafting and survival game** where you carve 🥥 coconuts into warriors, weapons, and tools. The better you carve, the stronger your tribe. Get enough crew together and they sail out to sea and then things get wild.
![Kakamora Warriors](assets/Kakamora.webp)
> *Visual tone ref: Kakamora from Moana (2016)*
---
## Core Mechanic: Carving
![Coconut](assets/Coconut-cutting.webp)
You see your **hands holding a knife**, cutting a coconut straight off the tree. Something similar to *Fruitninja.*
![Fruitninja](assets/fruitninja-1.jpg.webp)
### 🗡️ Knife Sharpness
Knife starts out **dull and slow**. Carving is a bit of a struggle at first.
Level up and the blade gets **sharper and snappier.**
```
bladeLevel = 1 -> slow drag, rough edges
bladeLevel = 5 -> smooth arc, clean cuts
bladeLevel = MAX -> one-swipe precision
```
### Facial Expressions and Accessories
How fast you carve changes what the Kakamora looks like:
| Carving Speed | Face Expression | Accessories |
|:---:|:---:|:---:|
| Slow | Blank stare | Plain coconut shell |
| Medium | Determined | Tiny painted markings |
| Fast | Fierce grin | War paint + bone trinkets |
| Ultra Fast | Battle-ready | Full armor + war crown |
---
## Progression System
1. **Start** - Grab a coconut off the tree (first-person knife action)
2. **Carve** - Shape it up. Carving speed decides warrior quality
3. **Level Up Knife** - Sharper blade = faster and cleaner carves
4. **Craft Arrows** - Once the tribe is big enough, start carving **poison arrows** for sea combat
| Name | Reference |
|:---:|:---:|
| Face | ![Face](assets/face.webp) ![Faces](assets/face2.png) |
| Arrow | ![Arrow](assets/arrow.png) |
```
if (tribeSize >= 10):
unlockPhase("ocean_voyage")
beginCrafting("toxic_arrows")
```
> **Toxic arrow carving** is its own minigame -- you need good timing or the poison goes to waste
---
## Tribe and Combat Phase
![Moana Ocean](assets/Moana.jpg)
### Setting Sail
Once you have **10+ Kakamora** carved and ready, the whole group **heads out to sea**.
Enemies start showing up.
### Ocean Battle
- Warriors fight with the **arrows you made**
- You keep crafting from the boat to resupply on the fly
### Retreat
If **more than half the tribe goes down** at sea:
```
if (survivors < tribeSize / 2):
triggerRetreat()
returnToLand()
// back to square one -> harvest new coconuts from trees
```
---
## Win and Lose Conditions
| Condition | Outcome |
|:---|:---|
| Tribe makes it through ocean combat | **Win** |
| Over half the tribe dies at sea | **Retreat** |
| Whole tribe wiped out | **GAME OVER** |
---
## Key Controls
All **keyboard-based**:
| Key | Action |
|:---:|:---|
| `W A S D` | Move / navigate |
| `Space` | Grab coconut from tree |
| `← →` | Carving stroke direction |
| `E` | Confirm / finish carve |
| `Q` | Switch to arrow crafting mode |

View File

@@ -1,41 +0,0 @@
# My Proposal
- Name: Tomas Horsky
- Student ID: 20256426
- Email: tomashorsky@kaist.ac.kr
- URL to forked repository: https://git.prototyping.id/20256426/homework5
## Table of Contents
- [My Proposal](#my-proposal)
- [Table of Contents](#table-of-contents)
- [The Game](#the-game)
- [Optional Features](#optional-features)
- [Implementation and Challenges](#implementation-and-challenges)
## The Game
I want to create an endless vertical platform jumping game, similar to [Doodle Jump](https://doodlejump-2.io/). The goal of the game will be to jump on small platforms and get as high as possible without falling down.
The game will be controlled only by moving left and right, jumping will be handled automatically by the game periodically. The "map" of the game will be endless, and will be generated on the go, so every game will have unique platform arrangements. The higher the player goes, the more special platforms will appear, and the game will get harder. After the player dies, the score (height) will be saved to a leaderboard and will also be displayed during future games as a reference line.
The types of platforms will be:
1. **Basic platform**
2. **Moving platform**
3. **Spring platform** (the player's next jump will be 3× higher)
4. **One-time platform** (disappears after one jump)
5. **Combined platforms** (moving spring platform, one-time moving platform, etc.)
## Optional Features
After implementing the base game, I may add some of the following features:
- **Power-ups** such as a jetpack (which boosts height) or an extra life
- **Monsters and shooting** monsters will spawn on platforms, and players will be able to shoot them by pressing the *up arrow*, monsters will kill the player by touching them
- **Cosmetics** players will be able to customize their character
- **Multiplayer** an option for two players on one PC competing against each other
- **Camera control** an option to control the game using a camera, which will track the player's hand movement to move left or right
## Implementation and Challenges
I want to learn [Svelte](https://svelte.dev/), so I will develop the game using it. From other features taught in class, I am planning to use the [p5.js](https://p5js.org/) library for rendering the game, event handling to get the player's input and definitely some higher-order functions.
I think the main challenge will be managing player movement and the upward movement of the game world so that everything feels smooth and responsive. Another challenge will be generating platforms in a way that makes the game progressively harder without becoming impossible.

BIN
assets/Coconut-cutting.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

BIN
assets/Coconut.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

BIN
assets/Kakamora.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
assets/Kakomora_face.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

BIN
assets/Moana.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

BIN
assets/arrow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

BIN
assets/face.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 611 KiB

BIN
assets/face2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 KiB