Building games with Astra
Quick Summary
Thomas Ricouard는 Codex에서 Astra를 활용해 우주부터 행성 지표까지 연속적으로 탐험하는 Void Explorer를 만들며, 플레이 제약과 시각적 참고 이미지를 바탕으로 구현 방향을 구체화했다.
🖼️ 인포그래픽

🖼️ 4컷 인포그래픽

💡 한 줄 요약
Thomas Ricouard는 Codex에서 Astra를 활용해 우주부터 행성 지표까지 연속적으로 탐험하는 Void Explorer를 만들며, 플레이 제약과 시각적 참고 이미지를 바탕으로 구현 방향을 구체화했다.
📌 핵심 요약
- Void Explorer는 우주에서 행성 대기권과 해안선까지 내려가 착륙하고, 우주선에서 내려 걸어 다닌 뒤 다시 이륙할 수 있는 우주 탐험 게임이다.
- 초기 요구사항은 보이는 모든 곳에 도달하고 실제 거리를 유지하는 것이었으며, 지구 크기의 행성을 고려해 절차적 지형과 청크 단위 렌더러를 요구했다.
- 별을 배경의 점으로 처리하거나 행성 접근 시 별도 레벨로 전환하는 방식은 요구사항에 맞지 않았으며, 장거리 이동에는 가상의 펄스 이동과 하이퍼드라이브를 활용했다.
- 이미지 생성으로 사실적인 표현과 지나치게 단순한 표현 사이를 조정하고, 색상·네온 조명·대비를 구체화해 궤도 비행, 고속 이동, 대기권 진입, 착륙의 시각적 참고 이미지를 마련했다.
- 작성자가 제약을 정하고 Astra가 구현을 제안했으며, 기술 구성은 TypeScript·Vite·Three.js였다. 최초 플레이 가능한 렌더러는 WebGL2를 사용했고, 이후 렌더링 변경 논의는 제공된 본문이 중간에 끊겨 세부 내용을 확인할 수 없다.
🧩 주요 포인트
- 연속적인 행성 탐험과 실제 거리 유지 → 규모·지형·조작·렌더링을 함께 해결해야 하는 설계 조건 형성.
- 이미지 생성과 구체적인 수정 피드백 → 비행 단계별 시각적 목표를 다음 빌드의 판단 기준으로 활용.
- 작성자의 제약 설정과 Astra의 구현 제안 → 플레이 경험에서 기술 구조로 요구사항을 구체화하되, 렌더링 변경 결과는 확인 범위 밖.
🧠 상세 정리
1. 개발 사례와 목표 경험
Thomas Ricouard는 Codex에서 Astra를 사용해 우주 탐험 게임 Void Explorer를 만든 경험을 소개하며, 머릿속의 구상을 게임 플레이와 미술 방향으로 옮기는 능력을 긍정적으로 평가한다. 게임의 핵심 경험은 먼 별이 있는 우주에서 출발해 외계 행성의 풍경까지 직접 이동하는 것으로, 우주 비행과 지표 탐험이 하나의 여정으로 이어진다. 플레이어는 행성에 접근하고 대기권을 통과한 다음 해안선 위로 내려가 착륙할 수 있으며, 우주선에서 내려 걸어 다니다가 다시 이륙할 수도 있다. 작성자는 이 여정을 구현하려면 규모, 지형, 조작, 렌더링을 함께 해결해야 했다고 설명한다. 본문에는 이러한 개발 과정을 보여 주기 위해 길이와 명확성을 다듬은 프롬프트 일부가 제시되어 있다.
2. 플레이 요구사항을 기술 제약으로 전환
초기 요청은 특정 기능의 구현 방법보다 플레이어가 무엇을 할 수 있어야 하는지를 먼저 정의했다. 가장 중요한 조건은 눈에 보이는 모든 곳에 도달할 수 있어야 하고, 거리를 실제 규모로 유지하면서도 규모와 속도를 통해 이동이 가능하도록 만드는 것이었다. 우주에서 행성 대기권을 지나 지면까지 비행하는 과정도 이 요청에 포함되어, 행성에 가까워질 때의 경험이 명확한 개발 조건으로 제시되었다. 행성은 지구만큼 클 수 있다는 전제 때문에 작성자는 절차적 지형과 청크 단위 렌더러가 필요하다고 명시했다. 이처럼 초기 프롬프트는 탐험의 자유라는 목표를 도달 가능성, 거리, 행성 크기, 지형 구성 방식이라는 구체적인 조건으로 연결했고, Astra가 구현을 제안할 때 따를 기준을 제공했다.
3. 실제 거리와 연속적인 이동
초기 제약에 따르면 별은 배경에 그려진 점으로만 존재할 수 없었고, 행성 역시 접근하는 순간 별도의 레벨로 바뀌어서는 안 되었다. 이는 보이는 대상에 실제로 도달하고 우주에서 지면까지 계속 내려갈 수 있어야 한다는 요구를 게임 세계의 구성 방식에 적용한 것이다. 이동에는 실제 거리를 반영하되, 그 거리를 플레이어가 이동할 수 있도록 가상의 펄스 이동과 하이퍼드라이브를 사용했다. 따라서 본문에서 거리의 유지와 이동 수단의 도입은 하나의 탐험 경험을 성립시키기 위한 연결된 조건으로 설명된다. 다만 제공된 내용에는 이 이동 수단들의 속도나 작동 수치, 전환 규칙이 제시되어 있지 않으므로 확인 가능한 내용은 장거리 여행을 가능하게 하는 역할까지다.
4. 이미지 생성으로 미술 방향 조정
작성자는 게임을 본격적으로 많이 구현하기 전에 이미지 생성을 사용해 원하는 외형을 탐색했다. 최초의 콘셉트는 지나치게 사실적이었고 다음 방향은 너무 단순했기 때문에, 두 표현 사이의 중간 지점을 찾도록 수정 요청을 보냈다. 이때 더 나은 색상, 네온 조명, 깊은 우주를 떠올리게 하는 강한 대비를 요구하면서 원하는 시각적 특성을 구체적으로 설명했다. 또한 우주선 주변에 별과 먼지가 있는 고속 이동 장면을 보여 달라고 요청해, 정적인 외형뿐 아니라 이동 중의 모습도 확인하려 했다. 이 과정은 한 번 생성한 이미지를 곧바로 확정한 것이 아니라, 결과를 보고 부족한 점을 짚은 뒤 표현 수준과 색채 방향을 조정하면서 게임에 적용할 미술 기준을 찾아간 사례로 제시된다.
5. 참고 이미지를 빌드 판단 기준으로 활용
생성된 이미지가 마음에 들자 작성자는 Astra에게 이를 저장하고 게임을 위한 참고 자료로 정리하도록 요청했다. 참고 이미지는 궤도 비행, 고속 이동, 대기권 진입, 착륙이라는 구체적인 장면을 대상으로 했으며, 각 단계에서 어떤 모습을 원하는지 보여 주는 역할을 했다. 앞서 프롬프트로 표현한 색상과 조명, 대비에 대한 요구가 실제 이미지로 구체화되면서 다음 빌드를 판단하기가 훨씬 쉬워졌다고 작성자는 설명한다. 본문에 붙은 이미지 설명 역시 생성된 콘셉트 아트가 게임의 색상 구성과 시각적 방향을 정립했다고 명시한다. 따라서 이 사례에서 이미지 생성은 초기 아이디어를 탐색하는 데서 끝나지 않고, 구현된 게임의 모습이 의도한 방향과 맞는지 살펴보는 기준으로 이어졌다.
6. Astra의 구조 제안과 확인 가능한 기술 범위
작성자는 자신이 제약을 설정하고 Astra가 구현 방식을 제안하는 형태로 작업했다고 설명하며, 이어 애플리케이션의 기술 구성을 소개한다. 사용한 기술은 TypeScript와 Vite이며, 렌더링에는 Three.js를 사용해 메시, 재질, 조명, 절차적 기하 구조를 코드에서 직접 제어했다. 본문은 이러한 요소가 게임의 시각적 작업 대부분이 이루어지는 영역이라고 설명하고, 최초로 플레이할 수 있었던 렌더러는 WebGL2를 사용했다고 밝힌다. 이후 작성자는 Three.js가 시각적 표현의 발전을 제한하는지 물었고, Astra는 시뮬레이션을 유지하면서 렌더러를 옮기는 방향을 권고하기 시작한다. 그러나 제공된 본문은 이 설명 도중에 끝나므로, 정확한 전환 대상과 구현 방식, 변경 완료 여부나 시각적 개선 결과는 확인할 수 없다.
🧾 핵심 주장 / 시사점
- 플레이어가 경험해야 할 이동을 먼저 정의하면, 도달 가능성과 거리 같은 요구를 지형 및 렌더링의 구체적인 제약으로 연결할 수 있다.
- 시각적 피드백을 색상·조명·대비와 실제 플레이 장면으로 구체화하면, 생성 이미지를 후속 구현의 판단 기준으로 사용할 수 있다.
- 이 사례에서 확인되는 협업 방식은 사람이 경험과 제약을 설정하고 Astra가 구현을 제안하는 구조이며, 렌더링 변경의 성과까지 입증된 것은 아니다.
✅ 액션 아이템
- Void Explorer의 연속적인 행성 탐험을 기준으로 규모·지형·조작·렌더링의 연계 요구 검토.
- 궤도 비행, 고속 이동, 대기권 진입, 착륙의 시각적 참고 이미지를 다음 빌드의 판단 기준으로 활용.
- WebGL2 이후 렌더링 변경의 세부 내용과 결과는 확인되지 않은 사항으로 구분.
❓ 열린 질문
- Void Explorer에서 실제 거리 유지와 펄스 이동·하이퍼드라이브는 구체적으로 어떻게 결합되는가?
- 지구 크기의 행성을 위한 절차적 지형과 청크 단위 렌더러는 어떻게 구성되는가?
- WebGL2 이후 렌더링 변경의 구체적인 대상과 결과는 무엇인가?