GN⁺: 캐슬 엔진 – 파스칼을 사용하는 무료 오픈소스 크로스플랫폼 3D/2D 게임 엔진
(castle-engine.io)Castle Game Engine 소개
- Castle Game Engine은 데스크탑, 모바일, 콘솔 플랫폼을 위한 크로스플랫폼 3D 및 2D 게임 엔진임.
- 강력한 시각적 편집기를 제공하며, glTF, X3D, Spine 등 다양한 포맷을 지원함.
- 현대적인 Pascal을 사용하여 빠르고 깨끗한 코드를 작성할 수 있으며, 무료이자 오픈소스임.
시각적 디자이너와 강력한 코드
- 시각적 편집기를 통해 3D 및 2D 게임과 사용자 인터페이스를 디자인할 수 있으며, 다양한 플랫폼에 동일한 프로젝트를 빌드하고 배포할 수 있음.
- Lazarus, Delphi, Visual Studio Code 등 다양한 IDE와 통합이 가능함.
데이터 정의의 다양한 방법
- 3D 모델, 2D 애니메이션, 스프라이트 시트를 사용하여 데이터를 정의할 수 있음.
- Blender나 Sketchfab 같은 제작 도구나 상점과의 통합이 용이함.
그래픽 효과
- 셰이더 효과, 그림자, 거울, 물리 기반 렌더링, 범프 매핑, 감마 보정 등 다양한 그래픽 효과를 구성할 수 있음.
크로스플랫폼 지원
- 다양한 데스크탑(Windows, Linux, macOS 등), 모바일(Android, iOS), 콘솔(Nintendo Switch) 플랫폼을 타겟으로 함.
- WebGL과 Oculus(VR)도 곧 타겟으로 추가될 예정임.
깨끗하고 빠른 코드
- 현대적인 Object Pascal을 사용한 네이티브 객체 지향 프로그래밍 언어를 사용함.
- 빠른 빌드와 실행이 기본적으로 제공됨.
오픈소스 및 지속적 통합 친화적
- 지속적 통합에 친화적인 도구를 제공하며, 명령줄 빌드 도구와 Docker 이미지를 사용할 수 있음.
- GitHub Actions, GitLab CI, Jenkins 등과 함께 사용할 수 있는 준비된 파일과 문서를 제공함.
최신 뉴스 요약
- 2024년 2월 18일: 새로운 슬림 Docker 이미지 출시.
- 2024년 2월 3일: HTTP PUT 요청 데이터 제공, Tiled 레이어 가시성 빠른 전환, 개선된 C++ 라이브러리 API 등의 기여.
- 2024년 1월 28일: Ticoban, 편집기 드래깅, CastleGL 기반의 dglOpenGL, 테스터 개선, Pascal 사용자 정의 RTTI 속성 등의 뉴스.
- 2023년 12월 23일: 메리 크리스마스, 몇 가지 요약 및 API 개선.
GN⁺의 의견
- Castle Game Engine은 다양한 플랫폼을 지원하는 강력한 게임 엔진으로, 현대적인 Pascal 언어를 사용하여 개발의 효율성을 높임.
- 오픈소스이며 지속적인 통합과 협업을 지원하는 도구를 제공하여 개발자 커뮤니티에서의 협력을 촉진함.
- 최신 그래픽 효과와 시각적 편집기를 통해 사용자 친화적인 게임 및 인터페이스 디자인이 가능하여 게임 개발자들에게 매력적인 선택지가 될 수 있음.
Hacker News 의견
-
파스칼 언어에 대한 의견
- 한 사용자는 파스칼 언어의 가독성에 대해 부정적인 견해를 표현함. 대부분의 현대 언어가 제공하는 안전성, 크로스 플랫폼 지원, 라이브러리 등의 특징 외에도 파스칼의 가독성이 강조되었지만, 실제로는 C 언어보다 가독성이 떨어진다고 주장함. 문법을 나타내는 데 전체 단어를 사용해야 하기 때문에 코드 구조와 실제 코드를 구분하는 데 더 많은 노력이 필요하다고 느낌. 이는 비효율적이고 나쁜 설계라고 생각함. 이 페이지가 20년 전에 작성된 것 같다고 느끼며, 당시에는 타입 안전성 등의 이유가 더 많은 의미가 있었을 것이라고 언급함.
- 관련 링크로는 "왜 파스칼을 사용하는가?", "현대 오브젝트 파스칼 입문", "캐슬 게임 엔진 로드맵", "캐슬 게임 엔진: 크로스 플랫폼 3D 및 2D 게임 엔진", "캐슬 게임 엔진 6.4 출시 – 물리, iOS 서비스, 셰이더 파이프라인 업그레이드" 등의 글이 있음.
-
파스칼 사용 경험에 대한 회상
- 다른 사용자는 2001년 대학 시절 Delphi를 사용했던 경험을 회상함. 프로그래밍에 능숙했던 사용자는 Delphi를 쉽게 사용했으며, 당시에는 var, begin, end, := 등의 문법을 보고 파스칼 계열 언어임을 알아챘음. 주로 바이너리 파일에 재고 데이터를 저장하고 바이너리 검색을 사용하는 등의 작업이 어려웠지만, 현대 언어에서는 당연하게 여겨지는 기능들이었음. 파스칼을 BASIC과 같은 카테고리로 두고 있으며, 현재는 파스칼을 사용하는 데 관심이 없지만, 여전히 파스칼을 옹호하는 사람들이 많을 것이라고 생각함.
-
파스칼과 C 언어에 대한 비교
- 또 다른 사용자는 고등학교 시절 처음으로 '진지한' 프로그래밍 언어로 파스칼을 배웠으나, 나중에 C 언어를 배우고 나서는 파스칼로 돌아보지 않았음. C 언어가 더 전문적이고 유연하며 하드웨어에 가까워 보였고, 파스칼은 GUI 애플리케이션 개발에 더 적합해 보였지만, 실제로는 파스칼도 C가 할 수 있는 모든 것을 할 수 있었음.
-
파스칼 언어의 현대적 사용에 대한 긍정적인 의견
- 한 사용자는 파스칼 개발자들이 매우 생산적으로 작업을 수행하고 있다고 느낌.
- Delphi 제품의 관리가 잘못되었다는 아쉬움을 표현하는 사용자도 있음. 오브젝트 파스칼은 훌륭한 언어로, 현재 거의 모든 플랫폼에 대해 네이티브 코드를 생성하며, 생성된 바이너리는 작고 속도가 빠름. 파이썬 코드에 비해 100배에서 10000배 빠를 수 있음. 캐슬 엔진은 게임과 3D 애플리케이션을 쉽게 만들 수 있는 거대한 프로젝트이며, 레거시 제품이 아니라 매우 활발하게 개발되고 있음. Mormot 프로젝트도 인상적이며, 서버 애플리케이션을 오브젝트 파스칼과 Mormot으로 쉽게 구축할 수 있음. 오브젝트 파스칼 기반 서버 코드는 단일 서버에서도 충분히 실행될 수 있어 비용 절감에 도움이 될 수 있음. 오브젝트 파스칼은 교육용 언어로만 기억되는 경우가 많지만, 다른 언어에는 없는 RTTI(리플렉션)와 같은 기능을 가지고 있음. 다만, Go처럼 언어 자체에 멀티스레딩/코루틴이 통합되어 있지 않은 점은 현대적이지 않음. 40년 전에 작성한 코드도 여전히 컴파일하고 실행할 수 있으며, 그동안 많은 언어가 유행을 타고 사라졌지만 파스칼은 여전히 존재함. 캐슬 엔진의 시각적 편집기도 매우 놀라우며, 오브젝트 파스칼 언어에 익숙하지 않더라도 시도해볼 것을 권장함.
-
캐슬 게임 엔진에 대한 의견
- 한 사용자는 캐슬 게임 엔진의 코드를 살펴보았으며, 2001년 이후로 많은 파스칼 코드를 보지 못했다고 언급함. 파일 이름에 'castle'을 접두사로 붙이는 것에 대해 팬이 아니라고 말하며, 이로 인해 파일이 무엇에 관한 것인지 파악하기 어렵게 만들고 모든 파일이 비슷해 보인다고 느낌. 그러나 실제 코드에 대해서는 파스칼을 작성해본 적이 없어서 코멘트할 수 없다고 함. 엔진 자체는 멋져 보인다고 평가함.
-
파스칼 언어에 대한 개인적인 견해
- 다른 사용자는 파스칼을 배우고 가끔 사용했으며, 개발자로서는 능숙하지 않지만 제품 관리자로서는 덜 나쁘다고 생각함. FPC가 '덕트 테이프 프로그래밍'의 전형이라고 느끼며, 그러한 개발자 정신을 C#과 함께 본 유일한 언어라고 언급함.
-
파스칼 프로그래밍에 대한 추억
- 마지막으로 한 사용자는 Turbo/Borland Pascal로 프로그래밍했던 시절이 가장 즐거웠다고 회상함. 'Unit' 컴파일 시스템이 잘 작동했으며, 컴파일과 사용, 편집/디버깅이 매우 빨랐음. Delphi로 넘어가면서 무언가가 잃어버렸다고 느끼며, 사람들이 다른 곳을 찾기 시작했다고 언급함. Pascal로 인해 Apple Basic에서 C/C++로 넘어가는 데 도움을 받았으며, 인라인 어셈블리를 사용하며 배울 수 있는 기회도 있었다고 말함.