ノンフィクション・ホラー
2021.12.12
ある日、仕事から家に帰ると隣人宅の前に救急車が止まっていました。
お隣さんで何かあったのかと思い自宅の玄関に向かうと、何故か玄関扉は開けっ放しの状態でよく見ると家の外から中に向かって血痕が続いています。
恐る恐る家の中に入ると、なんとそこは血の海でした。

一瞬血の気が引きました。

そして慌てて救急車に向かうと、そこには変形した足首から骨が皮膚を突き破った状態でギリギリ意識を保って横たわっている痛々しい母親の姿がありました。

その後病院で手当てを受けましたが、医師によると「重症」ではなく、「かなり重症」の部類に入る大ケガだそうです。

開放性脱臼骨折・・・脱臼骨折した足首の骨がそのまま皮膚を突き破って外に出た状態のため、治療が大変困難なうえ感染症のリスクも非常に高く創傷部(傷口)から壊死してしまう可能性があります。


母にしてみれば入院してからが本当の地獄の日々の始まりでした。

やはり感染症により創傷部から壊死が始まり、壊死した部分の骨と皮膚を切除して洗浄をすることになりました。
手術後、壊死した部分を大きく切除したことから足首まわりの骨が更にむき出しの状態となり、そのままベッドに固定されます。
その後、抗生剤を投与しながら部分麻酔のみで皮膚や骨を直接洗浄し、感染症を抑える治療を繰り返します。
これがとにかく気を失うほど壮絶な痛さらしいです。当然ですよね、むごすぎます。

やはり一番の心配は高齢の母が肉体的にも精神的にも耐えられるかということでした。
母は言ってました。
病院に殺される・・と。

今はようやく回復に向かい始めましたが、こんなホラーチックな出来事があり、最近心底病んでました。

ちなみに父と自分は怪我や病気を全くしたことがありません。
なんだが、母が一人で家族全員分のけがや病気を背負っているようにさえ思えてきます。
生きてました!
2021.09.11
久々に更新します。

実は40代後半にして、またまたまた転職しました。

何故「またまたまた」なのかというと

34歳 総合卸問屋(総務・営業・業務)へ転職[正社員] ←初めての転職
43歳 電子機器メーカー(営業)へ転職[正社員] ←2回目の転職
44歳 コールセンターへ転職[初めての派遣社員] ←3回目の転職
45歳 物流倉庫(構内作業)へ転職[正社員] ←4回目の転職
47歳 IT企業へ転職[派遣社員] ←5回目の転職

なんと!40代で4回も転職しています。ちなみに、そのうちの半分は正社員です。
今は派遣社員ですが、IT企業だけあって給料や待遇面は前職よりはるかに良いです。(時給だけで単純計算すると前職の1.5倍)

【前職】
毎日12時~23時(または翌朝3時)11時間~15時間、休憩は食事のみ、冷暖房なし、休憩用の椅子すらなし、過酷で劣悪な環境、フルで動きっぱなしの肉体労働、土曜・祝日は休みなし、みなし残業のため手取りは固定で16万円ほど(もちろんボーナスもなし)、会社独自の変なルールや意味不明な天引きと徴収あり(帳簿をつけているのかも怪しい)、人・業務レベルは驚くほどロー。
底辺で働き口のない弱者を人とも思わず規格外の低賃金で奴隷として働かせ使い捨てることでなんとか成り立っている超絶ブラック企業です。夏場なんてあまりに過酷すぎて倒れる人もいます。僕もたった3ヶ月で10kg痩せました。(これが唯一のメリット)

【転職後】
毎日8:40~17:20(休憩1時間)実働7時間40分、土・日・祝日休み、駅前で好立地&キレイで立派な事務所(清掃業者が毎日入っている)、冷暖房完備で快適な環境、一日中座りっぱなしのため肉体労働ゼロ、従業員に配慮された社内環境と福利厚生、人・業務レベルは非常にハイレベル。
この内容で給与は前職以上、さらに残業代は5分単位で付きます。

恐らく、こんな年齢で実務経験もないのに初めてIT企業へ飛び込もうなんて無謀な人間は他にいないと思います。そうです、アホなんです。将来設計も何もなく今まで好き放題やってきたんです。

とまぁそんなわけで、今もなんとか生きてます。
エクセル2007で中古ゲームコレクションをデータベース化してみました!
2021.05.24
ブラック企業で毎日奴隷のように働く現実から逃避するため、最近最もハマっているのが中古ゲームコレクション!
暇さえあれば中古ショップやメルカリで掘り出し物がないか物色しながらいつもニヤニヤしています。そう、僕はなんとも気色悪いおっさん風情でございます。
しかし、僕はただのおっさんではありません。一応特技はプログラミング!こうして集めたレトロゲームコレクションをデータベースの材料としてエクセルのスキルアップを目指します!!

そんなわけで、ずっと以前からパソコンにインストールしていながらプライベートでは全く使ったことのなかったエクセル2007を利用して割とそれっぽいデータベースを作ってみました。
一応、タイトルの部分検索機能も付いてます。

↓エクセル2007で制作したレトロゲームコレクションのデータベース紹介動画

プログラミングの基礎「ブロック崩しゲーム」の作り方
2021.05.03
ゲームプログラミングの基礎ともいうべきブロック崩しゲームのプログラムをYouTubeで公開しました!



<ゲーム内容>
ブロック崩し 全3ステージ
マウスクリックで玉を発射(ストック10発・同時発射可能)
ブロックを全て消せばステージクリア
ボールが全部なくなるとゲームオーバー
ボールには攻撃力、ブロックには耐久力あり(色に対応)
タイムスコア・ボールスコアなどハイスコアを目指すための戦略性あり

ゲームファイルの容量は約7KB(300行)
開発言語はRuby(+DXRuby)

オブジェクト指向言語っぽく意識してプログラミングしましたが、DXRubyを活用すれば初心者でも基礎知識のみで簡単に作れちゃいます。
また、DXRubyのスプライトにはコールバック機能という便利なものが存在し、これを活用することでさらに効率よくプログラミングすることが出来ます。
ちなみにオブジェクト指向言語のプログラミングにおいては初心者のうちからMVC(モデル・ビュー・コントローラー)を意識してプログラミングするクセをつけておくとよいのですが、このプログラムでは若干乱れているので、教材というよりは参考程度にとどめておいてください。

※これは現在開発中の「ブラック崩しゲーム ノーマルモード」の土台となる部分です。完成版ではシナリオモードに加え、ビジュアル・サウンド面を強化してより面白いものにする予定です。

今更Ruby? ・・と思われる方もいらっしゃるかもしれませんが、実はRubyは今最も注目されているPythonよりも新しく、もともとはPythonで足りない部分を補うために開発された言語だそうです。
Rubyは初心者に易しく、そしてなんといっても学ぶ意欲を掻き立てる「楽しさ」があることから中高生の教材としても採用され、今もなおプログラミングコンテストが行われています。
 ⇒ 中高生国際Rubyプログラミングコンテスト

もし要望があればプログラムの解説もしていきたいと思います。
ではまた次回。
パチスロゲーム第二弾「魔女魂」遂に公開!!
2021.02.22
大変長らくお待たせいたしました。
制作開始から約3ヶ月、A+ATタイプの超本格派パチスロゲーム「魔女魂」が遂に完成しました!

制作開始当初はRPG風のバトルタイプを予定しておりましたが途中で方向転換し、自分にパチスロの本当の魅力を気づかせてくれた大都技研の名機「忍魂」にインスパイアされた作品として全て一から作り直しました。
ご覧の通り、パチスロのタイトルが「魔女魂」、ATの名前が「月夜の刻」、そして月に向かってひたすら走るところなんかは全て初代忍魂からインスピレーションを得て制作しております。(というより、ほとんどパクリですが・・)
上乗せ性能がハンパなく、爆発力はミリ〇ンゴッドを遥かに凌駕!(万枚到達率100%)
フリーズの恩恵はスーパービッグボーナス+AT複数セット+特化ゾーン複数ストック(AT中は更に大量ゲーム数上乗せあり)
スーパービッグボーナス中はボーナス1G連、AT、特化ゾーンを高確率で大量ストックするため、一度フリーズを引けばずっと出っ放しの状態になること間違いなし!

他にも、よりゲームとして面白くするため、あらゆる要素を詰め込んだ超爆裂タイプのパチスロとなっておりますので、ぜひ一度プレイして体験してみてください。
パチスロゲーム第二弾の開発進捗状況③
2021.01.06
あけましておめでとうございます。
久々の更新となります。
昨年末は多忙でブログの更新もままならないまま約1カ月半放置してしまいましたが、パチスロゲームの開発は順調に進んでいます。

(現在開発中のゲーム画面)
 
 
 


凝りすぎるあまり公開延期となってしまいましたが、その分さらに面白く仕上がっているので、皆さん楽しみに待っていてください!

では、次回はゲームシステムについて説明していきたいと思います。
パチスロゲーム第二弾の開発進捗状況②
2020.11.22
RPG風パチスロ「パチスロクエスト~伝説への道~」の制作進捗状況は以下の通りです。

液晶演出用の画像加工(約20パターン)
・何かが空を横切る
・空に何かのオブジェクトが現れる
・地上にモンスター(小型・中型・大型)が現れる
・主人公が立ち止まる際のアクション(3パターン)
・カエル師匠のセリフ(5パターン)
など

液晶ステージを3種類用意(通常・高確・超高確)

小役の確率調整

プログラムの修正いろいろ

3択ベルのアシストシステム制作→完成

今のところはこんな感じで順調に開発が進んでいます。
特にATのシステム関連は我ながらうまく制作できたと思います。
ちなみにベルナビが6択ではなく、あえて3択にしたのは、少しでもプレイの負担を軽くするためです。
わざわざ毎回ナビ通りに押すのはさすがに面倒ですよね。
とはいえ、ちゃんとスペースキーのオートプレイにも対応させたので、結果的にはどちらでもよかったのですが。

ではまた次回に報告したいと思います。
パチスロゲーム第二弾の開発進捗状況①
2020.11.15
ようやくパチスロゲーム第二弾の開発が本格的にスタートしました!

今作は液晶演出に力を入れたRPG風パチスロです。
前兆モードでは特に演出面にメリハリがあって面白いものにしたいと考えています。
とりあえずリール関連のシステムは前作でほぼ完成しているので、開発期間は大幅に短縮できると思います。(年内完成予定)
ちなみに現在の開発進捗状況については以下の通りです。

液晶画面の制作
・主人公となる魔法少女キャラクターの歩行アニメーション作成
・キャラクターが歩いている場所の背景アニメーション作成(空と地面が別々にスクロール)

その他、システムの調整や見直しを行いました。

ではまた次回に報告したいと思います。
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 条件式

とまぁザッとこんな感じでしょうか。
ではまた次回。
ゲーム制作と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を使えばこんな簡単にゲームが作れるんだということ少しでも多くの方に知ってもらえると嬉しいです。

ではまた次回。

- CafeLog -