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

PDF
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
PDF
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
PDF
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
PDF
2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
PDF
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
PDF
워드프레스 기초 (ABCD) #1
PDF
생활 코딩 #2(Simple Web Scraping with Python #2)
PDF
Jenkins with Unity3d & Android
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
워드프레스 기초 (ABCD) #1
생활 코딩 #2(Simple Web Scraping with Python #2)
Jenkins with Unity3d & Android

What's hot (12)

PDF
Python과 AWS를 이용하여 게임 테스트 환경 구축하기
PPTX
1.develop environment
PPTX
PDF
웹 IDE 비교
PDF
Codeveloper 개발기
PDF
PyCon 2017 예제로 살펴보는 PyQt
PDF
swift를 이용한 카카오링크 만들기
PPTX
make hybrid app.
PDF
생활 코딩 #1(Simple Web Scraping with Python #1)
PDF
Codeveloper
PDF
Cloud ide를 이용한_모바일_개발의_가능성과_전망
PPTX
The Future of C# and .NET Framework
Python과 AWS를 이용하여 게임 테스트 환경 구축하기
1.develop environment
웹 IDE 비교
Codeveloper 개발기
PyCon 2017 예제로 살펴보는 PyQt
swift를 이용한 카카오링크 만들기
make hybrid app.
생활 코딩 #1(Simple Web Scraping with Python #1)
Codeveloper
Cloud ide를 이용한_모바일_개발의_가능성과_전망
The Future of C# and .NET Framework
Ad

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

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

More from iFunFactory Inc. (20)

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

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

  • 1. 2019 iFunFactory Dev Day ‘아이펀 엔진으로 MO 게임 서버 개발하기’ 1
  • 2. ‘아이펀 엔진으로 MO 게임 서버 개발하기’ 2019 iFunFactory Dev Day 2 김진욱 CTO (jinuk.kim@ifunfactory.com) 개발 환경 설정하기 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호 info@ifunfactory.com 070-4923-6566www.ifunfactory.com