ゲームにピクセルアートを自動生成しました
目次
- ゲーム開発の課題
- コードの再訪
- マップエディターの作成
- マップのシリアライズ
- ロックの形状生成
- シェーダーの導入
- ライティングの追加
- ピクセル化
- シェーダーのゲームへの組み込み
- 結論
🎮 ゲーム開発の課題
こんにちは、みなさん。私はトーマス・ランドールと申します。今回は、根本からC言語でゲームを作成しようとしています。しかし、古いコードの再訪は非生産的で、まるでアルツハイマー病の人に朝食を尋ねるようなものです。
# コードの再訪
過去の自分が残してくれた助言を参考に、新たなゲーム開発プロジェクトに着手しました。プレイヤー、テストアイランド、ハードコードされたチャンクシステム、インベントリ、スキルツリー、魔法の木こりといった様々な要素が既に存在していました。
# マップエディターの作成
マップの手動配置を簡単にするため、マップエディターの作成を試みました。地面セグメントを手動で配置し、移動させることができるボタンを作成しました。
# マップのシリアライズ
マップは、新しいワールドを作成するたびに読み込まれるデータの束になっています。しかし、データの構造が変更された場合、ゲームはその新しいバージョンを正しく読み込むことができません。そこで、マップのシリアライズを実装しました。
# ロックの形状生成
ロックの形状を再現するために、ボロノイアルゴリズムを使用しました。ランダムな要素を加えることで、ロックの形状を作り出すことができます。
# シェーダーの導入
グラフィックス処理ユニット(GPU)にはシェーダーというプログラムがあり、画面に表示する内容を制御します。シェーダー言語であるGLSLを使用して、ピクセルごとにシェーダーを実行しました。
# ライティングの追加
元のイラストに独自の力強さを与えるために、ライティングの追加を行いました。ロックの深さに応じて色を設定し、ランダム要素を加えてロックを自然な雰囲気にしました。
# ピクセル化
ピクセルアートのゲームに合わせて、描画をピクセル化しました。拡大率でピクセルを削除し、自然なピクセル化効果を再現しました。
# シェーダーのゲームへの組み込み
シェーダーコードをゲームに組み込むために、プロセスシェーダーを使用しました。カメラの位置やズームの変換もシェーダー内で正しく処理するようにしました。
# 結論
これらの手順を組み合わせることで、ゲームに手描きのイラストを再現することができました。しかし、まだ改善の余地があります。引き続き開発を進めながら、さらなる磨きをかけていきたいと思います。