Web Dev/Game Development :: 게임개발

JavaSciprt로 3D 게임을 만들어보자 (1/?)

HJPlumtree 2022. 7. 31. 19:36

JavaScript로 간단한 3D 게임을 만들며 배운 점

 

 

'JavaScript로 3D 게임을 만들어보자'는?

  • js13KGames에 참가하며 기록합니다
  • js13KGames는 JavaScript로 13kb 이하의 게임을 만드는 대회입니다.
  • Theme 발표를 기준으로 한 달 뒤에 종료됩니다. 
  • 3번째 참가고, 이번에는 간단한 3D 게임을 만들 예정입니다.
  • 갓 취업한 웹 프론트엔드 개발자로 주로 주말에만 작업합니다

 

 

현재 상황은

테마 발표까지 2주가 남았고, 어떤 게임을 만들지 기획하고 있습니다.

주말 프로젝트이고 한 달 안에 만들어야 하기에,

찾아본 게임 기획중에서 꼭 필요한 사항이라는 것들을 정리해보고 있습니다.

 

 

간단한 게임 기획

테마 발표 전 -> '프로토타입' 기간,

테마 발표 후 -> '프로덕션' 기간으로 구분했습니다.

 

프로토타입 기간에는 다음과 같은 내용을 살펴봅니다

  • 여러 게임 플레이로 아이디어 얻기
  • 아이디어를 테스트하며 검증하기
  • 중심 아이디어 정하기
  • 적용할 기능 구현
  • 동작이 잘 하는지 테스트하기
  • 추가할 기능을 정리하기
  • 프로덕션 개발 준비

 

테마 발표가 되면 스토리 작성을 할 것이기 때문에,

프로토타입 기간에는 여러 게임을 해보며 아이디어를 얻는 시간을 가지고 있습니다.

게임의 주요 기능을 정하고, 테바 발표 전까지 프로토타입으로 기능을 구현하려고 합니다.

 

 

이번 js13KGames 목표

작년에도 참가했는데 그 때의 목표는,

결과물을 제 시간에 제출하는 참가에 의의를 두었습니다.

 

이번 목표는,

100위 안에 들어서 티셔츠를 받자입니다.

 

그래서 작년 순위권(1~20위) 게임들을 플레이 하며 중점을 어디에 둘지 생각해봤습니다.

당연한 말일 수 있는데, 정말 게임 느낌이 나는게 중요합니다.

1. 캐릭터의 움직임이 부드럽다

2. 게임적인 요소가 있다(간단한 게임을 다르게 해주는 특징)

3. 사운드

4. 아트가 찰떡이다(픽셀, 3D 아트 등)

 

작년까지만 해도 색다른 게임 아이디어를 생각하는데 시간을 많이 썼다면,

이번에는 부드러운 움직임, 깔끔한 렌더링, 사운드 등 필수 조건 만족이 목표입니다.

 

 

주요 기능

앞서 언급했듯이 간단한 3D 게임을 만들기로 정했습니다.

중요 기능은 이렇게 정했습니다.

  1. 맵 그리기
  2. 키보드(이동, 점프)
  3. 충돌(벽, 코인)

 

위 3가지가 가능하면 다음의 클리어 조건 모두 만족할 것으로 보입니다.

  • 목적지 도달
  • 적을 피해서 조건 달성
  • 생존 기록 측정

 

 

보고 따라하자

고맙게도 인터넷에 여러 리소스가 있습니다.

그 중에 xem의 Mini 3D Platformer을 분석하고 원하는 코드로 바꿔보려고 합니다.

 

 

다음 포스트 예고

다음 포스트에서는 위의 리소스를 분석해보고,

입맛에 맞게 변형을 해보는 이야기를 담을 것 같네요