
2026/06/21 17:04
APL で書かれた 3D ボクセルゲームエンジン
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
このテキストは、APL 表記の開発における有用性を証明することを目的とした実験的なヴォーゲルゲームの詳細を記述しています。これは個人の賭け事から始まりました。現在、本ソフトウェアは非常に不安定でバグが多く、セッション中にリロードせずに複数回プレイできないなどの重大な使い勝手上の課題を抱えています。「syserror 999」というエラーによりメモリリークが生じる可能性があります。プロジェクトには Dyalog APL 20.0 や特定の C コンパイラ、CMake といったニッチな依存関係が必要であり、Windows における DLL の手動配置や、Linux/MacOS における
make/cmake のような複雑なワークフローも必要です。パフォーマンスはグラフィックバックエンドによって大きく変動しており、特に Windows 上では DirectX12 が現在サポートされていません(リクエストにもかかわらず)。シェーダー管理には glslc や spirv-cross といったツールが不可欠です。操作としては、移動に WASD キー、ジャンプに Space キー、カメラ制御にマウス、そして終了や情報切り替え、noclip の切り替え、ブロック選択(例:1-5)など特定のキーを使用します。ヴォーゲル開発の簡素化に対する概念実証として機能しつつも、本プロジェクトは依然として技術的実験段階におり、テクスチャは Madeline Vergani にクレジットされています。
Text to translate:
This text details an experimental voxel game designed to prove the utility of APL notation for development, originating from a personal wager. Currently highly unstable and buggy, the software faces significant usability hurdles, including the inability to play multiple times in a single session without reloading and potential memory leaks indicated by "syserror 999". The project requires niche dependencies such as Dyalog APL 20.0, specific C compilers, CMake, and complex workflows involving manual DLL placement on Windows or
make/cmake on Linux/MacOS. Performance varies heavily by graphics backend; notably, DirectX12 is currently unsupported on Windows despite requests, while shader management requires tools like glslc and spirv-cross. Controls include WASD for movement, Space to jump, Mouse for camera, and specific keys for quitting, toggling info, noclip, and block selection (e.g., 1-5). While serving as a proof-of-concept for simplifying voxel development, the project remains in a technical experiment phase with textures credited to Madeline Vergani.本文
LSE プロジェクトガイドライン
概要
このプロジェクトは、APL の表記法を用いてブロック型(ヴォクセル)ゲームを容易に作成することを目的としています。ただし、本プロジェクトは実験的であり、バグが含まれている可能性があります。
操作説明
| キー | 機能 |
|---|---|
| W・A・S・D | 移動 |
| スペースキー | ジャンプ |
| マウス | カメラの操作 |
| Q | ゲーム終了(quit) |
| I | レンダリング情報の表示/非表示切り替え |
| F | 高速なノンクリップモードへの切り替え |
| L | マウスのロック・アンロック |
| 1 ~ 5 | 設置可能なブロックの選択 |
環境要件
以下のソフトウェアが必須です:
- Dyalog APL 20.0 以上
- C コンパイラ
- CMake
- グラフィックス API:Vulkan、DirectX12(Windows)あるいは Metal(macOS)のいずれか
- 依存ライブラリ:
,sdl3
,sdl3_ttfsdl3_image- macOS での Homebrew 利用者向け
インストール手順
MacOS および Linux
依存関係をインストールし、リポジトリをクローン後、以下の手順でビルド・インストールしてください。
cd lse mkdir build cd build cmake .. make make install
これにより、以下がシステムにインストールされます:
- MacOS:
直下の./libs/
と SDL3 ライブラリファイルlibLSE.dylib - Linux:
libLSE.so
ゲームを起動するには、以下のコマンドを実行します:
./main.apls
注意(Linux)
一部ユーザー環境では
dyalogscript が別のパスにある場合があります。その際は、main.apls 内の shebang ラインを書き換えて正しいパスへ変更してください。
Windows
Windows 上ですべての要素をコンパイルするのは複雑です。推奨される手順は以下の通りです:
- CMake-GUI を用いて SDL3 の開発ライブラリ(libsdl3 リリース より)を設定してください。
- 代わりに、リポジトリのルートディレクトリにある
フォルダに./libs
ファイル一式を配置したリリース版を使用することも可能です。.dll
Dyalog セッション内でゲームを実行するには:
]cd <ROOT DIRECTORY> ]link.create # ./avg Run state.Play
シェーダーのコンパイル
- ソースコード:
格納./shaders/glsl - 同梱済みのシェーダーを修正する場合は、GLSL ファイルを編集後、以下のスクリプトを実行してください:
./compile_shaders.sh
必要なツール:
- DirectX Shader Compiler (
)glslc - spirv-cross
既知の問題点
- Windows: パフォーマンス低下(レグレス)は現在解決中
- DirectX12: Windows 上でのサポートなし
- セッション制限: 同じ APL セッション内で複数回プレイ不可
- エラー現象: 「syserror 999!」「Known to syserror 999!」が発生するケースあり
- メモリリーク: どこか場所で発生している可能性があります
クレジット
- テクスチャ作成:Madeline Vergani @RubenVerg