Game Programming in C++
- 산자이 마드하브
느낌
책의 4장까지 독서를 마치고
이제 대략적인 게임엔진의 핵심인
게임루프에 익숙해져가고 있다.
이제는 초당 60프레임/ 약 16ms가 대단하게 느껴졌다.
그 동안 게임을 하면서 트리플A 게임들 60프레임도 방어하지 못한다고
화를 내곤 했었다.
그러나 지금은 개발자들이 그만한 퀄리티를 내기 위해서
온몸 비틀기하며 고생했었다는 것을
조금이나마 이해할 수 있을것 같다.
(아니면 어쩔수 없고...)
그러나 지금은 개발자들이 그만한 퀄리티를 내기 위해서
온몸 비틀기하며 고생했었다는 것을
조금이나마 이해할 수 있을것 같다.
게다가 예전에부터 유니티, 언리얼에서 만든
객체의 복잡한 라이프사이클 로직 구성이 선뜻 이해가 안 됬는데
이제 모든 코드를 손으로 직접 짜보니
모든게 다 이유가 있었구나 싶은 생각이 들었다.
내 스스로 엔진 자체가 왜 이렇게 구성됐을지
고민해본지는 고작 17일밖에 안되었다.
이런 자그마한 엔진도
아직은정리가 안되어 기능 하나 고치려면
머리가 띵할만큼 지끈 거리는데
거의 10년 이상 무수히 많은 천재 개발자들이
닦아 놓은 그 길이 시시껄렁한 이유였을리가 없다.
아무튼... 4장의 핵심은 FSM(유한상태기계)와
이동에 필요한 최단거리 알고리즘
GBSF A*, Dijkstra 등등...
처음엔 이 이론들을 이걸 진짜 다 구현해서 쓰나? 싶어 클로드랑
대화해보니 이 정도로 쉬운 알고리즘은 그냥 만들어서 쓴다고 한다.
게임 개발자라면 이 정도는 그냥 할 줄 알아야 하나보다.
아무튼 책에서는 준비된 준비물로 FSM과 최단거리
알고리즘을 익힐수있게 준비를 해줬지만
이책은 무려 거의 10년도 다 된 책이다.
기준이었던 SDL2는 이제 3가 나왔고...
C++도 23이 구현막바지고 26도 나온다고 한다.
책의 코드는 그저 내용을 이해하기 위한 도움말 수준이 되었고
실제적으로 쓸모는 없어졌다. (제공하는 소스도...)
그래서 FSM과 최단거리 알고리즘을 시각적으로 보여주는
타일맵을 직접 구성해보기로 마음먹었다. 대략적인 구성이야
단순해 보였는데 실제로 구성하려니... 쉽지가 않다.
월요일부터 시작해서 오늘까지 집에서 남는 시간동안
머리싸매서 겨우 타일맵을 화면에 그릴수 있게 되었다.
(아직 엑터를 그 올려서 움직이지는 못한다...)
수백번 숙고의 시간
수백번 써다지웠다 하며...
드디어 1776줄만에 타일맵을 그릴 수 있게 되었다.
익숙하지 않은 C++도 골머리 앓는데 큰 역할을 했다.
정말 데모 수준도 안되는 화면을 띄우기
에이징 이슈로 이제 잘 돌아가지도 않는
머리를 정말 많이 썼다..
너무 재밌다
아무튼 별거 아닌 화면 띄우는데 머리는 아팠는데...
막상 해결하니까 너무 재밌는 것이다.
아직까진 2디 이고 이제 다음장부터 3디 이다.
목표했던 스퀘어에닉스의 HD-2D 그래픽 스타일의 타이쿤 게임까지는 백만년 남은 기분이 든다.
그래픽스(OpenGL -> Vulkan)도 공부할 예정이라 정말 더 막막한 기분이지만...
나름 끝나지 않는 재밌는 퍼즐(?) 컨텐츠에 기대가 된다.
















