AI and game programming

Lecture note and resources
• GUI programming, layer and sprite design, collision detection & response programming, simple game physics programming (Game engine)
• Frequency transform and filtering programming (Signal processing)
• Correlation, clustering and regression (Data analysis)
• Perceptron, MLP and CNN programming (Machine learning)

• 게임콘텐츠, 미래자동차·로봇, 데이터사이언스 트랙의 내용 포함(소프트웨어융합학과 3,4학년 추천)
• GUI(최종 이미지 출력 및 사용자 입력)를 제외한 모든 내용은 C++로 직접 코딩
• GUI는 Windows API로 구성되어 있으며, 다른 OS를 위하여 openFrameworks를 사용하는 것도 고려 중
• 직접 코딩하는 내용, 1) sprite, layer, scene의 구성, 2) 선, 사각형, 원 그리기, 3) 속도, 중력 처리, 충돌 검출 및 반응, 4) Projection & view 행렬 구성(3차원 rendering), 역행렬, 5) 고속 푸리에 변환, 스펙트로그램, FIR/IIR 필터링, 6) 영상 컨볼루션 및 압축, 7) 상관도 및 k-means 군집화, 8) 최소제곱법, 9) 성능 평가(정확도, 정밀도, 회수율, ROC, AUC), 10) 퍼셉트론, 11) deep neural network, (DNN) 12) convolutional neural network (CNN)

Lecture note (2022년 1학기 수정될 수 있음)
Source codes (2022년 1학기 수정될 수 있음)

1. Windows API

Windows API, bitmap

2. Game Layout

Scene, layer, sprite, line, circle, rectangle

3. Collision and Physics

Collision detection/response, gravity

4. 3D Rendering

Projection, view matrix

5. Sound Processing

FFT, spectrogram, filtering, FIR, IIR

6. Image Processing

Convolution, image compression

7. Correlation and Clustering

Pearson, k-means

8. Regression

Least squares, regularization

9. Performance Evaluation

Accuracy, precision, recall, ROC

10. Perceptron

Perceptron

11. MLP (DNN)

Multilayer perceptron

12. CNN

Convolutional neural network

Practice

Circle-line collisions

Practice

High order polynomial regression, RANSAC

Practice

Autoencoder