본문 바로가기
반응형

Lecture18

Brick Breaker 게임 제작하기 - 1 벽돌깨기 게임 개요 벽돌깨기 게임은 아케이드 게임으로 오랜 역사를 가지고 있다. 초창기 컴퓨터 게임은 단순한 로직을 사용합니다. 벽돌깨기 게임은 그만큼 단순하기 때문에, 처음 게임을 개발하는 사람이면 한번쯤 개발을 시도해볼만한 좋은 게임입니다. 여기서는 기존에 나왔던 게임의 모티브를 따라서 게임을 제작했습니다. 알카노이드(ARKANOID)은 1986년 타이토라는 게임 소프트웨어 회사가 만든 게임입니다. 당시 컴퓨터나 콘솔 게임기의 성능이 대단하지 않았지만, 벽돌깨기 게임을 즐기기에는 충분했었던 듯 합니다. 워낙 스테이지도 많고, 스테이지 격파 방식이었고, 벽돌을 깰때마다 떨어지는 특수 아이템으로 부가적인 기능을 적용할 수 있었지만, 여기에서는 본연의 벽돌깨기 기능만 구현토록 합니다. 벽돌깨기 게임에서는 .. 2019. 12. 24.
Reversi 게임 제작하기 - 3 이제 컴퓨터가 돌을 놓기 위해서 게임트리를 작성하고 그에 따라서 돌을 놓는 로직이다. 이 부분의 로직은 매우 복잡하고, 알파-베타 가지치기를 효율적으로 사용하기 위해서 자기호출 함수를 사용치 않았다. #defineMINVAL (-1000) #defineMAXVAL (1000) #defineMAXDEPTH(20) unsigned GetOptimal(Gameboard &board, unsigned turn, unsigned maxdepth, unsigned method) { unsigned nodenum = 0; Gameboard boards[MAXDEPTH]; unsigned slot[MAXDEPTH]; unsigned optindex[MAXDEPTH]; int score[MAXDEPTH]; unsigne.. 2019. 12. 22.
Reversi 게임 제작하기 - 2 오델로 게임 오델로(Othello) 게임은 바둑, 장기, 오목 등과 마찬가지로 유명한 보드 게임이다. 오델로 게임은 다른 말로 리버시(Reversi)라고도 불린다. 이 게임은 1800년대에 영국에서 리버시라는 이름으로 만들어졌고, 1970년대에 일본에서 리버시라는 게임이 존재하는지 모르고 세익스피어 작품의 오델로 이름을 따서 현대적 룰을 갖춘 게임이 만들어졌다. 오델로 게임의 규칙 오델로 게임을 가로 8칸, 세로 8칸의 정방형 사각형이 있는 게임판에서 게임을 한다. 오델로에는 총 64개의 돌이 있고, 이 돌은 한쪽은 하얀색, 한쪽은 검은색으로 이루어져 있다. 처음 시작하면 보드 중앙에 4개의 흑과 백돌을 번갈아 배치하게 된다. 돌을 놓을 수 있는 곳은 자신의 색 돌 사이에 적어도 1개 이상의 상대편 돌이.. 2019. 12. 19.
Reversi 게임 제작하기 - 1 게임 트리 게임이론의 소개 게임이론(Game theory)은 자신의 이득을 극대화하기 위해서 수학적 분석 방법을 사용하는 기법이다. 게임이론은 경제학에서 많은 발전을 이루었고, 게임에서는 인공지능을 구현하기 위해서 사용한다. 게임이론을 알기 위해서는 몇가지 예를 통하여 이해하는 것이 좋다. 몬티홀 문제(Monty hall dilemma)는 잘못된 확률 상식을 발생시킬 수 있는 좋은 예이다. 몬티홀은 퀴즈에서 우승한 사람을 대상으로 상품을 고르도록 한다. 세개의 문이 있는데, 이 세개의 문중에 하나에는 비싼 스포츠 자동차와 다른 두개의 문 뒤에는 염소가 있다. 결국 우승자는 스포츠 자동차를 뽑기를 원한다. 단순하게 선택한 문을 열어서 상품을 확인한다면, 3개중에 하나에만 상품이 있기 때문에 확률은 \(\f.. 2019. 12. 19.
Snake Bite 텍스트 게임 제작하기 - 2 스낵바이트 게임 소개 이번에 작성해볼 게임은 추억의 게임인 스낵바이트 게임이다. 과거 추억의 게임이지만, 스낵바이트 게임은 게임 프로그래밍을 처음 접하는 초급 프로그래머가 도전해보기에 적당한 소재인 듯 합니다. 스낵바이트 게임은 간단한 규칙(Rule)을 가지고 있다. 뱀(Snake)을 조절하여 화면상에 있는 사과를 많이 먹는 게임이다. 단 주의할 것은 뱀이 자신을 물거나 벽에 부딪쳐서는 안된다. 뱀은 계속 전진하며, 사용자는 키보드로 방향만 전환할 수 있다. 뱀은 시간이 지나거나 사과를 먹게되면 계속 길이가 길어지며 속도가 빨라지게 되어 게임의 난이도가 높아진다. 아래 그림과 같이 뱀이 돌아다닐 수 있는 사각형의 영역이 있다. 뱀은 @를 머리로 가지게 했고, 몸체는 채워진 사각형으로 그렸다. 사과는 ♡로.. 2019. 12. 11.
Snake Bite 텍스트 게임 제작하기 - 1 게임을 제작하는 전체적인 구조는 대부분의 게임에서 비슷한 구조로 작성된다. 대부분의 게임은 사용자의 입력에 따라서 게임을 진행하며, 어떤 입력을 받았는가에 따라서 게임이 일찍 끝나기도, 또는 늦게 끝나기도 한다. 게임의 전체적인 진행을 순서도로 표시하면 대략 다음과 같이 구성될 수 있다. 게임이 시작하게 되면 게임초기화부에서는 게임을 진행하기 위한 여러가지 상태변수들을 초기화하게 된다. 모든 프로그램은 유한상태기계(Finite State Machine)으로 표현할 수 있는데, 게임도 예외일 수 없다. 게임초기화에서는 상태변수들을 초기화하는 것 이외에도 화면출력에 사용할 그래픽 자원들을 파일로부터 얻어오게 된다. 사용자 입력부는 키보드, 마우스, 조이스틱 등 게임에서 게임을 조작하기 위한 도구들로부터 데이.. 2019. 12. 10.
728x90