転職します

WEBとかスマホアプリ作ってる現職をやめてCSゲーム業界に行きます。 なんども葛藤がありましたが、結構前から色々と考えていました。 あ,NEWGAMEに影響されたわけじゃないよ。

Cocos2d-xやSpriteKitといったSceneを提供するゲームフレームワークにMVCの仕組みを取り込むための設計

開発中の音ゲーがだいぶプレイアブルになってきたのでプレイ画面を構成するモジュールがどのようになっているのかを整理するのも兼ねて, Scene を提供するありがちなゲームフレームワークをリーダブルでメンテナブルにするための設計についてすこしまとめて…

Swiftのジェネリクスで型引数を別の型引数の制約に利用するとCommand failed due to signal: Segmentation fault: 11 が解決していた

別に大したこだわりはないんですけど,以下のようなことができなくてあれ?と思っていたところ blog.a-azarashi.jp Xcode 8.3 , Swift 3.1 にアップデートしたお陰か,ビルドが通るようになっていました。 class MVC<M: Model, V: View, C: Controller<M, V> これができるということです。ええやん。</m:>

BMSプレイヤー開発 for macOS: サウンドシステム編

前回の記事でBMSパーサー実装時の動作テストとして,パース結果をもとに譜面(の音声)をオートプレイできるところまでいけたと書きましたが,どうにも音声が遅延する問題が気がかりでした。 今回はその問題が解決できたことを報告いたします。 AVAudioPlayer…

BMSプレイヤー開発 for macOS: BMSパーサー編

開発近況 harpこと BMSプレイヤーfor macOS の開発ですが,忙しさを言い訳にしてしばらく手が止まっていました。 最近ようやく以前のようにモチベーションと時間を取り戻してきたので少しづつ進めています。 今はBMSパーサーを書いているところで,BMSの仕様…

リモートワークの話

要するにリモートワークがしたいです,ということです。 僕が勤めているのはそこそこの規模のイケイケ系IT会社で,見込み残業が給料に含まれていて残業代は一切でない,よくある裁量労働制を採用している会社なのですが,制度としてリモートワークやフレック…

定時退社の話

定時退社するのは自分のためだし,長い目でみると会社のためにもなるので僕は定時退社を続けます。職業柄,どうしても残らなければいけないことがあることは理解した上で,でもあまり無理をしないで長く続けて行きたいです。 今日から強い心で定時退社する— …

ViewControllerの戻るボタンのタップをハンドリングする。(戻る動作をキャンセル可能)

iOSにおいて前の画面に戻る際, 「本当に前の画面に戻りますか?」 というアラートダイアログを出して,選択次第で戻る動作をキャンセルしたい需要が生まれました。あまり大げさな実装はしたくないので,iOSが用意するUINavigationControllerによる画面遷移…

Swiftのジェネリクスで型引数を別の型引数の制約に利用するとCommand failed due to signal: Segmentation fault: 11(未解決)

原因の詳細までは特定できていませんが,該当箇所を修正すると直るのでそういうことだと思っています。Swift3.0です。 製作中のゲームのSKSceneにロジックをずらずら書いていくのはしんどそうなので,自前でMVCの雛形を用意し,SKSceneクラスでやることはイ…

Swiftでassociate/associateBy

配列をディクショナリにする便利関数です。 Swiftになさそうなので実装してみました。 同じことをするにはreduceを駆使してやや冗長に書く必要があります。 keyかvalueになる要素がnilだった場合は要素の追加をスキップします。お好みで変えてください。 ext…

NSResponderのkeyDown()とI/OKitのIOHIDManagerのInputValueCallbackの反応速度の違い

ナノ秒の精度で時間を計測できる mach_absolute_time() で検証しました。 NSResponderはSpriteKitのシーンが保持するとあるSKNodeで,keyDown()時の速さを測定しました。 ちなみにSKNodeはfirstResonderになっています。 結論 ものすごくざっくり言うと,I/O…

macOSで音ゲーを作る上での障壁と懸念事項

macOSで動く音ゲーを開発したい 最近SpriteKitの記事をよく書いていますが,macOSで動く本格的な音ゲーを作りたいと思いチマチマと下準備を進めていました。 前の記事で紹介したリポジトリがまさにそれです。 以前からそれらしいものを組んで検証していたの…

開発中のソースコードを晒すことにした

なんとなく,今までしてこなかったことをしてみたくなったので都度githubに上げることにしました。開発中のコードは荒削りなところがあってあまり晒したくない派ですが,まぁ誰もみないしいいかなと。 去年ちょっと開発していたSwift製macOS向けゲームを,一…

SpriteKitでシーンにクリック可能なオブジェクトを配置するための仕組み

qiita.com qiita.com 上記の記事はiOS向けの記事です。 OSX用のゲームを作っている場合,touchesBegan はないはずなのでどうするのだろうと少し考えてみました。 前述の記事はオブジェクトに名前をつけてdelegateで処理させる戦略のようです。 名前を付けてS…

2017年やりたいことリスト

開発中のゲームを完成させる 次に作りたい作品があるので今年の冬コミ目指して制作する お仕事的にそろそろWeb界隈に行きたい(戻りたい?) 枚数こなして絵を上達させたい とりあえずやりたいことというか目標です。 去年は割と仕事中心という生活だったので…

MacでHID準拠USBゲームコントローラの値を取得したい

コントローラがどんな種類の入力をもっているかスキャンできるコードを紹介します。 このプログラムの管理下にあるときは任意のタイミングで入力の状態がどうなっているかもチェックできます。 startメソッド の無限ループはチェックのためにその場におきま…

SpriteKitのSKSceneでShiftKey(装飾キー)をハンドリングする方法

SKSceneはNSResponderを継承しているはずなのに,なぜかfunc flagsChanged(with event: NSEvent) を継承してもコールバックが呼ばれないので,extensionで解決してみました。 extension SKView { override open func flagsChanged(with event: NSEvent) { scen…

AndroidのGLSurfaceViewに描画する内容を動画として吐き出す方法

ゲームの録画機能をCocos2d-xで動くアプリの中に実装しました、というお話を社内ブログに書きました。 Cocos2d-xが絡むからこそ難しくなったりする点もあることにはあるのですが、それなりに汎用性のあるお話です。 当初ハードウェアに依存しないソフトウェ…

iPad Pro13インチ+AstroPadが液タブとして優れている話

iPad Pro13インチを購入して3ヶ月が経過しました。最初は大した目的もなく購入し、リフレクビートがゲーセンに近い環境でプレイできたり、Kindleアプリで漫画が見開きで読めたりといった大画面タブレットの恩恵を享受できる楽しみかたに感動していたのですが…

予定していた旅行をキャンセルして仕事をしていたらいつのまにか北海道を旅行していた話

クソアプリアドベントカレンダー 2016 10日目の記事を書きました。 すでに記事はgistで書き終えているので、とりあえず本文はgistより引用します。 去年もアドベントカレンダーはQiitaかgistで書いていた気がするので,そろそろ自分のブログを持とうと決意し…