TheoryOfContraints official blog -12ページ目

UVI Plugsound PRO

支払っちゃったよ

前々から最底値の50%オフセールを狙ってましたが

KONTAKTって言う、すっごいリアルな鍵盤アプリが5万円でJ-POPのプロデューサーが使っている奴があるんやけど

それのバッタもんで8600円

安いけど、ほどほどでリアルなピアノやギターやバイオリンのトーンが揃っているのでJ-POPが作りやすくなる

まぁ、iLokってアプリを使うための鍵になるアプリのハードディスク版がwindows10でちゃんと動かないので、USB版のiLokを取り寄せないといけないけど、取り寄せるのは来月の予定なので、しばらくは使えないですけど

しばらくはゲーム作ってんので、まぁ、良いか



ゲームプログラミング考

もしかしたら、死ぬまでゲームプログラミングを続けるのかも知れないので、効率の良いゲームプログラミングを模索しながらゲームを作ってますが

思ってたよりも難しく無いのかも知れない。ゲームプログラミング・ポエムを語らせて貰うぜ!

まず、データ指向プログラミングで

・全てのデータをグローバル変数

として扱う。それだと、データの改変によるバグが発生するので

・扱いやすくデータを分類してDAOパターンでメソッドを実装する

イコール、似非オブジェクト指向でプログラミングを行う

変数を直接扱わないで、メソッド越しで変数を扱う事によりバグを減らす工夫な訳です

その後、処理の優先順位でデータベースの優先順位を決めて、move()→drow()と普通にプログラミングを作る

処理が間に合わなくても、メソッドをデータベースへ追加すれば間に合う

なので、

・データベースに『状態変移変数』もある

と言うので、普通に

データ指向プログラミングでゲームが作れるよなー



今回の落ち物パズルでは落ちてくるブロックが主役キャラではなく、ブロックが並んでいるフィールドその物が主役キャラだったんだ、と見えてから、実装をまとめやすくなりました

やっぱり、ゲームプログラミングは独特な面白さがありますよ
(≧▽≦)

いろいろと、Go言語にもゲームライブラリがあるのですが、明示的なガベージコレクタの実行を実装しているライブラリがほとんどないので、それが来れば、Go言語でもJava=i-appli程度のゲームなら、いくらでも作れるのに、と



games.pdbrec.com業務連絡20170405

とりあえずの制限タイムによるゲームオーバーとポーズ機能を仮実装

タイムアタック=タイマーを使って、残り時間でゲームのレベルが増えるシステムも可能だな、と



調べ物

http://golang.jp/pkg/runtime

カベージコレクタgc関数で任意のタイミングでカベージコレクタ実行出来るのか

メモ



games.pdbrec.com業務連絡20170403

プログラムをリファクタリング。バクが出てきたので潰してく

取りあえず連鎖で消すごとレベルが増えてくスタイルでゲームを進めるが

元々難しくないゲームなので15分程度で永久防止パターン使ってゲームオーバーへ追い込む、15分程度でどこまでスコアーを伸ばせるのかタイムアタック型の落ち物パズルにでもする予定



マイクロサービスなゲームシステム

MVVMなマイクロサービスの作り方を見ていた。単純に

・モデル=データベースのマスター(本体)でアプリの本体でもある

・モデルビュー=データベースのスレイブ(写し)で画面表示の為の前処理を行う

・ビュー=テンプレートな画面表示

だと思うけど

ゲームだと、60分1秒のタイマーで、ゲームコントローラなどのハードウェア処理を行う「バインダー」が動いた後

モデルが動くけど

・リアルタイムにデータベースが動く=変化するフェーズ

・当たり判定たどのデータベースの相互作用が発生するフェーズ

などをDAOパターンなメゾッドを叩くパッチ処理的なプログラムで動かして、モデルビューで前処理を行って、ビューで表示する

モードなゲーム制限時間などのゲームの内部状態などを残す「ゲームデータベース」もいるとは思うけど

マイクロサービスな発想のゲームの作り方って無いものか?と思案していた



games.pdbrec.com業務報告20170402

フォント表示などを作成

 

SDLは昔のライブラリなので、32×32なフォントを表示する機能しか無いので現代的ではない。なので、大きめにフォントの画像を作って縮小して表示している

 

 

ゲームのプログラムの作り方を思案していたのだが、60コマごとにゲームの画面は動くけど、その都度、タイマーやゲームコントローラなどの入力データ処理を行った後、内部のモード状態に合わせたプログラムを選んで処理して、HTMLテンプレート的な発想で画面を作ったら、CRONで動的にゲーム画面を作成するウェブアプリなイメージでゲームが作れるのでは?と思った

 

それぞれのデータはDAOパターンで処理を行う

 

そうゲームを作れたら、作りやすいだろうな…

 

 

 

 

ゲームとMVC

https://www.slideshare.net/mobile/TakashiKomada/mvc-26642187

元々、ウェブのアプリの作り方の発想なのですが。ゲームで言うと

画面表示
 ↓
コントローラ入力処理とタイマー駆動
 ↓
コントローラー入力などに合わせてゲームのキャラクタを動かす=データ変更
 ↓
画面表示

と言う物で。60分の1秒のタイマーでゲームを動かして→キャラクタの処理をして→画面を表示する

と言う、ゲームのアルゴリズムでは古典的なパターンなのです

なぜ、それをわざわざウェブアプリで言うのがと言うと、ハードウェア処理、ゲーム処理、画面表示をソースリストレベルで分割して粗結合にすると、

・ソースリストが見えやすくなる
・分業化が可能になる

と言うメリットがあるんです

ウェブアプリで言うと、ダミーのデータで画面表示を作って、後でまとめる事が出来る

ゲームで言うと、ダミーのキャラクターのデータやデモ画面で画面表示やアニメを確かめながら分業でアプリが作れるんです

ゲームでMVCパターンはありだな、と思いました



データ指向プログラミング

オブジェクト指向はデザインパターン的には、シングルトンなDAOパターン的なので

動的配列で作ったデータベースをネームスペースでカプセル化して、メゾッドで操作すればデータ指向プログラミングでアプリを作りやすいのでは

CRUDなメゾッドを作るのが合理的なのだろうか?

メモ



games.pdbrec.com業務連絡20170329

ブロック消去ルーチンと得点ルーチンの仮組み

ブロック消去数などで出現ブロックの種類を増やしたらゲーセンに置ける程度の物にはなりそうだ

プログラムが読みにくいので、リファクタリングだな