탐험노트

직전 글에서 게임 결과를 서버에 저장해야 한다고 언급했습니다.

 

서버는 쉽게 풀면.. 웹페이지를 띄우기 위한 또 다른 컴퓨터 같은 개념이라고 보시면 됩니다.

구체적으로는 DB서버가 되겠네요. 탐험가 정보와 탐험키트 정보를 가져올 거니까요.

혼자서 간단하게 즐길거면 굳이 서버에 데이터를 전송하는 과정은 없어도 됩니다.

일전에 예시를 들었던 간단한 웹RPG 게임처럼 말이죠

https://thetrepanier.github.io/jQuery-rpg/

 

 

[전투하기 - 준비 단계]

1. [서버] 현재 본인의 능력치를 기준으로 등급을 책정하고,

2. [서버] 본인 등급에 맞는 상대방을 매칭해서

3. [서버] 본인과 상대방의 정보를 사용자 화면에 출력합니다.

4. [서버] 전투 개시와 동시에 본인과 상대방의 정보를 가공하여 사용자 쪽으로 전달합니다.

 

[전투하기 - 전투 화면]

5. [사용자] 전투 중인 화면이 표시됩니다.

6. [사용자] 가공된 데이터를 별도로 전달받습니다. (화면에는 영향 없음)

7. [사용자] 사용 가능한 명령(일반 공격 / 스킬1 / 스킬2 / 스킬3)을 선택합니다.

8. [사용자] 명령과 직전에 전달받은 가공된 데이터를 서버에 전송합니다.

 

[전투하기 - 전투 처리]

9. [서버] 사용자가 입력한 명령과 현재 상태인 가공된 데이터를 전달받습니다.

10. [서버] 입력받은 명령을 기반으로 데이터를 처리합니다.

11, [서버] 처리된 데이터를 다시 가공하여 사용자 화면으로 전달합니다.

12. [서버] 입력받은 명령에 대한 그래픽/사운드 효과가 있다면 이때 같이 전달합니다.

13. [서버] 전투가 종료되었는지 여부도 체크하여 같이 사용자 쪽으로 전달합니다. 전투가 종료되었다면 레벨업을 할지, 메뉴로 돌아갈지 등의 화면 동작방식도 같이 전달합니다.

14. [사용자] 11에서 처리된 데이터에 따라 화면에 변동된 수치를 반영합니다. 12에서 입력된 효과에 맞춰 타격 표시나 타격음 등도 이때 재생시킵니다. 


 

[전투하기 - 전투 후 결과]

15. 만약 여기까지 전투가 종료되지 않으면 9~14를 계속 반복합니다. 

[사용자] 13에서 전달받은 대로, 레벨업 화면인지 메뉴로 돌아갈지를 처리해줍니다.

 

 

말로 길게 적긴 했는데... 혹시 감이 오시나요?? ㅎㅎㅎ

핵심은 위에 굵은 글씨로 표시한 가공된 데이터 입니다.

 

이 데이터가 있으면 아무리 사용자 화면에서 눈에 보이는 수치를 조작해도 게임에는 전혀 영향을 주지 않습니다.

(폴리매스에서 회원 여러분이 다양한 공격을 시도할 수 있다는 것을 깨달았거든요..ㅋ)

 

만약 이 가공된 데이터의 가공 방식을 알게 되어 사용자가 이 데이터를 직접 조작/가공하여 넣는다면, 그때는 뚫리겠습니다만...

 

그래서 보안이 필요하고 암호화 방식이 중요한 겁니다.

그래서 보안이 필요하고 암호화 방식이 중요한 겁니다.

(중요하니까 2번 강조했습니다.)

 

 

물론 나름의 보안과 암호화 기능으로 데이터를 가공할 겁니다. 전문적이진 않더라도요~

댓글 0
첫 댓글의 주인공이 되어 보세요!
  • 폴리매스 문제는 과학기술진흥기금 및 복권기금의 재원으로 운영되고, 과학기술정보통신부와 한국과학창의재단의 지원을 받아 수행된 성과물로 우리나라의 과학기술 발전과 사회적 가치 증진에 기여하고 있습니다.

  • ☎문의 02-6749-3911