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)

PPTX
CI in the Mobile World (한글번역)
DONGSU KIM
 
PPT
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
iFunFactory Inc.
 
PDF
ifcpp build guide
JUNHEEKIM27
 
PDF
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
iFunFactory Inc.
 
PDF
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
iFunFactory Inc.
 
PDF
Goorm
Eun-Gwi Jo
 
PDF
클라우드 IDE, 구름 프로젝트 | Devon 2012
Daum DNA
 
PDF
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
Sang Don Kim
 
PPTX
2022.08 멘토링 자료.pptx
ssuserf875e6
 
PPTX
Unity3D 한국 최초 기술 세미나
Brandon Chung
 
PDF
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
지원 정
 
PDF
IT Trend 2010
msdream
 
PDF
엠퀴즈 (클라우드, 서버리스 기반 실시간 웹 퀴즈 게임)_완료보고서.pdf
yeongkikim2
 
PDF
생산성을 높여주는 iOS 개발 방법들.pdf
ssuserb942d2
 
PDF
DevOps - CI/CD 알아보기
SeungYong Baek
 
PDF
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
funmeate
 
PDF
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요
Ian Choi
 
PPTX
[123] electron 김성훈
NAVER D2
 
PPTX
Win10 iot core_pi2
WeAreDev
 
CI in the Mobile World (한글번역)
DONGSU KIM
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
iFunFactory Inc.
 
ifcpp build guide
JUNHEEKIM27
 
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
iFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
iFunFactory Inc.
 
Goorm
Eun-Gwi Jo
 
클라우드 IDE, 구름 프로젝트 | Devon 2012
Daum DNA
 
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
Sang Don Kim
 
2022.08 멘토링 자료.pptx
ssuserf875e6
 
Unity3D 한국 최초 기술 세미나
Brandon Chung
 
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
지원 정
 
IT Trend 2010
msdream
 
엠퀴즈 (클라우드, 서버리스 기반 실시간 웹 퀴즈 게임)_완료보고서.pdf
yeongkikim2
 
생산성을 높여주는 iOS 개발 방법들.pdf
ssuserb942d2
 
DevOps - CI/CD 알아보기
SeungYong Baek
 
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
funmeate
 
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요
Ian Choi
 
[123] electron 김성훈
NAVER D2
 
Win10 iot core_pi2
WeAreDev
 
Ad

More from iFunFactory Inc. (20)

PDF
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
iFunFactory Inc.
 
PDF
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
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.
 
PDF
혼자서 만드는 MMO게임 서버
iFunFactory Inc.
 
PPTX
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
iFunFactory Inc.
 
PPTX
Docker 로 Linux 없이 Linux 환경에서 개발하기
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.
 
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
iFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
iFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
iFunFactory Inc.
 
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
iFunFactory Inc.
 
[아이펀팩토리] 2017 NDCP
iFunFactory Inc.
 
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
iFunFactory Inc.
 
유니티 쉐이더 단기속성
iFunFactory Inc.
 
게임 서버 성능 분석하기
iFunFactory Inc.
 
혼자서 만드는 MMO게임 서버
iFunFactory Inc.
 
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
iFunFactory Inc.
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
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.
 
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