Ask Your Question
0

혹시 c/s 기반의 아주 간단한 실시간 서버 예제를 구할 수 있을까요?(2016-06-22, Jaehak_Park)

asked 2016-11-30 17:29:57 +0900

inkeun.kim gravatar image

유니티 클라이언트로 실시간 rpg를 만들고자 서버 엔진을 알아보려고 trial 버전을 설치하였습니다.

가이드에서 이야기하는 PVE에 대해서는 따로 사용중인 was가 있어 http가 아닌 tcp/udp의 개발만 필요한 상황인데, 가능하다면 예제를 보고 싶습니다.

혹시 tcp/udp 통신 기반의 다양한 Handler가 있는 예제를 구할 수 있을까요? 언어의 기본 변수 타입이 아닌 class를 주고 받는 다던가, list나 vector 등 을 주고 받는 예제가 있으면 이해하는데 큰 도움이 될 것 같아서요.

가능하시다면 부탁드리겠습니다.

그리고 오늘 설치하는 도중 가이드와 다른 점이 있어 전달드립니다.

윈도우 환경에서 개발하기 위하여 가이드( http://www.ifunfactory.com/engine/doc... )를 보고 진행하였으나 아래와 같은 에러가 있어 수정이 필요합니다.

Assert failed: installed: Failed to install 'RuntimeConfiguration'

MANIFEST.json 파일에서 RuntimeConfiguration의 멤버 enable_runtime_configuration 을 false로 수정해야 정상적으로 디버깅이 가능해집니다.

(centos에서 설치된 funapi의 버전을 확인 할 방법도 부탁드리겠습니다.)

edit retag flag offensive close merge delete

5 answers

Sort by » oldest newest most voted
0

answered 2016-11-30 17:31:38 +0900

inkeun.kim gravatar image

Answer by seunghyun · 2016-06-23 AM 01:43

그리고 말씀하신 "Assert failed: installed: Failed to install 'RuntimeConfiguration'" 문제는 최근에 수정된 사항이며(특정 환경에서만 발생) 최신 버전으로 업데이트 후에도 발생되는지 확인 부탁 드립니다.

Centos 에서 설치된 아이펀 엔진 버전을 확인하는 것은 $ rpm -qa funapi1-runtime 명령으로 가능합니다.

감사합니다.

edit flag offensive delete link more
0

answered 2016-11-30 17:31:13 +0900

inkeun.kim gravatar image

Answer by seunghyun · 2016-06-23 AM 01:21

안녕하세요, 아이펀팩토리입니다.

class, struct 및 container 를 message 로 표현하고, 핸들러에서 그 값을 읽는 간단한 예제입니다. 아이펀 엔진은 JSON 과 Protobuf 두 가지 메시지를 지원하고 있으며 아래 예에서는 실시간 처리에 적합한 Protobuf 기준으로 작성된 예제입니다.

보다 더 자세한 Google Protocol Buffers 설명은 https://developers.google.com/protoco... 를 참고하시면 도움이 되실 듯 합니다.

감사합니다.

==============================================================
{project_name}_message.proto
 - ListInventory 추가
 - Move 추가
 - extend FunMessage 수정
==============================================================
message ListInventory {
  message Item {
    required int code = 1;
    required string name = 2;
  }
  repeated Item items = 1;
}
message Move {
  enum Type {
    MoveType1 = 1;
    MoveType2 = 2;
    MoveType3 = 3;
  }
  required double x = 1;
  required double y = 2;
  required double z = 3;
}
extend FunMessage {
  optional ListInventory list_inventory = 32;
  optional Move move = 33;
}
==============================================================
event_handlers.cc
 - OnListInventory, OnMove 함수 추가
 - RegisterEventHandlers 함수 수정
==============================================================
void OnListInventory(const Ptr<Session> &session, const Ptr<FunMessage> &message) {
  const ListInventory &m = message->GetExtension(list_inventory);
  for (size_t i = 0; i < m.items_size(); ++i) {
    int code = m.items[i].code();
    string name = m.items[i].name();
    ...
  }
}
void OnMove(const Ptr<Session> &session, const Ptr<FunMessage> &message) {
  const Move &m = message->GetExtension(move);
  double x = m.x();
  double y = m.y();
  double z = m.z();
  ...
}
void RegisterEventHandlers() {
  ...
  HandlerRegistry::Register2("list_inventory", OnListInventory);
  HandlerRegistry::Register2("move", OnMove);
  ...
}
edit flag offensive delete link more

Comments

imageJaehak_Park · 2016-06-23 AM 01:43 0 Google Protocol Buffers를 모르고 쓴 질문에 친절한 답변 감사합니다. 그리고 답변이 너무 빨라서 감동입니다. 감사합니다!

inkeun.kim gravatar imageinkeun.kim ( 2016-11-30 17:31:22 +0900 )edit
0

answered 2016-11-30 17:32:00 +0900

inkeun.kim gravatar image

imageJaehak_Park · 2016-06-23 AM 02:11 0 funapi1-runtime-1.0.0-1453centos6.x86_64

방금 설치된 버전 확인하였습니다.

설치는 어제 저녁에 Centos 설치 가이드( http://www.ifunfactory.com/engine/doc... )를 보고 설치한건데 최신버전이 아닌가요?

최신버전이 아니라면 funapi 버전 업 방법 부탁드리겠습니다.

edit flag offensive delete link more
0

answered 2016-11-30 17:32:19 +0900

inkeun.kim gravatar image

seunghyun ♦♦ · 2016-06-23 AM 06:27 0 Centos6 을 사용하고 계신 것으로 보이는데요, 저희 쪽에서 Centos6 은 호환성 문제로 업데이트가 느립니다. 혹시 Ubuntu 14.04 이상 또는 Centos7 을 사용하시는 것은 어떠신지요?

Centos6 은 1453 빌드가 최신이며, Ubuntu 나 Centos7 은 1582 빌드 이상으로 차이가 조금 있습니다.

꼭 Centos6 을 쓰셔야 하면 말씀 부탁 드립니다.

감사합니다.

edit flag offensive delete link more
0

answered 2016-11-30 17:32:25 +0900

inkeun.kim gravatar image

imageJaehak_Park · 2016-06-23 AM 06:33 0 말씀하신대로 Centos6 을 사용중이며, 꼭 Centos6을 사용해아 하진 않습니다.

추후 Centos7로 변경하여 사용하도록 하겠습니다.

확인 감사합니다.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2016-11-30 17:29:57 +0900

Seen: 68 times

Last updated: Nov 30 '16