Python에서 Physics까지: 24시간 안에 Chrome Dino Clone을 만든 방법 (Scaler YIIC Task 5)

발행: (2026년 1월 5일 오후 10:12 GMT+9)
3 min read
원문: Dev.to

Source: Dev.to

AI에서 게임 개발까지

Python 및 AI 개발자(그리고 고등학교 12학년)로서 저는 주로 데이터 파이프라인과 백엔드 로직을 다룹니다. Scaler Young India Innovation Challenge (YIIC 6.0) 과제 5에서는 Unity Engine을 사용해 상징적인 Chrome Dino Run 게임을 재현하라는 과제가 주어졌습니다. 이를 위해 평소 사용하던 기술 스택에서 Unity 6 (LTS)와 2D Core 템플릿으로 전환해야 했습니다.

핵심 구성 요소

  • DinoRigidbody2D(중력)와 BoxCollider2D(충돌)를 가진 스프라이트.
  • Ground"Ground" 태그가 지정된 정적 오브젝트로, Dino가 점프할 수 있는지를 판단합니다.
  • Enemy – 왼쪽으로 이동하는 키네마틱 바디를 가진 빨간 삼각형 스파이크.

가장 어려웠던 부분은 물리와 로직을 다루는 것이었으며, 특히 이중 점프나 의도치 않은 비행을 방지하는 것이 핵심이었습니다.

점프 로직

// Simple Jump Logic
if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
{
    rb.velocity = Vector2.up * jumpForce;
    isGrounded = false;
}

스크립트는 CompareTag를 사용해 바닥 태그를 확인한 뒤에만 점프를 허용합니다.

스포너 로직

끝없이 적을 생성하기 위해 Spawner.cs 스크립트를 만들었으며, Time.deltaTime을 활용합니다. 몇 초마다 화면 가장자리에서 새로운 적 프리팹을 인스턴스화합니다.

// The Spawner Logic
void Update()
{
    timer += Time.deltaTime;
    if (timer >= spawnRate)
    {
        SpawnEnemy();
        timer = 0f; // Reset timer
    }
}

물리 튜닝

처음에는 Dino가 “떠다니는” 느낌이 강했습니다—공중에 오래 머물고 제어하기 어려웠죠. 움직임을 빠르고 반응성 있게 만들기 위해 다음과 같이 조정했습니다. 이는 원래 Chrome 게임과 일치합니다:

  • Gravity Scale: 3으로 증가.
  • Jump Force: 7로 설정.

결론

이 과제는 엔지니어링 원칙이 분야를 초월한다는 것을 보여주었습니다. Python으로 AI를 다루든 C#으로 Unity를 다루든, 핵심은 큰 문제(게임)를 작고 해결 가능한 논리 블록(중력, 충돌, 루프)으로 나누는 것입니다.

과제 5 완료! 다음 단계: 최종 제출.

#GameDev #Unity #StudentDeveloper #CodingJourney

Back to Blog

관련 글

더 보기 »

RGB LED 사이드퀘스트 💡

markdown !Jennifer Davis https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%...

Mendex: 내가 만드는 이유

소개 안녕하세요 여러분. 오늘은 제가 누구인지, 무엇을 만들고 있는지, 그리고 그 이유를 공유하고 싶습니다. 초기 경력과 번아웃 저는 개발자로서 17년 동안 경력을 시작했습니다.