概要
90s.dev は、1990年代風のGUIアプリやゲーム開発ツールをWeb上で構築・共有できる 新しいAPIプラットフォーム です。 ゲームエンジンやゲームメーカーそのものではなく、それらを作るためのAPIを提供します。 TypeScript中心のSDK や WebGL2対応 など、現代的な技術も取り入れています。 アプリの公開・共有 が容易で、コミュニティ主導の拡張が期待されています。 GUIやレイアウト、データバインディング などで独自の工夫が施されています。
90s.dev 公開:90年代風ゲーム開発APIプラットフォーム
90s.devとは
- Web技術を包み込む「OS」的なAPI を提供すること
- ゲーム、ゲームエンジン、ゲームメーカーコンポーネント の作成を支援するAPI設計
- GUIアプリ開発が楽しかった90年代 の雰囲気を再現すること
- ゲームエンジンやゲームメーカー自体ではない 点を明確化すること
- pico8, tic80, picotron, love2d などの影響を受けつつ、独自性を追求すること
特徴
- HTML Canvas上で動作し、ブラウザで完結 するプラットフォームを実現すること
- 320x180(16:9)画面をウィンドウサイズに合わせて拡大 する設計
- Web Workerでアプリを隔離実行 し、セキュリティとパフォーマンスを両立すること
- OffscreenCanvas経由でWebGL2を利用可能、60fpsゲームも対応すること
- GitHubやNPMにあるアプリの公開・ロードが可能 になること
- TypeScriptファーストでVSCode対応SDKを同梱 し、プロトタイピングを高速化すること
- WASMにコンパイルできる任意言語のモジュールインポート を許容すること
- ピクセルアート作成アプリ(paint, sprite-maker, map-maker等)を内蔵 すること
- サウンド・音楽関連アプリはコミュニティに委ねる方針 を取ること
デモ・利用例
- paintアプリ(80%完成)を即座に試せるUI を提供すること
- アプリの起動・終了がワンクリックで可能 な設計
- アプリの共有はURLリンクやiframeで簡単に実現 すること
インスピレーション元と違い
- pico8 :美学的ミニマリズム・単一言語サポートを踏襲すること
- tic80 :pico8の制約を緩和した設計を参照すること
- love2d :外部IDE利用前提の開発スタイルを採用すること
- picotron :OS的アーキテクチャを模倣すること
- meta-pico8、TypeScript版love2d、縦方向拡張型tic80 として位置付けること
GUI設計の独自性
- Warcraft I/II風のサイドパネルUIを目指したシンプルなView API を開発すること
- ビューの自動レイアウト機構を極限までシンプル化 し、手動配置の手間を削減すること
- 「ref」機構(監視可能なポインタ)を全プロパティに導入し、データバインディングを容易化 すること
- 他フレームワークのrefとは無関係 で独自設計を強調すること
- JSXのタグ表現を活用し、具体ビューと抽象ビューを分離 すること
- 抽象ビューはグローバルテーブル経由で任意に差し替え可能 な柔軟性を持つこと
- colorpicker例:デフォルトの48色パレット以外にも、任意の実装に差し替え可能 とすること
アプリ公開・共有の仕組み
- 従来のnet/共有ドライブ方式から、GitHub/NPM/CDN経由のインポート方式へ移行 すること
- 例:
- import { stuff } from '/os/fs/ghb/someuser/project@1.0.0/some/file.js'
- import { stuff } from '/os/fs/npm/someuser/project@1.0.0/some/file.js'
- 例:
- OS的な設計の中で、アプリは320x180キャンバス上で動作 すること
- ビルトインアプリは最低限で、コミュニティによる拡張・共有を重視 すること
- GitHubリポジトリ上にIssue Tracker, Wiki, Forumを設置し、共同開発・議論・管理を促進 すること
- Issue:機能要望・バグ報告
- Forum:プロジェクトの告知・議論
- Wiki:プロジェクトのキュレーション・整理
- アプリ共有用リンク形式を統一 すること
- 例:/os/#sys/apps/paint.app.js, /os/#ghb/someuser/someapp.app.js(近日対応)
先行事例・経歴
- minigamemaker.com や 90s.dev/v1(sys32) など、過去の試作プロジェクトを踏襲・発展させること
コントラクトワーク募集
- 興味深くチャレンジングな案件については契約作業も受託可能 とすること
まとめ
- 90s.devは、ゲーム開発者やツール開発者向けの新しいAPIプラットフォーム であり、
- Web技術の現代性と90年代GUIの楽しさを融合 した設計思想を持つこと
- コミュニティ主導での拡張・共有・改善が期待される次世代型ゲーム開発基盤 として提案