げーむえんじんをつくろう

趣味と趣味が激しくぶつかり合う管理人、羽倉いずみです!!!!!

本日は、Pポーカーのあれこれについて少し🌌ディープ🌌にお話します。
※今回はやや難し~話になります。これらの内容は全て、ゲームづくりの素人による趣味の記事ですのでご注意くだぴえん🥺

まずおさらいです。Pポーカーはスマホでもパソコンでも遊べる、ブラウザーゲームです。画像が表示されるのはもちろん、音楽も再生され、セーブ機能もある普通のゲームです。

今回は、それがどうやって作られているのかを紹介していきます。

TypeScript オンリー!

弊サークルが独自に開発したゲームエンジン「BlackShip🚢」は、 Alt JavaScript の一種である TypeScript のみで実装されています。これ以外の外部ライブラリーは未使用です。これは、前作の「かえってきたちーぐーぱーどーん!!!」のときと同じです。そもそもそのちぐぱが、このゲームエンジンの実戦投入のために作られたものでした。(ちぐぱ内でホンフーさんが語ってくれていますね) 今回のPポーカーは、その時から更に、このゲームエンジンを拡張させたものとなっています。

ゲームデータを最終的に作り出すパッケージツールも TypeScript で書いています。こちらはゲームエンジンとは別のアプリケーションになっていて、次項で登場する RapiS スクリプトや一部のファイルの暗号化、必要なファイル群のコピーなどを一括で行うものです。

ゲームフローを制御する独自言語「RapiS」!

このゲームエンジン内には、独自にもう一つのプログラミング言語「RapiS (らぴす)」が搭載されています。私が Twitter でよく「らぴちゃん」と呼んでいるものはこれを指しています。これもちぐぱの頃から存在しており、ゲームエンジンの機能を呼び出して画面を作ったり音を鳴らしたり、時にはセーブデータを取り扱ったりします。ゲームを始めたらまずタイトル画面を表示して、次にメニュー画面を表示して……という流れや、ポーカーのターンなどの制御を行っています。
言語としてはかなり原始的ですが、一応オブジェクト指向要素を持っています。また、擬似的な並列処理も得意です。ポーカーで複数のキャラクターがそれぞれまばたきをしているのなんかがその最たる例です。すごくさり気ないところで意外と使われているのがこの並列処理だったりします。

なんで「自作」???

そうです。令和にはたくさんのゲーム制作ツールが溢れています[要出典]。それを知っていて、なぜあえてゲームエンジンを、ましてや独自の言語なんてものを作っているのかと言うと……。

それはやはり、私が昔からゲームづくりを「」としていたからです。何かの寄せ集めではなく、ほぼ全てを自分で作ったと胸を張って言いたい。このゲーム、私が作ったんですよ!!!と言いたい。それが一番の思いでぴえん🥺
実際、プログラム開発は画像を一枚表示するところから始まりました。その時の感覚を今でも覚えています。普通、気にする必要のないような細かいブラウザーの挙動にも悩まされました。色々ありましたが全て走破し、やっとこうして、皆さんに遊んでもらえるようなゲームを作れるレベルに、エンジンが育ちました。

次に現実的な理由として、「外部ライブラリの暗部」に時間を割きたくないという理由があります。既製品は便利ですが、それぞれ癖があります。ゲームを迅速に作るための便利なはずの道具が、時には牙を向いて襲いかかることがあります。マニュアルに乗ってない動作になったり、サポートが終わってしまって機能が追加されなくなってしまった、などなど。これから長く長く続けていくゲームづくりという趣味。それは5年や10年で終わるものではありません。その道の途中で使用しているゲームエンジンが使えなくなってしまう……。それは避けたいところです。過ぎた魔法は、身を滅ぼす……🥺

実際、自分でイチからゲームエンジンを構築することで、あらゆる実装や設計方針が全て頭の中に入っています。誰よりも早く拡張でき、誰よりも正確に設計思想を継いでいけます。この設計思想に一番マッチする実装パターンも編み出しているので、ちょっとしたゲームならほんとにぴゃぴゃっと作れてしまいます。

いかがでしたか?

パワポケの話でもなんでもなく、本当に私の趣味の話でした。「Pポーカーというゲームを作りました!みんな遊んでね!」の裏側には、実はこんなディープな想いが潜んでいるのです!

今後はもっと、このエンジンの内部についてお話していきます。

え?

よくわからんからもういい?パワポケの話しろ?

 

 

・・・。

 

・・・・・・・・・・。

 

 

 

 

 

 

🥺?