2P by neo 3달전 | favorite | 댓글 1개
  • coreCore는 무엇인가

    • coreCore는 Action-RPG 게임 제작 도구 및 엔진, 속성 편집기 형태로 비디오 게임을 작성하는 실험적인 방법임
    • 간단한 컴포넌트 시스템을 사용하며, 컴포넌트는 [keyword value] 형태의 clojure 벡터임
    • 다양한 엔티티는 clojure 맵으로 구성됨
    • 게임 내 부작용은 [:tx/foo param]와 같은 컴포넌트로 처리되며, 이는 datomic 구조와 유사함
    • 전체 게임 상태는 app/state라는 하나의 atom에 저장되며, 엔티티도 메인 atom 내부의 atom으로 존재함
    • 애플리케이션의 전체 내용은 resources/properties.edn에 저장되며, malli-schemas를 사용해 검증되고 GUI로 편집 가능함
  • 스크린샷

  • 개발 시작 방법

    • 다음 명령어를 입력:
      • lein dev
    • 애플리케이션이 시작되며 다음 작업도 수행됨:
      • NREPL-서버 시작
      • 애플리케이션 종료 시 (메인 메뉴에서 ESC), clojure.tools.namespace가 변경된 파일을 새로고침하고 앱을 재시작함
      • 오류 발생 시 JVM을 재시작할 필요 없이 오류를 수정하고 dev-loop/restart!를 호출하면 됨
      • VIM에서 F5 키에 다음 명령어를 바인딩하여 사용 가능: nmap <F5> :Eval (do (in-ns 'dev-loop)(restart!))
  • 코드 라이선스

    • MIT 라이선스 하에 제공됨
  • 자산 라이선스

GN⁺의 정리

  • coreCore는 Action-RPG 게임을 쉽게 제작할 수 있는 도구로, 간단한 컴포넌트 시스템을 사용해 게임 상태를 관리함
  • 전체 게임 상태를 하나의 atom에 저장하고, GUI를 통해 속성을 편집할 수 있어 개발자에게 유용함
  • MIT 라이선스로 제공되지만, 사용된 자산은 독점적임
  • 비슷한 기능을 가진 도구로는 RPG Maker, Unity 등이 있음
Hacker News 의견
  • 다양한 게임 개발 접근 방식을 보는 것이 흥미로움

    • Bevy (Rust ECS 엔진): 처음에는 좋지만 구현에 문제가 많고 복잡해질 수 있음
    • Unity: 게임 객체와 모듈형 구성 요소 시스템이 실용적임
    • Godot: OOP 계층 구조와 내장 언어가 불만족스러웠음
    • Pygame: 작은 프로젝트에 적합하며 절차적이지만 OOP나 함수형 계층을 만들 수 있음
    • Clojure: 함수형 구현이 흥미로움
  • 이 GitHub 프로젝트는 게임 개발자에게는 우스꽝스러움

    • 학문적인 접근 방식이 과장된 느낌
    • 스크린샷이 보기 흉함
  • 게임 개발을 단순하게 만들 수 있다고 주장하지만 많은 용어를 사용함

    • Clojure 벡터, Datomics, 아톰, 트랜잭션, Malli 스키마 등
  • 이 프로젝트는 실패한 것 같음

    • 과도하게 설계된 구조와 명확한 구조가 부족함
    • 게임 스토리가 없어서 명확한 방향 없이 코딩했음
  • 문서화가 거의 없는 이 저장소가 많은 대화를 생성함

    • 코드가 게임 엔진보다는 프로젝트처럼 보임
    • 속성 편집기가 흥미로움
    • 제목 때문에 업보트된 것 같음
  • "게임을 만들고 싶다"는 이야기가 게임 엔진을 만드는 것으로 변하는 경우를 많이 봄

    • 엔진 코드를 먼저 작성하면 나머지 게임 제작 과정이 쉬울 것이라는 생각에 빠짐
    • 엔진을 만드는 것이 게임을 만드는 것보다 더 재미있을 수 있음
    • 엔진을 최적화하는 것이 더 빠른 보상을 줌
    • Phaser js 엔진을 사용하여 빠르게 인터랙티브한 것을 화면에 표시하려고 시도했음
  • Clojure를 사랑하지만 불변 데이터 구조를 가진 함수형 언어가 게임 개발에 적합한지 의문임

  • 게임 상태가 하나의 아톰에 저장되고 엔티티가 그 안에 다시 아톰으로 저장됨

    • Clojure에서 "아톰"을 이렇게 사용하는 것이 일반적인지 의문임
  • "게임 엔진에 소요된 시간/복잡성" vs "생산된 게임의 복잡성/흥미" 데이터를 분석하는 것이 흥미로울 것 같음

    • 단순한 템플릿/엔진 시스템으로 만든 게임의 다양성이 감소할 것이라고 예상함
  • Unreal Engine 4로 구동되는 상업용 게임 제작 플랫폼인 Core가 이미 존재함