kidoOooOoooOOom

ゲーム開発やってます

2014-02-01から1ヶ月間の記事一覧

2014/03/13 ファミ通

読んでたらダクソ2欲しくなったのでポチった。 桜玉吉のお父さん亡くなったのか・・・。悲しい。 ソウルサクリファイスデルタも興味がわいてきた。前作から1年でどう進化させてゲームをリリースまで持っていけたのか制作側にも興味ある。 龍が如くシリーズ…

感じた事

いざ初めての人と仕事するときのために、基礎的なことを日々学んでおく事が大事だなぁと思った。

nullとundefiendについてあらためて

JS

特殊な値nullはほんのいくつかのケースで使われるべき 変数を初期化するとき 初期化された変数と比較するとき 関数に渡す値としてオブジェクトが期待されているとき 関数の返り値としてオブジェクトが期待されているとき nullを使うべきないケース 引数が渡…

JSの改行位置

JS

JSではASI(自動セミコロン挿入)があるため、複数行にわたるコードで演算子の前で改行をするのは危険。 例えば下記のようなコードは、改行の位置が危険 if(aaa && bbb && ccc && ddd) goto fail;ASIがcccの後に入れられるとエラーになってしまう。

UnityでWS

今日は勉強会でUnityからWebSocketを使う発表を聞かせてもらった。C#のWebSocketライブラリにはこういうのがあるらしい WebSocketSharp (今回はこれを使用) SuperWebSocket WebSocket4Net SuperWebSocketからforkしてクライアント部分だけ切り出したもの? W…

[Node.js] BufferクラスとreadUInt32LE関数

今日じゃないけど、NodeでBufferクラスとreadUInt32LE関数使い、先日のtoString(36)で適当な文字列を作った。readUInt32LEはLittle endianを用いた関数でBig endian用のreadUInt32BEも対称して存在している。 http://nodejs.org/api/buffer.html#buffer_buf_…

36進数という存在

16進数で使われていないアルファベットを追加したものを36進数というらしい。 http://www.wdic.org/w/SCI/36%E9%80%B2%E6%95%B0今日は、JSでtoStringするときに引数で 36 を与えて、数値を文字列に変換するときに使用した。

JSで文字列にゼロパティング

JS

2〜4文字で生成されるstrに必ず左詰めで0を埋めたいケースがあったので、sliceを使って文字列の0パティング。slice(-4)で、後ろから4文字をとってくる。 var str = 'aaa' // 2~4文字の文字列が入る想定 str = ('00' + str).slice(-4);

Alfredなるもの

同僚がAlfredのworkflowを作成しているらしく、それを使わせてもらえそうなのでAlfredをインストールした。 初期設定で参考にしたサイトはこちら http://gori.me/mac-app/10473CTRL + Spaceで起動して、[コマンド] + [半角スペース] + [対象] で実行できる。…

ファミ通 2014/2/27 号

金曜と土曜は家族のために時間を使って勉強はできていないので、とりあえずファミ通を見ての感想。 パズドラZ 100万本売れてて凄い。コンシューマ版は課金要素とか無いから大丈夫 とかをちゃんと伝えるなど地道なプロモーションの結果らしい。最初興味なかっ…

最初の糞ゲーを作って発表しました

今日は草の根のUnity勉強会で自分で作った糞ゲーを発表してきた。 糞ゲーをこちら。 https://dl.dropboxusercontent.com/u/6023300/Space_Shooter/Space_Shooter.html基本はUnity公式チュートリアルを使ったもので、プラスαとしてボス敵を追加している。 ボ…

itunes-receiptでAppleでの課金状態をチェックする

iPhoneアプリで、Apple課金処理周りのCS調査をする場合、receiptの妥当性をチェックする必要がある。 itunes-receiptモジュールを使えばその辺のverify 処理が利用できる。 https://github.com/nov/itunes-receipt使い方はUsageの通り。レシートのidとproduc…

[Node.js]node-uuid を使ってuuidを生成

uuid.v1(), uuid.v4() で生成できる。 var uuid = require('node-uuid'); console.log(uuid.v1()); // generate RFC4122 v1 (timestamp-based) UUID. console.log(uuid.v4()); // Generate and return a RFC4122 v4 UUID.引数にbuffer, offsetを渡してそこに…

sshkit なるもの

今日はサーバにsshで入ってごにょごにょする処理をsshkitを使ってスクリプト化しているものに出会ったので、それをまとめておく。 sshkitというもので、capistranoが内部で使っているDSLとのこと。https://github.com/capistrano/sshkit https://github.com/…

rvmでrubyをinstall

明日からはリアルタイムでここを更新していきたいと思っている。今日はGemfileおよびGemfile.lockが置かれたプロジェクトを使えるようにするため、Macにrvmとbundlerをインストールした。 まずはbundlerをgemでinstall gem install bundlerそしてGemfileが置…

githubのMarkdown練習

プルリクのやり取りが増えてきたのでMarkdownを軽く練習。 引用 > これは引用です。 Code ``` var hoge = 999; ``` hタグ # #で始めるとh1 ## ##だとh2 ### ###だとh3 テーブル表記 | Left align | Right align | Center align | |:-----------|------------…

[Node.js] handlebars.jsを軽く使用

メッセージの生成処理を泥臭い方法で書いていたら、handlebars.js使ってテンプレート化をお勧めしてもらったのでありがたく対応した。こんな感じで、状況に合わせたテンプレートを用意して使用するイメージ。 var Handlebars = require('handlebars'); var m…

gitでcommitを無かった事にする

コミット自体を取り消しする(なかった事にする)には、git resetを使う。 git reset --soft : ワークディレクトリの内容はそのままでコミットだけを取り消す。 git reset --hard : コミット取り消した上でワークディレクトリの内容も書き換える。 今回は git …

_.isObjectを使う

JS

今日は、JSの真偽値でオブジェクトの存在をチェックするのではなく、underscore.jsの _.isObject を使ってチェックした方がいいですよとアドバイスを貰った。 var hoge = {id: 100, name: 'aaa'} // 悪い例 if (hoge) { console.log(hoge.name); } // お勧め…

[Node.js]mochaのitの中身注意

アホらしいけど今日ちょっとハマった件。mochaのテストケースで、 it.only('aaa') ... // 省略 it('aaa') ... // 省略とあった場合、it.onlyのテストだけ走るかと思っていたら 'aaa' のテスト2つとも走る。 たまたま同じ名前などにしてしまった場合は意図せ…

最近プレイしたゲーム

今日は完全にオフにして子育てと合間のゲームのプレイをしていた。プレイしたゲームとちょっと学んだ事をメモ。 Diablo3 クラスによってゲーム性が変わるので同じストーリーだがまた別のクラスでプレイしたくなる。基本が戦闘の連続で長いストーリーシーンや…

git stash

今日は現在のブランチのワークツリーを一時的に保存するgit stashコマンドを軽く触った。保存は git stash保存されている一覧は git stash list直近の保存を取り出して削除するのは git stash pop 参考URL http://transitive.info/article/git/command/stash/

Space Shooterにボス敵を追加&ハイスコア管理追加

公式チュートリアルのSpace Shooterでは隕石が飛んでくるだけの状態で終わって寂しいので、勉強がてらボス敵を追加してみた。 今日できたところまでのボスの仕様は下記の通り。 ボスにはHPがある HPがある程度へったら攻撃パターンが変わる ボスの弾を当てた…

Unity Tutorial Beginner Space Shooter chapter 14で学んだ事

音源の設定。 Assetsの音源を各オブジェクトにドラッグすれば基本的にはOK. 爆発エフェクトは発生と直後に音を鳴らしたいので、Play on Awakeをチェックする。 Playerの弾を発射する時の音は、Playerに音源をつけたあと Play on Awakeのチェックを外し、 Scr…

Unity Tutorial Beginner Space Shooter chapter 13 で学んだ事

プログラムの実行を中断して、任意のタイミングで再開する方法として yieldを使う。 yieldを書ける場所としては メソッドの戻り値がIEnumerator型である StartCoroutine()にメソッド名を指定して呼び出される ことが条件である。 チュートリアルでは、最初の…

Unity Tutorial Beginner Space Shooter chapter 11,12 で学んだ事

衝突や表示を何も持たないGameObjectを作成し、それをGameControllerとしてScrpitを付与した。Quaternionはunityで回転の制御に用いられているもの。 チュートリアルでは、回転していないQuaternionとして、Quaternion.identityが使われた。参考URL Quaterni…

Unity Tutorial Beginner Space Shooter chapter 16,17で学んだ事

対象のキーボード入力があったかどうかをチェックするには、Input.GetKeyDown (押した瞬間を確認。押しっぱなしでも1回入力として扱う)を使う。 例えば、'R'が入力されたかどうかの判定は下記の通り。 Input.GetKeyDown(KeyCode.R)) Input.GetKeyDown https…

Unity Tutorial Beginner Space Shooter chapter 15で学んだ事

GUI Textを用いてスコア表示 Viewport Space 画面の左下の座標を(0,0), 右上の座標を(1,1)としてtrasnform指定する方式 Screen Space 画面のx,y座標を絶対値で指定する方式 GameController側でスコア管理とスコアテキストの更新を行うようにスクリプトを更新…

async.eachSeriesで次のステップに進ませること

危うくeachSeriesの使い方間違ってバグを埋め込むところだった。間違ってたときはこんなコード書いてた。これだと最初の要素で処理終わってしまっていた。 async.eachSeries(hogeList, function(hoge){ // hogehoge return done(); }, function(err) { if (e…

async.waterfallなどの多用はパフォーマンスに影響あるので注意

今日はコードレビューを受けたが、if/switchで十分なところをasync.waterfallを使っている箇所があり、async.waterfallの多用は性能的に影響が出るのでif/switchにしてね という指摘があった。 まあ自分が書いたところではないんだけど、勉強がてらリファク…