조이시티 분기보고서 (2023.03)
4. 3년간 연구개발 실적

☞ 본문 위치로 이동

연도	연구과제	연구결과 및 기대효과

2021년	GPU Instancing 연구	동일한 여러 메시의 Draw Call 병목 최소화를 위해 렌더링에 필요한 데이터를 버퍼에 담아 CPU -> GPU 통신을 절약하는 기술 연구

Dynamic Batch 최적화	게임 오브젝트들의 Render Queue를 조정 및 같은 Panel로 묶어 최적의 Dynamic Batch가 이뤄지도록 연구 진행

Kafka 도입	이벤트 지향 아키텍처 도입으로 약한 결합을 통한 유연한 서버 구성 도입

Spring Batch Cloud Stream	전체 게임서버 및 분산저장소를 모두 제어할 수 있는 서버통합 컨텐츠 개발에 유용한 관제서버 개발

AWS S3를 활용한 패킷 정보 Pack 수집 및 Crash 리포트 수집	i. 클라이언트 Crash 발생시 Dump 파일을 S3 스토리지로 자동 전송 Crash 리포트를 통한 라이브 버그 대응 가능.ii. 클라이언트 인게임을 리플레이 할수 있는 패킷들을 수집하여 필요시 S3 스토리지로 전송 핵킹 or 비매너 플레이에 대한 User 제제의 기반 정보로 활용 가능.

DB 레플리케이션 적용	i. 기존 오픈쿼리 보다 속도 약 10배 정도 빠른 성능ii. 크로스 컨텐츠 제작시 효율성 증가ii. DB 장비 이상시 문제 해결 가능 (미러링 역활 가능)

실시간 업데이트 되는 큰 데이터의 ACID 를 보장	라이브의 SP 콜 횟수가 줄어들고 복잡한 데이터 들에 대해서 업데이트가 자유로워 짐에 따라 개발이 수월 해 짐

리로딩 시스템	게임 실행 시 런처에서 모든 리소스를 받지 않아도 게임을 실행 할 수 있으며런처에서 다운로드가 오래걸림에 따라 실행 도중 이탈 유저가 적어지도록 개선

인 게임 동영상 추가	필요한 곳에서 이미지 파일이 아닌 동영상 파일로 유저에게 쉽게 정보 제공

글로벌 서비스를 위한 '자동 채팅 번역 서버' 구축	구글 클라우드 번역 서비스 를 이용하여 다양한 언어의 채팅 메시지를 번역하고, 이용자 클라이언트에 지정된 언어로 표현할 수 있는 번역 서버 구축.

다중서버 랭킹시스템	다중서버간 일관된 랭킹시스템 구축. Redis 기반의 비동기 명령을 위한 동기화 전용 스레드 다중서버 제어를 위한 관제서버 구현

x86 아키텍쳐 연동 작업	안드로이드, iOS 플랫폼으로 서비스하고 있는 프로젝트를 x86 아키텍쳐의 환경에서 동작하도록 개발하며 R 진행, 리소스 및 어플리케이션 패치를 위한 클라이언트 런처 개발

플랫폼별 분리된 클라이언트 프로젝트 통합	1. 플랫폼 별 PS4, Xbox, Steam 등의로 나눠져 개발이 진행되던 프로젝트 통합을 통해컨텐츠 관리 및 개발시 효율성 확보2. UE4 엔진의 다른 버전을 사용하던 각 플랫폼 별 엔진 통합PS4/Xbox(UE4.19), Steam(UE4.23) > 모두 UE4.23으로 통합되어 엔진 유지 보수 효율성 확보

스트리밍 텍스쳐를 이용한 메모리 최적화	1. ps4, xbox 는 한정된 메모리에서 서비스를 해야 하는 제약이 있어, 새롭게 추가되는 컨텐츠 및 기능으로 점점 사용되는 메모리가 늘어나는 현상 발생.2. 해당 이슈 해결을 위한 방안으로, 스트리밍 텍스쳐를 이용함으로서 게임의 퀄리티를 최대한 유지하며 가용되는 메모리를 30%정도 줄여 메모리 최적화 개선.

데이터 베이스 목적에 맞는 분리 운영	1. 통합되어있는 데이터 베이스 운영의 비효율 발생(static data, game user data, log data) 를 각 목적에 맞게 분리 작업 진행2. 데이터베이스 분리 작업을 통해 목적에 맞도록 운용, 가독성 증가3. 데이터베이스 유지 및 보수 (백업, 복구) 측면에서 효율성 증가

클라이언트 코드변조 감지 시스템	1. 보안 솔루션을 우회하는 해킹을 감지하기 위해 클라이언트 자체적으로 코드변조 체크 기능을 개발. 서비스 안정화 효과

인게임GIF 로더 추가	다양한 아트웍을 표현하고 새로운 BM형태를 추가 하기 위하여 GIF를 아이템에 적용하였고, 새로운 BM구조로 매출 향상에 기대UI 리소스 등에서 이펙트 형태를 프로그래머의 공수를 넣지 않고 아트에서 표현을 컨트롤 할 수 있게 제공하여 개발 공수를 줄일 수 있는 효과를 기대

관전 허용 유저 수의 확대	인게임에서 관전 유저수가 서버 전체 MAX 수치에 한정되어 있던 부분을 게임룸 당 최대 인원수를 확장한 R 진행하여 대회 모드 등 특정방에서 대다수 인원이 관전할 수 있도록 처리하여 대회 경기가 진행될 경우 스트리밍 외의 인게임 내에서도 많은 유저가 관전을 할 수 있도록 진행

클라이언트 크래시 분석 툴 개발	클라이언트 크래시 발생 시 자동으로 덤프파일을 게임 서버로 전송, 크래시 발생 건에 따라 통계를 내고 콜스택 까지 확인 가능하도록 프로세스 구축. 빠른 장애 대응 효과 기대

네트워크 지연에 따른 게임 유연성 제공	유저의 네트워크 레이턴시에 따라 유동적인 밸런스 적용. 핑이 높은 유저와 핑이 낮은 유저의 플레이에서 발생되는 불만 요소를 개선. 서비스 퀄리티 개선 기대

2022년	FS 3D Max Import 개발	서비스가 오래되어 아트리소스 원본이 소실된 경우 리소스 수정이 어려웠던 부분을 Import를 개발하여 Max파일을 복원 후 리소스 재사용을 가능하게 함

간편 채팅 신고 개발	단축키로 인하여 게임내 모든 채팅 기록을 운영사로 취합 후 자동 전달하여 부정행위에 대한 자동화 프로세스 구축하여 불필요한 접수 단계를 해소

렌더웨어 DirectX 디바이스 리스토어 개선	렌더웨어의 랜더링 프로세스에서 다이렉트X의 디바이스 손실, 복구 과정을 개선하여 화면 멈춤 현상을 개선

바이너리 hash를 이용한 위/변조 실시간 체크 기능 개발	실시간으로 바이너리 Hash를 등록하여 변조를 체크할 수 있는 기능 개발, 해킹 보안이슈 대응

제너레이티브 아트 개발	레이어별로 구성된 아트 리소스를 이용하여 자동으로 다양한 구성의 결과물을 빠르게 생산. 작업 효율 증대

AWS 인프라 효율화 연구	AWS 기반에서의 안정적인 서비스를 위해 각 리전별 속도 차에 의한 서비스 품질 향상 연구 적용

Animation Instanceing 최적화	CPU에 많은 비용 발생하는 부분을 GPU 로 연산을 넘겨 많은 캐릭터를 그려도 드로우 콜 및 안정적인 프레임을 유지 할 수 있는 기술 연구

보안 솔루션 탑재	모바일 및 PC 취약점 방어를 위한 상용 보안 솔루션 이식 구조 개발 및 서비스 준비

매크로 유저 차단 시스템	매크로 프로그램 등을 이용하는 유저를 판단할 수 있는 행동 패턴 분석 및유저의 반복적인 행동에 대해 사람의 수동 입력을 요구하는 CAPTCHA 시스템 개발

블록체인 연동 토큰 서버 개발	블록체인 플랫폼 상에서 작동하는 인게임 재화와 토큰의 상호 교환을 위한 서버 개발

Elastic Search 검색 툴 연구 및 개발	Elastic Search 로그 검색 시 제한된 수량 및 상세 검색 기능 부족 / DB(Data Base)화 위한 연구 및 윈도우 기반 GUI 환경의 툴 개발

WAS 서버에서 Excel Data 파일 처리 위한 공통 라이브러리 연구 및 개발	기획자가 Excel 파일 생성 및 수정 내용에 대해서 WAS 서버 소스 작업 시 참조가 가능 하도록 개발 및 적용서버 개발 효율화 기대

Redis Clustering을 활용한 대규모 분산 데이터 처리	게임 내 필드에 존재하는 대규모 객체들의 데이터를 Redis Clustering을 활용해서 분산 저장 및 접근이 가능한 구조 설계 및 개발

논리적 서버 월드 분리	물리적으로 하나의 장비에 적재되어 있는 유저 DB 데이터를 컨텐츠 단위로 논리적 분리하여 월드 단위로 새로운 환경에서 플레이 할 수 있도록 연구 및 개발

스팀 플랫폼 연동 작업	기존 프로젝트의 멀티플랫폼 특성을 활용하여 스팀 플랫폼 입점을 위한 게임 기본 기능 및 스팀 SDK 특화 기능 개발

블록체인 기술을 이용한 NFT 마켓플레이스 개발	NFT 아이템의 거래와 경매, 관리 기능을 구현하여 신규 블록체인 게임 개발에 연동 할 수 있는 환경 구현

블록체인 규약 ERC1155를 이용하여 한 트랜잭션안에서 NFT 대량 민팅이 가능하도록 개발	기존 한 트랜잭션 안에서 하나의 NFT를 민팅하는 방식에서, 한 번에 여러 개의 NFT를 민팅을 할 수있도록 개발, 민팅에 있어 가스비 감소와 속도에 있어 큰 효과를 보임.

멀티텍스쳐링 애니메이션	버텍스의 u,v 좌표를 추가로 설정하여 다른 u,v좌표를 가지는 텍스쳐 두 장을 합성 가능하도록 변경, 추가된 텍스쳐는 애니메이션 기능을 가지며 다양한 효과를 줄 수 있도록 함. 기존 리깅된 아이템 외에 고정된 본을 가지는 오브젝트(안경, 마스크, 귀걸이 등...)도 적용 가능하도록 개발.

리액트 기반 웹 구성	리액트 기반으로 웹을 구성하여 defi-dao, marketplace 페이지 작성. mui, tailwind css 등 여러 라이브러리를 사용하여 기존 웹 구성과 개발 속도의 차이점을 확인

텐센트 API를 활용한 필터 기능 개발	중국 로컬 언어의 대량의 금칙어 리스트를 검출하기 위하여 현지 텐센트 API를 활용하여 필터 기능을 구현하여 리스트 업데이트의 최소화를 진행

고도화된 AI R 위한 학습 시뮬레이터 개발	향상된 AI를 위한 환경 정보 분석을 위한 학습 시뮬레이터 개발. 강화 학습을 위한 시뮬레이터 개발이 선행되어 정보를 수집할 수 있도록 처리. 시각적 정보 수집에 도움이 될수 있는 미니맵 기능 개발

AWS 인프라에서의 장애 복구와 서비스 운영 방법	AWS에서 발생되는 장애에 대하여 연구하고 이에 대한 피해 최소화 방안 모색과 장애 방지 방법에 대한 연구

Protocol buffer 연구 및 적용	서버와 클라이언트의 개발언어가 다른 상황에서의 패킷통신 이슈를 해결하기위한 방법으로 구글에서 만들어진 Protocol Buffer를 연구함.Protocol buffer는 언어에 무관하게 포맷만 공유되면 각 모듈들이 알아서 Serialize / Deserialize 기능을 제공함.

인스턴스 서버 구조 연구 및 개발	컨텐츠별 인스턴스 서버 관리 및 유저 접속 제어를 위한 중개 서버 개발, 접속프로세스 개선

모바일 키보드 관련 연구	모바일 OS 키보드 영역에 따른 UI 변동 시스템 및 유니코드를 활용한 이모지 프리셋 기능 작업

DB-서버 간 인메모리 동기화 연구	라이브 CS 처리 과정에서 DB 수정 후 서버 인메모리에 반영되지 않는 구조를 개선하기 위한 연구

AI R 위한 파이썬 개발 Tensorflow 2.0기반의 케라스 사용을 위한 프리스타일 파이썬 적용 개발	Tensorflow 2.0기반의 케라스 사용을 위한 프리스타일 파이썬 적용 개발
사용 모듈 사용이 가능하게 됨으로써 발전된 로직을 사용할 수 있게 되었음

유저 데이터 취합 시스템 개발	게임 유저의 패턴을 정교하게 판단하기 위하여 실시간 유저 게임데이터를 취합하는 시스템을 구축.유저의 게임 패턴 및 디테일한 정보를 실시간 취합함으로써 다양한 컨텐츠에 데이터 분석이 가능하게 진행

스트레스 툴 개발	Select모델을 이용한 네트워크 처리로 스트레스 테스팅 툴을 개발하여 매 업데이트 항목에 대한 스트레스 테스트를 수행하게 하여 릴리즈 이전 환경 테스트를 진행하게하여 안정화를 올릴 수 있도록 진행

신규 재화 모니터링 환경 구축	인게임 신규 재화의 변동 추이를 확인할 수 있는 모니터링 환경을 구축하여, 신규 재화를 전략적으로 컨트롤할 수 있을 것으로 기대 됨.

클라이언트 로딩 프로세스 개선	렌더웨어 엔진의FileSystem I/O횟수를 줄이기 위한 연구를 하여 기존6천만 수준의I/O를46만 수준으로 줄여 로딩 속도를 개선

리소스 UnPak 도구 개발	렌더웨어 엔진에서 패키징된 리소스의 구성요소를 확인하고, 언팩할 수 있는 도구 개발하여 리소스 관리 효율성 증가

Screen space Deca	기존의데칼은 실시간으로 면을 구성하여UV를 만들고 데칼이미지를 붙이는 방식으로 느리고 문제점도 많았음. 따라서 쉐이더의 깊이버퍼를 응용하여 데칼박스와 붙이고자 하는 면의 접점을 알아내어 연산해주는Screen space decal을 연구함.

빠른 응답 처리를 위한 UDP 통신 처리 방법에 대한 연구	온라인게임 진행에서의 연결 지연의 문제를 최소화 하고, 쾌적한 게임 진행을 위한 통신 방법에 대한 연구

AI R 개발	케라스 사용 모듈을 적용하기 위하여 64bit GPU 사용 서버 머신이 필수적이 였기에 모듈클라이언트 개발 라이브에 강화학습 모듈의 AI를 적용하여 한단계 발전된 AI를 유저에게 제공할 수 있었음

유저데이터 적재 및 최적화	DB의 로직이 SP Call을 통하여 Optimized plan forcing가 동작하기에 Plan Cash가 동작하도록 설계 프로파일링 시 최악의 교착 상태를 고려 (8 Thread이상) 최대 적재량을 증가시켰고 유저의 아이템 등 적재의 제한을 풀어줄 수 있는 성과를 보았음

신규 채널링 빌링 연동을 위한 R	신규 채널링 연동 시 기존과 다른 빌링 방식으로 진행이 필요하여, 새로운 웹서버를 구축 및 API를 제공하여 빌링 프로세스 구축 함. 향후 새로운 채널링 연동 시에도 활용 가능할 것으로 기대 됨.

이벤트 템플릿화	인게임에 존재하는 다수의 BM, DT 이벤트를 템플릿화 하여 통합 시스템에서 동작하도록 개발. 개발팀에서는 다수의 이벤트를 관리해야 하는 비용이 줄고, 이용자 또한 통합된 재화와 시스템을 통한 이벤트를 이용할 수 있는 부분에서 장점이 있음.

독립 서버와 스케줄링 기반 게임 시스템	독립된 서버 구조와 스케줄링을 이용하여 게임을 진행하는 방법을 연구, 구현. 게임서버, 빅게임 서버, 내기 서버

멀티플랫폼기반 게임 시스템	다양한플러그인들을 멀티플랫폼환경에서 동작하도록 각 플러그인의 아키텍쳐분석 및 수정 최적화를 진행.

Firebase Crashlytics	클라이언트에서 발생하는 비정상 종료의 원인을 확인하고 해결하기 위해 SDK 적용 진행파악이 힘들었던 비정상 종료에 대해 원인을 파악하고 해결하여 클라이언트 안정성을 향상

유니티 최적화 프로그램	어셋 다운로드 최적화, 불필요한 플러그인과 패키지 삭제, 중복 리소스 사용 제거, 불필요한 쉐이더 사용 제거, 스크립트 최적화 등을 통해 전반적인 클라이언트 성능 향상

Vulcan R	Android 클라이언트 성능 향상을 도모하기 위해 리서치 및 클라이언트 적용 후 테스트

2023년	로그 ETL	로그 파이프라인의 병목구간에 대한 모니터링 후 File 과 Redis 사이의 라우팅 서버로 인한 문제임을 확인 후
라우팅 서버를 경유하지 않는 방법으로 전환하여 병목 문제 해결

글로벌 큐	다중 서버의 동시 DB요청을 제어하기 위한 글로벌 DB 요청 서버를 개발
데이터 경쟁을 관리할 수 있는 방안 마련

테이블 데이터와 Roslyn 컴파일러 연동	프로그램 전반에 광범위 하게 사용되는 각종 클래스, 열거 형 정의를 엑셀 테이블 에서 바로 선언할 수 있도록 엑셀 데이터와 Roslyn 컴파일러를 연동하는 별도의 툴을 연구 개발

캡차시스템R	Macro프로그램 방지를 위하여 캡챠시스템을 R 접목하였음. 이미지메이킹이 되지 않도록 스트링 이미지화 베지어 곡선 등을 활용하여 저장된 이미지 매핑 방식이 아닌 캡챠 시스템을 구현하여 적용하였음. 게임 부정행위를 하는 유저를 제한하는데 기대효과가 있음.

ITEM Dispenser Tool 개발	QA 및 개발 환경에서 이벤트 및 아이템 커스텀마이징을 할 수 있는 툴 비개발직군의 퀄리티테스트 간에 각종 세팅에 들어가는 비용을 절감하기위하여 툴개발을 진행함. 효율적인 개발 프로세스로 인하여 개발 확보 및 퀄리티 테스트에 효율을 갖고 옴.

게임 세부 설정 확인 기능 개발	게임 세부 설정에 대한 유저 확인 요청에 발생되는 운영 비용을 절감하기 위하여 유저가 확인 할 수 있는 기능 개발. 획득 및 결과에 대한 로그성 설정을 개인이 확인 할 수 있도록 지원하고 불필요한 운영 비용을 절감 할 수 있게 되었음.

레터링 아이템 R	아이템에 레터링을 각인할 수 있는 신규 기능을 R 하여 기존에 없던 새로운 형태의 아이템을 추가할 수 있고, 유저에게 동기부여가 될 것으로 기대 됨.

핑 기반 우선 매칭 R	기존 실력(ELO) 기반 매칭에서 핑 우선순위 매칭을 도입 함으로써, 글로벌 서비스에서 팀간 평균 핑 격차를 줄이고, 인게임 체감을 향상할 수 있을 것으로 기대 됨.

IOS 기반 빌드 자동화 시스템 연구	iOS 애플리케이션 빌드 자동화 및 배포 과정을 젠킨스를 활용하여 자동화 연구 개발 유니티에서부터 Xcode 설정, 프로비저닝 설정, 빌드 및 S3 업로드 과정을 자동화하여 Inhouse 및 Testflight 배포 시스템 연구

MSSQL 서버 간 Replication을 통한 데이터 통합과 안정적인 웹 서비스 제공 연구	게임 서비스 중인 복수의 MSSQL 서버에서 Replication을 통한 데이터의 통합과 이를 이용한 안정적인 웹 서비스 제공에 관한 연구