본문 바로가기
반응형

게임제작6

슈팅게임 제작하기 슈팅 게임 슈팅 게임은 고전적으로 아케이드 게임에서 가장 많이 개발된 장르이다. 슈팅 게임은 단순하면서도 액션감이 높아서 현재까지도 많은 슈팅 게임이 오락실용 게임으로 개발되고 있다. 여기서는 간단한 형태의 슈팅게임을 제작해보도록 한다. 그래픽 소스는 스타크래프트에 나오는 레이스와 뮤탈리스크를 가져왔다. 배경은 포토샵에서 간단하게 점을 찍어 제작해보았다. 적기는 무작위로 생성되어서 밑으로 내려온다. 레이스에서 발사할 수 있는 총알의 갯수는 한 화면에 4개로 한정지었다. 게임 데이터 변수 게임 데이터는 움직이는 객체마다 위치를 가지고 있어야 한다. 배경은 스크롤이 되기 때문에 현재 어디까지 스크롤되고 있는지 변수로 지정되어야 한다. 플레이어 기체인 레이스의 경우 현재 위치를 저장할 변수가 필요하다. 적기와.. 2020. 1. 2.
Brick Breaker 게임 제작하기 - 2 그래픽 소스 생성 요리를 만들 때 재료를 준비하듯이 그래픽 프로그램을 작성할 때에는 그래픽 소스라는 재료를 준비해야 한다. 일반적으로 그래픽 소스는 그림이라고 할 수 있겠지만, 게임에서 사용하는 그래픽 소스는 그림이라는 구성 요소 이외에도 한가지 요소가 덧붙여져야 한다. 게임의 출력부는 여러가지 그래픽 소스를 배치하는 작업을 하게 되는데, 이 때 배치하는 그래픽 소스들이 서로 겹치게 되는 경우가 많다. 이 때 알파값을 이용하여 혼합(blend)과정을 거침으로써 게임의 오브젝트가 보다 자연스럽게 표현된다. 알파값을 그림에 주기 위해서는 포토샵과 같은 전문 그래픽 도구가 필요하다. 여기에서는 간단한 예로 그래픽 소스를 어떻게 생성하는지에 대해 설명토록 한다. 제일 먼저 포토샵을 실행한다. 새로운 이미지 파일.. 2019. 12. 26.
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.
728x90