カスタム検索

2015年6月9日火曜日

Cocos2d-x 2.2系でLuaを部分的に使う

検索したら意外に情報が少なかったCocos2d-xでLua使う方法
まずC++で作ったプロジェクトだとLua関係がimportされてないので追加する。

・iOS
Luaの空プロジェクト作って、luaフォルダを同じようにimportしてやるのが一番早い
luajit(Luaをバイナリコードするやつ)が古いため64bitに対応していないので、3.6からluajitをコピー
Build SettingsのHeader Search PathsとLibrary Search Pathsにlua系を追加

・Android
こっちもluajitを3.6についてるバージョンに上書き
Android.mkに以下を追加
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_lua_static
$(call import-module,scripting/lua/proj.android)

・あとは普通にLuaEngineから読み込める
CCLuaEngine *engine=CCLuaEngine::defaultEngine();
string luaFile=CCFileUtils::sharedFileUtils()->fullPathForFilename("script.lua");
engine->executeScriptFile(luaFile.c_str());
lua_State *L=engine->getLuaStack()->getLuaState();

こっから先は ココらへん で詳しく乗ってます

2015年1月22日木曜日

Elastic BeanstalkでSSL証明書を設定

ものすごく簡単だった。
大体 ココ に書いてあるんだけど、この手のヘルプアレルギーの人向けに簡単に書くと

・SSL証明書取得
・awsコマンドインストール(今の所管理画面からは追加出来ないっぽい)
・aws configureでawsアカウントを設定
・awsコマンドでアップロード(ファイルに file:// を付けるのが必須なのがポイント)
・Elastic Beanstalkに管理画面からconfigurationからLoad BalancingでHTTPS(443)を有効化+さっきアップロードした証明書を選択

以上。


2014年11月11日火曜日

cocos2d-x v2系の64bit対応について

iOSアプリでは2015年から64bit対応が必須になります。
cocos2d-xのv3系は64bit対応しているので問題ないのですが、v2系はそのままでは使えません。
v2>v3のアップデートは結構な手間もかかりますし、v2時のオレオレ実装等もあるかと思います。
公式にも要望が出て、次回のバージョンでFix&とりあえず緊急対応法が上がっています。

http://discuss.cocos2d-x.org/t/64-bit-and-ios-8-requirements-for-new-apps/17797/28

2014年10月22日水曜日

OSX Yosemiteアップグレードに伴うetc

Yosemiteにして色々困ったものなど。

・JAVAが(また)居ない
公式からダウンロードしてインストール

・Apacheのユーザディレクトリがはずれている(ついでに自動起動からも外れている)
ココにユーザディレクトリを復活させる方法がのってます。
起動方法やら自動起動やらはココを参照

・なぜかネットワークの設定がリセットされてた
普通に再設定で解決

大きなトラブルはなさそう、Adobe系のソフトは色々あるみたいですがとりあえずCCの最新版にしたら今の所問題なさそう。
前はアップグレードした時にSSDの容量がガッと空いたのですが今回はわりかし減ったような感じがします。

2014年9月30日火曜日

最近のAdobeAIRでiOSアプリについて

いつからかわかりませんが、Xcode6になったあたりから申請時に以下のようなエラーが出るようです。

RROR ITMS-9000: "Invalid Segment Alignment. This app does not have proper segment alignment and should be rebuilt with the latest version of Xcode. Please contact Developer Technical Support if you need further assistance."

SDK内のld64を更新してやればOKのようです。
cd /AirSDK/lib/aot/bin/ld64
mv ld64 ld64_orig
ln –s /usr/bin/ld ld64

詳しくはコチラ



よく仕様が変わったりするのでAIRみたいな外部ツールでビルドするのはなかなか手間がかかりますね。
最近はアプリをAIRで作ることはないのですが、過去のアプリがiOS8で動かなかったりしてちょいちょい手のかかる子になっております。


2014年9月25日木曜日

Xcode6のiOSシミュレータ保存場所

すぐ忘れるんでメモがてら。
Xcodeのバージョンが上がる度に保存場所が変わるiOSシミュレータですが、今回は

/Users/[username]/Library/Developer/CoreSimulator/Devices/[deviceId]/data/Containers/Data/Application/[applicationId]

みたいな感じで保存されてます。
前はOSのバージョンで区切らてて、シミュレータの機種を変更してもOSが同じならデータは同じものを使用する感じだったんですが、
OS、機種毎に別れるようになりました。

バージョンアップしても前のデータは残っているので、容量きつい場合は消してしまいましょう。
前のデータパスは
/Users/[username]/Library/Application Support/iPhone Simulator
以下にあります。

2011年3月28日月曜日

FlexでiOSアプリを作ってみた。

AdobeAIR2.6も公開され、AIR for iOSも公式に実装される形になりました。
というわけでFlexでiOSアプリを作ってみます。
なぜFlexかというと、Flashはタイムラインの概念がどうにもわかりにくく扱いきれてないので・・・

必須なものはAIR2.6SDKとiOSのデベロッパー登録のみです。
コレを参考に。
FlashBuilderなんかがあるとビルド設定あたりは勝手にやってくれるので楽です。
FlashBuilderに最新版のSDKをいれ、新規アプリケーションを作成します。

はじめはWindowedApplicationが親になっているので、こいつをApplicationに変更。
BorderContainerにLabelいれただけでのHelloWorld作ります。

FlashBuilderであれば自動的に「プロジェクト名-app.xml」ファイルが出来ているので、これの中身を編集。
とりあえずiPhoneの部分を活かし、supportedProfilesをmobileDeviceに。
FlashBuilderが勝手にコンパイルしてくれるので、出来たswfとxmlを使ってadtでipaファイルにコンパイル。
ipaファイルができたらiTunesのAppに放りこんで実機と同期。

サクっとiOSアプリが完成しました。
特にFlexアプリケーションでも問題なく動くようです。
これを登録するときはApplicationLoaderを使うのかな?

アプリの方は若干起動が重い感じがしますが・・・。Flexベースなせいでしょうね、きっと。
Flashちゃんとやらないとなぁ・・・ああめんどくさい><
cocos2d for Flashとかあればいいのに!

でもこれでWin,Mac,Android,iOSとワンソースでいけるのはなかなか魅力的ですね!
あとはAirのランタイムが初回起動時にネット接続必須なのがなんとかなってくれるといいんだけどなぁ

2011年3月23日水曜日

xcode4+cocos2dでiPhoneアプリを申請してみた

新MBPに乗り換え、xcode4+iOS4.3も正式リリースになったという事で移行した際にはまった事など。

・missing fileが出まくる
svnを使用していて、svn deleteせずにファイルだけ消えている状態になると出るっぽい。
ビルドには問題ないけどwarningが出まくってるのは気分的によろしくない。
該当ファイルをsvn deleteしてプロジェクトを開きなしたら治った。

・iOS4.3 simulatorでエラーが出る
ココとかココによると皆なってるっぽい。
実機の4.3では問題なく動作するので気にしない事にする。
xcode4 templateで改善したのかもしれない。

・Distribution
xcode4ではアプリケーションローダーが不要になり、xcode4内で完結出来るようになっている。
アップの仕方はココらへんを参考に。
cocos2dの旧プロジェクトをそのまま移行した場合、そのままではvalidateでエラーが出る。
メインプロジェクトとcocos2dのターゲット両方がインストールされる指定になっているので、プロジェクトツリーからプロジェクトを選択>TARGETSのcocos2d librariesを選択>Skil InstallをYESにする事で回避。

cocos2d xcode4 templateでは修正されてるのかな?

ついでにcocos2d 0.99.5であったBUG FIXを適応してアップ。
このバグ確認出来なかったけど、これでアプリケーションクラッシュが改善されるといいなぁ

・新MBP
なんかSSDが早く感じる。VAIOのSSD*4 RAIDと比べても遅いとか思わない。
プロジェクト内の文字列検索とかいつ検索したの?ってぐらい早い。
ビルドも早いんだけど、その分実機への転送が遅く感じる、特に3G世代(´・ω・`)

2010年9月14日火曜日

iOS4.1の目玉(?)GameCenterを使ってみた・その1

iOS4.1がリリースされ、GameCenterが正式に稼働となりました。

あんまり期待してなかったのですが、なんだかドキュメントを読んでいたら意外におもしろそうな感じ。
単純なスコアランキングから、条件達成、自動対戦マッチにフレンド機能と、自前サーバいらずな感じになりそう。
(どうせならアイテム課金の管理もAppleでやってくれたら完璧なのに・・・)

ちょうどスコア系のゲームをつくっていたので慣れない英語を必死に読みながら実装してみた。

・iTunesConnectにアプリケーションを登録する
登録必須です、スクリーンショットとか検索キーワードとか先に入れるの面倒ですが、後から変更出来ますのでとりあえず作っちゃいましょう。
登録したら、Manage GameCenterから、GameCenter Testingを有効にする。
Leaderboard(ハイスコア)とAchievements(条件達成)がセットアップ出来るので設定しておく。

・プロジェクトの設定
対象のプロジェクトにGameKitをLinkする。
GameKit/GameKit.h をインポートする。
ビルトプロパティの識別子をアプリケーションで設定したものと同じにする。(jp.co.hoge.application)

・稼働しているデバイスがGameCenterに対応しているか調べる
サンプルコードの isGameCenterAvailable に該当

・ユーザを認証する
サンプルコードの authenticateLocalPlayer に該当
ゲーム中にバックグラウンドでログアウトしたりする可能性があるので、GameCenterでの処理を行う前には必ず行う。

・スコアの登録
サンプルコードの reportScore に該当

・ランキングの表示
一般的なGameCenter用の表示と、カスタムでスコアだけ取得して自分で描画するパターンがある。
統合されたインターフェースで十分だったので、一般的な表示を使おうと思ったんだけど、cocos2dだとここがちょっと面倒に。
GKLeaderboardViewControllerDelegate を持つ UIViewController クラスを作成して、CCDIrector の openGLView に addSubview して解決。(超適当)
詳しくはココらへんを参照


とりあえずこんだけでランキングに登録、表示が可能になりました。
フレンドとかはGameCenter側で出来る話なので気にすることもなし。
オンラインマッチに関してはエイバースの中の人が詳しく紹介されてます。

あれ、その1で完結しちゃった。
Achievements触ってみてなんかあれば続きでも・・・

2010年8月31日火曜日

Flexで丸画像とか

Flexで四角以外のアイテムを生成するときのお話
忘れそうなのでメモメモ

丸画像に対してイベントを取得したい時など、Imageを使うと四角の領域でイベントが取得されます。
コンポーネントに対して mask 処理をしてやることで、任意の領域のみイベントの対象とする事が出来ます。

詳細はコチラ
Imageを拡張したクラスを用意して、 cornerRadius プロパティを追加。
描画更新時(updateDisplayList)に、cornerRadius の値からマスクを作成してセット。

2010年8月26日木曜日

cocos2dで日本語をCCBitmapFontAtlasで使うには

ちょっとはまったんでメモメモ

cocos2dでは文字の表示に CCLabel という簡単なものがあるのですが、これが結構な重い処理となります。
スムーズな動作を必要とするゲームなどでは、BitmapFontを使うと良いです。
(逆にADV系など速度を要求しないものであればCCLabelでおk)

現時点(cocos2d v0.99.4)では標準のままでは使えません。
公式フォーラムのコチラで問題点が指摘されています。

プロジェクト内の cocos2d Sources > cocos2d > CCBitmapFontAtlas.h を編集します。

kCCBitmapFontAtlasMaxChars = 2048
を
kCCBitmapFontAtlasMaxChars = 65536
に変更

BitmapFontを作る方法ですが、Hiero Font EditorというのとBMFontGeneratorというが推奨されているようです。

BMFontはWindowsでしか動かないので、とりあえずhieroを使ってみたんですが、どうもうちではうまく動作してくれませんでした。
(出力画像が天地左右反転されたり、出力対象がコピペできなかったり、一度出力すると変更して二度目の出力が出来なかったり)

なのでBMFontを使ったやり方を紹介します。

・必要な文字を含んだテキストファイルを作成(UTF-16で保存)
・Edit -> Select chars from file で上記ファイルを選択
・Export OptionsでBit depth を 32、png 出力
・Font Settingsで Font smoothing を選択

色などはお好みで、cocos2d側でも変更が効くので特に気にする必要もないと思います。
これで出力された .fnt ファイルを CCBitmapFontAtlas で読み込んでやればBitmapFontで描画されます。

2010年8月4日水曜日

今そこにあるpaypal

paypalが日本での本格展開を始めると言う事で、早速使ってみた。

使い始めるまでの準備をザックリと。

1.Paypalにサインアップする。
本番用と練習用(sandbox)では、別々にアカウントをセットアップする必要があるので注意。

2.sandbox内で使えるアカウントを作成する。
テンプレで作成出来るが、日本語アカウントはマニュアルで作るしかない。
ビジネスでセットアップすれば架空のカード番号が入力されるので、そのままセットアップする。

3.APIのアカウントを取得する
個人設定>APIアクセス>オプション2のAPI証明書を取得する

4.エクスプレスチェックアウトを有効にする
上と同じ所から有効にできる。
レガシーなウェブペイメントorメール決済を使う場合は必要ない、けどエクスプレスチェックアウトを推奨


上記に加え、本番アカウントならカード認証やら口座設定やらをしておく。

新しくはじめるなら、paypalのAPIに対応したカートを使うのが一番簡単。
APIのアカウントを設定するだけでいけるはず。

それではおもしろくない(?)ので、一からAPIをつついてみた。
APIではSOAPとNVP(Name-Value-PairただのPOST通信)が使えるらしいので、もっとも汎用的っぽいNVPをチョイス。

APIのURLや詳細はまずそうなので伏せるとして、流れは以下の通り。

1.SetExpressCheckout
今から支払いスルヨー!とpaypalに宣言する。
オプションでアカウント不要とか、画面表示を変えたりとか出来る。
APIコールに問題なければTOKENが返ってくるので、ユーザ向けページへTOKENを付けてリダイレクトする。

2.GetExpressCheckoutDetails
指定した戻り先のページに戻ってきたら、このAPIを実行。
ユーザがpaypalのページで入力した情報を取得する。(住所とか。クレジットカード番号は取得不可。)

3.DoExpressCheckoutPayment
決済処理の確定。

だんだんめんどくさくなってきたのでこの辺で終了。
paypalの利点は、他社に比べて圧倒的に安い事と、始めやすい(オンラインだけですぐ始められる)事でしょうか。
欠点としては日本での認知度の低さや、わかりにくさ(決済ページが英語表示、ユーザが日本語表示に切り替える必要がある)でしょうか。

2010年6月24日木曜日

iOS3のプロジェクトをiOS4に対応してみる

iOS4が正式に公開されたので、プロジェクトをアップデートしてみるテスト

iPhoneDevよりxcode 3.2.3 finalをインストール
古いxcodeやiPhone simulatorが立ち上がってたら落としておくこと。インストールに失敗する事があるので落としておく。
iTunesも途中で落とせと言われるので先に落としておくのが吉。

とりあえずそのまま以前のプロジェクトを実行してみる>エラー>あるある

UIView.h等で以下のようなエラーが多発
syntax error before '^' token

なぞい、コンパイラをGCC4.2からLLVM GCC4.2に変更すると回避出来るけど・・・
再度ビルド>エラー>ですよねー

今度はSBJSONでエラーが出てる
とりあえず最新版を落としてドキュメントを読んでみると、インストール方法が変わったらしい

追加SDKとリンカグラグをはずして、最新のオススメインストール方法(クラスコピーするだけ)に戻したらさっくり動いた
コンパイラの設定をGCC4.2に戻しても問題なし、と。なんだよ、ちょっと焦っちゃったヨ。

なんでJSON-Frameworkとか使ってないプロジェクトはそのままでいけると思う。
cocos2d(v0.99.3)に関しては今の所問題無し。

お次は実機に・・・と思ったらプロビジョニングされた実機がつながってないよ、と
どうやら実機をiOS4にアップデートしたら別物として認識されているっぽい
xcodeのオーガナイザからIdentifierをコピーして・・・と思ったら「デバイスを開発で使う」みたいなボタンが出ていたので押してみる。
iTunesConnectのIDをきかれ、xcodeからデバイスの登録が完了!
xcode上でiTunesConnectと連携出来るのね、これはイイ改良

HPから確認してみるとTeam Provisioning Profile: *というのが追加されていた
とりあえずこの状態で実機の動作確認もOK

シミュレータで注意しないといけないのが、HOMEボタンで終了ではなくなったので、HOMEおしてもタスクは実行中ということ(3G実機では終了されるけどね :p)
ここで新しいイベント(applicationDidEnterBackground)が飛ぶので、必要ならば処理を追加する。
コチラに日本語で詳しい内容がアップされています。
どうやらapplicationWillTerminateが呼ばれずに終わる事もあるそうで・・・?(本体ないし未確認)
終了処理はちょっと気を付けた方が良さそうです。

当面はiPhoneシミュレータを見ながらiPhone4が手元に届くのを待っています・・・

2010年4月23日金曜日

iPhoneでバイブレーションを作動させる



#import <AudioToolbox/AudioToolbox.h>

AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);


AudioToolBoxをインポートして AudioServicesPlaySystemSound を呼ぶだけ・・・
Twitterでつぶやける程のコード量で拍子抜けしたw

2010年4月9日金曜日

Flex 自分メモ

・FlexBuilderでプロジェクトのプロパティ画面(Flexビルドパスなど)が表示されない時は、境界線をちょっと移動すると表示される。

・サイズが%指定の領域内でスクロールさせたい場合(VBox 100%など)は minHeight=0 を指定しておく

・ListのItemRendererでTextAreaなどを使用し、行数が増える場合データは正しく更新されるが、表示ははじめの行数のまま増えない。
この場合は itemRenderer="mx.controls.Text" を指定してやれば良い。

以上、メモ投稿

2010年4月6日火曜日

iPhoneおアプリ内課金について・その1

iPhoneでアプリ内課金をするのに色々と面倒だったのでまとめておく

概念とかはStoreKitガイド辺りで把握出来ますので、実際にコードに組み込む辺りを。


・まずはプロジェクトにStoreKitFrameworkを追加する。
プロジェクトの編集>一般>リンク済みライブラリの「+」から StoreKit.framework を選択して追加
なぜかリストには反映されないが、動作しているので気にしない
これってiPhoneアプリ的には常識なんでしょうかね・・・まったく知らなかったんでここに来るのすら苦労しましたw

・下準備

#import <StoreKit/StoreKit.h>

して、クラスに <SKProductsRequestDelegate> を追加する

こんな感じ


#import <StoreKit/StoreKit.h>

@interface TestLayer : NSObject <SKProductsRequestDelegate> {
}
@end




・購入するアイテムの情報を取得

SKProductsRequest *request=[[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:@"PRODUCT_ID"]];

PRODUCT_IDはitunes connectで指定したものをあてる。
通信中の処理待ちなどはアプリ側で各自実装、リクエストが終わると productsRequest がコールされる



-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
// プロダクトの取得
SKProduct *product = [[response products] lastObject];

// アイテムのタイトル
NSLog(@"%@",product.localizedTitle);
}


request は requestDidFinish で解放してやりましょう



- (void)requestDidFinish:(SKRequest *)request {
[request release];
}



itunes connectへ課金アイテムの登録がうまくいっていれば、この時点でアイテムの名称がログに出力されます。
後は SKPaymentQueue の使い方と、テストユーザでの購入の仕方、その際のTIPS等

2010年3月21日日曜日

iPhoneアプリはじめました

というわけで無事Appleの審査も通りAppStoreへ公開されました!

アプリのダウンロードは以下より
ScratchGirl

無料アプリなんで良かったら遊んでみてください :)

2010年3月11日木曜日

AppStoreへ申請するアプリにjson-frameworkを使用している場合の注意点

AppStoreへアプリを登録する際に、嫌というほど目にする以下のエラー

The binary you uploaded was invalid. The signature was invalid, or it was not signed with an Apple submission certificate

基本的にはCodeSign系のエラーですが、その他のエラーもすべてこれで帰ってくるもよう。
Webで調べたら以下のような症状があった。

・Developerの証明書でビルドしていた
・Distribution or Provisioningの証明書の有効期限が切れていた(それぞれ別の有効期限になるので注意)
・Info.plistのBundle identifierが登録した内容と違っていた
・プロジェクト>アクティブターゲット"あぷり名"を編集>プロパティ>識別子 がInfo.plistのBundle identifierと一致しなかった(基本的には同期するはずなんだけども・・・)
・アイコンファイルのサイズが57x57ではなかった、また24bitでなかった(これに結構ひっかかってた・・・24bitのPNGでもMacのプレビュー>インスペクタではビット深度8と表示される)
・コード署名IDの設定を、プロジェクト>プロジェクト設定を編集 から行った(必ず、アクティブターゲット"あぷり名"を編集 から行った方が良いです)

Xcodeのビルドは基本的に差分ビルドなので、Distributionの場合は毎回クリーンした方が良いです。
そして、Xcode自体にもなんやらキャッシュっぽい感じで設定が残るようです。
公式にもありますが、いったんCodeSignをはずして、クリーンしてフォルダも消して、Xcodeを再起動してCodeSignを当てなおすとうまく行くとかあるようです。

で、色々やった結果全部だめだったので途方にくれていたのですが、ふと使用しているライブラリのCodeSignとかどうなるんだろと思って調べたら、これがビンゴでした。

cocos2dとjson-frameworkを使ったのですが、cocos2dは特に設定無しで問題ないもよう。
json-frameworkでは、2.2の頃にCodeSign系のなんやらがあったようで、以下の設定をすると良いとの事でした。

「アクティブターゲット"あぷり名"を編集」から「コード署名リソース・ルールパス」に、$(SDKROOT)/ResourceRules.plist を入力

説明には「ビルド実行可能ファイルのコード署名後に変更する有効な理由のあるファイルを除外するために、オプションで使用されます」とありますので、なんかの理由があるんでしょ、きっと。
2.2の頃の話+AdHocや実機デバッグでは問題なく動いていたので、マサカネーと思いつつアップしたらあっさりと通りました(><)

そんなわけで、転職しましてWebプログラマじゃなくなっていたりします。(Webアプリも書いていますが・・・)
無料アプリなので審査が通ったら公開致します :)

2010年2月4日木曜日

C#でiPhoneアプリを作ってみた!

C#や.Net Frameworkを使ってiPhoneアプリを開発出来るというMonoTouchを使ってみた

まずMonoFrameworkとMonoDevelopをダウンロード&インストールする。(共にMac版)
次にMonoTouchのSDKをダウンロードする
上記2つは無料らしい、MonoTouchは有料だけどTrial出来るので今回はそれで試してみました

あ、もちろんiPhoneSDKは必須です。AppleIDを取得すれば無料でダウンロード可能

全部インストールした所でおもむろにMonoDevelopを起動、、、はい、文字化けしてます
ぐぐると早速答えがあったので設定します



はい、バッチリ日本語でました
とりあえず公式のチュートリアルを進めてみます

ファイル>新規>ソリューション で テンプレートから C#>iPhone を選択



早速使えるテンプレートが増えているようです、今回はHelloWorldなんで、iPhone Window-based Projectでいってみましょう
とりあえず作成しただけの状態で実行してみます・・・



iPhone Simulatorが立ち上がってまっしろな画面が出ました、ここまでは良好ですね。
生成されたプロジェクトの MainWindow.xib をダブルクリックすると InterfaceBuilder が起動しました。
この辺はXcodeで作る時と同じ容量で良さそうですね。

InterfaceBuilderで生成されたOutletやActionを、MainWindow.xib.designer.cs という自動生成されたファイルで関連付けしてくれます。
で作ってみたHelloWorldがこんな感じ



残念なところは、MonoDevelopが日本語入力出来ません・・・
ファイルを直接別のエディタで編集すれば日本語も使えますが、ちょっと効率悪いですね。
実機テストもしてみようかと思ったのですが、実機テストが出来るのは有料版のみのようです。

C#マカーがどれだけいるのかわかりませんが、actionscript等、別の言語で作れるようになるのは非常に良い事です。
今後に是非期待しましょう!

2010年2月3日水曜日

kumofs その5・スケールアウトしてみた

kumo-serverを2台のマシンへセットアップし、色々試してみました。

スケールアウト時のチェックポイントはserverのIPや名称等は必ず一意となるようにつける事です。
例えばmanagerを起動するサーバで
kumo-manager -v -l localhost
kumo-manager -v -l 127.0.0.1
とかやってしまうと失敗します。必ず自分のIPか一意のサーバ名としましょう。

前回接続が不安定だったのはSpymemcachedが原因でした。
memcached client for javaで接続したらエラーにならずにすみました。
んが、こちらの方が速度が遅いようです。

1台から2台にした結果、速度は遅くなりました。
まぁ2台ではボトルネックの方が大きくなってしまうのでしょうがないですね・・・

memcached client+2台状態での速度は以下のような感じでした。
Set
128,187ms

Get
112,314ms

どちらも大体同じくらいの速度で安定して動きました。
SetはHSQLDBより遅くなりましたね・・・
GetをチューニングしたらHSQLDBが最速になるかな??と思って試してみました

Indexあり HSQLDB Get
637,811ms
622,084ms

Indexなしより4倍ぐらい早くなりましたが、kumofsと比べるとだいぶ遅いですね。
CouchDBより微妙に遅い程度なので、Grailsの中だけで使うDBという割当にCouchDBは向いていません。

続いて障害時の検証

memcached clientには複数のmemcachedをPoolして使う機能があります。
なのでkumo-gatewayを二つたてて二つをPoolして使ってみました。

マシン構成
server1 - kumo-manager , kumo-server , kumo-gateway
server2 - kumo-server , kumo-gateway

・すべてが稼働している状態からserver1or2のkumo-gatewayを落とす
正しく取得出来たり、Exceptionが出たり。
memcached clientでは接続先が落ちているかどうかまで判断はしてくれないようです。
A,Bどちらを落とした場合でも結果は同じです。

・すべてが稼働している状態からserver1or2のkumo-serverを落とす
何事もなかったかのように動作しました。

・片方のkumo-serverしか動いていない状態で、データを追加or変更し、落ちているkumo-serverを復旧させる
復旧した時点では not attached になっていますので、Aのマシンからattachします

kumoctl server1 attach

attach時にReplicationが行われ、アプリケーションからは常に変更後のデータが取得されます。
もちろんノンストップでいけます。

という事で、memcached clientのPoolは使わずに、公式のオススメどおりwebアプリとkumo-gatewayを1:1にし、kumofs側で障害対策をするのが良いようです。