-
DirectX 12를 이용한 3D게임 제작
- DirectX 파이프라인 이해
- 조명, 그림자, 3D 애니메이션 구현
- 멀티쓰레딩을 이용한 렌더링 시간 단축
-
BOOST/ASIO 비동기 서버 구축으로 멀티플레이 구현
- 비동기 I/O 프로그래밍 이해
- 시야 처리와 멀티쓰레드 프로그래밍으로 높은 동시접속자수를 처리할 수 있는 서버 구현
- 외계 행성에서 몰려오는 몬스터를 처치하는 멀티플레이 슈팅 게임
- 플레이어는 3가지 무기 중 하나를 선택해서 플레이
- 게임은 라운드 형식으로 진행되며 각 라운드 종료 후 보상 획득
- 마지막 라운드의 보스를 처치하는 것이 최종 목표
- 클라이언트
- 3D 애니메이션
FBX SDK를 이용한 애니메이션 구현 - 조명 및 그림자
방향성 조명과 그림자 구현 - 멀티쓰레딩
멀티쓰레딩을 이용한 렌더링 속도 향상
- 3D 애니메이션
- 서버
- 시야 처리
필요한 계산만 처리하여 서버 부하 감소 - NPC AI
A* 알고리즘과 Path mesh로 몬스터 AI 구현 - BOOST/ASIO 라이브러리
C++ 표준 라이브러리로 제작한 서버로 리눅스 등에서도 작동하도록 구축
- 시야 처리
· class GameFramework
├── · class Timer
└── · class Scene
├── · class Camera
│ └─ · class Player
├── · class Mesh
│ └─ · struct Vertex
│ └─ · struct Material
│ └─ · struct Joint
│ └─ · struct Animation
├── · class Shader
├── · class Texture
└─┬─ · class GameObject
│ └─ · class Mesh
│ └─ · class Shader
│ └─ · class Texture
│ └─ · struct TextureInfo
│ └─ · struct AnimationInfo
├─ · class UIObject : public GameObject
├─ · class Skybox : public GameObject
├─ · class Bullet : public GameObject
└─ · class Player : public GameObject
└─ · class Camera