Season 01 - 16 첫 번째 미니 게임 설계!
🎮 Season 01 - 16 첫 번째 미니 게임 설계!
“드디어… 우리가 배운 모든 걸 하나로 합쳐보는 순간!”
코딩스타랩 교실 문이 열리자마자, 딕이 거의 뛰어들어왔다. “리온! 세이! 오늘 그거야? 첫 게임 만드는 날? 맞지? 맞지??”
세이는 웃으며 고개를 끄덕였다.
“응. 오늘은 진짜 만들어 본다.”
리온은 칠판 앞에 서서 말했다.
“좋아. 이제까지 뭐 배웠지?”
딕: “점프!” 세이: “충돌 판정.” 딕: “사운드!” 세이: “애니메이션과 리듬.” 딕: “점수!!! 콤보!!! 보상!!!”
리온: “그리고 마지막으로—— 패턴, 페이싱, 난이도, 성장 곡선.”
칠판에 이런 문장이 크게 적혔다.
“이제부터는 설명이 아니라, 완성이다.”
🧱 1. 오늘 만들 미니 게임의 기본 구조
리온은 미니게임의 전체 구성도를 그렸다.
- 플레이어: 파란 박스 (← Season 01의 상징)
- 조작: 점프 1개
- 장애물: 다양한 높이
- 패턴: 일정 간격 + 가끔 ‘예외 패턴’
- 점수: 진행 거리 + 장애물 피하기
- 사운드: 점프, 충돌, 콤보 효과음
- 애니메이션: 부드러운 점프 곡선
- 난이도: 속도 점진 증가
딕: “와… 이거 진짜 게임인데?”
세이: “이제까지 배운 모든 걸 조합하는 거네.”
리온: “그래서 이 회차가 중요해. 기본 틀을 만드는 순간부터, 게임은 갑자기 ‘살아 움직이는 느낌’이 나기 시작하거든.”
🏃 2. 플레이어 점프 만들기
let playerY = 200;
let velocity = 0;
let gravity = 0.4;
let isJumping = false;
function jump() {
if (!isJumping) {
velocity = -10;
isJumping = true;
playSound("jump");
}
}
function updatePlayer() {
playerY += velocity;
velocity += gravity;
if (playerY >= 200) {
playerY = 200;
isJumping = false;
}
}
딕: “드디어 점프에 사운드 들어가는구나… 이거 너무 신난다.”
세이: “부드러운 곡선으로 내려오는 것도 좋다. 보는 맛이 있어.”
리온: “이제 플레이어는 ‘움직이는 존재’가 됐다.”
🚧 3. 장애물 + 패턴 + 페이싱
리온: “이제 적의 ‘리듬’을 넣자.”
const pattern = [
1200, // 쉬운 구간
900,
700,
900, // 숨 고르기
600,
"special" // 예외 패턴
];
let patternIndex = 0;
let obstacleTimer = pattern[0];
function updatePattern() {
if (typeof pattern[patternIndex] === "number") {
obstacleTimer = pattern[patternIndex];
} else {
spawnSpecialObstacle();
}
patternIndex++;
if (patternIndex >= pattern.length) {
patternIndex = 0;
}
}
세이: “와… 이제 적도 우리처럼 호흡을 하는 느낌이다.”
딕: “‘special’ 구간에서 갑자기 높이 바뀌는 장애물 나오면 재밌겠다!!!”
리온: “맞아. 예측 70%, 놀람 30%. 그 비율 기억하지?”
❌ 4. 충돌 + 실패 + 사운드
function checkCollision() {
if (playerX < obstacleX + obstacleWidth &&
playerX + playerWidth > obstacleX &&
playerY + playerHeight > obstacleY) {
playSound("hit");
gameOver();
}
}
딕: “이 소리는… 내가 제일 듣기 싫은 소리다…”
세이: “하지만 꼭 필요한 사운드지. ‘여기서 실패했어’라는 확실한 신호니까.”
💯 5. 점수 + 콤보 + 보상
let score = 0;
let combo = 0;
function passedObstacle() {
combo++;
score += 10 * combo;
playSound("combo");
if (combo === 10) {
showMessage("🔥 10 COMBO!");
}
}
세이: “콤보가 올라갈 때마다 반짝거리는 효과 음 들어가면 진짜 재미있겠다.”
딕: “이제야 내가 좋아하는 그 ‘중독성 느낌’이 나온다!”
리온: “좋은 게임은 중독시키는 게 아니라 ‘계속 성장하는 기분’을 주는 거야.”
⚙️ 6. 난이도 증가
let speed = 5;
function levelUp() {
speed += 0.3;
}
세이: “조금씩 빨라지는 건 괜찮아. 너무 확 빨라지면 화나지만.”
딕: “어제 그 게임… 갑자기 속도 2배 됐어. 최악.”
리온: “그래서 우리가 만든 게임은 ‘조금씩’, ‘부드럽게’, ‘예상 가능한 성장’을 넣을 거야.”
🎯 오늘의 정리
- 점프 + 충돌 기본 움직임
- 패턴 + 페이싱 긴장과 완화
- 점수 + 콤보 + 보상 성장하는 재미
- 난이도 증가 플레이어와 함께 성장
- 사운드 + 애니메이션 감정과 생명력 부여
딕: “와… 이걸 다 합치니까 진짜 게임이네!”
세이: “이제부터는 디테일을 살려나가는 단계로 가야겠지.”
리온은 칠판에 마지막 문장을 적었다.
“Season 01 - 17 캐릭터 감정 & 표현 — 게임이 살아 보이는 순간”
딕: “와!!! 캐릭터 표정!!! 이건 내가 제일 좋아하는 부분!!”
세이: “다음 시간은 분명 재밌겠다.”
🌍 English Summary (≈500 words)
Season 01 - 16: “The First Mini Game — Assembling Everything We've Learned”
In this episode, the trio creates their first full mini-game using every concept learned so far—jumping, collision, scoring, combos, sound effects, pacing, patterns, difficulty scaling, and basic UI.
Leon guides them through designing the game loop, obstacle patterns, and smooth difficulty progression.
Sei offers insights on rhythm and emotional feedback, while Dick reacts excitedly to sound cues and combo rewards.
By the end, they have a complete prototype: a jump-and-avoid runner game with dynamic pacing, predictable-but-surprising attack patterns, and a satisfying progression system.
This marks a shift from “learning concepts” to “building real games,” leading into the next episode about character expression and animation.
MAKE · PLAY · DREAM.
© 2025 CodingStar Lab | MAKE · PLAY · DREAM | by endic
#코딩스타랩 #미니게임 #점프게임 #게임개발 #초등코딩 #중등코딩 #리온세이딕 #러너게임 #게임설계

Leave a Comment