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