본문 바로가기
강좌/NDC

Node.js를 내장형으로 만들어서 게임 플랫폼 SDK 만들기

by lms0806 2022. 6. 10.
728x90
반응형
 

NDC-NEXON DEVELOPERS CONFERENCE

 

ndc.nexon.com

해당 내용정리는 Nexon에서 진행하는 Nexon Developers Conference에 나온 영상들을 참고하였습니다

 

<순서>

게임 플랫폼이 무엇인지 아시나요?

고속 개발과 안정성을 동시에 잡은 내장형 Node.js

어떻게 만들어져 있을까?

라이브에 사용된 후기

 

<게임 플랫폼이 무엇인지 아시나요?>

게임에 제공되는 플랫폼 기능들

게임 플랫폿은 로켓엔진과 같다

본체 = 게임/컨텐츠

목표에 도달하기 위한 강력한 서포터 = 플랫폼

 

플랫폼에 상관없이 구동하는 기능

주제 : TOY SDK Interface 내부에서 동작하고 있는 내장된 Node.js 기능

 

<고속 개발과 안정성을 동시에 잡은 내장형 Node.js>

Game Process에서 자바스크립트 명령을 호출하면 거기에 대한 응답을 받을 수 있으면 얼마나 좋을까? or 빨리 만들 수 있지 않을까?와 같은 아이디어를 통해 구현하게 됨

 

내부 스레드에서 자바스크립트의 엔진을 통째로 내장시키는 작업을 통해 게임 프로세스에서 외부 프로세스와 통신하지 않고 원하는 상황에 자바스크립트 파일을 실행하고, 거기에 대한 응답을 받거나 피드백을 주는 작업들을 실행할 수 있게 됨

 

Node.js를 선택하게 된 이유

 

<어떻게 만들어져 있을까?>

TOY 내장 Node.js 구조

Nost.js에 있는 외부 모듈 호출 인터페이스 WASM, N-API를 일부 변경 재사용

C++, JAVA, Go 등 다양한 모듈을 Node.js에서 사용 가능

 

게임하고 Node.js는 IPC(프로세스 간 통신)라는 큰 인터페이스로 동작함

IPC는 기존의 TCP 통신과 같은 연결지향성으로 패킷을 주고 받기 때문에, 똑같이 토크나이징 과정을 거치게 됨

 

RUST를 통해 C++로 놓치기 쉬운 메모리/스레드 접근 안정성을 개발 환경 차원에서 확보

 

<라이브에 사용된 후기>

좋은 점들

1. JS/TS 개발자가 바로 투입되서 개발이 가능

2. 인증-결제 모듈도 만들어 봤는데 잘 구동됨

3. 호환성이 엄청 좋음

4. 래퍼런스도 엄청 많음

5. SDK 개발기간이 매우 단축됨

6. 신규 게임 엔진과 게임이 연동하는 시간이 1주일 안에 완료된 적도 있음

 

걱정했으나 생각보다 문제가 없던 점

1. Nojde.js가 소수의 사용자 컴퓨터에서 구동되지 않는 경우가... 없음

2. 예기치 못한 메모리 같은 문제가 게임에 전파... 되지 않음

3. 기존의 C++ SDK를 JS로 재구현... 할 필요가 없음

4. ios. android. arm9. x86 mobile... Node.js 구현체 다 있어서 빌드하면 됨

728x90
반응형

댓글