to HOME
C 게임 프로그래밍
과목소개
      
  * C, C++를 기초로 수강한 학생들을 대상으로 게임 개발의 기초를 지도함  
  * 게임 제작에 필요한 기본 개념, 능력 배양  
  * 일반 프로그래밍에 사용되지 않는 게임 개발에 필요한 기법 강의  
  * C++에서 배운 Class와 Thread의 개념 심화  
  * 게임 개발에 필요한 기본지식 함양  
  * 도스 콘솔용 게임 개발 기법 학습  
  * Win32API를 활용한 게임 개발 기법 학습  
  * DirectX 활용법 이해  
  * 네트워크와 인공지능을 접목한 게임에 대한이해

참고도서
      
  1) 초보자를 위한 게임 프로그래밍 - 정보문화사  
  2) 게임 프로그래머를 위한 C++ - 정보문화사  
  3) AI Game Prgoramming Wisdom - 정보문화사  
  4) 3D 게임 프로그래밍 - 한빛미디어  
   
  ※ 위 자료는 참고자료이며, 주교제는 강의자료로 대신합니다.

공지사항
      팀 구성 : 
      2009년 4월 11일 까지 제출(한팀 당 3~4명)  
      해당 일자까지 구성하지 않을 경우 교수 임의로 구성
      
        현재 구성된 팀
        1 조 : 김병찬, 표정호, 김태용, 김동범
        2 조 : 박일생, 이관성, 한정견
        3 조 : 신동진, 허만조
        4 조 : 송자명, 이헌준, 임호준, 이지훈
        5 조 : 이현진, 우정임, 장재웅
        6 조 : 여진욱, 장정윤, 최용석, 김진수
        7 조 : 박중환, 나현찬, 서종률, 조성원
        8 조 : 최윤철, 이동건, 김의규, 정태현
        9 조 : 박창현, 손승락, 최기호
       10 조 : 정연태, 이명호, 양정윤
       11 조 : 권다혜, 김보람, 이은애
       12 조 : 백성일, 이승민
       

과제
팀별 과제 #1 : 제출은 A4 용지에 인쇄해서 5월 18일까지 제출합니다.
* 팀 별 과제는 각 팀별 하나씩만 내면 됩니다.
본 수업의 최종 과제인 테트리스 게임을 만드는데 필요한 개발 계획서를 작성합니다.
개발 계획서는 다음과 같은 내용이 포함되어야 합니다.

- 개발의 목적
- 자신들이 개발하는 게임의 특징
- 테트리스 게임을 만드는데 필요한 프로그래밍 기법(자세히 서술 : 수업 내용 바탕으로...)
- 테트리스 게임의 알고리즘
- 역할 분담(팀원들의 역할이 명확하게 기술되어야 함)
- 개발 기간 정의(몇일부터 몇일까지 뭐하고... 이런 내용들)

* 참고 : copying은 절대 용납하지 않습니다. 각 팀별로 스스로 작성하길 바랍니다.
      


개인별 과제 #3 [제출]
본 과제는 팀 단위 수행이 아닙니다. 개별적으로 제출하기 바랍니다.
기간 : 2009년 5월 10(일) 자정 까지, 그 이후 제출시에는 시간대별로 점수 차감합니다.

과제 내용:
DirectX 강의 내용을 바탕으로 포물선 운동을 구현합니다.
물리학 응용에서 배웠던 내용을 그대로 실습하면 되겠습니다.
* 로켓 그림을 DDS로 만듭니다.(알파채널 추가)
* Direct3D를 이용하여 포물선 운동을 만듭니다.

위의 두가지만 지켜지면 되게습니다.
참고할만한 예제 프로그램은 [이곳]에서 다운받아보길 바랍니다.


개인별 과제 #2 [제출]
본 과제는 팀 단위 수행이 아닙니다. 개별적으로 제출하기 바랍니다.
기간 : 2009년 4월 26일(일) 자정 까지, 그 이후 제출시에는 시간대별로 점수 차감합니다.

과제 내용:
5주차에 수강한 내용의 함수에 주석을 달아야 합니다.
해당 함수는
DrawUnit()
ConvertPoint()
degree2radian()
radian2degree()
moveVelocity()
moveAcceleration1()
moveAcceleration2()
moveParabola()

8가지 입니다. 수업시간 충실히 강의를 들은 학생은 주석을 다는데 큰 문제가 없을것으로 판단됩니다.
사용 소스는 5주차 최종 업로드 소스를 참고하길 바랍니다.


개인별 과제 #1 [제출]
본 과제는 팀 단위 수행이 아닙니다. 개별적으로 제출하기 바랍니다.
기간 : 2009년 4월 13일(월) 자정 까지, 그 이후 제출시에는 시간대별로 점수 차감합니다.

과제 내용:
4주차에 강의 내용인 캐릭터의 이동 회전 및 직선 운동을 3주차의 몬스터 프로그램과 같이 필드를 만듭니다.
최대 10개의 캐릭터가 필드내에서 개별적인 운동을 수행해야 합니다.

과제의 평가 내용은 다음과 같고, 모두 강의 시간에 배운 내용입니다.
* 더블 버퍼링
* 어떤 각도에도 동일한 움직임 간격 적용(x)
* 이동 각도에 일치하는 캐릭터 회전(x)

참고사항
* 벡터 그래픽이 아니라 비트맵 그래픽으로 동일한 내용 제출시 가산점 부여합니다.
* 교수가 업로드 한 소스는 그대로 써도 무방합니다.
* 직선운동만 고려하며, 특정 원운동이나, 곡선운동 적용시 가산점 부여합니다.
* 과제에 대한 개인별 면담 시간은 4월 11일 토요일 보강 수업이 끝난 이후에 하겠습니다.

유용한 링크
※ 윈도우즈 XP상에서 비주얼 스튜디오 6.0을 사용하다 컴파일 할때 프로그램이 멈추는 경우 Visual Studio 6.0 서비스팩 6을 설치하면 문제가 해결됩니다.
[서비스팩 6 다운로드]

DirectX 9.0 SDK Slim Version : DirectX 9.0 SDK 에서 include, lib 디렉토리만 압축된 파일 입니다. C:\Program Files\Microsoft DirectX SDK 디렉토리에 압축이 풀립니다.
[다운로드]

과정
내용 강의자료 및 소스
1 * 게임의 개념, 장르, 개발 단계
* 도스용 게임 개발(소코반)
강의자료
콘솔용 소코반
2 * 윈도우 프로그래밍 기초
* 핸들, 윈도우 개념
강의자료
창이름 변경
창 만들기
비트맵 그리기 윈도용 소코반
3 * 클래스 개념 및 활용
* 클래스를 활용한 캐릭터 표현
강의자료
클래스 예제
몬스터
4 * 게임에서 사용되는 수학 응용
* 수학식을 이용한 그래픽 표현 및 캐릭터 움직임
강의자료
Vector_1
Vector_2
Vector_3
Vector_4
5 * 게임에서 사용되는 물리학 응용
* 속도, 가속도, 포물선 운동에 대한 기초를 정립하고 프로그램으로 구현함
강의자료
포물선 운동
6 * DirectX 프로그래밍 * 3차원 공간에서의 객체 표현방법 학습 강의자료
directx 예제1
directx 예제2
7 * Direct3D를 이용한 2D 그래픽스
* 텍스쳐 크기 조절, 회전, 이동, 알파 블랜딩의 이해
강의자료
2D exam 1
2D exam 2
2D exam 3
2D exam 4
2D exam 5
8 * Sound 제어
* Wave 파일 이해 및 재생
* 게임 엔진 사용
강의자료
bgm.wav
bomb.wav
bgm.mp3
dsound_1.zip
dsound_2.zip
9 * 테트리스
* 테트리스 알고리즘
강의자료
Direct3D rocket source
10 * 테트리스 - 계속
* 테트리스 알고리즘
강의자료
테트리스 표준로고
게임화면 예제
테트리스 소스
11 * 테트리스 최종 DirectX Tetris