6년간 러스트로 게임을 개발한 경험을 묻는 AMA에서 사용한 라이브러리와 직접 구현한 기능을 소개했다. 특정 라이브러리에 크게 의존하지 않았으며, 창 관리와 키보드·마우스 입력은 직접 만들고 막히는 부분에서 SDL을 참고했다. 다음 게임에서는 SDL3를 사용할 계획이라고 밝혔다.
OpenGL 함수 포인터를 얻는 데 gl을 사용했고, OpenGL 같은 API에서 자원 관리 방식인 RAII가 잘 맞지 않아 Rust에 지연 실행을 더해주는 scopeguard가 유용했다고 설명했다. 파일 변경 알림을 이용한 핫 스와핑에는 notify를, TTF 파싱 등에는 여러 STB 헤더를 사용했다. 충돌 보고에는 reqwest를 썼다.
스크립팅 언어 파서에는 별도 라이브러리를 사용하지 않았다. 재귀 하강 파서(recursive descent parser)를 직접 작성하는 편을 선호하며, 문법을 단순하게 설계하거나 문제를 우회하면 실제 작업에서 충분히 쓸 수 있다고 설명했다. 컴파일러 작성 자료로는 Crafting Interpreters를 추천했다.
컨트롤러 지원에는 Steam Input을 사용했다. 결과는 잘 작동했지만, 앞으로는 사용하지 않을 계획이라고 밝혔다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요