見出し画像

自作競馬ゲーム制作の黒歴史


段々記事がしくじり先生ぽい雰囲気に…

完全に思いつきレベルで…

10年以上前の話です。
フリーランスになってまだそんなに日もたってない頃、仕事も少なく暇な時間が苦痛で、何かしないといけないという焦りや思いもあり、そんな時に何故か大好きなお馬ちゃんが頭に浮かんできまして(←この時点でおかしい
そうだ!ダビスタとウイニングポストを足して2で割ってJRAのリアルさを取り入れたブラウザで動くゲームが出来れば最強だな!で開発START(雑)
当時はまだRPGツクールとかゲームを作るソフトがあること自体知らなかったので、ブラウザゲームならHTMLやらPHPで行けるな程度の安易な発想で…

18頭立てで設計したのが運のツキ

オッズプログラムで死ねるわ馬のデータベースつくるので死ねるわ本当に無計画って恐ろしいと思った若かりし日の思い出(負債)です。

Excelで馬のデータベースを3500頭位作ってCSVでMySQLにエクスポートしたりそれだけで軽く2ヶ月くらいかかったかもしれません…

気づいたらソースコードはPHP部分だけで10万行以上に

htmlとかjavascriptは抜きで。
自慢じゃないですが私のプログラミングがおかしいのでしょう(遠い目)
無駄にリアリティを追及して18頭立てにしたせいで色々と恐ろしく複雑になり、思った以上にワイドのオッズ算出計算式(それはJRAの公式?で無駄に勉強しました)がややこしくてもうふんだりけったりに…
遊びの自作ゲームですからね?設計書?そんなもんつくってませんよ。
テーブルのフィールド設計ミスって突然仕様変更なんてザラッザラよ…

大体全部PHP&MySQLだけで処理しようってのが間違ってたのかもしれん…

それでもまだワリと楽しんでつくっていた時…

作戦とか予想印とか見た目もちょっとそれっぽくなってきた♪的な…
まだつくっているのが楽しかった…まだ…まだこの時点では…

この辺はすべてCronで毎日自動生成

パドックなんてつくってみたりなんかして…
無理やりgifアニメ作って馬を動くようにしたりとかね…
marqueeタグでアナウンサーが実況してる感だしてみたりとかね…

あの頃のスキルの集大成(限界)感
毎日(海外3R国内3R)自動でランダム生成して日替わりで楽しめるように
ちゃんとレース結果も…
JRAっぽく結果詳細も頑張って表現…

この辺でかなり疲れMAX感といつまでやってんだろう感

つくりはじめてから1年以上は軽くたっていたと思います。
ふと疑問が。
大体コレつくってオレはナニをする気なんだ???感が…

トドメ1 レースシーンの再現の難しさ

ブラウザによってgifアニメ(お馬ちゃん)がゴールに向かう速度が違うという問題によりFPSの調整かなんかのプログラムを入れてブラウザ間の違いを吸収したりなんたらもはや覚えてすらないですがなんか色々死ぬ気で調整してきちんと結果通りゴールして〇馬身差も表現通りになるように、これでかなり疲れた…(何に)

トドメ2 不確実性「ゆらぎ(リアリティ)」の表現の難しさ

強い馬が毎回勝って弱い馬が毎回ビリじゃゲームにならない…
当日の天候、馬場状態、騎手の能力や特性、戦法(先行・追込み等)、馬の当日の調子(イレ込み等)、馬体重、そういったすべての結果につながる要因を馬の基本ステータス(素質)から乱数で0.000001くらいの本当にわずかな揺らぎや差で微調整に微調整をかさねリアリティを再現…レースシーンの再現以上に私の魂を吸い取った作業でありました…

そして死 北斗剛掌波(ラオウ)が飛んできた

cronで当日のレース自動生成やらレースが時間になったら自動実行するやらレース結果を自動生成するやら24時にオッズのリセットやら会員情報の更新やらまではなんとなくOK。
よっしゃ…後は会員のお楽しみ要素つくればやなという時に…
データベースキャパの限界(オーバーフロー)

その発想はなかった…

日々のレース結果はデータベースに反映され、それをHTML側で出力しているわけですが…「まあ半年分のデータでメモリオオーバー
ある日cronのエラーが携帯メールに届いた時に初めて気づいたわけです…
今の時点でコレってことは、これに会員データまでゴリゴリ入れていったら…全然データベースがもたない。。
レンタルサーバの限界か…
終わったオレの人生…(昇天)

今もひっそりと動いている悲しみ

世に公開できるまでにはたどりつけなかったものの…

捨てるにも忍びなく…未練も少々…
結局遊びでずっと外部非公開ゾーンで稼働させているという悲しみ…
競馬する時にコレみて、3連単の出目買いに使うくらいしか使い道がないという深い悲しみに哀悼の意を捧げまするでする…

6ヶ月に1回Cronエラー(DBキャパエラー)

素晴らしいことに、大変ご丁寧なことに、毎年正月付近に1回目のエラーがきます(次は6月頃)
手動でデータベースのテーブルの中身をSQLで変更したり、直接テーブル触ったりと1円にもならない10分程度の作業が発生します(死)
あれから10年以上、無駄に意味なくやってます(白目)

こんな話を今ここでした理由

死ぬまでに一度だけ愚痴ってみたかった。
ただそれだけです…すみませんすみません!

JRAのシステムつくったSEやPGはすごいね!

どんだけタフなDBつかってるのか知らないですが、一度に相当に多くの人がアクセスし、なおかつ締め切り間際には投票も集中するであろうことからトランザクションもかなりシビアでデリケートでしょう。
本当にすごいよね…尊敬しかない。
まあ所詮田舎の末端5流(自称)エンジニアですからね。
そこそこ頑張って生きた方だとは我ながら思います(過去形)

もし、万が一、サポートいただけるようなことがあった場合には、NOTEの記事の方でしっかりと記事と合わせてサポート額の使い道を報告させていただきます。 (先日落雷でパソコンが破壊されたので多分当分はその買い替え費用の足しにさせていただくことに…すみませんすみません)