創造的なプログラミングの顕著な実例として、ある開発者が従来ドキュメント記述言語として知られる PostScript を使用して、完全に機能する Tetris バージョンの実装に成功しました。 PSTris と名付けられたこの革新的なプロジェクトは、印刷やグラフィックス用に設計された言語がどのようにインタラクティブゲーミングに転用できるかを示しています。
予期せぬインタラクティブ機能
この実装で特に興味深いのは、 PostScript でインタラクティブ性を実現する斬新なアプローチです。多くの開発者が PostScript は静的なドキュメント生成に限られていると考えていましたが、 PSTris は巧妙なハックを採用してリアルタイムのゲームプレイを可能にしています。あるコミュニティメンバーは次のように述べています:
「PS プログラムが継続的に読み取るテキストファイルに入力を書き込むという巧妙なハックを使用しています。とても素晴らしいですね。」
この技術により、ゲームはプレイヤーの入力をリアルタイムで処理することができ、 PostScript の未開拓のインタラクティブアプリケーションの可能性を示しています。
歴史的背景と現代の実装
このプロジェクトは、コンピューティングにおける PostScript の歴史的役割について議論を呼び起こしています。コミュニティメンバーは、 PostScript が以前 Display PostScript や Sun の NeWS (Network extensible Window System)のような重要なグラフィカルシステムで使用され、GUIアプリケーションの基盤として機能していたことを指摘しています。しかし、 PSTris は特殊な実装に依存せず、ファイルシステムの監視を創造的に活用することでインタラクティブ性を実現する異なるアプローチを取っています。
プラットフォーム対応:
- macOS ( GhostView )
- Linux ( Ghostscript )
技術的成果
この実装は驚くほど効率的で、わずか600行のコード(10KB)と69種類の PostScript 演算子を使用しています。ゲームには、難易度の上昇、 Nintendo スタイルのスコアリング、標準的な7テトリミノのランダムバッグシステムなど、すべての重要な Tetris 機能が含まれています。これは、一見制限のあるドキュメント処理言語が、完全な機能を備えたゲーム体験を作り出すことができることを示しています。
主な特徴:
- PostScript コード600行/10KB
- 69種類の PostScript 演算子を使用
- リアルタイム入力処理
- 直接ドロップ機能
- 段階的な難易度システム
- 7種のテトリミノによるランダムバッグシステム
- ハイスコア記録機能
- Nintendo 方式のスコアリングシステム
クロスプラットフォームのアクセシビリティ
このゲームは macOS の GhostView で動作し、 Linux システムでは Ghostscript を使用してプレイすることができますが、一部の Linux 環境では安定性の問題が報告されています。開発者はチェスや Sokoban など、他の古典的なゲームの PostScript 実装も作成しており、この言語のゲーミングポテンシャルを探求するパターンを確立しています。
このプロジェクトは技術的な好奇心の対象としてだけでなく、既存の技術におけるイノベーションの可能性を強調し、創造的なプログラミングによってレガシーツールや言語の可能性の限界に挑戦できることを証明しています。
参考:PSTris