강좌게시판

제목 [게임서버] API 명세서 정의 및 컨트롤러 코딩
글쓴이 ci세상 작성시각 2015/02/18 12:50:03
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 23783   RSS
이번 강좌는 서버개발자가 API명세서를 만드는 일도 해야 하는 부분입니다.

왜? 이걸 서버 개발자가 하지요? 기획자들이나 클라이언트 개발자들은 아마도 안할것이고 못할것입니다.^^

기획서를 보고서 게임서버개발자는 머리속에 게임을 가상 시뮬레이션 할 수 있어야 보다 명쾌한 API문서가 나오는것같습니다.

클라이언트 개발자에게 API문서를 전달함으로써 서버 / 클라파트가 각자 업무에 집중하여 좋은 게임이 출시되는것 같습니다.

1. API명세서 만들기
첨부파일 엑셀 참조
미리 기획서대로 장면(씬)별로 기능동작들을 API로 정의하게 됩니다.

2. 스트링정의하기
기획서에는 대부분 모션별 멘트들이 정의되어 있습니다. 
해당 부분들을 스트링에 정의하게 됩니다.
<?php
$lang["battle_title"] = "배틀명";
$lang["battle_max"] = "배틀인원";
$lang["battle_skill"] = "스킬정보";
$lang["battle_start"] = "배틀이 시작되었습니다.";
$lang["battle_stop"] = "배틀이 종료되었습니다.";

3. 컨트롤러구성
API별 기능들을 컨트롤러에 기본적인 구성은 해둡니다.
기획서별 로직처리들은 충분히 가능할것입니다.
 
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Battle extends CI_Controller {

    public function __construct() {
        parent::__construct();       
        $this->lang->load("battle","korean");
		$this->strings = $this->lang->language;
    }

	/**
	* @Author : CI
	* @Date : 20150218
	* @Version : v1.0.0
	* @param : idx (배틀고유값)
	* @Method 설명 : 배틀초기정보
	*/
	public function Info()
	{
		// IN DATA
		// 클라이언트로부터 전달된 파라미터를 받습니다.

		// PROCESS
		// 구현로직을 추가합니다.
		
		// OUT DATA
		// 클라이언트로 데이터를 규격대로 전달해 줍니다.
		// 공백은 항시 NULL 처리를 필요로 합니다.
		$json["battle_title"] = $this->strings["battle_title"];
		$json["battle_max"] = $this->strings["battle_max"];
		$json["battle_skill"] = $this->strings["battle_skill"];
		$json["result"] = "Y";
		$json["message"] = "";

		echo json_encode( $json );
		
	}

	/**
	* @Author : CI
	* @Date : 20150218
	* @Version : v1.0.0
	* @param : idx (배틀고유값)
	* @Method 설명 : 배틀시작
	*/
	public function Start()
	{
		// IN DATA
		// 클라이언트로부터 전달된 파라미터를 받습니다.

		// PROCESS
		// 구현로직을 추가합니다.
		
		// OUT DATA
		// 클라이언트로 데이터를 규격대로 전달해 줍니다.
		// 공백은 항시 NULL 처리를 필요로 합니다.
		$json["result"] = "Y";
		$json["message"] = $this->strings["battle_start"];

		echo json_encode( $json );
	}

	/**
	* @Author : CI
	* @Date : 20150218
	* @Version : v1.0.0
	* @param : idx (배틀고유값)
	* @Method 설명 : 배틀종료
	*/
	public function Stop()
	{
		// IN DATA
		// 클라이언트로부터 전달된 파라미터를 받습니다.

		// PROCESS
		// 구현로직을 추가합니다.
		
		// OUT DATA
		// 클라이언트로 데이터를 규격대로 전달해 줍니다.
		// 공백은 항시 NULL 처리를 필요로 합니다.
		$json["result"] = "Y";
		$json["message"] = $this->strings["battle_stop"];

		echo json_encode( $json );
	}
}


 
첨부파일 게임api명세서.xlsx (11.2 KB)
 다음글 [게임서버] API > INFO 로깅분석 (1)
 이전글 [게임서버] maintenance 정기점검 설정하기 (2)

댓글

방문넷 / 2015/02/18 21:02:00 / 추천 0
좋은 정보 감사합니다!!!
한대승(불의회상) / 2015/02/23 17:57:37 / 추천 0
금쪽같은 노하우 대방출 정말 감사 합니다.
rapps / 2016/11/29 16:24:13 / 추천 0
파일이 안열려요 ㅠㅠ