SlideShare une entreprise Scribd logo
1  sur  11
안녕하세요 근래에 게임프로그래밍 학원 강사로 활동하고 있는 한숟깔이라고 합니다.
게임 개발하기 참 좋은 세상이 왔습니다.
과거에는 직접 모든걸 하나하나 개발해야 했던 고급 3D 기술들을 손쉽게 사용할 수 있게 도와주는 3D엔진들이
무료로 풀리고 있고 게임 개발의 알고리즘이나 방법에 관한 정보를 인터넷에서 손쉽게 구할 수 있는 시기가 왔습
니다.
당신이 게임 개발을 하고 싶다면 지금이라고 말씀 드리고 싶습니다.
하지만 막상 게임개발에 입문하려고 하면 그렇게 손쉬운 분야가 아니라고 느끼게 될 것입니다.
이유는 순차적으로 차근차근 밟아 나가야 할 계단이 있는데 그 순서를 제대로 알려주는 곳도 없을뿐더러. 정리
가 되어 있지도 않기 때문입니다.
항상 디지털게임(모바일, PC)등의 환경의 게임을 개발하려면 프로그래밍 언어를 배우라고 하는데. 프로그래밍
문법만을 익히려고 하면 지루하고 재미가 없을 뿐입니다. 문법들이 대체 어떻게 게임이 되고 내가 게임을 만드는
데 그것이 어떻게 사용되는지 설명하는 정보가 절대적으로 부족하다고 생각이 들었습니다.
당연히 의지와 노력은 중요하지만 그에 대한 방향성을 제시해주는 것도 교육에 큰 역할 중 하나라고 생각합니
다.
근래에 게임제작과 관련된 강의를 하면서 기획적인 부분이나 프로그래밍 언어를 가르치면서 그것을 왜 사용해야
하는지 설득력 있는 정보에 대해 경험했었나 생각해 보면 그렇지도 않은 것 같습니다.
항상 조각나 있는 알고리즘들과 함수단위의 정보들을 접해왔고 문법에 대해서 상세히 적혀져 있지만 그것이
‘게임에 어떻게 사용되나에 왜 의미가 있나?’에 대한 설득력 있는 정보가 많지 않았습니다.
지금부터 시작할 글들은 정확하게 말하자면 게임 프로그래밍에 대한 블로깅이 아닙니다. 게임 기획과 게임프로
그래밍 이 두 가지의 연관성에 대해서 제가 경험해왔던 것들을 풀어내 보려고 합니다.
만약 이 글을 보셨다면 최신버전의 비쥬얼 스튜디오와 유니티를 설치해 주세요.
https://unity3d.com/kr/get-unity/download
위 주소에서 유니티를 설치가 가능하고 비쥬얼 스튜디오 2015와 내부에 c#과 넷 프레임워크가 자동으로 설치
자 유니티와 VS2015를 설치하셨다면 다음 작업으로 들어가 보겠습니다.
이번 강의는 게임제작입문에 대한 강의이므로 당연히 게임을 만들 것입니다.
그런데 우리가 만들 게임은 여러분이 일반적으로 생각하는 게임은 아닙니다. 즉 그래픽 기반의 게임이 아닌 콘
솔을 기반으로 하는 텍스트 RPG를 만들 생각입니다.
텍스트 RPG가 뭔가요? 라고 물어보신다면 아래와 같은 게임입니다.
이 녀석을 C#으로 제작해 보려고 합니다. 왜 C#이라고 물어보신다면 현재 일반인이 ‘무료’로 가장 접하기 쉬
운 언어가 C#이기 때문입니다. 유니티를 설치하면 자동으로 VS2015가 설치되고 설치가 되면 C#에 관한
IDE(Integrated development environment 통합 개발 환경(프로그래밍을 하기 좋은 환경을 구성하기 위한 제반 요소))환
경이 자동으로 구축됩니다.
자 결론적으로 말하자면 텍스트와 글자로만 이루어진 게임을 만드는 것입니다.
여기서부터 실망하실 분도 있겠지만 게임 프로그래밍의 기초를 배우기에 이보다 좋은 소재도 없습니다. 콘솔 프로그래밍
은 프로그램 그 자체의 기초를 배우기에 적절한 소재입니다. 거기에 이 강의는 게임제작을 처음 하시는 분들을 대상으로
하므로 텍스트RPG를 통해서 강의를 하는 것이 알맞다고 생각됩니다.
자 그럼 우리가 만들려는 텍스트 RPG를 만들기 위해서는 화면에 텍스트를 띄울 수 있는 기능이 필수입니다.
여러분은 이제 VS2015를 모두 설치하셨을 겁니다.
그것을 이용해서 프로그래밍을 해보도록 하겠습니다.
윈도우OS를 사용하신다면 좌측하단 시작메뉴 버튼 -> 모든 프로그램 안에 다음과 같은 실행파일이 존재할 겁니다.
이 녀석을 실행해 보도록 하겠습니다.
자 다음과 같은 화면이 나온다면 VS2015가 제대로 설치되었다는 이야기 입니다.
자 이곳에서 다음과 같이 선택을 해주시면 됩니다.
자 제대로 선택해 주셨다면 다음과 같은 화면이 나올 것입니다.
이것은 프로젝트 선택 창입니다. 우리가 만들 프로젝트는 C# 그리고 만들어야 할 녀석은 콘솔 창에 뜨는 텍스트를 기반
으로 한 RPG를 만들 것이기 때문에 콘솔 어플리케이션을 선택해 줍니다. 프로젝트의 이름은 원하시는 대로 지어도 상관은
없습니다.
Name는 SharpRpgProject, Solution name는 SharpRpgSolution이라고 정하겠습니다.
프로젝트와 솔루션 명까지 입력 하셨다면 OK버튼을 눌러주세요.
다음과 같이 창이 뜬다면 성공입니다. 이제 여러분은 C# 프로그래밍을 할 준비가 되었습니다.
코드창.
우리가 실체 쳐야할 코드
의 내용을 보여준다.
솔루션 탐색기.
비쥬얼 스튜디오는 솔루션을 하나 이상
의 프로젝트의 집합으로 본다.
SharpRpgPorject는 SharpRpgSolution에
속하는 프로젝트이다.
비쥬얼 스튜디오의 솔루션에 대해서 이해해 보겠습니다. 비쥬얼 스튜디오는 일반적으로 하나의 솔루션 안에 여러 개의
프로젝트를 묶어서 관리합니다. 즉 다음과 같은 구조인 것이죠.
솔루션
프로젝트
프로젝트
프로젝트
프로젝트
SharpRpgSolution
SharpRpgProject
솔루션 개요 우리 프로젝트
자 그럼 이제 가장 간단한 코드를 쳐보고 그에 대해서 실행해보겠습니다.
코드창에 다음과 같은 코드를 쳐주세요. 자 그 다음 컨트롤 + F5키를 누르면 컴파일과정을 거쳐 실행파일이 만들어 지게
됩니다.
결과창
자 만약 실행이 되지 않는다면 다음과 같은 실수를 생각해 볼 수 있습니다.
1. 코드의 대소문자 오타. (C#의 클래스나 명령어는 대소문자를 지켜야 합니다.)
2. 컨트롤(누른 상태로) + F5를 눌러주셔야 합니다.
자 그럼 지금까지 우리가 한 내용의 상세한 과정에 대해서 설명 드리겠습니다.
다음과 같은 과정을 거치게 됩니다.
1. 자 설명을 하자면 전처리기가 일반적으로 코드의 주석 및 불필요한 내용들 그리고 레퍼런스 코드삽입을 처리합니다.
2. 그 이후 중간언어 MSIL코드로 변환을 합니다.
3. CLR을 통해서 MSIL코드를 실행환경에 맞게 관리 실행할 수 있게 만든다.
4. 이후 JIT가 네이티브(바이너리) 코드를 생성하고 이것이 이후로 실행파일이 되어 실행됩니다.
자 그럼 중요한 점은 최종 결론적으로 EXE파일이 만들어지게 됩니다.
그럼 그것을 확인해 보겠습니다.
전처리기 동작 컴파일러
중간언어
MSIL
CLR
프로그램 실행환경 제공
(메모리 업로드)
JIT
플랫폼별 다름.
(원시코드 생성)
실행파일 생성 및
실행
EXE파일의 확인.
1. 프로젝트를 선택. Open Foler in File Explorer을 실행
2. 프로젝트 폴더에서 bin 폴더 내부로 들어간다.
3. Debug로 진입.
4. 실행파일이 들어있는 것을 확인한다.(실행까지 해보시면 같은 프로그램이라는 것을 알 수 있습니다.)

Contenu connexe

Tendances

Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)MinGeun Park
 
고대특강 게임 프로그래머의 소양
고대특강   게임 프로그래머의 소양고대특강   게임 프로그래머의 소양
고대특강 게임 프로그래머의 소양Jubok Kim
 
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들MinGeun Park
 
[0611 박민근] 신입 게임 개발자가 알아야 할 것들
[0611 박민근] 신입 게임 개발자가 알아야 할 것들[0611 박민근] 신입 게임 개발자가 알아야 할 것들
[0611 박민근] 신입 게임 개발자가 알아야 할 것들MinGeun Park
 
TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)
TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)
TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)valhashi
 
내 손에 픽셀을 쥐어다오
내 손에 픽셀을 쥐어다오내 손에 픽셀을 쥐어다오
내 손에 픽셀을 쥐어다오KwangSam Kim
 
[GPG스터디] 1.0 데이터 주도적 설계의 마법
[GPG스터디] 1.0 데이터 주도적 설계의 마법[GPG스터디] 1.0 데이터 주도적 설계의 마법
[GPG스터디] 1.0 데이터 주도적 설계의 마법Sehyeon Nam
 
[IGC2018] 엔씨소프트 이경종 - 심층강화학습을 활용한 프로게이머 수준의 AI 만들기
[IGC2018] 엔씨소프트 이경종 - 심층강화학습을 활용한 프로게이머 수준의 AI 만들기[IGC2018] 엔씨소프트 이경종 - 심층강화학습을 활용한 프로게이머 수준의 AI 만들기
[IGC2018] 엔씨소프트 이경종 - 심층강화학습을 활용한 프로게이머 수준의 AI 만들기강 민우
 
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?강 민우
 
프로그래머가 되고 싶으세요
프로그래머가 되고 싶으세요프로그래머가 되고 싶으세요
프로그래머가 되고 싶으세요Chris Ohk
 
NDC17 게임 디자이너 커리어 포스트모템: 8년, 3개의 회사, 4개의 게임
NDC17 게임 디자이너 커리어 포스트모템: 8년, 3개의 회사, 4개의 게임NDC17 게임 디자이너 커리어 포스트모템: 8년, 3개의 회사, 4개의 게임
NDC17 게임 디자이너 커리어 포스트모템: 8년, 3개의 회사, 4개의 게임Imseong Kang
 
NDC 2014) 별바람의 기묘한 모험 1991-2014
NDC 2014) 별바람의 기묘한 모험 1991-2014NDC 2014) 별바람의 기묘한 모험 1991-2014
NDC 2014) 별바람의 기묘한 모험 1991-2014KwangSam Kim
 
[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법MinGeun Park
 
NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)
NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)
NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)Eunseok Yi
 
[0108 조진현]출발 소프트웨어 렌더러
[0108 조진현]출발 소프트웨어 렌더러[0108 조진현]출발 소프트웨어 렌더러
[0108 조진현]출발 소프트웨어 렌더러진현 조
 
KGC 2007 소프트웨어 렌더러 개발
KGC 2007  소프트웨어 렌더러 개발KGC 2007  소프트웨어 렌더러 개발
KGC 2007 소프트웨어 렌더러 개발SeongWan Kim
 
Re:Zero부터 시작하지 않는 오픈소스 개발
Re:Zero부터 시작하지 않는 오픈소스 개발Re:Zero부터 시작하지 않는 오픈소스 개발
Re:Zero부터 시작하지 않는 오픈소스 개발Chris Ohk
 
[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐MinGeun Park
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건강 민우
 
Unreal4 박재완
Unreal4 박재완Unreal4 박재완
Unreal4 박재완재완 박
 

Tendances (20)

Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
 
고대특강 게임 프로그래머의 소양
고대특강   게임 프로그래머의 소양고대특강   게임 프로그래머의 소양
고대특강 게임 프로그래머의 소양
 
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
 
[0611 박민근] 신입 게임 개발자가 알아야 할 것들
[0611 박민근] 신입 게임 개발자가 알아야 할 것들[0611 박민근] 신입 게임 개발자가 알아야 할 것들
[0611 박민근] 신입 게임 개발자가 알아야 할 것들
 
TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)
TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)
TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)
 
내 손에 픽셀을 쥐어다오
내 손에 픽셀을 쥐어다오내 손에 픽셀을 쥐어다오
내 손에 픽셀을 쥐어다오
 
[GPG스터디] 1.0 데이터 주도적 설계의 마법
[GPG스터디] 1.0 데이터 주도적 설계의 마법[GPG스터디] 1.0 데이터 주도적 설계의 마법
[GPG스터디] 1.0 데이터 주도적 설계의 마법
 
[IGC2018] 엔씨소프트 이경종 - 심층강화학습을 활용한 프로게이머 수준의 AI 만들기
[IGC2018] 엔씨소프트 이경종 - 심층강화학습을 활용한 프로게이머 수준의 AI 만들기[IGC2018] 엔씨소프트 이경종 - 심층강화학습을 활용한 프로게이머 수준의 AI 만들기
[IGC2018] 엔씨소프트 이경종 - 심층강화학습을 활용한 프로게이머 수준의 AI 만들기
 
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
 
프로그래머가 되고 싶으세요
프로그래머가 되고 싶으세요프로그래머가 되고 싶으세요
프로그래머가 되고 싶으세요
 
NDC17 게임 디자이너 커리어 포스트모템: 8년, 3개의 회사, 4개의 게임
NDC17 게임 디자이너 커리어 포스트모템: 8년, 3개의 회사, 4개의 게임NDC17 게임 디자이너 커리어 포스트모템: 8년, 3개의 회사, 4개의 게임
NDC17 게임 디자이너 커리어 포스트모템: 8년, 3개의 회사, 4개의 게임
 
NDC 2014) 별바람의 기묘한 모험 1991-2014
NDC 2014) 별바람의 기묘한 모험 1991-2014NDC 2014) 별바람의 기묘한 모험 1991-2014
NDC 2014) 별바람의 기묘한 모험 1991-2014
 
[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법
 
NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)
NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)
NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)
 
[0108 조진현]출발 소프트웨어 렌더러
[0108 조진현]출발 소프트웨어 렌더러[0108 조진현]출발 소프트웨어 렌더러
[0108 조진현]출발 소프트웨어 렌더러
 
KGC 2007 소프트웨어 렌더러 개발
KGC 2007  소프트웨어 렌더러 개발KGC 2007  소프트웨어 렌더러 개발
KGC 2007 소프트웨어 렌더러 개발
 
Re:Zero부터 시작하지 않는 오픈소스 개발
Re:Zero부터 시작하지 않는 오픈소스 개발Re:Zero부터 시작하지 않는 오픈소스 개발
Re:Zero부터 시작하지 않는 오픈소스 개발
 
[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건
 
Unreal4 박재완
Unreal4 박재완Unreal4 박재완
Unreal4 박재완
 

Similaire à C#과 유니티를 통한 게임개발 입문.

게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)Kiyoung Moon
 
유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑Kiyoung Moon
 
Django Girls 12월 Meetup 발표 자료
Django Girls 12월 Meetup 발표 자료Django Girls 12월 Meetup 발표 자료
Django Girls 12월 Meetup 발표 자료seungdols
 
소프트웨어 교육 이야기
소프트웨어 교육 이야기소프트웨어 교육 이야기
소프트웨어 교육 이야기Jaehwi Alice Kim
 
기획과 개발의 균형잡기 Kt 100823_외부
기획과 개발의 균형잡기 Kt 100823_외부기획과 개발의 균형잡기 Kt 100823_외부
기획과 개발의 균형잡기 Kt 100823_외부jinwook shin
 
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회ChangHyun Won
 
아이패드기획강연 플루토미디어 외부_100915
아이패드기획강연 플루토미디어 외부_100915아이패드기획강연 플루토미디어 외부_100915
아이패드기획강연 플루토미디어 외부_100915jinwook shin
 
월간 리드잇(beta) 2018년 10월호
월간 리드잇(beta) 2018년 10월호월간 리드잇(beta) 2018년 10월호
월간 리드잇(beta) 2018년 10월호Hantae John Yu
 
[강의소개] 안드로이드 앱 개발 입문 캠프 4기
[강의소개] 안드로이드 앱 개발 입문 캠프 4기[강의소개] 안드로이드 앱 개발 입문 캠프 4기
[강의소개] 안드로이드 앱 개발 입문 캠프 4기FAST CAMPUS
 
2months of jaehunseok
2months of jaehunseok2months of jaehunseok
2months of jaehunseok재훈 석
 
사내 TDD 도입을 위한 설명 문서
사내 TDD 도입을 위한 설명 문서사내 TDD 도입을 위한 설명 문서
사내 TDD 도입을 위한 설명 문서Kim kyoung-song
 
0917_서인고_멘토링_오원종_최종.pdf
0917_서인고_멘토링_오원종_최종.pdf0917_서인고_멘토링_오원종_최종.pdf
0917_서인고_멘토링_오원종_최종.pdfWonJongOh1
 
2. 증명된 컨셉으로 게임디자인 하기
2. 증명된 컨셉으로 게임디자인 하기2. 증명된 컨셉으로 게임디자인 하기
2. 증명된 컨셉으로 게임디자인 하기Suyeong Park
 
Ux Camp Seoul 2014 - 레고에서 발견하는 좋은 제품의 사소함
Ux Camp Seoul 2014 - 레고에서 발견하는 좋은 제품의 사소함Ux Camp Seoul 2014 - 레고에서 발견하는 좋은 제품의 사소함
Ux Camp Seoul 2014 - 레고에서 발견하는 좋은 제품의 사소함Woo Sanghun
 
『DirectX 12를 이용한 3D 게임 프로그래밍 입문』 - 맛보기
『DirectX 12를 이용한 3D 게임 프로그래밍 입문』 - 맛보기『DirectX 12를 이용한 3D 게임 프로그래밍 입문』 - 맛보기
『DirectX 12를 이용한 3D 게임 프로그래밍 입문』 - 맛보기복연 이
 
임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드태현 임
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원NAVER D2
 
애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...
애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...
애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...Kay Kim
 

Similaire à C#과 유니티를 통한 게임개발 입문. (20)

게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)
 
유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑
 
게임강연정리
게임강연정리게임강연정리
게임강연정리
 
Django Girls 12월 Meetup 발표 자료
Django Girls 12월 Meetup 발표 자료Django Girls 12월 Meetup 발표 자료
Django Girls 12월 Meetup 발표 자료
 
소프트웨어 교육 이야기
소프트웨어 교육 이야기소프트웨어 교육 이야기
소프트웨어 교육 이야기
 
기획과 개발의 균형잡기 Kt 100823_외부
기획과 개발의 균형잡기 Kt 100823_외부기획과 개발의 균형잡기 Kt 100823_외부
기획과 개발의 균형잡기 Kt 100823_외부
 
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
 
아이패드기획강연 플루토미디어 외부_100915
아이패드기획강연 플루토미디어 외부_100915아이패드기획강연 플루토미디어 외부_100915
아이패드기획강연 플루토미디어 외부_100915
 
월간 리드잇(beta) 2018년 10월호
월간 리드잇(beta) 2018년 10월호월간 리드잇(beta) 2018년 10월호
월간 리드잇(beta) 2018년 10월호
 
[강의소개] 안드로이드 앱 개발 입문 캠프 4기
[강의소개] 안드로이드 앱 개발 입문 캠프 4기[강의소개] 안드로이드 앱 개발 입문 캠프 4기
[강의소개] 안드로이드 앱 개발 입문 캠프 4기
 
2months of jaehunseok
2months of jaehunseok2months of jaehunseok
2months of jaehunseok
 
사내 TDD 도입을 위한 설명 문서
사내 TDD 도입을 위한 설명 문서사내 TDD 도입을 위한 설명 문서
사내 TDD 도입을 위한 설명 문서
 
[PandoraCube] 게임 프로그래머로 성장하기
[PandoraCube] 게임 프로그래머로 성장하기[PandoraCube] 게임 프로그래머로 성장하기
[PandoraCube] 게임 프로그래머로 성장하기
 
0917_서인고_멘토링_오원종_최종.pdf
0917_서인고_멘토링_오원종_최종.pdf0917_서인고_멘토링_오원종_최종.pdf
0917_서인고_멘토링_오원종_최종.pdf
 
2. 증명된 컨셉으로 게임디자인 하기
2. 증명된 컨셉으로 게임디자인 하기2. 증명된 컨셉으로 게임디자인 하기
2. 증명된 컨셉으로 게임디자인 하기
 
Ux Camp Seoul 2014 - 레고에서 발견하는 좋은 제품의 사소함
Ux Camp Seoul 2014 - 레고에서 발견하는 좋은 제품의 사소함Ux Camp Seoul 2014 - 레고에서 발견하는 좋은 제품의 사소함
Ux Camp Seoul 2014 - 레고에서 발견하는 좋은 제품의 사소함
 
『DirectX 12를 이용한 3D 게임 프로그래밍 입문』 - 맛보기
『DirectX 12를 이용한 3D 게임 프로그래밍 입문』 - 맛보기『DirectX 12를 이용한 3D 게임 프로그래밍 입문』 - 맛보기
『DirectX 12를 이용한 3D 게임 프로그래밍 입문』 - 맛보기
 
임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원
 
애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...
애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...
애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...
 

C#과 유니티를 통한 게임개발 입문.

  • 1. 안녕하세요 근래에 게임프로그래밍 학원 강사로 활동하고 있는 한숟깔이라고 합니다. 게임 개발하기 참 좋은 세상이 왔습니다. 과거에는 직접 모든걸 하나하나 개발해야 했던 고급 3D 기술들을 손쉽게 사용할 수 있게 도와주는 3D엔진들이 무료로 풀리고 있고 게임 개발의 알고리즘이나 방법에 관한 정보를 인터넷에서 손쉽게 구할 수 있는 시기가 왔습 니다. 당신이 게임 개발을 하고 싶다면 지금이라고 말씀 드리고 싶습니다. 하지만 막상 게임개발에 입문하려고 하면 그렇게 손쉬운 분야가 아니라고 느끼게 될 것입니다. 이유는 순차적으로 차근차근 밟아 나가야 할 계단이 있는데 그 순서를 제대로 알려주는 곳도 없을뿐더러. 정리 가 되어 있지도 않기 때문입니다. 항상 디지털게임(모바일, PC)등의 환경의 게임을 개발하려면 프로그래밍 언어를 배우라고 하는데. 프로그래밍 문법만을 익히려고 하면 지루하고 재미가 없을 뿐입니다. 문법들이 대체 어떻게 게임이 되고 내가 게임을 만드는 데 그것이 어떻게 사용되는지 설명하는 정보가 절대적으로 부족하다고 생각이 들었습니다. 당연히 의지와 노력은 중요하지만 그에 대한 방향성을 제시해주는 것도 교육에 큰 역할 중 하나라고 생각합니 다. 근래에 게임제작과 관련된 강의를 하면서 기획적인 부분이나 프로그래밍 언어를 가르치면서 그것을 왜 사용해야 하는지 설득력 있는 정보에 대해 경험했었나 생각해 보면 그렇지도 않은 것 같습니다. 항상 조각나 있는 알고리즘들과 함수단위의 정보들을 접해왔고 문법에 대해서 상세히 적혀져 있지만 그것이 ‘게임에 어떻게 사용되나에 왜 의미가 있나?’에 대한 설득력 있는 정보가 많지 않았습니다. 지금부터 시작할 글들은 정확하게 말하자면 게임 프로그래밍에 대한 블로깅이 아닙니다. 게임 기획과 게임프로 그래밍 이 두 가지의 연관성에 대해서 제가 경험해왔던 것들을 풀어내 보려고 합니다. 만약 이 글을 보셨다면 최신버전의 비쥬얼 스튜디오와 유니티를 설치해 주세요. https://unity3d.com/kr/get-unity/download 위 주소에서 유니티를 설치가 가능하고 비쥬얼 스튜디오 2015와 내부에 c#과 넷 프레임워크가 자동으로 설치
  • 2. 자 유니티와 VS2015를 설치하셨다면 다음 작업으로 들어가 보겠습니다. 이번 강의는 게임제작입문에 대한 강의이므로 당연히 게임을 만들 것입니다. 그런데 우리가 만들 게임은 여러분이 일반적으로 생각하는 게임은 아닙니다. 즉 그래픽 기반의 게임이 아닌 콘 솔을 기반으로 하는 텍스트 RPG를 만들 생각입니다. 텍스트 RPG가 뭔가요? 라고 물어보신다면 아래와 같은 게임입니다. 이 녀석을 C#으로 제작해 보려고 합니다. 왜 C#이라고 물어보신다면 현재 일반인이 ‘무료’로 가장 접하기 쉬 운 언어가 C#이기 때문입니다. 유니티를 설치하면 자동으로 VS2015가 설치되고 설치가 되면 C#에 관한 IDE(Integrated development environment 통합 개발 환경(프로그래밍을 하기 좋은 환경을 구성하기 위한 제반 요소))환 경이 자동으로 구축됩니다.
  • 3. 자 결론적으로 말하자면 텍스트와 글자로만 이루어진 게임을 만드는 것입니다. 여기서부터 실망하실 분도 있겠지만 게임 프로그래밍의 기초를 배우기에 이보다 좋은 소재도 없습니다. 콘솔 프로그래밍 은 프로그램 그 자체의 기초를 배우기에 적절한 소재입니다. 거기에 이 강의는 게임제작을 처음 하시는 분들을 대상으로 하므로 텍스트RPG를 통해서 강의를 하는 것이 알맞다고 생각됩니다. 자 그럼 우리가 만들려는 텍스트 RPG를 만들기 위해서는 화면에 텍스트를 띄울 수 있는 기능이 필수입니다. 여러분은 이제 VS2015를 모두 설치하셨을 겁니다. 그것을 이용해서 프로그래밍을 해보도록 하겠습니다. 윈도우OS를 사용하신다면 좌측하단 시작메뉴 버튼 -> 모든 프로그램 안에 다음과 같은 실행파일이 존재할 겁니다. 이 녀석을 실행해 보도록 하겠습니다.
  • 4. 자 다음과 같은 화면이 나온다면 VS2015가 제대로 설치되었다는 이야기 입니다. 자 이곳에서 다음과 같이 선택을 해주시면 됩니다.
  • 5. 자 제대로 선택해 주셨다면 다음과 같은 화면이 나올 것입니다. 이것은 프로젝트 선택 창입니다. 우리가 만들 프로젝트는 C# 그리고 만들어야 할 녀석은 콘솔 창에 뜨는 텍스트를 기반 으로 한 RPG를 만들 것이기 때문에 콘솔 어플리케이션을 선택해 줍니다. 프로젝트의 이름은 원하시는 대로 지어도 상관은 없습니다. Name는 SharpRpgProject, Solution name는 SharpRpgSolution이라고 정하겠습니다. 프로젝트와 솔루션 명까지 입력 하셨다면 OK버튼을 눌러주세요.
  • 6. 다음과 같이 창이 뜬다면 성공입니다. 이제 여러분은 C# 프로그래밍을 할 준비가 되었습니다. 코드창. 우리가 실체 쳐야할 코드 의 내용을 보여준다. 솔루션 탐색기. 비쥬얼 스튜디오는 솔루션을 하나 이상 의 프로젝트의 집합으로 본다. SharpRpgPorject는 SharpRpgSolution에 속하는 프로젝트이다.
  • 7. 비쥬얼 스튜디오의 솔루션에 대해서 이해해 보겠습니다. 비쥬얼 스튜디오는 일반적으로 하나의 솔루션 안에 여러 개의 프로젝트를 묶어서 관리합니다. 즉 다음과 같은 구조인 것이죠. 솔루션 프로젝트 프로젝트 프로젝트 프로젝트 SharpRpgSolution SharpRpgProject 솔루션 개요 우리 프로젝트
  • 8. 자 그럼 이제 가장 간단한 코드를 쳐보고 그에 대해서 실행해보겠습니다. 코드창에 다음과 같은 코드를 쳐주세요. 자 그 다음 컨트롤 + F5키를 누르면 컴파일과정을 거쳐 실행파일이 만들어 지게 됩니다.
  • 9. 결과창 자 만약 실행이 되지 않는다면 다음과 같은 실수를 생각해 볼 수 있습니다. 1. 코드의 대소문자 오타. (C#의 클래스나 명령어는 대소문자를 지켜야 합니다.) 2. 컨트롤(누른 상태로) + F5를 눌러주셔야 합니다.
  • 10. 자 그럼 지금까지 우리가 한 내용의 상세한 과정에 대해서 설명 드리겠습니다. 다음과 같은 과정을 거치게 됩니다. 1. 자 설명을 하자면 전처리기가 일반적으로 코드의 주석 및 불필요한 내용들 그리고 레퍼런스 코드삽입을 처리합니다. 2. 그 이후 중간언어 MSIL코드로 변환을 합니다. 3. CLR을 통해서 MSIL코드를 실행환경에 맞게 관리 실행할 수 있게 만든다. 4. 이후 JIT가 네이티브(바이너리) 코드를 생성하고 이것이 이후로 실행파일이 되어 실행됩니다. 자 그럼 중요한 점은 최종 결론적으로 EXE파일이 만들어지게 됩니다. 그럼 그것을 확인해 보겠습니다. 전처리기 동작 컴파일러 중간언어 MSIL CLR 프로그램 실행환경 제공 (메모리 업로드) JIT 플랫폼별 다름. (원시코드 생성) 실행파일 생성 및 실행
  • 11. EXE파일의 확인. 1. 프로젝트를 선택. Open Foler in File Explorer을 실행 2. 프로젝트 폴더에서 bin 폴더 내부로 들어간다. 3. Debug로 진입. 4. 실행파일이 들어있는 것을 확인한다.(실행까지 해보시면 같은 프로그램이라는 것을 알 수 있습니다.)