Javaで麻雀作り始めたよ

手始めに牌の画像をウインドウに出しただけ。

f:id:karmen:20170802161317p:plain

今日はJDKの設定から入ったのでここまで。

ユーザ・インタフェイス(画面と入力応答)を練るかロジックを煮詰めるか。ビジュアルベーシックでの前作は3ヶ月くらい籠もり切って作ったけど、ゲーム会社で39歳であれに3ヶ月となると先端開発としては遅いだろうな。

そんな俺でも例えばゲーセンでカプエス2やってた頃に「サガットキャミィのキャノンスパイクガードした後に立ち強パンチ空振ったやろ?あれちょっと前に歩いてから出すんやで」とかいうと「ミヤザワさん、そういうこと教えてくれるのはいいんすけど・・・プログラムの仕事とか教えてもらえないっすか?」「うーん、パソコンは持ってんの?プログラムの本とか読んでみたことあんの?」「いや、もういいっす」というやりとりが若い人との間であったので、なんかそれ思い出すわ。

日本のSIer(システムインテグレータ)の多層的なダメなところはいっぱい知ってるけど、給料そんなに求めないならバイトくらいのプログラム経験でも何か仕事がもらえる可能性があって。毎日仕事がなくてゲーセンで遊んでて大会優勝を夢見るのも良いけど、だんだん年食うと自分で仕事するより下の人がやってくれるケースも出てきて、暇を活かして未経験の人にお節介を焼く余裕が出てきたのかも知れん。自分のことも本当に大丈夫かと思う所あるけどだ。

オープンソースにするから分かる人手伝ってー」みたいのでなく、WindowsコマンドプロンプトとかMacのターミナルとかの使い方を指導してサンプルコードのコンパイルまで持っていくこと、そっからC言語Javaの文法。ゲームでも対戦型で強い人でロジカルに考えれるならプログラム適正あるんちゃうかな。

と思うけど、自分が学生だった頃に学校のプログラミングの授業では飽き足らずに本を買いまくって、VC++のHWND hwnd;ってのがHWND(ウインドウハンドラの型宣言)とhwnd(変数名だから命名自由だけど型に合わせて小文字で命名されている)なんかが分かるようになってきたのって結構真面目にやって2年目くらいだから、ちょっと面倒見てやろうとかゲーム好きな人つながりで教えてもらえるとか、そういう甘いことお互いに考えても苦しいかもしれないな。たしかに学校サボって道頓堀でKOF'98あそんだりとか、完全に勉強だけではなかったんだけどねー。

教えてやれるなんて思ってる俺のほうが教員免許あるわけでもないのに甘く見てるだけかもしれん。でも、ゲームやってて仕事のない人に「つプロゲーマー」とか言うよりはみんなでプログラム覚えたら優勝しなくても食えるんじゃねって考えはあるのよ。

30億のデバイスで使われているJavaって

Android端末にVM搭載してケータイでもパソコンでも同じウインドウ出して動くアプリが作れるものだと思ってたんですけどね・・・。現実にはJava言語が共通なだけで仕組みというか思想の上でのJavaはブラウザベースのみでしか実現していないような。それもHTMLと密接に関わっているし古い端末は切り捨てられるわけで。

近頃のスマホは俺のパソコンよりハイスペックだからそれをターゲットにVM(仮想端末)を動かそうとすると起動に数十分かかるわけで。それでも動かしたいのがそんなに大規模なプログラムでなくてDSの麻雀格闘倶楽部くらいのものをJavaで作ったろうかとJDK入れて開発に着手したのよ。プログラム3行くらいでも着手は着手。

麻雀のルールと論理インタフェイスと思考部くらいなら今のマシンでも組めるかなとやりだして、ターミナルのEmacsでプログラムを3行書いた時点で俺はWindows秀丸エディタが無いとやる気が起き無いことが分かった。慣れの問題とは思うけどさ。

いやしかしブログはブラウザベースのはてなエディタで書いてるから、いっそプログラミングもブラウザベースでやろうか。ファイルはクラウド管理してコンパイルだけJava使って、そんでロジック全部出来てからケータイ向けに画面をレンダリングする開発マシンを増設しよう。まず開発マシンを買うっての考えないでさ。

しっかしつまらん仕事やで。資本家でない普通の労働者は心理的に給料が月給制でも翌月払いより安くても日払いのほうが労働に対するテンションが上がるらしいが。少なくとも3ヶ月くらいコンソールでロジックばっかり組むってな。辛抱がいるわ。辛い。

まあ、ゆっくりやろう。やっている間に麻雀ベーシックが1万本行ってくれたらいいな。Javaの勉強も兼ねて。そして開発マシンを買ったら思考部はPython機械学習かぁ。とかく、それらのためには麻雀の基礎部分が必要なわけで。前の開発言語が勉強のためVBだったってのがクソッタレだよな。でもC言語しか出来ないって思われるよりはクソな言語でも勉強しておかないと。

プログラミングって言語が何であるかってよりその文法で何が示されているかのほうが大事だから小説として面白いかどうかってのと日本語で書かれてるか英語で書かれてるかってのはな。和歌を詠むには日本語で推理小説なら英語のほうが良いのかも知れんが。開発に使ってみるとVBも便利だったからな。Javaツイッターを作るのには便利なのかも知れん。麻雀を作るのに便利かどうかは分からんが。基礎作っとけばブラウザベースのネット対戦麻雀とかに発展出来るかもしれんからな。

わけのわからないことを語っているけど、当面の問題はコンパイラJavaであることよりエディタとバージョン管理をな、秀丸とサブバージョン使えないならMacで便利なの自分で手に馴染ませるしか無いって問題なのよ。Linuxのviが便利とか言ってたの昭和何年生まれなんだよって話だよ。

まあ、結局誰しも使い慣れたエディタと文法があるわけで下積みプログラマ時代に経験した言語や環境をそれがプロジェクトに有効であると説得すると部下に教えやすいとか全体を把握しやすくなるという意味でポジショントークをするわけで、どの言語も満遍なく知り尽くした人が適材適所の意味で言語を選定できるほど関西の上流工程に分かっている人がいないという話だから、そこに俺が様々な言語を勉強しておいて後は物を言わせてもらえる、意見が通るポジションを取っていけるかっていう話になるだろうな。

つまりはひとりで出来る仕事で満足できるうちはしっかり働いて、やがて表出するであろう出世欲をちゃんと満たせるか。そのためにはC言語にこだわる職人気質ではいけないと考えてる。

映画「君の名は」をdTVレンタルで観た

見たいなぁと思いながらナンダカンダで映画館行けなくてdTVで検索にかけたら入ってる!飛び跳ねて喜んだら有料レンタル・・・。しかし432円と店頭レンタルより安くdポイントで払えることを知り家族の承認を得てパソコンで視聴。泣いて、涙を拭った後には迷いがひとつ消えている。それでも見終わった後は普通の夏の夕方を過ごすのであった。

なんというか、動員数から考えてメガヒット映画なのは間違いないんだけど、どう考えても俺から見ると内輪ネタのシーンに外から「こうだと思った」って感想が色々と付いていて、しかしそれらは「マンネリだった」とか「つまんなかった」よりは遥かに高評価なわけだから、誰かを取り巻く意味不明の事象でもそれをスパイスとして取り入れながら染まりきらずにネタとして消化しつつ物語の筋金はしっかりしていて。

ああ、色々と上手い人の仕事ってのは凄いもんだなと。

月初の楽しみのひとつにベクターから作品の明細が届くんだけど、麻雀ベーシック「大三元」のダウンロード数が8000本を超えた。サラリーマンしながら副業で稼ぐことを企んでいた時があって、その頃から会社の仕事以外にブログを書いてアプリを作っていたけど、結局それが働きすぎで本業に入れる力を削ぐことになり、なにやってんだか。

その昔にバイトしてたメディックス社のパソコンゲームは1本1万円で100本出れば黒字だと社長から聞いていた。そう、あの時作ったゲームのタイトルにも「君の名は」てのがあった。100本でも小売店に押し付ける能力が凄いよ。麻雀ベーシックは8000本でも無料だからな。

いやほんと毎日カプエス2遊んでスコア上がってるの喜んでる場合じゃなくて、個人制作でも1万本にリーチ出来ると分かれば商品企画をまた考えないとね。100万円くらいの売上なら雇われプログラマーでも良いやってなるけど、麻雀でも単価1000円で1万本出る見込みがあったら話は大きく変わるよね。

 


🄫1999-2023 id:karmen