[게임 개발 : 히어로 체스] 0. 게임 설명, WinAPI 프레임워크 작성

WIGWAG·2023년 1월 16일
0

히어로 체스

목록 보기
1/5

대학교 초반, c++에 대한 기초지식도 부족하던 때에 WinAPI로 게임을 하나 만들어봤다.

게임 이름은 히어로 체스!

그 당시에 지니어스라는 티비 프로그램에 푹 빠져있던 때라서
지니어스에서 방영한 게임 중 "중간달리기"와 "십이장기"라는 게임에서 감명을 얻고 이와 비슷한 두뇌로 겨루는 보드게임을 만들고 싶어졌다.

중간달리기는 각 플레이어마다 능력이 주어지고 능력을 사용하여 결승점에 도달하는 플레이어가 이기는 게임이다. 주어진 능력에는 재미있는 능력들이 많다.

중간달리기 게임에 대한 세부 정보


십이장기도 두뇌로 겨루는 전략 게임으로 게임방식은 간단하지만 방송에서 볼 때 심리전과 긴장감이 장난아니었다.

아무튼 이 두 게임에 영향을 받아 체스와 비슷하지만 말마다 능력이 존재하는 게임을 만들면 재미있겠다고 생각했다.

하지만 그당시에 코딩 실력이 부족하기도 했고 시간에 쫓겨서 몇 가지 기능은 구현이 안 된 채로 아쉽게 마무리되었다.

최근에 게임프로그래밍 패턴을 끝까지 정리하고 이 패턴을 실제 게임에 한 번 적용시켜 보고싶었다. 다른 그래픽 API보다 비교적 쉬운 WinAPI를 사용해서 만들면 좋을 것 같았고 이 때 생각난 것이 미완성으로 남은 히어로 체스 게임이었다.

대학교 입학하고 처음 만들어 본 게임프로젝트라 미련이 남기도 하고 부족한 부분을 개선해서 완성된 게임을 플레이해보면 왠지 재밌는 게임이 될 것 같아 이 프로젝트를 다시 만들어 보게 되었다.

게임 방식은 아래와 같다.

  1. 플레이어1이 먼저 게임을 시작합니다.

  2. 플레이어1은 말을 마우스 좌클릭으로 선택하여 파란사각형이 나타나는 곳을 또다시 좌클릭하면 말이 한 칸 이동됩니다.
    - 말은 7가지 종류(마법사, 사신, 닌자, 고스트, 전사, 디펜더, 기사)가 있는데 마법사, 사신, 디펜더, 기사는 상하좌우로만 이동시킬 수 있고 닌자, 고스트, 전사는 상하좌우와 대각선으로 이동시킬 수 있습니다.

  3. 만약에 이동할 수 있는 방향에 적 말이 있으면 빨간 사각형이 나타나고 그 방향으로 말을 이동시키면 적 말을 공격하여 제거할 수 있습니다.
    - 예외적으로 고스트는 적 말을 공격할 수 없고 디펜더는 공격을 못하고 적 말이 디펜더를 공격할 수도 없습니다.

  4. 이동이 끝나면 능력을 사용할 수 있습니다. 능력사용 턴에 그 말이 있는 칸이 노란 테두리로 변하고 능력에 알맞게 클릭을 해야 합니다. 그 상황에 능력을 사용 못하면 격자 안에 아무데나 클릭하면 능력사용 턴이 끝나고 차례가 넘어갑니다.
    - 마법사의 능력은 아군 말 중 하나를 클릭하면 마법사 말과 위치가 바뀝니다.
    - 사신의 능력은 한 칸 반경의 적 말을 클릭하면 적 말이 제거됩니다.
    - 닌자의 능력은 아군 능력을 카피하는 건데 구현이 복잡해서 구현하지 못했습니다.
    - 고스트의 능력은 상대진영의 끝에 도달하면 적 말을 클릭할 수 있는데 클릭하면 적 말을 클릭하면 적 말이 제거되고 고스트 말은 자신의 진영으로 리스폰됩니다. (리스폰 위치에 말이 없어야 됨) 만약에 적 말이 고스트를 공격하면 고스트는 공격한 적의 말로 바뀌고 자신의 진영으로 리스폰됩니다. 리스폰 시에 그 위치에 말이 있으면 고스트 말이 제거됩니다. 고스트는 적 말을 공격할 수 없습니다.
    - 전사의 능력은 이동 턴이 끝났을 때 한 칸 반경에 적 말이 있으면 그 말을 이동과 능력사용을 못하게 합니다. 클릭없이 한 칸 반경에 있는 적 말 모두에게 적용됩니다.
    - 디펜더의 능력은 상하좌우 중 하나에 말이 있을 때 그 말이 있는 방향의 칸을 클릭하면 그 위치로 건너뜁니다. 건너뛰는 칸 수의 제약은 없습니다. 디펜더는 적 말을 공격할 수 없고 자신이 공격당하지도 않습니다.
    - 기사의 능력은 한 칸 반경의 아군 말 중 하나를 클릭하면 기사가 이동한 방향으로 아군 말이 이동합니다.

  5. 차례가 넘어가면 적이 똑같은 방식으로 이동하고 능력사용을 하고나서 차례를 마칩니다.

  6. 각 플레이어의 진영에 성이 놓여있습니다. 말이 성을 공격하면 성이 불타게 됩니다. 불타는 성을 공격하면 게임이 끝나면서 상대플레이어의 성을 먼저 두 번 공격한 플레이어가 게임에서 승리하게 됩니다.

이제 비주얼 스튜디오를 열고

[새 프로젝트] -> [windows 데스크톱 어플리케이션] 을 통해 WinAPI 프레임워크를 생성한다.
그 후 창 크기를 고치고 TranslateAccelerator함수 호출 부분을 지운다.

profile
윅왁의 프로그래밍 개발노트

0개의 댓글