이하 첨부된 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 블록 게임 제공 시스템의 네트워크 연결 상태를 보여주는 도면이다.
도 1에 도시된 바와 같이, 네트워크(200)를 통하여 연결된 복수의 사용자 클라이언트(100)로 마작 게임을 제공하는 블록 게임 제공 시스템(100, 이하 게임 시스템)은 인터페이스 서버(110), 게임 스트링 서버(120), 채널 서버(130), 게임 서버(140) 및 데이터베이스 서버(150)을 포함하며, 시스템 환경에 따라 각 서버들 중 소정 서버만을 선택적으로 포함할 수 있다.
여기서, 복수의 사용자 클라이언트(100) 각각은 네트워크(500)에 연결되어 블록 게임 제공 시스템(100)로부터 게임 어플리케이션(미도시)을 제공받을 수 있는 복수의 단말 장치로서, 데스크탑 PC, 노트북, 이동 전화기, PDA 및 MBS폰, 인터넷 접속이 가능한 텔레비전, 네트워크 게임기, 휴대용 게임기 등을 모두 포함할 수 있다.
게임 어플리케이션은 사용자가 실질적으로 게임을 진행할 수 있도록 하는 것으로서, 각 사용자 클라이언트(300)에 설치되는 프로그램이며, 게임 진행 시, 온라인 마작 게임을 위한 게임 패킷을 송수신하는 기능을 수행한다. 그러나, 게임 어플리케이션은 각 사용자 클라이언트(300)에 반드시 설치되어야 하는 것은 아니며, 별도의 어플리케이션이 없이 웹 브라우저(미도시)를 통해 제공될 수도 있다.
인터페이스 서버(110)는 사용자 클라이언트(300)가 게임 시스템에 접근할 수 있도록 인터페이스 역할을 하여, 각 서버를 통해 제공되는 다양한 정보들을 통신 규격에 맞게 변환 처리하여 다수의 사용자 클라이언트(300)에 제공하거나, 네트워크를 통해 사용자 클라이언트(300)로부터 전송되는 정보를 수신하여 각 서버로 제공하는 기능을 수행한다. 일반적으로 게임 웹 서버가 이에 해당할 수 있다.
게임 스트링 서버(120)는 시스템에서 필요로 하는 각종 데이터가 저장되어 있는 데이터베이스 서버(150)로부터 런칭 정보를 읽어 들여 사용자 클라이언트(300)로부터의 런칭 정보 요청을 처리하고, 채널 서버(140)는 사용자 클라이언트(300)로부터의 특정 게임에 개설된 채널 리스트의 요청을 받아 처리하며, 특정 게임에 대한 채널 및 방 접속 유지를 수행한다. 구체적으로 사용자가 선택한 게임 관련 채널과 채널별 게임 방 목록 등을 사용자에게 제공하고, 사용자 요청에 따라 채널별로 게임 방을 개설하기도 한다.
게임 서버(140)는 온라인 마작 게임을 실행하는 서버로, 온라인 마작 게임에 대한 관련 정보 및 게임 진행을 실행한다. 이를 위하여, 게임 서버(140)는 게임 맵 제공부(142), 게임 진행부(144)를 포함한다.
게임 맵 제공부는(142)는 다수의 게임 맵 중에서 사용자의 선택에 의해 마작 게임에 사용될 게임 맵을 사용자 클라이언트(300)에 제공하고, 게임 진행부(144)는 사용자 클라이언트로 제공된 게임 맵을 토대로 마작 게임을 실행하며, 사용자 클라이언트(300)의 게임 실행 동작에 따라 게임 맵의 소정 블록을 선택하고, 선택된 블록의 위치가 블록 제거 조건을 만족하는 경우 해당 블록을 제거한다. 이를 위하여 게임 진행부(144)는 도 2에 도시된 바와 같이, 매칭 판단부(1442), 블록 제거부(1444) 및 그룹 이동부(1446)를 포함한다.
여기서, 게임 진행부(144)는 게임 서버에 포함되는 것으로 설명하고 있으나 사용자 클라이언트(300)에 포함될 수도 있다. 사용자 클라이언트에서는 게임 애플리케이션(미도시)이 게임 진행부(144)의 역할을 수행한다.
이하에서는 게임 맵에 따른 실시예 별로 게임 맵 제공부(142) 및 게임 진행부(144)에 포함된 매칭 판단부(1442), 블록 제거부(1444) 및 그룹 이동부(1446)를 설명하기로 한다.
<제1실시예>
게임 맵 제공부는(142)는 복수개의 블록들로 구성된 제1그룹 및 복수개의 블록들로 구성되고 이동 가능한 제2그룹을 포함하는 게임 맵을 사용자 클라이언트(300)로 제공한다. 다시 말해, 고정된 블록들의 그룹인 제1그룹과 이동 경로를 따라 움직이는 블록들의 그룹인 제2그룹으로 구분된 맵을 제공한다. 따라서, 사용자로 하여금 새로운 경우의 수를 더 생각하게 하여 게임의 난이도도 증가시키면서 게임의 몰입도를 높일 수 있다.
여기서, 게임 맵 제공부(142)는 게임 맵에 제2그룹의 이동 경로 및 이동 위치가 표시할 수 있으며, 이동 경로 및 이동 위치는 장애물로 작용할 수 있다. 예를 들어, 도 3을 참조하면, 이와 같은 게임 맵은 복수개의 블록들로 구성된 제1그룹(410) 및 복수개의 블록들로 구성되어 이동 가능한 제2그룹(420), 제2그룹의 이동 경로(430) 및 이동 위치(440)를 포함하고 있는 것을 알 수 있다. 이때, 제1그룹 및 제2그룹에는 동일한 개수의 블록이 배치될 수도 있지만 서로 상이한 개수의 블록이 배치될 수도 있으며 서로 상이한 블록이 배치되는 경우 제1그룹 및 제2그룹의 크기 또한 서로 상이하게 될 것이다.
매칭 판단부(1442)는 제1그룹 또는 제2그룹에 포함된 블록들 중 제거 가능한 블록들 중 사용자 클라이언트에 의해 선택된 블록들이 블록 제거 조건을 만족하는지 여부를 판단하며, 블록 제거부(1444)는 블록 제거 조건을 만족하는 경우 게임 맵에서 선택된 블록들을 제거한다. 다시 말해, 제2그룹의 이동 경로 및 이동 위치는 장애물로 작용하기 때문에 제2그룹을 모두 제거한 경우 이에 대한 보상을 하는 것이다.
한편, 본 발명에서, 블록 제거 조건은 게임 맵에서 사용자 클라이언트로 의해 선택된 제1블록과 제2블록을 잇는 최단 경로가 2번 이하로 꺽이는 경우 제1블록 및 제2블록이 제거되는 것으로, 일반적인 마작 게임에서의 블록 제거 조건과 동일 한 바 자세한 설명은 생략하기로 한다.
여기서, 블록 제거부(1444)는 제2그룹에 포함된 모든 블록들이 제거되면, 게임 맵에 표시된 제2그룹의 이동 경로 및 이동 위치를 제거한다.
그룹 이동부(1446)는 제1그룹 또는 제2그룹에 포함된 블록들 중 제거 가능한 블록이 존재하지 않거나 사용자 클라이언트로부터 제2그룹의 이동 요청이 수신되면 제2그룹을 게임 맵 상에서 미리 설정된 이동 위치들 중 어느 하나의 위치로 이동시킨다. 다시 말해, 제거 가능한 블록이 존재하지 않는 경우 자동으로 제2그룹을 이동시키거나 사용자 클라이언트의 선택에 의해 제2그룹을 이동시킨다.
여기서, 그룹 이동부(1446)는 제1그룹 및 제2그룹 중 적어도 하나를 제자리에서 시계 방향 또는 반시계 방향으로 회전시킬 수 있다. 다시 말해, 제2그룹의 현재 위치에서 더 이상 제거 가능한 블록이 존재하지 않는 경우, 제2그룹의 위치를 바꾸어 블록을 제거하게 하기 위해서이다.
또한, 그룹 이동부(1446)는 게임 맵에 표시된 제2그룹의 적어도 하나의 이동 위치 중 어느 하나의 선택에 의해 제2그룹을 해당 위치로 이동시킬 수 있다. 예를 들어, 도 4를 참조하면, 이동 가능한 블록들의 제2그룹(420)은 특정 이동 위치(450)의 클릭에 의해 해당 위치로 이동하는 것을 알 수 있다.
그리고, 그룹 이동부(1446)는 제2그룹의 현재 위치에서 제거 가능한 블록이 존재하지 않고, 이동 위치들 중 어느 하나의 위치에 제2그룹이 위치할 때 제거 가능한 블록이 존재하는 경우, 제2그룹의 이동에 대한 안내 정보를 제공할 수 있다. 다시 말해, 현재 위치에서 제거 가능한 블록이 존재하지 않는 경우에, 다른 위치로 이동시켜 제거 가능한 블록이 존재하는 경우에는 제2그룹의 이동에 관한 정보를 제공한다. 예를 들어, 도 5에 도시된 바와 같이, 제2그룹의 이동에 관한 정보를 제공할 수 있다. 도 5에서 슬라이드란 용어는 본 발명의 제2그룹을 의미한다. 일 실시예에 있어서 제2그룹의 이동에 관한 정보만 안내하는 것이 아니라 제거 가능한 블록이 존재하는 이동 위치에 대한 정보도 함께 안내할 수 있을 것이다.
이때, 이동 안내 정보는 팝업의 형태로 제공될 수 있으며, 이러한 팝업은 사용자 클라이언트의 화면 상에서 약 1~2초 동안 디스플레이되다가 사라지도록 할 수 있다.
또한, 그룹 이동부(1446)는 제2그룹의 모든 이동 위치에서 제거 가능한 블록이 존재하지 않는 경우, 제1 및 제2그룹 상에 배치된 모든 블록들의 재배열에 대한 안내 정보를 제공할 수 있다. 즉, 현재 위치에서 제거 가능한 블록이 없으며, 다른 모든 이동 위치로 옮겨도 제거 가능한 블록이 없는 경우에 블록의 위치를 재배열하도록 하는 정보를 제공한다.
<제2실시예>
게임 맵 제공부(142)는 장애물 블록에 의해 서로 분리된 블록들의 제1그룹 및 제2그룹과 제1그룹 및 제2그룹을 하나의 공간으로 이어주는 제1가상 영역 및 제2가상 영역을 포함하는 게임 맵을 사용자 클라이언트로 제공한다. 다시 말해, 일반적으로 장애물 블록에 의해 서로 분리된 제1그룹과 제2그룹 사이에서는 블록 제거 조건이 적용되지 않으나, 본 발명의 일 실시예에 따른 가상 영역이 포함된 게임 맵에서는 분리된 제1그룹과 제2그룹은 가상 영역을 통해 하나의 공간에 있는 것으로 간주되기 때문에 제1그룹에 포함된 블록과 제2그룹에 포함된 블록은 블록 제거 조건의 적용이 가능하다.
일 실시예에 있어서, 게임 맵 제공부는(142) 제거됨에 따라 장애물 블록의 가려진 문양을 디스플레이 되도록 하거나 제거시키는 제1블록 및 제2블록을 게임 맵에 포함시킬 수 있다.
예를 들어, 도 6에 도시된 바와 같이 장애물 블록(550)에 의해 공간이 분리된 블록들의 제1그룹(510) 및 제2그룹(520)은 원래 블록 제거 조건이 적용되지 않으나, 본 발명의 일 실시예에 따른 게임 맵에서의 제1가상 영역(530) 및 제2가상 영역(540)에 의해 블록 제거 조건의 적용이 가능하다. 따라서, 사용자는 경우의 수를 더 생각하면서 게임을 진행해야 되므로 게임의 흥미를 더욱더 느낄 수 있다.
매칭 판단부(1442)는 제1그룹 또는 제2그룹에 포함된 블록들 중 사용자 클라이언트에 의해 선택된 블록들이 제1가상 영역 및 제2가상 영역을 통해 블록 제거 조건을 만족하는지 여부를 판단하며, 블록 제거부(1444)는 블록 제거 조건을 만족하는 경우 게임 맵에서 선택된 블록들을 제거한다. 예를 들어, 도 6을 참조하면, 제1그룹에 속한 제1블록(560)과 제2그룹에 속한 제2블록(570)이 제1가상 영역(530) 및 제2가상 영역(540)을 통해 블록 제거 조건을 만족하는 것을 알 수 있다.
일 실시예에 있어서, 블록 제거부(1444)는 제거됨에 따라 장애물 블록의 가려진 문양을 디스플레이 되도록 하거나 제거시키는 제1블록 및 제2블록이 사용자 클라이언트에 의해 선택되어, 블록 제거 조건을 만족하는 경우 제1블록 및 제2블록을 제거하면서 장애물 블록의 가려진 문양을 디스플레이하거나 장애물 블록을 제거 할 수 있다.
<제3실시예>
게임 맵 제공부(142)는 적어도 하나의 장애물 블록으로 구성된 장애물 블록 그룹 및 제거됨에 따라 장애물 블록 그룹이 제거되도록 하는 제1블록 및 제2블록을 포함하는 게임 맵을 사용자 클라이언트로 제공한다. 따라서, 사용자는 게임을 좀 더 손쉽게 진행하기 위해 장애물 블록 그룹이 제거되도록 하는 제1블록 및 제2블록의 제거에 집중하게 되기 때문에, 사용자로 하여금 게임의 흥미를 증가시킬 수 있다. 여기서, 제1블록 및 제2블록은 제거됨에 따라 장애물 블록 그룹의 가려진 문양을 디스플레이 되도록 할 수도 있다.
일 실시예에 있어서, 게임 맵 제공부(142)는 게임 맵에 장애물 블록 그룹을 자물쇠 모양의 문양으로 표시하며, 제1블록 및 제2블록은 키 모양의 문양으로 표시할 수 있다. 또한, 자물쇠 모양의 문양은 장애물 블록 그룹 전체에 표시하거나 일부에만 표시도 가능하다. 예를 들어, 도 7을 참조하면, 장애물 블록 그룹(610)은 자물쇠 모양의 문양이 표시되어 있으며, 장애물 블록(610)이 제거되도록 하는 제1블록(620) 및 제2블록(630)은 키 모양의 문양으로 표시된 것을 알 수 있다.
매칭 판단부(1442)는 게임 맵에 포함된 블록들 중 사용자 클라이언트에 의해 선택된 상기 제1블록 및 제2블록이 블록 제거 조건을 만족하는지 여부를 판단하여, 블록 제거부는 블록 제거 조건을 만족하는 경우 게임 맵에서 제1블록, 제2블록 및 장애물 블록 그룹을 제거한다.
여기서, 블록 제거부(1444)는 제1블록 및 제2블록이 블록 제거 조건을 만족 하는 경우에만 제1블록 및 제2블록을 제거한다. 이는, 장애물 블록 그룹을 제거하는 것이 게임의 진행에 아주 중요한 요소이기 때문에 제1블록 및 제2블록이 블록 제거 조건을 만족하는 경우가 아닌 특수 아이템 등을 이용해서 삭제되지 않게 하기 위해서이다.
일 실시예에 있어서, 블록 제거부(144)는 제1블록 및 제2블록이 블록 제거 조건을 만족하는 경우, 장애물 블록의 가려진 문양을 디스플레이 할 수 있다.
이하에서는 도 8 내지 도 9를 참조하여 본 발명의 실시예에 따른 블록 게임 제공 방법을 설명하기로 한다.
도 8은 본 발명의 일 실시예에 따른 블록 게임 제공 방법을 설명하기 위한 플로우차트이다.
먼저, 복수개의 블록들로 구성된 제1그룹 및 복수개의 블록들로 구성되고 이동 가능한 제2그룹을 포함하는 게임 맵을 사용자 클라이언트로 제공한다(S710). 여기서, 게임 맵은 제2그룹의 이동 경로 및 이동 위치가 표시될 수 있으며, 이동 경로는 장애물로 작용할 수 있다.
다음으로, 제1그룹 또는 제2그룹에 포함된 블록들 중 사용자 클라이언트에 의해 선택된 블록들이 블록 제거 조건을 만족하는지 여부를 판단하여(S730), 판단 결과, 블록 제거 조건을 만족하는 경우, 게임 맵에서 선택된 블록들 제거한다(S750). 이 때, 제2그룹에 포함된 모든 블록들이 제거된 경우에는 게임 맵에 표시된 제2그룹의 이동 경로 및 제2그룹의 이동 위치를 제거할 수 있다. 이는 제2그룹의 이동 경로 및 이동 위치가 게임 맵에서 장애물로 작용하기 때문이다.
다음으로, 소정 조건을 만족하는지 여부를 판단하여(S770), 소정 조건을 만족하는 경우 제2그룹을 게임 맵 상에서 미리 설정된 이동 위치들 중 어느 하나의 위치로 이동시킨다(S790). 여기서, 소정 조건은 제1그룹 또는 제2그룹에 포함된 블록들 중 제거 가능한 블록이 존재하지 않거나 사용자 클라이언트로부터 제2그룹의 이동 요청이 수신된 경우이다. 다시 말해, 제거 가능한 블록이 존재하지 않는 경우 자동으로 제2그룹을 이동시키거나 사용자 클라이언트의 선택에 의해 제2그룹을 이동시킨다. 한편, S770 단계에서 소정 조건을 만족하지 않는 경우, S730 단계 내지 S750 단계를 반복적으로 수행한다.
일 실시예에 있어서, 제1그룹 및 제2그룹 중 적어도 하나를 제자리에서 시계 방향 또는 반시계 방향으로 회전시킬 수 있다.
또한, 제2그룹을 이동 위치들 중 사용자 클라이언트에 의해 선택된 이동 위치로 이동시킬 수 있다.
여기서, S790 단계 이전에 제2그룹의 현재 위치에서 제거 가능한 블록이 존재하지 않고, 이동 위치들 중 어느 하나의 위치에 제2그룹이 위치할 때 제거 가능한 블록이 존재하는 경우, 제2그룹의 이동에 대한 안내 정보를 제공할 수 있다. 즉, 현재 위치에서 더 이상 제거 가능한 블록이 존재하지 않기 때문에 다른 위치에서 블록을 제거하도록 힌트를 제공한다.
또한, S790 단계 이전에 제2그룹의 모든 이동 위치에서 제거 가능한 블록이 존재하지 않는 경우, 제1 및 제2그룹 상에 배치된 모든 블록들의 재배열에 대한 안내 정보를 제공한다. 다시 말해, 제2그룹의 어떤 위치에서라도 더 이상 제거 가능 한 블록이 존재하지 않는 경우에는 남아 있는 블록들을 재배열하여 게임을 진행하도록 힌트를 제공한다.
도 9는 본 발명의 다른 실시예에 따른 블록 게임 제공 방법을 설명하기 위한 플로우차트이다.
먼저, 장애물 블록에 의해 서로 분리된 블록들의 제1그룹 및 제2그룹과 상기 제1그룹 및 제2그룹을 하나의 공간으로 이어주는 제1가상 영역 및 제2가상 영역을 포함하는 게임 맵을 사용자 클라이언트로 제공한다(S810). 일 실시예에 있어서, 제거됨에 따라 장애물 블록의 가려진 문양이 디스플레이 되도록 하는 제1블록 및 제2블록을 포함할 수 있다.
다음으로, 선택된 블록들이 상기 제1가상 영역 및 제2가상 영역을 통해 블록 제거 조건을 만족하는지 여부를 판단하여(S830), 블록 제거 조건을 만족하는 경우 게임 맵에서 선택된 블록들을 제거한다(S850).
일 실시예에 있어서, 제거됨에 따라 장애물 블록의 가려진 문양이 디스플레이 되도록 하는 제1블록 및 제2블록이 사용자 클라이언트에 의해 선택되어 블록 제거 조건을 만족하는 경우, 선택된 제블록 및 제2블록을 제거하면서, 장애물 블록의 가려진 문양을 디스플레이할 수 있다.
도 10은 본 발명의 또 다른 실시예에 따른 블록 게임 제공 방법을 설명하기 위한 플로우차트이다.
먼저, 적어도 하나의 장애물 블록으로 구성된 장애물 블록 그룹 및 제거됨에 따라 장애물 블록 그룹이 제거되도록 하는 제1블록 및 제2블록을 포함하는 게임 맵 을 사용자 클라이언트로 제공한다(S910). 여기서, 장애물 블록 그룹은 자물쇠 모양의 문양을 포함하며, 제1블록 및 제2블록은 키 모양의 문양일 수 있다.
다음으로, 게임 맵에 포함된 블록들 중 사용자 클라이언트에 의해 선택된 제1블록 및 제2블록이 블록 제거 조건을 만족하는지 여부를 판단하여(S930), 블록 제거 조건을 만족하는 경우 게임 맵에서 제1블록, 제2블록 및 장애물 블록 그룹을 제거한다(S950). 여기서, 제1블록 및 제2블록은 블록 제거 조건을 만족하는 경우에만 제거될 수 있다. 일 실시예에 있어서, 사용자 클라이언트에 의해 선택된 제1블록 및 제2블록이 블록 제거 조건을 만족하는 경우 장애물 블록 그룹의 가려진 문양을 디스플레이 할 수도 있다.
한편, 상술한 블록 게임 제공 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다. 이때, 컴퓨터로 판독 가능한 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 한편, 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터로 판독 가능한 기록매체에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 한편, 이러한 기록매체는 프 로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다.
또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
한편, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.
그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.