한국어 Translate to English (by Google) 日本語に翻訳します (by excite.co.jp)       작성자: Kyuseo의 게임 프로그래밍 이야기 :: http://www.soonsin.com | 트위터 @kyuseo

싱글게임 보상금 시스템 구현을 통한 프로그램 개발자와 팀장의 마인드

 

작성일 : 2010-03-09, 작성자 : 채경석, http://a.tk.co.kr

 

개요..

 

저희 아이폰 클럽맞고 온라인 게임에는 오프라인에서도 실행이 가능한 혼자 하기가 존재합니다.

 

혼자 하는 싱글게임의 목적성을 올리기 위하여 보상금 시스템과 싱글 온라인 랭킹시스템이 존재합니다.

 

보상금은 게임 승리금액 1점당 1원이 증가되고 온라인게임 아이디로 리워드할 수 있습니다.

 

 

이러한 시스템 개발의 가장 큰 노하우는

 

- 게임 서버와 접속하지 않는 클라이언트와 데이터 베이스의 연동 기술

- 클라이언트 및 웹 주소 조작 및 크래킹 방지에 관한 방법론

 

으로 간단하지만 자칫 초보 개발자가 심각한 고민 없이 개발을 한다면 무한한 머니 증식 등 게임 서비스를 중단 할 만큼의 치명적인 버그를 만들게 됩니다.

 

 

구현의 핵심내용

 

- 클라이언트 조작 방지

- 무한 충전 금지

- 클라이언트는 믿지 않는다.

- 모든 데이터는 조작이 가능하다.

 

라는 개념에서 시작을 하여 많은 예외상황을 생각하고, 테스트하고 구현해야 합니다.

 

 

하지만

이러한 시스템들이 게임의 핵심 중요사항이 아니라면 100% 완벽을 취하다가 배보다 배꼽이 커지는 문제점을 발생하게 되지요.

기능은 80점의 가치가 있는데 90%의 완벽을 취하려면 5일이 걸리지만 100%의 완벽을 기하려면 10일 이상의 작업 소요시간이 됩니다.

 

따라서

80점의 가치5일에 해당될 정도의 중요도를 가지고 있는지, 10일에 해당하는 중요도를 가지고 있는지 정확한 판단을 해야 하고, 또한 구현하지 않은 10%의 내용이 전체 게임 시스템을 저해시키거나, 치명적인 약점이 되지는 않는지를 심각하게 고민하고 판단해야 합니다.

 

 

예외 처리는 어떻게

 

예외처리 결정 사항

- 서버 측에서 1일 1회만 지급이 가능하도록 데이터베이스를 구성하고, 오늘 지급 여부를 검사합니다.

- 클라이언트에서 프로그램 실행 1회당 1회만 지급 버튼 사용이 가능하도록 처리합니다.

- 100만원 이상 모여야 지급이 가능하도록 설정합니다.

- 웹 온라인을 활용하여 보안 통신을 합니다.

- 클라이언트에서 사용 가능한 아이디인지를 검사하고 서버 측에서 등록된 아이디인지 검사한다.

- 서버 측에서 최대 보상금 금액 초과 여부를 검사한다.

- 기타 등등

 

예외처리 포기 사항

- 클라이언트에서 날짜별 지급 처리여부를 관리를 한다.

(모바일 기기의 특성상 실행과 재실행, 아이디 등록의 번거로운 과정이 있기 때문에 포기하였다.)

 

- 클라이언트에서 점수 조작을 막기 위하여 Password Int 를 사용한다.

(모바일 기기의 특성상 조작이 어렵기 때문에 포기하였다. 단 1000만원 제한을 걸려있다.)

 

 

결론

 

이와 같이 작은 시스템 개발이지만 자신의 능력과 기술, 노하우를 최대한 이용하여 많은 생각을 통한 예외를 분석해내는 능력을 가져야 비로소 문제가 없는 프로그램을 개발할 수 있습니다.

 

물론 실력 경험이 중요하지만 대충 대충 만들어보자 라는 프로그램에 대한 무성의한 태도는 결국 자신의 한계와 능력 개발에 선을 그어 한 단계 더 뛰어난 개발자가 될 기회를 포기하는 행동임을 항상 염두 하여 더 좋은 프로그램과 코드를 만들기 위해 노력해야 합니다.

 

 

별첨) 싱글게임 기획안

 

아래와 같은 시스템 기능 기획이 먼저 수반되어야 합니다.

 

 

 

구현된 모습

 

사용자가 보상금을 획득하고 보상금 받기를 클릭합니다.

 

 

보상 받을 온라인 게임 아이디를 입력합니다.

 

 

서버와 접속하여 보상금을 지급합니다.

핵심은 변경 전 후 금액을 표현하는 것이고, 서버 측에서는 보안에 최대한 유의하는 것입니다.

변경 전, 후 금액을 표시하여 센스 높은 정보를 제공하였습니다.

 

 

오늘 이미 지급된 경우에는 추가지급을 하지 않습니다. (서버 측)

 

 

프로그램 실행 1회당 1회만 사용이 가능합니다. (클라이언트 측)

 

 

100만원 이하는 지급하지 않습니다.




qrcode
이 글의 QR 코드입니다.


이 저작물은 비영리, 출처:Kyuseo 프로그래밍 이야기 :: http://www.soonsin.com 표시하면 스크랩 하실 수 있습니다.

별도로 출처 표시가 되지 않은 저작물은 Kyuseo에게 저작권이 있습니다.   ★──━━ 행복한 하루 되세요 ━━──★

BLOG main image
93년부터 프로그래밍을 독학한 게임 프로그래머 kyuseo의 프로그래밍 정보와 게임 개발 강좌를 주로 다룹니다. by kyuseo

카테고리

분류 전체보기 (623)
누리게임즈 (4)
Kyuseo 소개, 잡담 (161)
만든 게임 및 프로그램 (98)
-----------★----------- (0)
개발자 팁 (65)
스마트폰 게임 개발 (47)
C++ 개발 (119)
------------------------♣ (0)
컴퓨터 활용 팁 (98)
게임, 서적, 문화 소감 (31)
------------------------♥ (0)
전체 : 2,890,415
오늘 : 28 어제 : 144