1 Commits

Author SHA1 Message Date
Mak
150e5424b5 proposal done 2026-04-21 13:13:18 +09:00
5 changed files with 82 additions and 101 deletions

BIN
IMG_9134.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 KiB

BIN
IMG_9135.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 KiB

View File

@@ -1,101 +0,0 @@
- [My proposal](#my-proposal)
- [Basic Information](#basic-information)
- [Video Game: nag a ram](#video-game-nag-a-ram)
- [Game Mechanics](#game-mechanics)
- [Technical Implementation](#technical-implementation)
- [Use of AI](#use-of-ai)
# My proposal
## Basic Information
- Name: Yu Min Choi
- ID: 20220899
- [Repository](https://git.prototyping.id/20220899/homework5)
## Video Game: nag a ram
_**nag a ram**_ is an anagram game that helps English speakers improve problem-solving skills and build vocabulary.
> An anagram is a word or phrase made by using the letters of another word or phrase in a different order. For example, _silent_ and _listen_ are anagrams. _triangle_, _alerting_, _integral_, and _relating_ are all anagrams of one another.
>
> \*_nag a ram_ is an anagram of _anagram_.
### Game Mechanics
**How to Play**
1. A base word appears on screen. The player can choose the number of letters beforehand or leave it random.
2. Drag the letter tiles to rearrange them into a valid anagram before time runs out. The time limit scales with word length — longer words get more time.
3. Press **Complete** to submit the answer.
4. If correct, the player earns points and can save the word to a personal vocabulary list for later review.
5. If incorrect or time runs out, one life is lost. The player has 5 lives per session. Once all lives are spent, there is a 5-minute cooldown before the game can be restarted.
**Constraints**
- Word: Single word only
- Time: Scales with word length
- Lives: 5 per session
**Scoring**
- Base points: Awarded per correct answer, scaled by word length
- Streak bonus: Multiplied by consecutive correct answers
- Easter egg: Double points for palindrome answers
**Interface**
The letter tiles are designed to resemble wooden blocks, giving the game a tactile, physical feel reminiscent of classic word games like Scrabble.
![pic](assets/scrabble.jpg)
### Technical Implementation
[**Random Word API**](https://random-word-api.herokuapp.com/)
The base word is randomly generated using the Random Word API with a length parameter.
For example,
https://random-word-api.herokuapp.com/word?length=9 returns:
```json
["triangle"]
```
[**Anagramica API**](http://anagramica.com/api)
Once base word fetched from the Random Word API, the Anagramica API is used to verify at least one valid anagram (excluding the base word itself) exists. If the player's submission matches any word in the array, the answer is validated.
For example, http://www.anagramica.com/best/:triangle returns:
```json
{
"best": ["alerting", "altering", "integral", "relating", "triangle"]
}
```
**Word module**
- `fetchRandomWord(length)`: Fetches a random word from the Random Word API with the specified or random length
- `fetchAnagrams(word)`: Fetches valid anagrams from the Anagramica API
- Uses `.filter()` to exclude the base word and ensure at least one valid anagram exists
- `validateAnswer(answer, anagrams)`: Checks if the player's input matches a valid anagram
- Uses `.includes()` to search the anagram array
- `isPalindrome(answer)`: Checks if the given word is a palindrome
- Uses recursion to compare letters inward from both ends
**Game class**
Manages state: score, timer, lives, streak
- `addScore(wordLength)`: Calculates and adds points based on word length, applies the streak multiplier, and doubles points if the palindrome check passes
- `startTimer(wordLength, onTick, onTimeUp)`: Starts a countdown scaled to word length
- `stopTimer()`: Stops the timer, either when the player submits an answer or when time runs out
- `deductLife()`: Removes a life and resets the streak
- `isGameOver()`: Checks if all lives have been used
**Vocabulary class**
## Use of AI
AI was used to paraphrase and refine the written content of this proposal.

82
PROPOSAL_20240935.md Normal file
View File

@@ -0,0 +1,82 @@
# My proposal
My name is Makhabbat, and I am a sophomore at KAIST doing my Bachelor's degree in Industrial Design (ID: 20240935). The URL to the forked repository: [git.prototyping.id](https://git.prototyping.id/20240935/homework5).
<!-- I want to make atypical infinite runner game usually made for ADHD children. When I was in China, I had a chance to play ADHD-DTx game made for ADHD children and proven to improve their condition. You can't download or even find information about it outside the research paper, so I wanted to make one for myself, cause I drift a lot and would like to train my attention somehow.
This is an extreme multitasking game, requiring you to do various things at once and fast.
The game has 5 lanes instead of typical 3, when game starts there will be text presented about which things you have to be collecting - various things will be falling along the game so you will have to hit only the ones you were instructed to at the beginning of the game, also one in a while you will have to pass through 'gates' and you're supposed to pass through the one that is answer to the question given several seconds before, you also have to gather basic awards along the lanes and avoid basic obstacles.
In the original game that we played, there is an EEG headset that goes along the tablet that records the level of attentiveness to track, however I am thinking it can be just a something that gets reduced when you make too many mistakes.
I want to make it using three.js, because my reason for taking this course is to eventually be able to use three.js. -->
# NeuroRunner: A Multitasking Cognitive Training Game
NeuroRunner is an atypical, **cognitively demanding** _infinite runner_ inspired by digital therapeutics (DTx) designed for children with ADHD.
In Zhejiang University Summer Program, I had the chance to play a clinically tested ADHD-focused game that significantly improved sustained attention, but the **game isnt publicly available** and information about it exists only inside [research papers](https://pubmed.ncbi.nlm.nih.gov/41490776/).
<img src="./IMG_9134.jpg" width="45%">
<img src="./IMG_9135.jpg" width="45%">
This project is my attempt to recreate that idea for myself — as someone who often drifts and wants a way to actively train attention through gameplay.
The result is an extreme multitasking runner built with three.js, designed to overload and strengthen attentional control, working memory, and task-switching.
# Core Concept
NeuroRunner is not a typical runner with 3 lanes — it uses 5 lanes, faster pacing, and continuous task switching.
Players must constantly track multiple rule sets at the same time, rewarding precision and penalizing mind-wandering.
The goal is to maintain cognitive engagement.
# Gameplay Description
1. Five-Lane Movement
- move between 5 horizontal lanes instead of the standard 3.
- forces higher spatial attention.
2. Instruction Phase
At the start of each run:
- The player is shown a **type of target item they must collect**.
- Throughout the game, objects fall randomly on the screen.
- Players must collect only the instructed items and avoid irrelevant ones using the **hit putton** on the right.
This trains selective attention and working memory
3. Cognitive Gate Questions
Every now and then:
1. A question appears (simple math or logic).
2. Several seconds later, gates along all 5 lanes appears ahead.
3. The player must pass through the gate corresponding to the correct answer.
This trains delayed **recall, task switching, and decision-making under pressure**
4. Rewards & Obstacles
- Basic pickups that increase score
- Standard obstacles that must be avoided
5. Attentiveness Meter
The original DTx game used an EEG headset to track attentiveness in real time.
For this project, I replace that hardware with a mistake-based attentiveness meter.
The meter decreases when:
- You collect wrong items
- You miss target items
- You pass through the wrong gate
- You hit obstacles
When the meter reaches zero → game over.
This approximates attentional lapse tracking without requiring EEG hardware.
# Library Used
I've been wanting to learn three.js since previous semester, so I want to try learning it, using this project.
# Challenges
Since this is a multitasking game, there will be a lot of things going on at once, I can't even imagien how I am gonna do that.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB