クイックスタート
このページでは、Prometeを使ったゲーム開発を始めるための基本的なセットアップ方法を説明します。
必要な環境
- .NET 8 SDK以降
- Visual Studio 2022、Visual Studio Code、Rider などの.NET開発環境
プロジェクトの作成
1. 新しいコンソールアプリケーションプロジェクトを作成
dotnet new console -n MyPrometeGamecd MyPrometeGame2. PrometeのNuGetパッケージをインストール
dotnet add package Promete基本
Prometeアプリの基本的なエントリポイントを以下に示します。
using Promete;using Promete.Input;using Promete.Windowing;
// アプリケーションを作成var app = PrometeApp.Create() .Use<Keyboard>() // キーボード入力 .BuildWithOpenGLDesktop(); // OpenGLデスクトップバックエンド
// メインシーンで実行return app.Run<MainScene>(WindowOptions.Default with{ Title = "My Promete Game", Size = (800, 600),});
// メインシーンクラスpublic class MainScene : Scene{ private readonly Keyboard _keyboard;
public MainScene(Keyboard keyboard) { _keyboard = keyboard; }
public override void OnStart() { // シーン開始時の処理 Console.WriteLine("ゲームが開始されました!"); }
public override void OnUpdate() { // フレーム毎の更新処理 if (_keyboard.Escape.IsKeyDown) { // Escapeキーでゲーム終了 Window.Close(); } }}アプリケーションの実行
dotnet run正常に動作すると、800×600ピクセルの黒いウィンドウが表示され、Escapeキーで終了できます。
プロジェクト構造の推奨
プロジェクトが大きくなる場合は、必要に応じてディレクトリを分割してください。
例えば、以下のような構造が良いでしょう。
ディレクトリMyPrometeGame
- Program.cs
- MyPrometeGame.csproj
ディレクトリScenes/
- MainScene.cs
- GameScene.cs
- MenuScene.cs
ディレクトリAssets/
ディレクトリTextures/
- …
ディレクトリAudio/
- …
ディレクトリFonts/
- …
ディレクトリNodes/
- HealthBar.cs
- Player.cs
- Enemy.cs
ディレクトリManagers/
- EnemyManager.cs
- AssetManager.cs
ディレクトリServices/
- CombatService.cs
代表的なプラグイン
Prometeには用途別に様々なプラグインが用意されています。
| プラグイン名 | 説明 |
|---|---|
Keyboard | キーボード入力を管理 |
Mouse | マウス入力を管理 |
Gamepads | ゲームパッド入力を管理 |
ConsoleLayer | デバッグ用のテキスト表示 |
CoroutineManager | コルーチン(非同期処理)を管理 |
AudioPlayer | オーディオ再生を管理 |
プラグインの詳細については、プラグインのドキュメントを参照してください。
サンプルコード
Promete.Exampleプロジェクトには、様々な機能を示すサンプルコードが含まれています。
このコードはGitHubからクローンして実行できます。
git clone https://github.com/prometeapp/Prometecd Promete/Promete.Exampledotnet runトラブルシューティング
よくある問題
OpenGLエラーが発生する場合
- グラフィックドライバーが最新であることを確認
- Windows の場合、DirectX ランタイムがインストールされていることを確認
パッケージが見つからない場合
- NuGetパッケージマネージャーでプレリリース版を含めて検索
- パッケージソースが正しく設定されていることを確認
実行時にクラッシュする場合
- .NET 8 SDKが正しくインストールされていることを確認
- プロジェクトのターゲットフレームワークが
net8.0以降に設定されていることを確認