ディスクアップ2が好きすぎた結果
2023.02.12
ディスクアップ2が好きすぎるとこうなります。
「よし! 自分で作ってみよう!!」
▼YouTube動画にて公開中
どうも~ ディスクアップ中毒者末期症状のみのルパンです。
ここ数ヵ月間、ディスクアップ2以外は打ったことがありません。
(といっても、もともと月に2~3回程度しか稼働しませんが)
ディスクアップ2はシンプルながら奥が深くて面白い!(オマケに甘い)
通常時からボーナス、ATに至るまでアツくなれる要素が満載です!!
ちなみに僕はパチスロ業界、IT業界(開発)ともに未経験で何のノウハウも実績もないただのオッサンです。
そのため、パチスロゲームのアルゴリズムやプログラミングについては完全自己流となります。
ディスクアップ2のリール制御についても実戦で得た知識をもとに想像で作ってます。
【現在の開発状況】
・リール制御プログラムはほぼ完了
1枚役やリーチ目役などは全てリーチ目として制御 (特殊リプレイあり)
ハサミ押しスイカテンパイハズレやバー上段狙い下段まで滑るなど熱くなる要素は健在
・チャンス音予告、消灯演出、ペラポン(スベリ音演出)、遅れ、無音、ダブスタ、トリスタなど
液晶演出以外はほぼ完了
・逆押しバー狙いのボーナス判別は完全再現済み(ただし異色BIGのみオリジナル制御)
バー下段停止時は中・左リールの停止出目で判別可能
→中リール下段赤7停止や3択ベル成立でバケラッタ確定
青7が上段まで滑ってくれば3択ベルまたは取りこぼし目で判別可能
ボーナス確定時にベルナビが出れば逆押しバー狙い
→上段に青7が停止すればビッグ、下段バーなら絶望のバケラッタ1確
(好きなリーチ目)



【今後の予定】
・液晶演出の作成
・ボーナスゲーム開発
ビタ押しチャレンジでATゲーム数上乗せなど
・ATシステム開発
基本システムは完成している為、あとは見た目や演出のみ
会社で普通に働きながら休みの日にのんびりと制作しているため時間はかかると思いますが、気長に待っていてください。
完成したらまたホームページで無料公開します。
▼その他パチスロゲームは以下のメインページから無料でダウンロードすることが出来ます。
http://slotgame.wakunavi.net/
詳しい解析情報も公開中!
「よし! 自分で作ってみよう!!」
▼YouTube動画にて公開中
どうも~ ディスクアップ中毒者末期症状のみのルパンです。
ここ数ヵ月間、ディスクアップ2以外は打ったことがありません。
(といっても、もともと月に2~3回程度しか稼働しませんが)
ディスクアップ2はシンプルながら奥が深くて面白い!(オマケに甘い)
通常時からボーナス、ATに至るまでアツくなれる要素が満載です!!
ちなみに僕はパチスロ業界、IT業界(開発)ともに未経験で何のノウハウも実績もないただのオッサンです。
そのため、パチスロゲームのアルゴリズムやプログラミングについては完全自己流となります。
ディスクアップ2のリール制御についても実戦で得た知識をもとに想像で作ってます。
【現在の開発状況】
・リール制御プログラムはほぼ完了
1枚役やリーチ目役などは全てリーチ目として制御 (特殊リプレイあり)
ハサミ押しスイカテンパイハズレやバー上段狙い下段まで滑るなど熱くなる要素は健在
・チャンス音予告、消灯演出、ペラポン(スベリ音演出)、遅れ、無音、ダブスタ、トリスタなど
液晶演出以外はほぼ完了
・逆押しバー狙いのボーナス判別は完全再現済み(ただし異色BIGのみオリジナル制御)
バー下段停止時は中・左リールの停止出目で判別可能
→中リール下段赤7停止や3択ベル成立でバケラッタ確定
青7が上段まで滑ってくれば3択ベルまたは取りこぼし目で判別可能
ボーナス確定時にベルナビが出れば逆押しバー狙い
→上段に青7が停止すればビッグ、下段バーなら絶望のバケラッタ1確
(好きなリーチ目)



【今後の予定】
・液晶演出の作成
・ボーナスゲーム開発
ビタ押しチャレンジでATゲーム数上乗せなど
・ATシステム開発
基本システムは完成している為、あとは見た目や演出のみ
会社で普通に働きながら休みの日にのんびりと制作しているため時間はかかると思いますが、気長に待っていてください。
完成したらまたホームページで無料公開します。
▼その他パチスロゲームは以下のメインページから無料でダウンロードすることが出来ます。
http://slotgame.wakunavi.net/
詳しい解析情報も公開中!
自作パチスロゲームのソースコードを公開しました!
2022.11.13
数少ない同志の方からのご要望により、趣味で制作したパチスロゲーム「マイハゲラー」のソースコードをYouTube動画にアップしました!
使用言語:「Ruby」
使用ライブラリ:「DXRuby」(DirectX9を使用)
当サイトのパチスロゲームでは、基礎知識のみを活用してプログラミングされています。特に小難しい記述はありません。(というか知りません)
ただ、少ない知識でも工夫次第でこのようなゲームを簡単に制作することができます。
具体的には以下の通りです。
・各種データの登録はハッシュ、フラグやリール配列、画像などの管理は配列を使用
・クラスは大まかに3つに分けて定義
①メインループ
初期設定(フラグ各種、サウンド関連、ゲームモード設定を含む)、オブジェクトの作成やメソッドの実行、成立役判定、イベント振り分け、ループ処理など
②リール関連クラス
リールの動きやライン判定など各リールに共通するメソッドは親クラスに定義
第1リール・第2リール・第3リール固有のメソッド(主にリール制御)と各種ステータス(インスタンス変数)は子クラスに定義し、親クラスを継承
③画面レイアウト関連クラス
画面全体のデザインや各種パーツ、演出面など描画関連はすべてここに定義
小役フラグは0~16383の範囲で設定しており、小役とボーナスを割り当てています。(小役・ボーナスの重複あり)
ボーナスフラグと小役フラグが別々にある理由は、一度ボーナスが成立したあとも小役抽選を行うためです。
リール画像はチェリー、スイカ、ベル、リプレイなど計7種類あり、イメージ配列に格納
リール配列についてはリールマップ用の2次元配列に格納しています。
またリールの回転をよりスムーズに見せるため、スタート時は徐々に回転速度を上げるようにしています。
<プログラムについて>
市販のパチスロ実機やパチスロゲームでは本来、乱数調整、フラグ各種、リール制御、ゲーム数テーブル、モード管理など非常に複雑に作られています。
しかし、僕はパチスロ業界、IT業界ともに未経験で特別なスキルもないただのオッサンです。中身を知らないのに同じものが作れるハズもありません。全て見よう見まねです。
また、プログラミングについても今まで一度も習ったことがなく全て独学のため、プロの方から見ればとてもお粗末な内容になっているかもしれません。
(自分で見返してもBASIC時代の癖なのかオブジェクト指向言語っぽくない記述が多々あり、改善の余地あり)
とまあ叩かれるのが怖くて一応保身を図りましたが、少しでもお役に立ててもらえると嬉しいです。
▼パチスロゲームは以下のページから無料でダウンロードすることが出来ます。
http://slotgame.wakunavi.net/
詳しい解析情報も公開中!
使用言語:「Ruby」
使用ライブラリ:「DXRuby」(DirectX9を使用)
当サイトのパチスロゲームでは、基礎知識のみを活用してプログラミングされています。特に小難しい記述はありません。(というか知りません)
ただ、少ない知識でも工夫次第でこのようなゲームを簡単に制作することができます。
具体的には以下の通りです。
・各種データの登録はハッシュ、フラグやリール配列、画像などの管理は配列を使用
・クラスは大まかに3つに分けて定義
①メインループ
初期設定(フラグ各種、サウンド関連、ゲームモード設定を含む)、オブジェクトの作成やメソッドの実行、成立役判定、イベント振り分け、ループ処理など
②リール関連クラス
リールの動きやライン判定など各リールに共通するメソッドは親クラスに定義
第1リール・第2リール・第3リール固有のメソッド(主にリール制御)と各種ステータス(インスタンス変数)は子クラスに定義し、親クラスを継承
③画面レイアウト関連クラス
画面全体のデザインや各種パーツ、演出面など描画関連はすべてここに定義
小役フラグは0~16383の範囲で設定しており、小役とボーナスを割り当てています。(小役・ボーナスの重複あり)
ボーナスフラグと小役フラグが別々にある理由は、一度ボーナスが成立したあとも小役抽選を行うためです。
リール画像はチェリー、スイカ、ベル、リプレイなど計7種類あり、イメージ配列に格納
リール配列についてはリールマップ用の2次元配列に格納しています。
またリールの回転をよりスムーズに見せるため、スタート時は徐々に回転速度を上げるようにしています。
<プログラムについて>
市販のパチスロ実機やパチスロゲームでは本来、乱数調整、フラグ各種、リール制御、ゲーム数テーブル、モード管理など非常に複雑に作られています。
しかし、僕はパチスロ業界、IT業界ともに未経験で特別なスキルもないただのオッサンです。中身を知らないのに同じものが作れるハズもありません。全て見よう見まねです。
また、プログラミングについても今まで一度も習ったことがなく全て独学のため、プロの方から見ればとてもお粗末な内容になっているかもしれません。
(自分で見返してもBASIC時代の癖なのかオブジェクト指向言語っぽくない記述が多々あり、改善の余地あり)
とまあ叩かれるのが怖くて一応保身を図りましたが、少しでもお役に立ててもらえると嬉しいです。
▼パチスロゲームは以下のページから無料でダウンロードすることが出来ます。
http://slotgame.wakunavi.net/
詳しい解析情報も公開中!
プログラミングの基礎「ブロック崩しゲーム」の作り方
2021.05.03
ゲームプログラミングの基礎ともいうべきブロック崩しゲームのプログラムをYouTubeで公開しました!
<ゲーム内容>
ブロック崩し 全3ステージ
マウスクリックで玉を発射(ストック10発・同時発射可能)
ブロックを全て消せばステージクリア
ボールが全部なくなるとゲームオーバー
ボールには攻撃力、ブロックには耐久力あり(色に対応)
タイムスコア・ボールスコアなどハイスコアを目指すための戦略性あり
ゲームファイルの容量は約7KB(300行)
開発言語はRuby(+DXRuby)
オブジェクト指向言語っぽく意識してプログラミングしましたが、DXRubyを活用すれば初心者でも基礎知識のみで簡単に作れちゃいます。
また、DXRubyのスプライトにはコールバック機能という便利なものが存在し、これを活用することでさらに効率よくプログラミングすることが出来ます。
ちなみにオブジェクト指向言語のプログラミングにおいては初心者のうちからMVC(モデル・ビュー・コントローラー)を意識してプログラミングするクセをつけておくとよいのですが、このプログラムでは若干乱れているので、教材というよりは参考程度にとどめておいてください。
※これは現在開発中の「ブラック崩しゲーム ノーマルモード」の土台となる部分です。完成版ではシナリオモードに加え、ビジュアル・サウンド面を強化してより面白いものにする予定です。
今更Ruby? ・・と思われる方もいらっしゃるかもしれませんが、実はRubyは今最も注目されているPythonよりも新しく、もともとはPythonで足りない部分を補うために開発された言語だそうです。
Rubyは初心者に易しく、そしてなんといっても学ぶ意欲を掻き立てる「楽しさ」があることから中高生の教材としても採用され、今もなおプログラミングコンテストが行われています。
⇒ 中高生国際Rubyプログラミングコンテスト
もし要望があればプログラムの解説もしていきたいと思います。
ではまた次回。
<ゲーム内容>
ブロック崩し 全3ステージ
マウスクリックで玉を発射(ストック10発・同時発射可能)
ブロックを全て消せばステージクリア
ボールが全部なくなるとゲームオーバー
ボールには攻撃力、ブロックには耐久力あり(色に対応)
タイムスコア・ボールスコアなどハイスコアを目指すための戦略性あり
ゲームファイルの容量は約7KB(300行)
開発言語はRuby(+DXRuby)
オブジェクト指向言語っぽく意識してプログラミングしましたが、DXRubyを活用すれば初心者でも基礎知識のみで簡単に作れちゃいます。
また、DXRubyのスプライトにはコールバック機能という便利なものが存在し、これを活用することでさらに効率よくプログラミングすることが出来ます。
ちなみにオブジェクト指向言語のプログラミングにおいては初心者のうちからMVC(モデル・ビュー・コントローラー)を意識してプログラミングするクセをつけておくとよいのですが、このプログラムでは若干乱れているので、教材というよりは参考程度にとどめておいてください。
※これは現在開発中の「ブラック崩しゲーム ノーマルモード」の土台となる部分です。完成版ではシナリオモードに加え、ビジュアル・サウンド面を強化してより面白いものにする予定です。
今更Ruby? ・・と思われる方もいらっしゃるかもしれませんが、実はRubyは今最も注目されているPythonよりも新しく、もともとはPythonで足りない部分を補うために開発された言語だそうです。
Rubyは初心者に易しく、そしてなんといっても学ぶ意欲を掻き立てる「楽しさ」があることから中高生の教材としても採用され、今もなおプログラミングコンテストが行われています。
⇒ 中高生国際Rubyプログラミングコンテスト
もし要望があればプログラムの解説もしていきたいと思います。
ではまた次回。
Rubyの基本
2020.11.08
今回はこれからRubyを勉強する人のために最も重要なポイントをいくつか紹介したいと思います。
僕なりの考え方ですが、先に大まかな仕組みや押さえるべき要点を知っているだけで理解する速さが格段に違うので、少しでも勉強の手助けになれば幸いです。
では早速。
①Rubyはオブジェクト指向の言語である
ここで重要なのがクラス・メソッド・オブジェクトの概念
クラスには複数のメソッドを定義することが可能で、そのクラスから作成されたオブジェクトはクラスに定義されているメソッドが実行できる。
製品に例えて分かりやすく説明すると
クラスは設計図
オブジェクトはその設計図をもとに作られた製品
そして、その製品をメソッドで操作する・・といった流れです。
②文字列や数値もオブジェクト
文字列や数値もオブジェクトのため、それぞれの元となるクラスに定義されているメソッドが実行できる。
具体的には文字列はStringクラス、数値はNumeric(Integer、Float)クラスとなり、それぞれのクラスには文字列や数値を操作するメソッドが用意されている。
③トップレベルの考え方
Rubyプログラムを実行する基本的な流れ
クラス定義 ⇒ クラスからオブジェクトを作成 ⇒ オブジェクトのメソッドを実行
しかし、特定のクラス定義を行わずに直接メソッドだけを定義した場合は、どのクラス内からでも実行できるメソッドとして定義することができる。
さらに詳しく説明すると・・
クラス定義の外側の部分(メインプログラムの部分)はトップレベルと呼ばれ、そこで定義されたメソッドはKernelモジュールの中に追加される。
Kernelモジュールはすべてのクラスの元となるObjectクラスに読み込まれているため、トップレベルに定義されたメソッドはどのクラス内からでも呼び出すことができる。
また、メソッドを呼びたす際に呼び出し元のオブジェクト(レシーバー)を省略できるので、あたかも関数のように使用することができる。
④クラスメソッドとインスタンスメソッドの違い
クラスメソッド ⇒ 定義されたクラスに対するメソッド(クラスからオブジェクトを作成する"new"メソッドなど)
インスタンスメソッド ⇒ クラス内に定義されたメソッド(クラスから作成されたオブジェクトに対して実行するメソッド)
メソッドを実行する際の記述の仕方はそれぞれ「クラス.メソッド」「オブジェクト.メソッド」となる。
⑤変数について
Rubyにおける変数は入れ物ではなく名札であり、どこかに存在するオブジェクトに対する目印となる。
そのため他の言語のようなデータ型は存在しない。(どのようなオブジェクトに対する変数も同じ扱い)
(例)
a = "ぽんこつ"
b = a
この場合、変数aは文字列オブジェクト「ぽんこつ」の場所を指し示す名札となり、変数bは変数aと同じというわけではなく、ただ変数aと同じ場所を指し示す名札となる。
つまり、変数aが指し示す場所のオブジェクト自体を変更すれば、必然的に変数bの指し示す場所のオブジェクトも変更される。
a = "あんぽんたん" に変更した場合
変数aが指し示すオブジェクトの場所が変わるだけで、変数bが指し示す場所のオブジェクト自体は変わらないため、変数aと変数bは別々のオブジェクトを指し示すことになる。
(実行結果)
a = "あんぽんたん"
b = "ぽんこつ" となる。
【重要】ローカル変数、インスタンス変数、クラス変数、グローバル変数について
・ローカル変数とは(name)
メソッド内で使用できるが、一度メソッドを抜けると値は消えてしまう。
・インスタンス変数とは(@name)
オブジェクト毎に値を保存しておくために使用
クラス内の全メソッドで共通して使用することが出来る。
また、クラスから作成されるオブジェクト毎に固有のものとなる。
・クラス変数とは(@@name)
クラス毎に値を保存しておくために使用
同一クラスから作成されるオブジェクト全体で共通して使用することが出来る。
・グローバル変数とは($name)
全てのクラスに共通して使用できる変数
下手なプログラミングほど多用する傾向にある?(そう、僕みたいに・・)
あと、Rubyの真骨頂であるWEBアプリ開発などデータベースを活用した本格的なプログラミングを目指している方は配列とハッシュを極めるとよいです。
ちなみに当サイトのパチスロゲームでは、基礎知識のみを活用してプログラミングされています。
具体的には以下の通りです。
・各種データの登録はハッシュ、フラグやリール配列、画像などの管理は配列を使用
・クラスは大まかに3つに分けて定義
①メインループ
初期設定(フラグ各種、サウンド関連、ゲームモードのクラス定義を含む)、オブジェクトの作成やメソッドの実行など
②リール関連クラス
リールの動きなど共通するメソッドは親クラスに、第1リール・第2リール・第3リール固有のメソッドと各種ステータス(インスタンス変数)は子クラスに定義し、クラスを継承
③画面レイアウト関連クラス
画面全体のデザインや各種パーツ、演出面など描画関連はすべてここに定義
(よく使う便利な記述例)
条件演算子(三項演算子)
条件式 ? 真の時の値 : 偽の時の値
式修飾子(if修飾子)
真の時に実行する式 if 条件式
とまぁザッとこんな感じでしょうか。
ではまた次回。
僕なりの考え方ですが、先に大まかな仕組みや押さえるべき要点を知っているだけで理解する速さが格段に違うので、少しでも勉強の手助けになれば幸いです。
では早速。
①Rubyはオブジェクト指向の言語である
ここで重要なのがクラス・メソッド・オブジェクトの概念
クラスには複数のメソッドを定義することが可能で、そのクラスから作成されたオブジェクトはクラスに定義されているメソッドが実行できる。
製品に例えて分かりやすく説明すると
クラスは設計図
オブジェクトはその設計図をもとに作られた製品
そして、その製品をメソッドで操作する・・といった流れです。
②文字列や数値もオブジェクト
文字列や数値もオブジェクトのため、それぞれの元となるクラスに定義されているメソッドが実行できる。
具体的には文字列はStringクラス、数値はNumeric(Integer、Float)クラスとなり、それぞれのクラスには文字列や数値を操作するメソッドが用意されている。
③トップレベルの考え方
Rubyプログラムを実行する基本的な流れ
クラス定義 ⇒ クラスからオブジェクトを作成 ⇒ オブジェクトのメソッドを実行
しかし、特定のクラス定義を行わずに直接メソッドだけを定義した場合は、どのクラス内からでも実行できるメソッドとして定義することができる。
さらに詳しく説明すると・・
クラス定義の外側の部分(メインプログラムの部分)はトップレベルと呼ばれ、そこで定義されたメソッドはKernelモジュールの中に追加される。
Kernelモジュールはすべてのクラスの元となるObjectクラスに読み込まれているため、トップレベルに定義されたメソッドはどのクラス内からでも呼び出すことができる。
また、メソッドを呼びたす際に呼び出し元のオブジェクト(レシーバー)を省略できるので、あたかも関数のように使用することができる。
④クラスメソッドとインスタンスメソッドの違い
クラスメソッド ⇒ 定義されたクラスに対するメソッド(クラスからオブジェクトを作成する"new"メソッドなど)
インスタンスメソッド ⇒ クラス内に定義されたメソッド(クラスから作成されたオブジェクトに対して実行するメソッド)
メソッドを実行する際の記述の仕方はそれぞれ「クラス.メソッド」「オブジェクト.メソッド」となる。
⑤変数について
Rubyにおける変数は入れ物ではなく名札であり、どこかに存在するオブジェクトに対する目印となる。
そのため他の言語のようなデータ型は存在しない。(どのようなオブジェクトに対する変数も同じ扱い)
(例)
a = "ぽんこつ"
b = a
この場合、変数aは文字列オブジェクト「ぽんこつ」の場所を指し示す名札となり、変数bは変数aと同じというわけではなく、ただ変数aと同じ場所を指し示す名札となる。
つまり、変数aが指し示す場所のオブジェクト自体を変更すれば、必然的に変数bの指し示す場所のオブジェクトも変更される。
a = "あんぽんたん" に変更した場合
変数aが指し示すオブジェクトの場所が変わるだけで、変数bが指し示す場所のオブジェクト自体は変わらないため、変数aと変数bは別々のオブジェクトを指し示すことになる。
(実行結果)
a = "あんぽんたん"
b = "ぽんこつ" となる。
【重要】ローカル変数、インスタンス変数、クラス変数、グローバル変数について
・ローカル変数とは(name)
メソッド内で使用できるが、一度メソッドを抜けると値は消えてしまう。
・インスタンス変数とは(@name)
オブジェクト毎に値を保存しておくために使用
クラス内の全メソッドで共通して使用することが出来る。
また、クラスから作成されるオブジェクト毎に固有のものとなる。
・クラス変数とは(@@name)
クラス毎に値を保存しておくために使用
同一クラスから作成されるオブジェクト全体で共通して使用することが出来る。
・グローバル変数とは($name)
全てのクラスに共通して使用できる変数
下手なプログラミングほど多用する傾向にある?(そう、僕みたいに・・)
あと、Rubyの真骨頂であるWEBアプリ開発などデータベースを活用した本格的なプログラミングを目指している方は配列とハッシュを極めるとよいです。
ちなみに当サイトのパチスロゲームでは、基礎知識のみを活用してプログラミングされています。
具体的には以下の通りです。
・各種データの登録はハッシュ、フラグやリール配列、画像などの管理は配列を使用
・クラスは大まかに3つに分けて定義
①メインループ
初期設定(フラグ各種、サウンド関連、ゲームモードのクラス定義を含む)、オブジェクトの作成やメソッドの実行など
②リール関連クラス
リールの動きなど共通するメソッドは親クラスに、第1リール・第2リール・第3リール固有のメソッドと各種ステータス(インスタンス変数)は子クラスに定義し、クラスを継承
③画面レイアウト関連クラス
画面全体のデザインや各種パーツ、演出面など描画関連はすべてここに定義
(よく使う便利な記述例)
条件演算子(三項演算子)
条件式 ? 真の時の値 : 偽の時の値
式修飾子(if修飾子)
真の時に実行する式 if 条件式
とまぁザッとこんな感じでしょうか。
ではまた次回。
ゲーム制作とDXRubyについて
2020.11.01
Rubyの基本を一通り勉強したあと、WEBアプリケーションを制作するため「Ruby on Rails」を勉強していましたが途中で飽きてしまい、気晴らしに何かゲームを作ろうとライブラリを探していたところ「DXRuby」という便利な2Dゲーム用ライブラリを発見しました。
DXRubyはゲーム制作に特化した非常に便利なライブラリで、主な特徴は以下の通りとなります。
①ライブラリ自体はC言語で直接DirectXを制御するように書かれているため、動作が非常に高速(これが一番!)
②簡潔な構成のため、初心者でも分かりやすい
③ループ(フレーム)の概念があり、描画は1ループごとにまとめて行われる(基本設定では60fps)
④スプライトや回転・拡大・縮小といったゲーム制作には欠かせない機能が豊富かつ高速描画が可能なため、2Dアクションゲームやシューティングゲームが容易に作れる
最初はRailsを使用することが目的だったため64bit版Rubyをインストールしていましたが、DXRubyは32bit版でしか動作しないため、仕方なく再度インストールしなおしました。
ちなみにパチスロゲームの要となるリールの動きはDXRubyの描画系メソッド「Window.draw_tile」を使用しています。描画速度が速いためリールの回転はスムーズかつコードも短くて簡潔。あまりにも簡単すぎて感動すら覚えました。
他にもDXRubyを使えば様々なことが簡単に行えます。
今時3Dゲームを作ろうと思えば誰でも簡単に作れる時代(Unityなど)
そんな中、わざわざ古臭い2Dゲームを作るために一からプログラミングしようなんて猛者はあまりいないかもしれませんが、Rubyの基本しか知らなくてもDXRubyを使えばこんな簡単にゲームが作れるんだということ少しでも多くの方に知ってもらえると嬉しいです。
ではまた次回。
DXRubyはゲーム制作に特化した非常に便利なライブラリで、主な特徴は以下の通りとなります。
①ライブラリ自体はC言語で直接DirectXを制御するように書かれているため、動作が非常に高速(これが一番!)
②簡潔な構成のため、初心者でも分かりやすい
③ループ(フレーム)の概念があり、描画は1ループごとにまとめて行われる(基本設定では60fps)
④スプライトや回転・拡大・縮小といったゲーム制作には欠かせない機能が豊富かつ高速描画が可能なため、2Dアクションゲームやシューティングゲームが容易に作れる
最初はRailsを使用することが目的だったため64bit版Rubyをインストールしていましたが、DXRubyは32bit版でしか動作しないため、仕方なく再度インストールしなおしました。
ちなみにパチスロゲームの要となるリールの動きはDXRubyの描画系メソッド「Window.draw_tile」を使用しています。描画速度が速いためリールの回転はスムーズかつコードも短くて簡潔。あまりにも簡単すぎて感動すら覚えました。
他にもDXRubyを使えば様々なことが簡単に行えます。
今時3Dゲームを作ろうと思えば誰でも簡単に作れる時代(Unityなど)
そんな中、わざわざ古臭い2Dゲームを作るために一からプログラミングしようなんて猛者はあまりいないかもしれませんが、Rubyの基本しか知らなくてもDXRubyを使えばこんな簡単にゲームが作れるんだということ少しでも多くの方に知ってもらえると嬉しいです。
ではまた次回。