Home

trick7

お知らせ:ブログ移転しました

過去コンテンツと整合とりつつテンプレートをいじるのも大変なのでここではない2カ所で運用を続けます。

  • Comments (Close): 0
  • Trackbacks (Close): 0

マッチ3パズルのゲームロジック

BejeweledやZooKeeperみたいな、ストーンを3つ揃えたら消えるパズル(マッチ3ゲーム)を作りたいけど、どういうロジックをプログラミングすればいいかなぁと悩んでいる人には、下の本が役に立つかもしれません。
Cocos2d for Iphone 0.99 Beginner’s Guide
Pablo Ruiz
1849513163
Cocos2D用の洋書なのですが、最初のゲームサンプルがマッチ3パズルのサンプルになっており、マッチ3パズルを実装するための基本ロジックが紹介されています。3つ揃ったかどうかのチェックや、ゲーム開始状態で3つ以上並ばないようにするといった具体的なアプローチが紹介されています。
僕は1年ぐらいまえにCocos2Dで本の通りに作ってみて、最近この本を参考にCoronaSDKに移植してみました。
Cocos2Dは左下が(0,0)の座標系なので、そこだけ注意すればFlashだろうがCoronaSDKだろうが同じ考え方で移植できました。

最近でも、なめこのマッチ3パズルが登場したり、何かと重宝されるスタイルのパズルなので、アプローチだけでも把握しておくのも楽しいかと思います。

追記:ただし以下の処理については触れていないので自分で考えて実装することになりそう

  • ストーンが3つ揃わない場合でも動かせてしまう
  • どのストーンを動かせば揃うかは、動かす前にはわからない
  • 上の理由で、盤上の動かせるストーンがない場合の判定ができない

とはいえ、マッチ3パズルの骨子としてはよくできているので、本を参考にして、あとは上の処理を実装するのが近道かと。

  • Comments (Close): 0
  • Trackbacks (Close): 0

「パズル&ドラゴンズ」がとても面白い

  • 2012-03-10 (土)
  • game

ガンホーが作ったiOS対応ゲーム「パズル&ドラゴンズ」がとても面白いのでご紹介します。

カード、合成、ガチャ、体力と回復アイテム、ソーシャルメンバーを連れてダンジョンをクリアすると次のダンジョンクエストが登場して、、という最近のソーシャルカードゲーム要素をおさえつつ、ネイティブアプリなので画面遷移はスムーズで演出もリッチ。

でもそういうゲームはもう何本もあるんです。特徴はクエストでのバトルのシステム。
「パズル&ドラゴンズ」はタイトルの通り、画面下に並んだストーンパズルでバトルするんです。

「あ、海外のPuzzleQuest2と同じね。」と思い当たる人もいるでしょう。僕も最初そう思ったのですが、、裏切られました。
パズルのルールも違いますし、パズルとバトルの絡め方もオリジナルの面白さ。そのせいもあって、巷のソーシャルカードゲームとも別モノの面白さに仕上がっていて、何やらソーシャルカードゲームの新しい基軸になりそうな予感さえします。

Continue reading

FlashLite1.1やる人が初日に覚えるといいことクイズ

Flashの経験がない状態でFlashやりなさいといわれた時に、最初の1,2時間ぐらいで覚えたほうがいいFlashの基本事項をクイズ形式にしてみました。
※主にソーシャルゲーム用FlashLite1.1開発する人 with 経験者の先輩の手ほどきを受けながらというイメージです。
間違いあったらすいません。

Continue reading

ソーシャルゲームを作ってた1年でした

この1年は会社業務でソーシャルゲームを作ってました。
その間、所属もリクルートのMTLから、コンテンツ企画開発を目的にMTLからスピンオフした「株式会社ニジボックス」になりました。
全く紹介もしてきませんでしたが、ブログエントリしなさすぎて心配されることがちょっとふえてきましたので、一応1年やってたことを書いてみます。文字だけで。

(上から最近のお仕事)

ヤン極志(携帯ソーシャルゲーム)

http://nijibox.jp/yngk/
今年7月にmobageとgreeでリリースした「ヤンキー+三国志」なカードゲーム。Flashを担当。
携帯ソーシャルゲームに最適なアニメーション演出からロジック実装、軽量化の工夫(+超大量の作業)など、FlashLite1.1のことを広範囲に考えて作成しました。
携帯ソーシャルのFlashは、ゲームをインストールしたてのユーザーさんが「おっ!」って感じでパッと見で興味を持てる掴みと、以降は何度も繰り返してみることになる邪魔な存在になってしまうこととのジレンマを、気持ちのいいボタンスキップでストレスを減らしていく、そんなことを考えて作ってました。
この「ヤン極志」はじめ、そこからの横展開でできたゲーム「妖女大戦(ようじょたいせん)」と「レジェンドオブオーディン」もgree,mobageで公開中。

戦争ウォーズ(Yahoo!モバゲー)

http://yahoo-mbga.jp/game/12003225/detail
コミカルなドット絵の兵器ユニットをユニットコスト(10ポイント)を使ってユニット編成して、他ユーザーのユニットと戦ってエリア制圧していくPC用簡単タクティクスゲーム。
兵士から爆撃機まで、全8種類のユニットにはそれぞれ相性があるので、一概に強いユニット構成というのはなく、相手に応じた編成で勝ち進んでいくところにゲーム性があります。
このプロジェクトは企画とFlashモック作成をした状態で、僕はヤン極志に注力することになったので、社内メンバーさんといつもお世話になっている外部のFlasherさんに引き継がせてもらって、2011年8月リリース。そこから運用に関わらせてもらって現在も上り調子で公開中です。
下の「おしゃれ泥棒」同様、チュートリアルや画面上での説明やキャンペーン案内、操作導線等、企画〜操作の全フェーズでユーザーが迷わないよう案内することの大切さを学びました。

おしゃれ泥棒(Yahoo!モバゲー)

http://yahoo-mbga.jp/game/12003250/detail
去年7月、ひょんなことから企画制作することになった僕がはじめて携わったソーシャルゲーム。
まさか30過ぎたオッサンFlasherが作ったとは思えないであろう”女性向け洋服コレクションゲーム”ですが、そのゲーム内容は「他人の洋服をこっそり借り、相手にバレずに一定時間をやりすごせるとゲーム内通貨が稼げる」という、なぜかバトルゲーム。
Flashを作ってくれたのは、なんとClockmaker池田さん(Clockmakerブログでもバナー貼ってくださってました)なので、外見はカワイイ感じのゲームですが、裏は超絶AS実装。
去年10月にリリースしてからは矢継ぎ早にキャンペーンをしたり、洋服や機能を追加したり、問い合わせ対応、バナー作りまで、「リリースしてからが勝負」といわれるソーシャルゲームですが、それを実感いたしました。リリースから1年以上経ちましたが今も育ち続けているYahoo!モバゲーのゲーム。

これから

以上ソーシャルゲームを中心に1年やってきました。
ソーシャルゲームに携わり、いろいろ得るものもありましたが、一方で、新しいことを自分で0から勉強しつつ全部作ることへの憧れが再燃してきたこともあり、心機一転10月からはスマートフォンアプリの開発をしています。
CoronaSDKはじめました。CoronaSDK開発のレポートも含め、スマホ系のあれこれは、弊社ブログ「ニジボスマホ部」で書いています。

Soundクラスのplay()の第一引数

Flash CS3に作った頃のSWFが最近動かなくなっているとのことで調査。
2年以上SWF自体は変更していないのでブラウザ(FlashPlayer)側に原因がありそうだということで調べていたら、単音をループ再生させているところが原因でした。
seChannel = se.play( -40, 9999);
playの第一引数にマイナス指定しているのは、ループ時に-40ミリ秒の無音を空けたかったため。以前はこれで動いてた。今のブラウザで見ると play() の第一引数がマイナスだと Chrome の FlashPlayer では0扱いとなり、FireFox では音が鳴らない上に、それ以外の部分まで操作不能になるという状況だった。
結局、-40でスクリプト側で無音を確保するのをやめて音声データ側に無音を継ぎ足して解決させました。

あと、CS3の時の.flaファイルをCS5で開いてパブリッシュしたら、フォント埋め込みのダイナミックフォントが一切表示されなくて焦った。
textField.embedFonts = true;
をコメントアウトすれば動くので、理由を探ったところ ActionScript 上の TextFormat インスタンスでのフォント指定文字列がCS5だと変わっていた。(※どうやらCS4から変わったらしい)
大重さんの「フォントの英語名を調べる – ActionScript 3.0入門ノート CS4」のエントリを見て英語名を調べて指定し直したところ、きちんとテキストが表示されるようになった。
※実は変更前も英語指定だったんだけど、なんか違う英語表記に変わっていた。

gotoAndStop(2)後のaddEventListenerの挙動

あるMC”panel”のフレーム1に”btn1″、フレーム2に”btn2″があり、これを条件分岐で切り替える構造のFlashだとする。下みたいな実装。

if(hoge){
panel.btn1.addEventListener(MouseEvent.CLICK, mouseDownHandler);
}else{
panel.gotoAndStop(2);
panel.btn2.addEventListener(MouseEvent.CLICK, mouseDownHandler);
}

要はフレーム移動直後に、その移動先フレームにのみ存在するボタンに対して addEventListener するケース。

FlashIDE上でのパブリッシュ設定が FlashPlayer10 の時は動くのに、FlashPlayer9 設定に切り替えると null エラーになる。

ビックリした。

ちなみに両フレームともにまたがるように配置されたボタンなら大丈夫、あくまでgotoAndStop移動後に初登場のオブジェクトに対してイベント付けた時に起こる。

Gravity2D ライブラリが簡単&楽しそう

「flashゲーム作成記」の poliG さんが公開されている Gravity2D が楽しそうすぎです。
デモを見ればどれだけ簡単か、どれだけ楽しそうなことできそうかがすぐ分かると思います。

link: flashゲーム作成記 | Box2Dを簡単に扱えるようにするGravity2D

AirMac Express の電源が入らない

富士山から帰ってきたら家のネットが繋がらなくなっていました。原因は5年前に購入した AirMac Express で、コンセントにつないでも電源ランプが点灯しない。そしてなんか異臭がする。
調べてみると同じ症例の人がいらっしゃいました。
Apple に聞いてみたところ、修理より新製品の購入をすすめられました。僕が持ってるモデルから多少バージョンアップしているものの、デザインが同じで機能もほぼ同じものを買うのがちょっとやるせない。いっそ家のネットをdocomo携帯を機種変更してアクセスポイントモードだけで統一してしまおうか。ちょっと高いか。

ということで、5年前くらいの AirMac Express、僕みたいに突然電源入らなくなることがあるかもです。

アップルコンピュータ AirMac Express ベースステーション with Air Tunes MB321J/A
アップルコンピュータ AirMac Express ベースステーション with Air Tunes MB321J/A

富士山登山の持ち物


明後日初めて富士山に登ります。一日目に八合目の池田館という宿まで登り、二日目日の出前に出発して頂上で御来光を拝む計画。

往路は富士宮ルート、復路は御殿場ルート。

会社の富士登山経験者のご意見やウェブサイトを見たりして、かつできるだけ持ち物を少なくしようと心がけて現在リュックに入っている持ち物をリストアップ。

Continue reading

Home

Return to page top