SlideShare a Scribd company logo
2019 iFunFactory Dev Day
‘아이펀 엔진으로 MO 게임 서버 개발하기’
1
‘아이펀 엔진으로 MO 게임 서버 개발하기’
2019 iFunFactory Dev Day
2
김진욱 CTO (jinuk.kim@ifunfactory.com)
개발 환경 설정하기
Linux + VS Code
2019 iFunFactory Dev Day
1. 시작하기 전에
2. 프로젝트 생성에서 배포까지
3. 데모 프로젝트 톺아보기
4. Q&A
3
2019 iFunFactory Dev Day
시작하기 전에
• 개발용 데스크톱/랩톱 (Windows, macOS, linux)
• Visual Studio Code 1.38 이상 설치
• C++ 개발 환경, 원격 개발 환경 확장 기능 필요
• Linux 서버 혹은 가상 머신 (혹은 docker 인스턴스)
• 아이펀엔진 1.0.0-4320 (experimental) 필요
4
2019 iFunFactory Dev Day
아이펀엔진
• Linux / Windows
• 게임 서버 프레임워크
• UE4, Unity, Cocos-X 지원
5
2019 iFunFactory Dev Day
Visual Studio Code
• Microsoft 제작
• Windows / macOS / Linux 에서 동작
• 다양한 확장 기능 (프로그래밍 언어, 개발 도구, …)
• Linux 원격 개발 지원
6
2019 iFunFactory Dev Day 7
아이펀엔진 + VS Code + Linux 원격 개발
2019 iFunFactory Dev Day
게임 서버 개발하기
8
2019 iFunFactory Dev Day
아이펀 엔진(Linux/C++) 프로젝트 만들기
• Linux 서버에서 프로젝트를 생성
• 생성된 프로젝트에서 사용할 VS Code 설정 생성
9
2019 iFunFactory Dev Day 10
아이펀 엔진(Linux/C++) 프로젝트 만들기 (1)
2019 iFunFactory Dev Day 11
아이펀 엔진(Linux/C++) 프로젝트 만들기 (2)
2019 iFunFactory Dev Day 12
아이펀 엔진(Linux/C++) 프로젝트 만들기 (3)
2019 iFunFactory Dev Day 13
생성한 프로젝트 살펴보기
2019 iFunFactory Dev Day
빌드하기
VS Code 상에서 빌드 실행 (터미널 → 빌드 작업 실행)
14
2019 iFunFactory Dev Day 15
(시연) 빌드하기
2019 iFunFactory Dev Day 16
(시연) 빌드하기: 오류 수정하기
2019 iFunFactory Dev Day
테스트/디버깅
디버그 탭 → (실행할 서버 선택 후) 실행
17
2019 iFunFactory Dev Day 18
(시연) 디버깅하기
2019 iFunFactory Dev Day
패키징/배포하기
VS Code 상에서 패키징 실행
(터미널 → 작업 실행 → Packaging 선택)
19
2019 iFunFactory Dev Day
아이펀엔진 패키징하기
VS Code 상에서 패키징 실행
(터미널 → 작업 실행 → Packaging 선택)
20
2019 iFunFactory Dev Day
패키지 배포하기
• Ubuntu 의 .deb (APT 저장소) / Centos 의 .rpm (YUM 저장소)
• Aptly (.deb 배포 도구)
• createrepo (.rpm 배포 도구)
• 3rd 파티 서비스 - packagecloud.io
• 패키지를 이용해서 docker 이미지 생성 및 배포
• 직접 혹은 자동화된 프로세스로 필요한 서버에 배포
21
2019 iFunFactory Dev Day 22
(시연) 패키징하기
2019 iFunFactory Dev Day 23
(시연) 패키지 설치하기
2019 iFunFactory Dev Day 24
(시연) 설치한 서비스 실행하기
2019 iFunFactory Dev Day
Demo 프로젝트 소개 - Pong
• Atari에서 1972년에 제작한 1:1 대전 아케이드 게임 따라하기
• Pong 게임의 로직에 더해서 아래를 제공:
• 유저 간 매치 메이킹
• 유저의 승/패 기록 저장
• 게임 승/패에 따른 랭킹 서비스 제공
• Facebook 인증으로 로그인
• 유저 수가 늘어도 게임 및 백엔드 서버가 수평 확장
25
2019 iFunFactory Dev Day 26
Pong: 게임 클라이언트
2019 iFunFactory Dev Day 27
Pong: 백엔드 서비스
2019 iFunFactory Dev Day 28
Pong: 백엔드에서 직접 만들 부분
2019 iFunFactory Dev Day
프레임웍을 썼을 때 개발자가 할 일
• 클라이언트 인증에 사용할 서비스 선택 (Facebook, Google, …)
• 인증 서비스 연동은 프레임웍이 처리
• 랭킹의 형태 선택 (랭킹 종류, 동점자 처리 방식 선택, 리셋 주기, …)
• 랭킹 데이터 저장 및 동점 처리, 리셋은 프레임웍이 처리
• 매치메이킹 규칙
• 매치메이킹 과정, 매칭 후 게임 서버로 이동 등은 프레임웍이 처리
• DB에 저장할 데이터 구조 (ORM 구조)
• DB 연결, 샤딩, SP나 SQL query 호출은 프레임웍이 처리
• 네트워크 메시지를 정의하고, 메시지가 왔을 때 처리 로직 작성
29
2019 iFunFactory Dev Day
(언제나) 개발자가 할 일
• Pong 게임의 로직 구현
30
2019 iFunFactory Dev Day 31
(시연) Pong 프로젝트: 인증
2019 iFunFactory Dev Day 32
(시연) Pong 프로젝트: 서버간 이동 (1)
2019 iFunFactory Dev Day 33
(시연) Pong 프로젝트: 서버간 이동 (2)
2019 iFunFactory Dev Day 34
(시연) Pong 프로젝트: 패키징
2019 iFunFactory Dev Day
요약
•Linux 서버 개발을 명령행 대신 VS Code를 써서
원격에서
•아이펀 엔진 + VS Code로 개발 진행
• 로컬 GUI + 원격으로 소스코드 편집
• 로컬 GUI 에서 원격 서비스 디버깅
• 패키지 생성 및 배포 준비
35
경기도 성남시 분당구 대왕판교로 660, 유스페이스1 B동 606호
info@ifunfactory.com 070-4923-6566www.ifunfactory.com

More Related Content

What's hot (12)

PDF
Python과 AWS를 이용하여 게임 테스트 환경 구축하기
iFunFactory Inc.
 
PPTX
1.develop environment
이경주 이경주
 
PPTX
Overview
이경주 이경주
 
PDF
웹 IDE 비교
Junyoung Lee
 
PDF
Codeveloper 개발기
Jay Lee
 
PDF
PyCon 2017 예제로 살펴보는 PyQt
덕규 임
 
PDF
swift를 이용한 카카오링크 만들기
KimDaeho
 
PPTX
make hybrid app.
jiseob kim
 
PDF
생활 코딩 #1(Simple Web Scraping with Python #1)
SeungYong Baek
 
PDF
Codeveloper
Jay Lee
 
PDF
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Sung-tae Ryu
 
PPTX
The Future of C# and .NET Framework
명신 김
 
Python과 AWS를 이용하여 게임 테스트 환경 구축하기
iFunFactory Inc.
 
1.develop environment
이경주 이경주
 
웹 IDE 비교
Junyoung Lee
 
Codeveloper 개발기
Jay Lee
 
PyCon 2017 예제로 살펴보는 PyQt
덕규 임
 
swift를 이용한 카카오링크 만들기
KimDaeho
 
make hybrid app.
jiseob kim
 
생활 코딩 #1(Simple Web Scraping with Python #1)
SeungYong Baek
 
Codeveloper
Jay Lee
 
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Sung-tae Ryu
 
The Future of C# and .NET Framework
명신 김
 

Similar to 2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱 (20)

PPT
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
iFunFactory Inc.
 
PDF
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
iFunFactory Inc.
 
PDF
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
devCAT Studio, NEXON
 
PDF
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
devCAT Studio, NEXON
 
PDF
Internship backend
Yein Sim
 
PDF
NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기
Jinuk Kim
 
PDF
Bon voyage Docker_Kubernetes
ssuseraada82
 
PDF
RAD스튜디오 100% 활용하기
Devgear
 
PDF
버그 트래킹 시스템 Mantis의 사용 그리고 예제
Kiyoung Moon
 
PDF
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
Devgear
 
PDF
[NHN NEXT]실전프로젝트 밴드 게임 만들기 후기
flashscope
 
PDF
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
iFunFactory Inc.
 
PDF
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
JinKwon Lee
 
PPTX
Docker 로 Linux 없이 Linux 환경에서 개발하기
iFunFactory Inc.
 
PDF
[NDC17] Protocol:hyperspace Diver 개발 포스트모템
Young Soo Kim
 
PDF
Slipp 발표 자료 20151212
Jinsoo Jung
 
PDF
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Jinuk Kim
 
PDF
[NDC17] 왓 스튜디오 서비스파트
Chanwoong Kim
 
PDF
나의 첫 윈도우/맥 애플리케이션 개발하기
Devgear
 
PDF
혼자서 만드는 MMO게임 서버
iFunFactory Inc.
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
iFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
iFunFactory Inc.
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
devCAT Studio, NEXON
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
devCAT Studio, NEXON
 
Internship backend
Yein Sim
 
NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기
Jinuk Kim
 
Bon voyage Docker_Kubernetes
ssuseraada82
 
RAD스튜디오 100% 활용하기
Devgear
 
버그 트래킹 시스템 Mantis의 사용 그리고 예제
Kiyoung Moon
 
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
Devgear
 
[NHN NEXT]실전프로젝트 밴드 게임 만들기 후기
flashscope
 
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
iFunFactory Inc.
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
JinKwon Lee
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
iFunFactory Inc.
 
[NDC17] Protocol:hyperspace Diver 개발 포스트모템
Young Soo Kim
 
Slipp 발표 자료 20151212
Jinsoo Jung
 
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Jinuk Kim
 
[NDC17] 왓 스튜디오 서비스파트
Chanwoong Kim
 
나의 첫 윈도우/맥 애플리케이션 개발하기
Devgear
 
혼자서 만드는 MMO게임 서버
iFunFactory Inc.
 
Ad

More from iFunFactory Inc. (20)

PDF
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
iFunFactory Inc.
 
PDF
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
iFunFactory Inc.
 
PDF
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
iFunFactory Inc.
 
PDF
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
iFunFactory Inc.
 
PDF
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
iFunFactory Inc.
 
PDF
[아이펀팩토리] 2017 NDCP
iFunFactory Inc.
 
PDF
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
iFunFactory Inc.
 
PDF
유니티 쉐이더 단기속성
iFunFactory Inc.
 
PDF
게임 서버 성능 분석하기
iFunFactory Inc.
 
PPTX
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
iFunFactory Inc.
 
PPTX
게임 운영에 필요한 로그성 데이터들에 대하여
iFunFactory Inc.
 
PPTX
Make "PONG" : 아키텍팅과 동기화 테크닉
iFunFactory Inc.
 
PPTX
2016 NDC - 클라우드 시대의 모바일 게임 운영 플랫폼 구현
iFunFactory Inc.
 
PPTX
2016 NDC - 모바일 게임 서버 엔진 개발 후기
iFunFactory Inc.
 
PPT
iFun Engine plugin 만들기 (for Stingray)
iFunFactory Inc.
 
PDF
iFun Deploy 소개
iFunFactory Inc.
 
PPTX
Apache ZooKeeper 로
 분산 서버 만들기
iFunFactory Inc.
 
PDF
클라우드 춘추전국시대 서버 개발자 생존기
iFunFactory Inc.
 
PDF
iFunEngine: 30분 만에 게임 서버 만들기
iFunFactory Inc.
 
PDF
Designing a pragmatic back-end service for mobile games
iFunFactory Inc.
 
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
iFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
iFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
iFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
iFunFactory Inc.
 
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
iFunFactory Inc.
 
[아이펀팩토리] 2017 NDCP
iFunFactory Inc.
 
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
iFunFactory Inc.
 
유니티 쉐이더 단기속성
iFunFactory Inc.
 
게임 서버 성능 분석하기
iFunFactory Inc.
 
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
iFunFactory Inc.
 
게임 운영에 필요한 로그성 데이터들에 대하여
iFunFactory Inc.
 
Make "PONG" : 아키텍팅과 동기화 테크닉
iFunFactory Inc.
 
2016 NDC - 클라우드 시대의 모바일 게임 운영 플랫폼 구현
iFunFactory Inc.
 
2016 NDC - 모바일 게임 서버 엔진 개발 후기
iFunFactory Inc.
 
iFun Engine plugin 만들기 (for Stingray)
iFunFactory Inc.
 
iFun Deploy 소개
iFunFactory Inc.
 
Apache ZooKeeper 로
 분산 서버 만들기
iFunFactory Inc.
 
클라우드 춘추전국시대 서버 개발자 생존기
iFunFactory Inc.
 
iFunEngine: 30분 만에 게임 서버 만들기
iFunFactory Inc.
 
Designing a pragmatic back-end service for mobile games
iFunFactory Inc.
 
Ad

2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱

  • 1. 2019 iFunFactory Dev Day ‘아이펀 엔진으로 MO 게임 서버 개발하기’ 1
  • 2. ‘아이펀 엔진으로 MO 게임 서버 개발하기’ 2019 iFunFactory Dev Day 2 김진욱 CTO ([email protected]) 개발 환경 설정하기 Linux + VS Code
  • 3. 2019 iFunFactory Dev Day 1. 시작하기 전에 2. 프로젝트 생성에서 배포까지 3. 데모 프로젝트 톺아보기 4. Q&A 3
  • 4. 2019 iFunFactory Dev Day 시작하기 전에 • 개발용 데스크톱/랩톱 (Windows, macOS, linux) • Visual Studio Code 1.38 이상 설치 • C++ 개발 환경, 원격 개발 환경 확장 기능 필요 • Linux 서버 혹은 가상 머신 (혹은 docker 인스턴스) • 아이펀엔진 1.0.0-4320 (experimental) 필요 4
  • 5. 2019 iFunFactory Dev Day 아이펀엔진 • Linux / Windows • 게임 서버 프레임워크 • UE4, Unity, Cocos-X 지원 5
  • 6. 2019 iFunFactory Dev Day Visual Studio Code • Microsoft 제작 • Windows / macOS / Linux 에서 동작 • 다양한 확장 기능 (프로그래밍 언어, 개발 도구, …) • Linux 원격 개발 지원 6
  • 7. 2019 iFunFactory Dev Day 7 아이펀엔진 + VS Code + Linux 원격 개발
  • 8. 2019 iFunFactory Dev Day 게임 서버 개발하기 8
  • 9. 2019 iFunFactory Dev Day 아이펀 엔진(Linux/C++) 프로젝트 만들기 • Linux 서버에서 프로젝트를 생성 • 생성된 프로젝트에서 사용할 VS Code 설정 생성 9
  • 10. 2019 iFunFactory Dev Day 10 아이펀 엔진(Linux/C++) 프로젝트 만들기 (1)
  • 11. 2019 iFunFactory Dev Day 11 아이펀 엔진(Linux/C++) 프로젝트 만들기 (2)
  • 12. 2019 iFunFactory Dev Day 12 아이펀 엔진(Linux/C++) 프로젝트 만들기 (3)
  • 13. 2019 iFunFactory Dev Day 13 생성한 프로젝트 살펴보기
  • 14. 2019 iFunFactory Dev Day 빌드하기 VS Code 상에서 빌드 실행 (터미널 → 빌드 작업 실행) 14
  • 15. 2019 iFunFactory Dev Day 15 (시연) 빌드하기
  • 16. 2019 iFunFactory Dev Day 16 (시연) 빌드하기: 오류 수정하기
  • 17. 2019 iFunFactory Dev Day 테스트/디버깅 디버그 탭 → (실행할 서버 선택 후) 실행 17
  • 18. 2019 iFunFactory Dev Day 18 (시연) 디버깅하기
  • 19. 2019 iFunFactory Dev Day 패키징/배포하기 VS Code 상에서 패키징 실행 (터미널 → 작업 실행 → Packaging 선택) 19
  • 20. 2019 iFunFactory Dev Day 아이펀엔진 패키징하기 VS Code 상에서 패키징 실행 (터미널 → 작업 실행 → Packaging 선택) 20
  • 21. 2019 iFunFactory Dev Day 패키지 배포하기 • Ubuntu 의 .deb (APT 저장소) / Centos 의 .rpm (YUM 저장소) • Aptly (.deb 배포 도구) • createrepo (.rpm 배포 도구) • 3rd 파티 서비스 - packagecloud.io • 패키지를 이용해서 docker 이미지 생성 및 배포 • 직접 혹은 자동화된 프로세스로 필요한 서버에 배포 21
  • 22. 2019 iFunFactory Dev Day 22 (시연) 패키징하기
  • 23. 2019 iFunFactory Dev Day 23 (시연) 패키지 설치하기
  • 24. 2019 iFunFactory Dev Day 24 (시연) 설치한 서비스 실행하기
  • 25. 2019 iFunFactory Dev Day Demo 프로젝트 소개 - Pong • Atari에서 1972년에 제작한 1:1 대전 아케이드 게임 따라하기 • Pong 게임의 로직에 더해서 아래를 제공: • 유저 간 매치 메이킹 • 유저의 승/패 기록 저장 • 게임 승/패에 따른 랭킹 서비스 제공 • Facebook 인증으로 로그인 • 유저 수가 늘어도 게임 및 백엔드 서버가 수평 확장 25
  • 26. 2019 iFunFactory Dev Day 26 Pong: 게임 클라이언트
  • 27. 2019 iFunFactory Dev Day 27 Pong: 백엔드 서비스
  • 28. 2019 iFunFactory Dev Day 28 Pong: 백엔드에서 직접 만들 부분
  • 29. 2019 iFunFactory Dev Day 프레임웍을 썼을 때 개발자가 할 일 • 클라이언트 인증에 사용할 서비스 선택 (Facebook, Google, …) • 인증 서비스 연동은 프레임웍이 처리 • 랭킹의 형태 선택 (랭킹 종류, 동점자 처리 방식 선택, 리셋 주기, …) • 랭킹 데이터 저장 및 동점 처리, 리셋은 프레임웍이 처리 • 매치메이킹 규칙 • 매치메이킹 과정, 매칭 후 게임 서버로 이동 등은 프레임웍이 처리 • DB에 저장할 데이터 구조 (ORM 구조) • DB 연결, 샤딩, SP나 SQL query 호출은 프레임웍이 처리 • 네트워크 메시지를 정의하고, 메시지가 왔을 때 처리 로직 작성 29
  • 30. 2019 iFunFactory Dev Day (언제나) 개발자가 할 일 • Pong 게임의 로직 구현 30
  • 31. 2019 iFunFactory Dev Day 31 (시연) Pong 프로젝트: 인증
  • 32. 2019 iFunFactory Dev Day 32 (시연) Pong 프로젝트: 서버간 이동 (1)
  • 33. 2019 iFunFactory Dev Day 33 (시연) Pong 프로젝트: 서버간 이동 (2)
  • 34. 2019 iFunFactory Dev Day 34 (시연) Pong 프로젝트: 패키징
  • 35. 2019 iFunFactory Dev Day 요약 •Linux 서버 개발을 명령행 대신 VS Code를 써서 원격에서 •아이펀 엔진 + VS Code로 개발 진행 • 로컬 GUI + 원격으로 소스코드 편집 • 로컬 GUI 에서 원격 서비스 디버깅 • 패키지 생성 및 배포 준비 35
  • 36. 경기도 성남시 분당구 대왕판교로 660, 유스페이스1 B동 606호 [email protected] 070-4923-6566www.ifunfactory.com