2P by neo 27일전 | favorite | 댓글과 토론

던전과 인터페이스

개요

  • 이전 파트에서는 게임 개발에서 흔히 사용되는 엔티티-컴포넌트-시스템(ECS) 아키텍처 패턴과 메타언어 프로그래밍 패러다임을 탐구했음.
  • 이번에는 이러한 기술을 사용하여 던전 크롤러 장르의 작은 게임을 만들고, 이를 통해 실제 게임 애플리케이션의 시스템 설계를 살펴볼 것임.

준비 작업

  • Common Lisp 환경을 설정하고, 필요한 패키지를 업데이트함.
  • cookiecutter 템플릿을 사용하여 프로젝트를 시작하고, 게임 창 크기를 1280x800으로 설정함.

던전

  • 플레이어가 던전을 탐험할 수 있도록 던전 맵이 필요함.
  • 오픈 소스 맵 에디터인 Tiled를 사용하여 던전 맵을 생성하고, 이를 Lisp 객체로 로드하기 위해 cl-tiled 라이브러리를 사용함.
  • 맵 파일을 준비한 후, 게임에 로드하여 사용할 수 있도록 몇 가지 준비 작업을 수행함.

ECS 패턴 적용

  • 맵 타일 데이터를 ECS 저장소로 이동하여 성능을 향상시킴.
  • cl-fast-ecs 프레임워크를 프로젝트에 추가하고, ECS 시스템을 초기화함.
  • 맵 타일을 개별 엔티티로 저장하고, 이를 처리하는 시스템을 정의함.

애니메이션

  • Tiled는 애니메이션 타일을 지원하며, 이를 통해 게임에 생동감을 더할 수 있음.
  • 애니메이션을 구현하기 위해 코드 구조를 확장하고 리팩토링함.
  • animation-frameanimation-state 컴포넌트를 정의하여 애니메이션 상태를 관리함.
  • update-animations 시스템을 정의하여 적절한 시점에 애니메이션 프레임을 전환함.

GN⁺의 정리

  • 이 글은 ECS 패턴을 사용하여 게임 개발을 어떻게 효율적으로 할 수 있는지를 설명함.
  • Tiled와 같은 도구를 활용하여 맵을 쉽게 생성하고 관리할 수 있는 방법을 제시함.
  • 애니메이션을 통해 게임에 생동감을 더하는 방법을 설명함.
  • ECS 패턴을 사용하면 성능을 최적화하고 코드 구조를 간결하게 유지할 수 있음.
  • 유사한 기능을 가진 다른 프로젝트로는 Unity의 ECS 시스템이나 Unreal Engine의 블루프린트 시스템이 있음.