본문 바로가기
Level Up/Develop Games

[ 고전게임 만들기 1탄 ] TERIS

by ${코딩몬} 2017. 6. 30.


프로그램 명    : TERIS

제작 시기      : 2011년 4월

제작 언어      : C언어

제작 툴         : Visual Studio 6.0

제작 카테고리 : 클래식 게임

github 주소   : github.com/bnitech/Teris_2011



서론

고전 게임 중에 테리스 라는 게임은 아마.. 없을 것이다 ㅋㅋㅋ

TERIS는 게임을 만들때도 몰랐고, 최근에 내가 게임 개발 했던 것들을 리뷰해보며 알게 된.. 오타이다 ㅋㅋㅋ

그렇게 만들어진 게임의 이름이 TE [ T ] RIS인 TERIS다.



개발 동기

내 기억으로는 이 게임을 만들당시 '한게임 테트리스'가 우리 학교에서 한참인기였을 때이다.

학교 들어간지 얼마 안되서 C언어 스터디[각주:1]에 들어가게 되었는데 그때 C언어를 자세히 배우면서 만들어본 프로그램인것 같다.

( 6년전 일이라 내 기억이 맞는지는 잘 모르겠다. 아마 동기들이랑 같이하던 C언어 스터디에서 갠플로 만들었던거 같다)



게임 시작





< TERIS 프로그램은 원작 '한게임 TETRIS' 와 유사하게 만들려고 노력했다. >



프로그래머라면 알겠지만ㅋㅋ VS를 이용해서 C언어로 위의 사진처러 저렇게 출력되려면 무지 노가다가 필요하다. 코드를 캡처하자면,

아래 사진과 같이 printf() 노가다 작업을 해야한다.




< 위 사진의 _getch() 는 최근에 VS2015와 호환을 맞추기 위해 바꿨다. VS6.0애서는 getch() 사용했음 >



'TERIS' 라는 글자를 만들기 위해 특수문자 '┗ ┓┛┏┃━  ' 이런 특수문자와 공백을 이용해서 가로세로 줄을 맞춰가며 만들어야 하는 작업이 필요하다.


저 당시에는 배운건 C언어 뿐이고 그냥 흑백 콘솔 화면에 뭔가 좀 있어 보이는 효과를 넣을 수 없을 까 생각하다가 나온 아이디어다 ㅋㅋㅋ



게임 화면



< 원작 테트리스의 기본 룰을 기반으로 만들었다. >




조작방법

  • 블럭 좌우 움직임 : 키보드 좌우 방향키

  • 블럭 회전          : 키보드 상 방향키

  • 블럭 낙하          : 키보드 하 방향키

  • 블럭 고속 낙하    : 키보드 스페이스 바

  • 홀드[각주:2]           : 키보드 엔터 키

  • 홀드 아이템 구매 : 키보드 숫자키 1, 2, 3



기능

  • 제거한 line의 수 당 10점의 score 를 얻게 된다.

  • score로 홀드 아이템을 구매할 수 있다.

  • 연속해서 블럭 줄을 제거 할때 마다 연속횟수 만큼 combo의 수가 올라 갑니다.

  • combo가 높을 수로 score를 많이 얻는다.



규칙

  • 게임 화면에 쌓인 블럭이 제일 위 까지 올라오면 게임이 끝난다.



게임 플레이 화면




<홀드 아이템(5개) 사용하지 않은 상태>




< 홀드 아이템(4개) 사용된 상태 >




< 홀드 아이템(0개) 모두 사용한 상태 >




< 홀드 아이템을 score로 구매후 사용한 상태 (score 0점) >




느낀점

개발 당시 C언어 입문 단계 였음에도 저정도의 퀄리티 프로그램을 만든 다는 것에 모두들 놀라워 했으며 나 또한 뿌듯 했었다.

하지만 지금 되돌아 보면 정말 별거 아닌 프로그램이라 생각이 들며 C언어를 좀만 알면 만들 수 있는 프로그램이라는 것을 안다.

그래도 이때 이 게임을 만들 면서 C언어 공부에 많은 도움이 되었으며, 프로그래밍에 대한 흥미를 많이 가지게 해준 계기가 되었던 것 같다.



향후 수정 및 개발 계획

현재 이 게임은 이 수준에서 건드리지 않는 것이 좋아보인다.

하지만 여유가 된다면, 좀더 개선된 리메이크 버전의 TERIS를 만들어 볼 생각이며, 내가 예전에 개발한 모든 프로그램들을 오리지날 버전은 그대로 둔 상태에서 새롭게 리메이크 버전으로 모두 만들 어 볼 생각은 가지고 있다.

아마 게임 이름, 룰, 이미지는 유지한 체 코드의 가독성을 높이고 게임의 버그를 잡거나 기능들을 추가 시킬 것으로 예상하고 있다.

  1. 졸업 선배님들이 재학생들을 위해 주말마다 학교에 오셔서 C언어 코딩 연습을 시켜주셨었다. [본문으로]
  2. 현재 블럭을 Keeping 해두어 원하는 타이밍에 불러올수 있게 하는 기능이다. 한게임 테트리스 게임의 주요 재미 요소중 하나였다. [본문으로]