"Unity, Godot, 또는 나만의 엔진? 왜 내 ... 노트

"Unity, Godot, 또는 나만의 엔진? 왜 내 카드 게임은 평범한 TypeScript인가" 발행: false 태그: gamedev, reactnative, typescript, showdev

저자는 Unity나 Godot와 같은 기성 게임 엔진을 사용하는 대신 맞춤형 엔진을 구축하여 카드 게임 앱인 Decks를 개발하기로 결정했습니다. 이 접근 방식은 중앙 엔진에서 해석되는 JSON 문서로 게임을 정의함으로써 단일 플랫폼에서 많은 카드 게임을 호스팅하는 것을 목표로 했기 때문에 선택되었습니다. Godot에서의 프로토타입은 너무 무겁고 느렸으며, 저자는 카드 게임 렌더링이 근본적으로 간단하며 복잡한 3D 엔진이 필요하지 않다는 것을 발견했습니다. 프로젝트의 핵심인 게임 규칙은 쉽게 테스트 가능하고 렌더링 시스템과 독립적이어야 했습니다.선택된 스택은 순수 TypeScript 게임 코어 패키지, 디자인 토큰, 그리고 Expo, React Native, React Native Skia로 구축된 모바일 앱으로 구성됩니다. 주요 장점은 제로 의존성 게임 코어로, Node.js와 모바일 장치 모두에서 실행할 수 있어 광범위한 테스트와 시드를 통한 재현 가능한 버그 수정이 용이합니다. 규칙은 데이터로 정의되어 유연성을 제공하고 eval에 의존하지 않고 힌트 및 AI 봇과 같은 기능을 지원합니다. 프로젝트 전반에 걸쳐 TypeScript를 사용하면 개발 및 테스트가 간소화됩니다.React Native에서 처리하는 네이티브 UI 요소는 접근성과 반응성을 제공하며, 카드 테이블 자체는 Skia를 사용하여 렌더링됩니다. 카드 얼굴은 동적으로 생성되어 앱 크기를 작게 유지하는 데 기여합니다. 그러나 맞춤형 엔진을 구축하는 데는 히트 테스트, 프레임 속도 최적화, 네이티브 종속성 관리 등의 책임과 같은 상당한 비용이 따릅니다. 규칙 언어의 일반성은 데이터 정의를 장황하게 만들 수도 있습니다. 터치 제스처 및 성능 처리의 어려움에도 불구하고, 저자는 맞춤형 엔진 접근 방식이 유연성과 확장성 면에서 궁극적으로 보람 있다고 생각했습니다. 향후 계획에는 2인용 게임 및 더 많은 솔리테어 변형 추가가 포함됩니다.