preview
Download
🎲 LudoForge Studio
Cubacadabra 게임 월드를 제작하고, 단조하며, 배포하기 위한 커맨드라인 인프라
Status
Platform
Language
Runtime
License
Build
Support
I18n
UI
🧭 작업장 문이 열리기 전의 이야기
두 명으로 운영하는 작은 스튜디오부터 광범위하게 분산된 팀에 이르기까지, 모든 게임 스튜디오는 결국 같은 마찰 지점에 부딪힙니다. 아이디어가 있습니다. Luau 모듈이 있습니다. final_v3_REAL_this_time과 같은 이름의 폴더 수십 개 안에 스프라이트 시트(sprite sheets), 오디오 스팅어(audio stingers), 타일맵(tilemaps), 설정 파일(config files) 등의 산더미가 있습니다. 하지만 없는 것은, 이 모든 혼란을 배포 가능한 아티팩트(shippable artifact)로 변환할 수 있는 차분하고 반복 가능한 방법입니다.
LudoForge Studio는 바로 그 좌절의 순간에서 탄생했습니다.
다른 툴체인들이 모두에게 모든 것을 제공하려고 애쓰는 반면, LudoForge Studio는 더 좁고 깊은 접근 방식을 취합니다. 이 시스템은 사용자가 Cubacadabra 스타일의 게임, 즉 복셀(voxel) 미학에 의존하고, 빠르고 반복적인 루프를 가지며, 포터블한 배포가 가능한 종류의 게임을 만들고 있다고 가정합니다. 그 경계 안에서, LudoForge Studio는 당신 서랍 속 가장 날카로운 끌이 되는 것을 목표로 합니다. 스위스 아미 나이프라기보다는, 각각 하나의 완벽한 깎임(shaving)에 맞춰 조정된 맞춤 제작 목공용 평면도 세트에 가깝다고 생각하세요.
커맨드라인은 우리의 캔버스입니다. 조합(Composition)은 우리의 철학입니다. 모든 서브 커맨드는 작고, 테스트 가능하며, 파이프 연결이 가능한 유닛으로, 하나의 작업만 수행하며 드라마 없이 처리합니다.
✨ 팀들이 LudoForge를 선택하는 이유
• 🧱 시간을 존중하는 프로젝트 스캐폴딩(Project scaffolding) — 단 한 번의 호출로 완전한 스타터 레포지토리(폴더, 더미 파일, 기본 설정, 샘플 에셋)를 구축합니다.
• 📦 이식 가능한 빌드 파이프라인(Portable build pipeline) — Luau 소스 및 에셋 트리를 장치 전반에 걸쳐 배포할 준비가 된 단일 독립 패키지로 압축합니다.
• 🗂️ 에셋 인식 콘텐츠 번들링(Asset-aware content bundling) — 중복을 제거하고, 압축하며, 에셋에 핑거프린팅(fingerprinting)을 적용하여 패키지가 가볍고 캐시 친화적으로 유지되도록 합니다.
• 🚀 배포 자동화(Publishing automation) — 버전 증가부터 변경 로그 작성, 배포 아티팩트 생성까지 예제 프로젝트 출시 과정을 엔드투엔드로 오케스트레이션합니다.
• 🔁 결정론적이고 재현 가능한 빌드(Deterministic, reproducible builds) — 동일한 입력은 매번 바이트 단위로 동일한 출력을 보장합니다.
• 🌍 다국어 출력(Multilingual output) — 현지화된 문자열과 출시 노트가 별도의 도구 없이 동일한 파이프라인을 통해 흐릅니다.
• 📱 반응형 미리보기 레이어(Responsive preview layer) — 생성된 미리보기 셸은 데스크톱, 태블릿, 휴대용 기기 등 다양한 폼팩터에 우아하게 적응합니다.
• 🛎️ 24/7 디스패치 지원(Dispatch support) — 모든 시간대에 걸쳐 빌드를 푸시하는 팀을 위한 연중무휴 트리아지(triage)를 제공합니다.
• 🧪 테스트 우선 내부 구조(Testing-first internals) — 모든 파이프라인 단계에는 테스트 후크가 있어 격리, 더미화(stubbing), 검증을 자신감을 가지고 수행할 수 있습니다.
• 🧩 조합 가능한 서브커맨드(Composable subcommands) — 셸 스크립트 및 CI 작업에서 레고 블록처럼 CLI 동사들을 결합할 수 있습니다.
🏗️ 아키텍처 개요 (Architectural Overview)
LudoForge는 계층형 파이프라인(layered pipeline)으로 구조화되어 있습니다. 각 계층은 의도적으로 분리(decoupled)되어 있어 어떤 단계든 교체, 확장 또는 모킹(mocking)할 수 있습니다.
| 계층 (Layer) | 책임 (Responsibility) |
|---|
| 스캐폴드 계층 (Scaffold Layer) | 템플릿 매니페스트를 읽고 새로운 프로젝트 트리를 구현합니다. |
| ... | |
🧱 빌드 및 스캐폴딩 (Build & Scaffold)
- 구성 가능한 시작 템플릿 (blank, sprite-heavy, audio-heavy, minimal).
- 드라이런(dry-run) 스캐폴딩을 통해 커밋하기 전에 자료화(materialization)를 미리 볼 수 있습니다.
- 멱등성(idempotent) 프로젝트 업데이트 — 재실행해도 사용자 정의 편집 내용이 덮어쓰여지지 않습니다.
📦 패키징 및 배포 (Packaging & Distribution)
- 노트북 간 전달을 위한 단일 파일 포터블 아카이브.
- 제한된 저장 공간 목표를 위한 선택적 분할 아카이브 모드.
- 콘텐츠 지문 인식(fingerprinting)으로 하위 소비자(downstream consumers)가 공격적으로 캐싱할 수 있습니다.
🗂️ 에셋 처리 (Asset Handling)
- 구성 가능한 패딩 및 블리드(bleed)를 사용한 텍스처 아틀라스 스티칭.
- 오디오 정규화(normalization) 및 라우드니스 목표 설정.
- 작성자의 의도를 보존하는 텍스트 에셋 난독화(minification).
🚀 릴리스 자동화 (Release Automation)
- 변경 로그 조각에 의해 구동되는 시맨틱 버전 증가(Semantic version bumping).
- 다중 타겟 게시 레시피.
- 모든 게시된 아티팩트에 대한 롤백 스냅샷.
🌍 국제화 (Internationalization)
- 로케일 인식 문자열 해석(resolution).
- 미리 보기에 내장된 오른쪽에서 왼쪽으로 배치되는 레이아웃 검사.
- 플러그 가능한 번역 메모리 백엔드.
🛎️ 운영 (Operations)
- 모든 집계기(aggregator)가 소비할 수 있는 구조화된 로그.
- CI 친화적인 사전 비행 검증을 위한 상태 확인(health check).
- 디스패치 채널을 통한 연중무휴 지원 접근.
🚀 사용법 익히기 (Getting Oriented)
LudoForge는 CLI 우선(CLI-first) 도구입니다. 즉, 터미널에서 생활하게 되며 — 우리는 이것을 제약이 아닌 기능으로 간주합니다. 셸 히스토리가 변경 로그가 되고. 파이프라인이 접착제 역할을 합니다. 크론 작업이 릴리스 엔지니어가 됩니다.
일반적인 첫 세션 흐름은 다음과 같습니다:
- 선호하는 배포 채널을 사용하여 워크스페이스를 가져옵니다(Pull down).
- 평소 사용하는 런타임 관리자를 통해 환경을 활성화합니다.
doctor 서브커맨드를 실행하여 환경이 정상인지 확인합니다.
- 툴체인에 선택한 템플릿으로 새 게임을 스캐폴딩하도록 요청합니다.
- Luau와 에셋을 생성된 트리에 넣습니다(Drop).
- 빌드를 시작하고, 그다음 패키징을 하고, 그다음 게시를 합니다.
- 배포합니다(Ship).
LudoForge는 특정 패키지 매니저의 관례를 하드코딩하지 않았기 때문에, 팀이 이미 사용하고 있는 어떤 워크플로우에도 자유롭게 통합할 수 있습니다.
🧪 테스트 및 검증 (Testing & Verification)
안정성은 기능입니다. 이 저장소는 계층적(layered) 테스트 전략과 함께 제공됩니다:
| 스위트 | 범위 | 의도 |
|---|
| 단위 (Unit) | 개별 함수 | 행동 계약을 보호합니다. |
| ... | | |
골든 테스트(Golden tests)는 여기서 조용한 영웅입니다. 생성된 아카이브를 커밋된 참조 세트와 바이트 단위로 비교합니다. 변경 사항이 출력을 변경하면, 테스트가 경고음을 울리는데—이는 결정론(determinism)을 약속하는 빌드 시스템에서 정확히 원하는 것입니다.
🎨 디자인 원칙 (Design Principles)
작은 동사로 큰 결과를 만듭니다. 모든 서브 커맨드(subcommand)는 원자적 단위입니다. 이를 조합하는 것은 사용자에게 맡겨져 있습니다.
의견이 담긴 기본값(Opinionated defaults), 어디에나 탈출구(escape hatches). 제로 설정(Zero-config)은 마법처럼 느껴져야 합니다. 하지만 숨겨진 것은 아무것도 없으며—모든 기본값은 재정의(overridable)가 가능합니다.
크게 실패하고, 일찍 실패하세요. 침묵은 버그입니다. 모호함은 버그입니다. 무언가 잘못되면, LudoForge는 스택 트레이스(stack trace)와 제안된 다음 단계를 통해 알려줍니다.
사용자의 기기를 존중합니다. 숨겨진 백그라운드 데몬(background daemons)은 없습니다. 요청하지 않은 원격 측정(telemetry)도 없습니다. 당신의 CPU, 당신의 규칙입니다.
🌐 다국어 지원 (Multilingual Support)
현지화(Localization)는 나중에 급하게 붙인 것이 아닙니다. 코어 깊숙이 짜여 있습니다:
- 로케일 매니페스트(Locale manifests)가 일급 입력값입니다.
- 폴백 체인(Fallback chains)은 임시방편적이지 않고 선언적(declarative)입니다.
- 미리보기 렌더링은 언어 관습에 맞게 타이포그래피를 조정합니다.
- 출시 노트는 로케일별로 작성하고 배포할 수 있습니다.
청중이 일본어, 포르투갈어, 아랍어 또는 클링곤어와 유사한 인공 언어로 플레이하든 상관없이, 파이프라인은 동일한 페이로드 형태를 전달합니다.
📱 반응형 미리보기 표면 (Responsive Preview Surfaces)
번들된 미리보기 셸(preview shells)은 놓이는 어떤 캔버스에도 우아하게 반응합니다. 벽걸이 디스플레이부터 주머니 크기의 휴대용 기기까지, 레이아웃은 수동 조정 없이 재보정됩니다. 이는 뷰포트(viewport)를 규칙이 아닌 제안으로 취급하는 해상도에 구애받지 않는(resolution-agnostic) 렌더링 계층을 통해 달성됩니다.
🛎️ 24/7 고객 지원
게임은 잠들지 않으며, 출시 마감일 역시 마찬가지입니다. 이것이 LudoForge Studio가 하루 24시간 내내 빌드를 진행하는 팀들을 위해 **24/7 전송 채널(dispatch channel)**을 운영하는 이유입니다. 지원 요청은 심각도에 따라 분류되고, 적절한 유지 관리자에게 전달되며, 종결될 때까지 추적됩니다. 블랙박스 형태의 티켓 대기열이나 방치되는 일은 없습니다. 오직 사람을 돕는 사람이 다른 사람을 출시시키는 것입니다.
🔐 보안 태세(Security Posture)
- 빌드 출력물에 비밀 정보가 절대 포함되지 않습니다.
- 에셋 파이프라인은 메타데이터에서 로컬 파일 경로를 제거합니다.
- 퍼블리시 레시피는 원격 전송을 위해 명시적인 옵트인(opt-in)을 요구합니다.
- 모든 설정 파일은 사용 전에 스키마에 따라 검증됩니다.
만약 이러한 보장을 훼손하는 무언가를 발견했다면, 공개 이슈보다는 보안에 초점을 맞춘 이슈를 제기해 주십시오.
🧬 SEO 친화적 주제(SEO-Friendly Topics)
game development tooling · Luau build pipeline · Cubacadabra ecosystem · portable game packaging · CLI dev tools · cross-platform release automation · deterministic builds · asset bundling · multilingual game publishing · voxel game starter kits
🗺️ 로드맵 스냅샷 (2026)
- 2026년 1분기 — 번들 형식 v3 안정화 및 골든 테스트 커버리지 최종 확정.
- 2026년 2분기 — 타사 대상(third-party targets)을 위한 플러그인 가능한 퍼블리시 어댑터 도입.
- 2026년 3분기 — 스크립트 인식 글꼴 변형(script-aware font shaping)을 포함하도록 현지화 확장.
- 2026년 4분기 — 가이드된 워크플로우를 선호하는 팀들을 위한 대화형 TUI 출시.
로드맵 항목은 계약적이지 않고 방향성을 제시하는 것입니다. 팀은 커뮤니티 피드백에 따라 순서를 재조정할 권리를 보유합니다.
🧑🤝🧑 기여(Contributing)
저희는 세심한 도구링을 높이 평가하는 기여자들을 환영합니다. 풀 리퀘스트(pull request)를 열기 전에 다음 사항을 확인해 주십시오:
- 행동 강령(code of conduct) 읽기 (리포지토리 루트에 포함됨).
- 변경 사항을 위에 설명된 레이어링 모델과 일치시키기.
- 변경 사항의 동작을 증명하는 테스트 포함하기.
- 관련 문서를 인라인으로 업데이트하기.
작고 집중적인 풀 리퀘스트가 가장 빠르게 진행됩니다. 대규모 재작성은 지연되는 경향이 있으므로, 저희는 점진적인 성공(incremental wins)을 선호합니다.
📜 라이선스
이 프로젝트는 MIT 라이선스 하에 배포됩니다. 전체 내용은 LICENSE 파일을 참조하십시오. 해당 라이선스가 정한 범위 내에서 도구 체인(toolchain)을 사용, 수정 및 재배포하는 것이 허용됩니다.
⚠️ 면책 조항 (Disclaimer)
본 소프트웨어는 상품성(merchantability), 특정 목적 적합성(fitness for a particular purpose), 비침해성(noninfringement)을 포함하되 이에 국한되지 않는 어떠한 종류의 명시적 또는 묵시적 보증 없이 "있는 그대로(as is)" 제공됩니다. 어떠한 경우에도 저자나 저작권 보유자는 본 소프트웨어 또는 소프트웨어 사용과 관련된 기타 거래로 인해 발생하는 계약, 불법 행위 또는 기타 방식의 모든 청구, 손해 또는 기타 책임에 대해 책임을 지지 않습니다.
사용자들은 이 도구 체인(toolchain)의 사용이 목표하는 모든 다운스트림 플랫폼이나 배포 채널의 서비스 약관을 준수하도록 보장할 책임이 있습니다.
🙏 감사의 말씀 (Acknowledgements)
새벽 3시에 사려 깊은 버그 보고서를 제출하는 장난기 넘치는 사람들(tinkerers), 밤샘 작업자들(night-owls), 그리고 끊임없이 최적화하는 분들께 — 여러분 덕분에 이런 도구들이 구축할 가치가 있습니다. 감사합니다.
📬 소식 받기 (Stay in the Loop)
릴리스 공지를 위해 저장소(repository)를 지켜봐 주세요. 여러분의 워크플로우에 자리를 잡을 만한 가치가 있다면 별표 표시(Star)해 주세요. 여전히 빌드를 수동으로 압축하는 팀원에게 공유해 주세요 — 그들이 감사할 겁니다.
Download