SlideShare a Scribd company logo
1 of 19
게임 개발자를 위한 VBA 활용
2015.11.26 서버팀 / 김운봉
활용 배경
게임 테이블
ㅇ 게임 테이블을 보면 어떤 게임인지, 무슨 기능이 있는지 알 수 있다.
ㅇ 새로운 작업자가 테이블을 볼 경우 쉽게 이해가 가능한가 -> 문서 필요
ㅇ 기존 작업자가 시간이 지난후에 테이블을 봐야하는 경우 -> 문서 참고
ㅇ 테이블이 복잡하면 코드도 복잡
활용 배경
관리의 이슈
ㅇ 클라용 데이터? 서버용 데이터?
ㅇ 한곳에서 통합하여 관리 하는 것이 편하고 실수를 줄임
ㅇ 서버만, 클라만 쓰는 데이터는 폴더를 분리
ㅇ 스크립트 관리 : 모든 엑셀 파일마다 스크립트복사? 수정할일 생기면?
키인덱스 설명 구분 파일명 확률 데이터1 데이터2 데이터...
공통 클라용 공통 클라용 서버용 공통 공통 공통...
클라 데이터 서버 데이터
키인덱스
키인덱스설명
구분
파일명
데이터1
데이터2
데이터...
구분
확률
데이터1
데이터2
데이터...
기획 데이터
ㅇ 공통은 공통
ㅇ 서버용은 서버만
ㅇ 클라용은 클라만
소스 코드 생성
기본 컨셉
ㅇ 스펙 문서를 활용해 선언부 코드라도 자동으로 생성하자.
ㅇ 스펙 문서를 항상 최신으로 유지하자.
ㅇ 서버와 클라의 데이터를 통합 관리하자.
ㅇ 효율을 높이기 위해 해당 파트에서 안 쓰는건 배제한다.
소스 코드 생성
구조체 생성
ㅇ 미리 정의된 prefix 와 설명이 삽입된 구조체 생성 -> 복붙하여 사용
ㅇ Getter 와 Setter 가 필요할 경우 같이 생성
클래스 생성(하드코딩)
ㅇ 무식하게 테이블을 소스 코드 통채 제너레이션. (이런일이 있었음)
소스 코드 생성
공용 상수 생성
ㅇ 에러코드나 응답코드와 같은 공통 코드 정의
ㅇ 하지만 클라와 서버가 사용하는 언어가 다르다면?
예) 서버 C++, 클라 C#
ㅇ 예시 : WBS_ERROR_CODE.xlsm
ㅇ 직접 소스를 수정하는게 편할지도… (하지만 문서화!!)
소스 코드 생성
프로토콜 상수 및 패킷 구조체 생성
ㅇ 하나의 설계문서로.
ㅇ 서버용 프로토콜 정의 및 패킷 정의 코드 생성
ㅇ 클라용 프로토콜 정의 및 패킷 정의 코드 생성
ㅇ 개발자는 설계문서를 통해 프로토콜 헤더 및 소스코드 제너레이션
데이터베이스 관리
여러대의 서버라도 DB를 통해 데이터 통합 관리
ㅇ 서버가 각각 데이터를 가지고 있다면 일부 서버의 데이터가 바르지 않을 수 있음
ㅇ 바라보는 DB만 일치 시키면 모든 서버에서 일치된 데이터 사용
데이터베이스 관리
초기 사용자 테이블 생성
ㅇ 프로젝트 초기 논리설계후 물리테이블 구성시 테이블 생성하는것도 일
ㅇ ERWin 이나 ERStudio 같은 툴로 설계하고 젠하는 방법도 있으나 안사준다.
ㅇ 데이터 관계정립후 엑셀로 테이블을 디자인하고 엑셀에서 바로 생성한다.
게임 데이터 - 테이블 관리
테이블 설명서 관리
ㅇ 엑셀 문서 자체가 기본 스펙 문서의 역할
ㅇ 필드에 들어갈 구분 코드등의 의미를 기재해 둔다.
게임 데이터 - 테이블 관리
게임데이터 생성
ㅇ 클라나 서버에서 필요한 데이터만 Export 하거나 Upload
ㅇ ODBC 채널을 통해 일반적인 DBMS에 직접 접근하여 테이블 및 데이터 업로드
ㅇ DBMS의 PK를 이용하여 업데이트시 자동으로 중복 데이터 검출
ㅇ 구조가 변경된 경우에도 즉시 적용 가능
ㅇ 파일 단위 Export 시 JSON, XML, CSV 지원, 필요한 경우 다른 포맷 추가
게임 데이터 - 테이블 관리
데이터 작업 로그
ㅇ 서버에 데이터 업로드시 로그가 남아 최종 작업 일시 및 작업자 확인.
(작업자의 경우 자동으로 컴퓨터이름과 계정명을 기록)
ㅇ 누가 사고쳤는지 알아보는?
ㅇ 언제 업데이트했는지 확인하는?
ㅇ 컴퓨터과 계정명이 엉터리라면 확인하기 애매
몰아서 시연 몰아서 시연해 봅니다..
리소스 관리 (기타 활용방안)
ㅇ 리소스(아이콘)뷰어 페이지 생성
ㅇ 일반적으로 수많은 아이템의 코드를 일일이 외우고 개발하는 경우는 없다.
ㅇ 기획 테이블을 기준으로 이미지와 결합한 참고용 HTML 문서를 생성한다.
ㅇ (spr 파일은 별도의 뷰어 플러그인을 제작 해야함으로 배보다 배꼽이 더커짐)
ㅇ 예시: VBA_HtmResource.xls
ㅇ 테이블 기준 리소스파일 존재유무 확인
ㅇ 리소스가 명시된 컬럼이 있으면 해당 컬럼 참조 물리적인 파일의 존재 유무 검출, 결과 리포팅
ㅇ 예시: VBA_ValidateFIle.xls
ㅇ 배경이미지 활용 지형툴
ㅇ 미니 맵툴 처럼 간단하게도 활용 가능
ㅇ 예시: RM_T_Lot세팅.xls
리소스 관리 (기타 활용방안)
ㅇ 테스트 데이터 배치스크립트)
ㅇ 맵위 오브젝트 배치와 같은 일이 필요할때 (like SNG)
ㅇ 친구(특정)계정의 오브젝트 배치를 싹 밀고 게임 테이블을 기준으로 오브젝트를 배치하는 쿼리를 생성 후 DB를 갱신
하고 친구집으로 방문해보는 꼼수....
ㅇ 예시:VBA_CreateDeploy.xls
ㅇ 기타등등.. 아이디어만 있다면 Win32API 및 VBA 활용가능함.
잉여력이 만든
작품들
인베이더
아스키아트 뮤직비디오
여러 엑셀게임
구글에서도 놀
아보자.. 크롬 웹스토어
예제 시트
Q&A

More Related Content

Similar to 게임 개발자를 위한 Vba 활용

게임을 위한 최적의 AWS DB 서비스 선정 퀘스트 깨기::최유정::AWS Summit Seoul 2018
게임을 위한 최적의 AWS DB 서비스 선정 퀘스트 깨기::최유정::AWS Summit Seoul 2018 게임을 위한 최적의 AWS DB 서비스 선정 퀘스트 깨기::최유정::AWS Summit Seoul 2018
게임을 위한 최적의 AWS DB 서비스 선정 퀘스트 깨기::최유정::AWS Summit Seoul 2018 Amazon Web Services Korea
 
MySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxMySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxNeoClova
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기Wonha Ryu
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기YEONG-CHEON YOU
 
(120128) #fitalk sql server forensics
(120128) #fitalk   sql server forensics(120128) #fitalk   sql server forensics
(120128) #fitalk sql server forensicsINSIGHT FORENSIC
 
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프Jinuk Kim
 
성공적인 게임 런칭을 위한 비밀의 레시피 #3
성공적인 게임 런칭을 위한 비밀의 레시피 #3성공적인 게임 런칭을 위한 비밀의 레시피 #3
성공적인 게임 런칭을 위한 비밀의 레시피 #3Amazon Web Services Korea
 
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트Dae Kim
 
Spark performance tuning
Spark performance tuningSpark performance tuning
Spark performance tuninghaiteam
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
Data-Oriented Design과 유니티 DOTS
Data-Oriented Design과 유니티 DOTSData-Oriented Design과 유니티 DOTS
Data-Oriented Design과 유니티 DOTSSukwoo Lee
 
Mongo db 시작하기
Mongo db 시작하기Mongo db 시작하기
Mongo db 시작하기OnGameServer
 
게임 애셋 스트리밍 패치
게임 애셋 스트리밍 패치게임 애셋 스트리밍 패치
게임 애셋 스트리밍 패치Seungjae Lee
 
Introduction to DirectX 12 Programming , Ver 1.5
Introduction to DirectX 12 Programming , Ver 1.5Introduction to DirectX 12 Programming , Ver 1.5
Introduction to DirectX 12 Programming , Ver 1.5YEONG-CHEON YOU
 
AWS Summit Seoul 2015 - 게임 서비스 혁신을 위한 데이터 분석
AWS Summit Seoul 2015 - 게임 서비스 혁신을 위한 데이터 분석AWS Summit Seoul 2015 - 게임 서비스 혁신을 위한 데이터 분석
AWS Summit Seoul 2015 - 게임 서비스 혁신을 위한 데이터 분석Amazon Web Services Korea
 
게임 서비스 품질 향상을 위한 데이터 분석 활용하기 - 김필중 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
게임 서비스 품질 향상을 위한 데이터 분석 활용하기 - 김필중 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming게임 서비스 품질 향상을 위한 데이터 분석 활용하기 - 김필중 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
게임 서비스 품질 향상을 위한 데이터 분석 활용하기 - 김필중 솔루션즈 아키텍트:: AWS Cloud Track 3 GamingAmazon Web Services Korea
 
From MSSQL to MySQL
From MSSQL to MySQLFrom MSSQL to MySQL
From MSSQL to MySQLI Goo Lee
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCHo Gyu Lee
 
2006 03 15_pe & api hook
2006 03 15_pe & api hook2006 03 15_pe & api hook
2006 03 15_pe & api hook용환 노
 

Similar to 게임 개발자를 위한 Vba 활용 (20)

엑셀왕국
엑셀왕국엑셀왕국
엑셀왕국
 
게임을 위한 최적의 AWS DB 서비스 선정 퀘스트 깨기::최유정::AWS Summit Seoul 2018
게임을 위한 최적의 AWS DB 서비스 선정 퀘스트 깨기::최유정::AWS Summit Seoul 2018 게임을 위한 최적의 AWS DB 서비스 선정 퀘스트 깨기::최유정::AWS Summit Seoul 2018
게임을 위한 최적의 AWS DB 서비스 선정 퀘스트 깨기::최유정::AWS Summit Seoul 2018
 
MySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxMySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptx
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기
 
(120128) #fitalk sql server forensics
(120128) #fitalk   sql server forensics(120128) #fitalk   sql server forensics
(120128) #fitalk sql server forensics
 
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
 
성공적인 게임 런칭을 위한 비밀의 레시피 #3
성공적인 게임 런칭을 위한 비밀의 레시피 #3성공적인 게임 런칭을 위한 비밀의 레시피 #3
성공적인 게임 런칭을 위한 비밀의 레시피 #3
 
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
 
Spark performance tuning
Spark performance tuningSpark performance tuning
Spark performance tuning
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
Data-Oriented Design과 유니티 DOTS
Data-Oriented Design과 유니티 DOTSData-Oriented Design과 유니티 DOTS
Data-Oriented Design과 유니티 DOTS
 
Mongo db 시작하기
Mongo db 시작하기Mongo db 시작하기
Mongo db 시작하기
 
게임 애셋 스트리밍 패치
게임 애셋 스트리밍 패치게임 애셋 스트리밍 패치
게임 애셋 스트리밍 패치
 
Introduction to DirectX 12 Programming , Ver 1.5
Introduction to DirectX 12 Programming , Ver 1.5Introduction to DirectX 12 Programming , Ver 1.5
Introduction to DirectX 12 Programming , Ver 1.5
 
AWS Summit Seoul 2015 - 게임 서비스 혁신을 위한 데이터 분석
AWS Summit Seoul 2015 - 게임 서비스 혁신을 위한 데이터 분석AWS Summit Seoul 2015 - 게임 서비스 혁신을 위한 데이터 분석
AWS Summit Seoul 2015 - 게임 서비스 혁신을 위한 데이터 분석
 
게임 서비스 품질 향상을 위한 데이터 분석 활용하기 - 김필중 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
게임 서비스 품질 향상을 위한 데이터 분석 활용하기 - 김필중 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming게임 서비스 품질 향상을 위한 데이터 분석 활용하기 - 김필중 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
게임 서비스 품질 향상을 위한 데이터 분석 활용하기 - 김필중 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
 
From MSSQL to MySQL
From MSSQL to MySQLFrom MSSQL to MySQL
From MSSQL to MySQL
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABC
 
2006 03 15_pe & api hook
2006 03 15_pe & api hook2006 03 15_pe & api hook
2006 03 15_pe & api hook
 

게임 개발자를 위한 Vba 활용

  • 1. 게임 개발자를 위한 VBA 활용 2015.11.26 서버팀 / 김운봉
  • 2. 활용 배경 게임 테이블 ㅇ 게임 테이블을 보면 어떤 게임인지, 무슨 기능이 있는지 알 수 있다. ㅇ 새로운 작업자가 테이블을 볼 경우 쉽게 이해가 가능한가 -> 문서 필요 ㅇ 기존 작업자가 시간이 지난후에 테이블을 봐야하는 경우 -> 문서 참고 ㅇ 테이블이 복잡하면 코드도 복잡
  • 3. 활용 배경 관리의 이슈 ㅇ 클라용 데이터? 서버용 데이터? ㅇ 한곳에서 통합하여 관리 하는 것이 편하고 실수를 줄임 ㅇ 서버만, 클라만 쓰는 데이터는 폴더를 분리 ㅇ 스크립트 관리 : 모든 엑셀 파일마다 스크립트복사? 수정할일 생기면?
  • 4. 키인덱스 설명 구분 파일명 확률 데이터1 데이터2 데이터... 공통 클라용 공통 클라용 서버용 공통 공통 공통... 클라 데이터 서버 데이터 키인덱스 키인덱스설명 구분 파일명 데이터1 데이터2 데이터... 구분 확률 데이터1 데이터2 데이터... 기획 데이터 ㅇ 공통은 공통 ㅇ 서버용은 서버만 ㅇ 클라용은 클라만
  • 5. 소스 코드 생성 기본 컨셉 ㅇ 스펙 문서를 활용해 선언부 코드라도 자동으로 생성하자. ㅇ 스펙 문서를 항상 최신으로 유지하자. ㅇ 서버와 클라의 데이터를 통합 관리하자. ㅇ 효율을 높이기 위해 해당 파트에서 안 쓰는건 배제한다.
  • 6. 소스 코드 생성 구조체 생성 ㅇ 미리 정의된 prefix 와 설명이 삽입된 구조체 생성 -> 복붙하여 사용 ㅇ Getter 와 Setter 가 필요할 경우 같이 생성 클래스 생성(하드코딩) ㅇ 무식하게 테이블을 소스 코드 통채 제너레이션. (이런일이 있었음)
  • 7. 소스 코드 생성 공용 상수 생성 ㅇ 에러코드나 응답코드와 같은 공통 코드 정의 ㅇ 하지만 클라와 서버가 사용하는 언어가 다르다면? 예) 서버 C++, 클라 C# ㅇ 예시 : WBS_ERROR_CODE.xlsm ㅇ 직접 소스를 수정하는게 편할지도… (하지만 문서화!!)
  • 8. 소스 코드 생성 프로토콜 상수 및 패킷 구조체 생성 ㅇ 하나의 설계문서로. ㅇ 서버용 프로토콜 정의 및 패킷 정의 코드 생성 ㅇ 클라용 프로토콜 정의 및 패킷 정의 코드 생성 ㅇ 개발자는 설계문서를 통해 프로토콜 헤더 및 소스코드 제너레이션
  • 9. 데이터베이스 관리 여러대의 서버라도 DB를 통해 데이터 통합 관리 ㅇ 서버가 각각 데이터를 가지고 있다면 일부 서버의 데이터가 바르지 않을 수 있음 ㅇ 바라보는 DB만 일치 시키면 모든 서버에서 일치된 데이터 사용
  • 10. 데이터베이스 관리 초기 사용자 테이블 생성 ㅇ 프로젝트 초기 논리설계후 물리테이블 구성시 테이블 생성하는것도 일 ㅇ ERWin 이나 ERStudio 같은 툴로 설계하고 젠하는 방법도 있으나 안사준다. ㅇ 데이터 관계정립후 엑셀로 테이블을 디자인하고 엑셀에서 바로 생성한다.
  • 11. 게임 데이터 - 테이블 관리 테이블 설명서 관리 ㅇ 엑셀 문서 자체가 기본 스펙 문서의 역할 ㅇ 필드에 들어갈 구분 코드등의 의미를 기재해 둔다.
  • 12. 게임 데이터 - 테이블 관리 게임데이터 생성 ㅇ 클라나 서버에서 필요한 데이터만 Export 하거나 Upload ㅇ ODBC 채널을 통해 일반적인 DBMS에 직접 접근하여 테이블 및 데이터 업로드 ㅇ DBMS의 PK를 이용하여 업데이트시 자동으로 중복 데이터 검출 ㅇ 구조가 변경된 경우에도 즉시 적용 가능 ㅇ 파일 단위 Export 시 JSON, XML, CSV 지원, 필요한 경우 다른 포맷 추가
  • 13. 게임 데이터 - 테이블 관리 데이터 작업 로그 ㅇ 서버에 데이터 업로드시 로그가 남아 최종 작업 일시 및 작업자 확인. (작업자의 경우 자동으로 컴퓨터이름과 계정명을 기록) ㅇ 누가 사고쳤는지 알아보는? ㅇ 언제 업데이트했는지 확인하는? ㅇ 컴퓨터과 계정명이 엉터리라면 확인하기 애매
  • 14. 몰아서 시연 몰아서 시연해 봅니다..
  • 15. 리소스 관리 (기타 활용방안) ㅇ 리소스(아이콘)뷰어 페이지 생성 ㅇ 일반적으로 수많은 아이템의 코드를 일일이 외우고 개발하는 경우는 없다. ㅇ 기획 테이블을 기준으로 이미지와 결합한 참고용 HTML 문서를 생성한다. ㅇ (spr 파일은 별도의 뷰어 플러그인을 제작 해야함으로 배보다 배꼽이 더커짐) ㅇ 예시: VBA_HtmResource.xls ㅇ 테이블 기준 리소스파일 존재유무 확인 ㅇ 리소스가 명시된 컬럼이 있으면 해당 컬럼 참조 물리적인 파일의 존재 유무 검출, 결과 리포팅 ㅇ 예시: VBA_ValidateFIle.xls ㅇ 배경이미지 활용 지형툴 ㅇ 미니 맵툴 처럼 간단하게도 활용 가능 ㅇ 예시: RM_T_Lot세팅.xls
  • 16. 리소스 관리 (기타 활용방안) ㅇ 테스트 데이터 배치스크립트) ㅇ 맵위 오브젝트 배치와 같은 일이 필요할때 (like SNG) ㅇ 친구(특정)계정의 오브젝트 배치를 싹 밀고 게임 테이블을 기준으로 오브젝트를 배치하는 쿼리를 생성 후 DB를 갱신 하고 친구집으로 방문해보는 꼼수.... ㅇ 예시:VBA_CreateDeploy.xls ㅇ 기타등등.. 아이디어만 있다면 Win32API 및 VBA 활용가능함.
  • 18. 구글에서도 놀 아보자.. 크롬 웹스토어 예제 시트
  • 19. Q&A