head_hexagonはにらぼ☆てっくtale_hexagon
Tag » Game

ICU(国際基督教大学)講演レポート

こんにちは、ハニカムラボ山崎です。 
 
国際基督教大学教養学部アーツ・サイエンス学科での授業『コンピューターゲーム』に弊社エンジニアの下村がお招きいただきましたので、その様子をご紹介します。 当日は代表の河原田とともに登壇させていただき、大変盛り上がりました。 
 
ゲーム業界における組織構成や企画の立ち上がり方、ゲーム業界での採用方法やもとめられる人物像、開発フロー、そしてそれらの大手企業での開発手法との違いなど大変興味深い内容で、私も真剣に聞き入ってしまいました。 
 
昔はゲームには”マスターアップ”があり完成版(マスター)を納品後、リリースされるまでの期間は開発から少し離れて落ち着いて過ごすことのできる休息の時が1ヶ月くらいあったが、現代は配信でのリリースも多いため開発が終わってすぐにリリースとなるパターンも多い…という話は時代の流れを感じました。 
 
この日はちょうど、最後の授業だったそうです。チャイムが鳴ってもたくさんの学生さんが続けて質問に来て下さり、今回の授業が学生さんたちの心に残るものだったのを感じる時間でした。ありがとうございました。 
 
ハニカムラボでは学生インターンおよびアルバイトの募集もしています。こちらの採用ページよりお気軽にご連絡ください。 
https://www.special.honeycomb-lab.co.jp/recruit   

Posted by YamazakiAika on 2018/06/15 under misc

【Cocos2d-xアプリをUWPへ移植②】元ネタアプリをWindowsでビルド

こんにちは、kiyokazkです。 前回は、Cocos2d-xの新規プロジェクト作成時にできるサンプルプロジェクトをVisual Studioでビルド&実行するところまでできました。この調子で行けば対象のゲームアプリもさくっとビルド&実行できてしまうんじゃないかと思ってしまうくらい簡単(ただコピーしてWindowsに持ってきただけ)でした。 移植元ネタアプリのプロジェクトでレッツトライ さて次はいよいよ移植元ネタアプリのプロジェクトを持ってきてみます。
既存の元ネタプロジェクトにもproj.win8.1-universalフォルダが自動的に出来ていて、その中にソリューションファイルが入っているので開きます。ただ、このままの状態だとソリューションの中に必要なファイル(自分のアプリ用に追加している各ソースファイル)がない状態なので、Classesフォルダに対象となるソースファイルを追加します。Classesフォルダはすでにあるので、対象ファイルをドラッグ&ドロップでOKです。 さて、この状態でビルドすれば上手くいけば動くはずですが・・・実際にビルドしてみるとやはりたくさんのビルドエラーが出ました。
というわけで、次はこれらのビルドエラーをひとつずつ対処していきましょう。 ビルドエラーに対処 ■AudioEngineがない 今回の移植元アプリのcocos2d-xのバージョンは3.4なんですが、どうもVisualStudioのソリューションにはAudioEngineが入ってないみたいです。ソリューションに追加してみようといろいろやってみましたが、どうもうまくビルドできないので今回はAudioEngineを使わない方向で行くことにします(上手く追加できたとしてもこのバージョンではWindows側の実装がアヤシイ気もするし)。 移植元プロジェクトでは、Audio関係はAudioManagerというクラスにまとめているので、その中でAudioEngineを使わないようにするだけでいけそうです。いずれは、cocos2d-xのバージョン2の時代からあったSimpleAudioEngineというクラスを使用する形に書き換えようかなと思いますが、とりあえずはバッサリとカットしておきましょう。 ソースは別のプラットフォームでも共用できるようにちゃんとプラットフォームごとのdefineを使って切り分けます。
プラットフォームごとのdefineはCCPlatformConfig.hに定義されていて、今回のWindows版は以下が有効になってるようです。 #define CC_PLATFORM_WP8 13 #define CC_PLATFORM_WINRT 14 なので、こんな形でWindows版ではとりあえず何もしないようにしちゃいます。 #if (CC_TARGET_PLATFORM == CC_PLATFORM_WP8 || CC_TARGET_PLATFORM == CC_PLATFORM_WINRT) //Windows版では何もしない int AudioManager::play(std::string file) { return 0; } #else //AudioEngineを使って音を鳴らす int AudioManager::play(std::string file) { return AudioEngine::play2d(file); } #endif ■改行コード 移植元アプリのソースファイル、ヘッダファイルは改行コードがCR+LFではないので、//コメントの次の行も改行されず軒並みコメントとみなされてしまってエラーが出ているので、エラーが出ているファイルの改行コードを変更します(全部のファイルを変えてしまう方が今後を考えると良いと思います)。 具体的な変更箇所は、 ファイル→保存オプションの詳細設定から、「現在の設定」を「CR LF」に変更 でOKです。 ■その他 あとは、元々はiOS用にしかビルドしてなかったので、ランダム関数にarc4random()を使っていました。が、これはiOSにしかないので、使っている部分をrand()に置き換えます。今後のことを考えると、ランダム関数をプラットフォームdefineで切り替わるようにしておくと良いと思います。 #if (CC_TARGET_PLATFORM == CC_PLATFORM_WP8 || CC_TARGET_PLATFORM == CC_PLATFORM_WINRT) int randValue = rand() % 4 + 1; #else int randValue = arc4random() % 4 + 1; #endif ビルドが通った! 上記もろもろを修正して、ドキドキしながらビルドしてみると無事にビルドが通りました!あーんど、ワクテカしながら実行すると…実行できました!ちゃんとタイトル画面が表示されて、クリックするとゲームが始まります。
・・・が、アイテムを取った瞬間、見事にアプリが落ちます。
ということで、次回はここの部分を追求してみたいと思います。

Posted by kiyokazk on 2016/04/20 under Development

【Cocos2d-xアプリをUWPへ移植①】元ネタアプリの準備と環境構築

こんにちは、kiyokazkです。 さて、勝手に”連載”としちゃいましたが、Surface Pro 4も借りたことだし、マイクロソフトからの依頼である「Cocos2d-xアプリを色々と調べながらUWPへ移植」について実際に進めていくことにしましょう。進める方針としては前回の最後に決めた方向でいきます。 そもそもUWPってなんなのさ? ここまでさらっと「UWPへ移植」って書いてきましたが、そもそもUWPってなんなんでしょうか。
ちゃんとした説明はWindowsデベロッパーセンターの該当記事に任せるとして、UWPとは”ユニバーサルWindowsプラットフォーム”の略で、Windows 8で初めて導入された、ユーザーがすべてのデバイスで便利にアプリを使うための考え方をサポートするプラットフォームのことのようです。 うーん、分かるような分からないような、イマイチすっきりとはしない感じは残りつつも、すごく大雑把に簡潔に言うと、「Windowsストアで配布されてて、PCとかモバイルとかのWindows 10環境で同じアプリが使えるような仕組み」みたいな考え方でいいのかな。少なくともWindows 10のコアAPIとかアプリパッケージの概念を使うことで、PCだろうがモバイルだろうが動作するアプリをWindowsストアで配布することができるみたい(つまり逆に言うと、PCでもモバイルでもちゃんと動作するようにしないと申請に通らないということなんでしょう)。この”Windowsストアで配布するアプリ”というのを当面の目標とすることにしましょう。 移植元ネタとなるゲームアプリ さて、今回移植の元ネタとなるCocos2d-xアプリですが、昔、練習用に作ってみたシンプルなゲームアプリを掘り起こして使ってみることにします。当時iOS用に作ったアプリだったので、ひとまずMac+Xcodeでビルドして動作するところまで確認してみました。 よかった、ちゃんと最新のXcodeでもビルド&実行できました。
こんな感じの強制スクロール系横スクロールアクションゲームです。ひたすらゴールを目指して敵を避けつつ進みます。 まずはこのシンプルなゲームアプリをWindowsで動作させることを目指します。 プロジェクトファイルと開発環境の構築 次にWindows側の準備をしましょう。 Cocos2d-xプロジェクトファイル Cocos2d-xはプロジェクト内にCocos2d-x自体のソースコードを全部持っているので、特にCocos2dのインストールとかはしなくて大丈夫そうです。Cocos2d-xでプロジェクトを作成すると、いろんなプラットフォーム向けのプロジェクトファイル(Xcode用のプロジェクトファイルとか、Visual Studio用のソリューションファイルとか)が自動的に作られるので、Macで作成したCocos2d-xプロジェクトをそのまま持ってきて使うことにします。 ビルド&実行環境 UWPアプリを作成するためのビルド&実行環境としてはVisual Studioが必要です。無料のVisual Studio Community 2015で問題ないのでこちらをインストールすることにしましょう。
Visual Studio Communityページ まずは空のサンプルプロジェクトで実験 開発環境が準備できたら、まずはCocos2d-xで新規プロジェクト作成時に作られる(ほぼ)空っぽのサンプルプロジェクトを使って試してみましょう。 iOS版はこんな感じです。いわゆるHello Worldですね。新規プロジェクトを作って動かしただけなので当然特に問題もなく動きました。 さていよいよWindowsです。このプロジェクトファイルをまるごとコピーして持ってきて、とりあえずproj.win8.1-universalフォルダにあるソリューションファイルを開きます。ちゃんと開けたらそのままビルドして実行! なんかウインドウサイズは違いますが、そのままでビルドして実行までできました! 移植と大げさに言ってたけど、対象のゲームアプリについてもやってみたらそのまますんなりいけてしまうかも…?
と言ったところで、今回はここまでにします。

Posted by kiyokazk on 2016/04/10 under Development

UnityのHingeJoint2Dについて その2

こんにちは。ハニカムラボインターンのwalzerです。 (下の方で英訳しております) (english description is below) 前回の続きで、HingeJoint2Dの伸びる、切れる、について調べようと思いました。 (前回の記事はこちら) この前作った振り子の鎖に負担が掛かりすぎると(振り子の速度に重さ)伸びたり切れたりするので、それは僕の書いたスクリプトによる物なのか、あるいはUnityのHingeJoint2Dがそういう物なのかを分析しようと思いました。 そのために、今度は2Dオブジェクトを二つのみにし、同じくHingeJoint2Dで繋げました。
オブジェクトが落ちない様に、上のオブジェクトのRigidbody2Dという物理コンポーネントをIs Kinematicに設定し、下のオブジェクトの重さを最大まで上げました。 (さらに…)

Posted by walzerleo on 2015/07/10 under Development

UnityのHingeJoint2Dについて

初めまして。ハニカムラボインターンのwalzerです。 スイスと日本のハーフで、日本で仕事をしにハニカムラボへ入りました。
一応ドイツ語、日本語、英語と話せます。 (下の方で英訳しております) (english description is below)
ゲーム大好きです。むしろ二次元の方が現実より好きって位です。 HingeJoint2Dを利用した鎖の作り方 そういう訳で今社内でゲームを作っております。使用しているのはUnityで、言語はC#です。
(さらに…)

Posted by walzerleo on 2015/07/06 under Development

XNAでゲーム開発・新宿伊勢丹で「ゆらゆらほし」

こんにちは!koichiです。 Clash of Clans やってますか?
私は戦闘せず、ひたすら町づくりするSim of Clansになってます。 今日は、またまたぴゃるこさんとコラボしたというお知らせです。
「ぴゃるこ」さんは以前から仲良くしてもらっている渋谷パルコのショップさんです。
店舗もほんわかした雰囲気でかわいいです。
前にも店舗で展示するアクションゲームやブロック崩しゲームを開発させていただきました。 さて今回は!? 新宿伊勢丹7階にて6月25日から開催中!
『ISETAN×KORI-SHOW 七夕の過ごし方「ゆらゆらほし」』
にて展示中のゲーム「ゆらゆらほし」!!!
(さらに…)

Posted by koichi on 2014/06/26 under Development, misc

ブログ画像

2Dと3Dの捉え方

こんにちわ、koichiです。 先日、ちょっと面白いことがありました。
ゲームに関する打ち合わせの際に2Dするのか3Dにするのかという類いの話がありまして、
お世話になっているとある会社の方が、
「世の中ではアメーバピグを3Dだという人もいます」
と。
(さらに…)

Posted by koichi on 2014/04/14 under Development

LeapMotion + enchant.jsで弾幕系シューティング作ってみた(さらにその後)

こんにちわ!koichiです。
前回のものからバージョンアップをすべく、またまたいじってみました。 弾のバリエーション 弾が一方向とか寂しい。
なんかこうシューティングらしい弾のバリエーションがほしいものです。
・・・
・・
よく言うワイドショットとかありかも!?
つけてみることにしました。 (さらに…)

Posted by honeylab on 2014/03/07 under Development

LeapMotion + enchant.jsで弾幕系シューティング作ってみた(その後)

LeapMotionが恋しくなり、以前、kiyokazkが作っていた弾幕系シューティングをちょっといじってみました。 ボムの追加 弾幕系と言えばボム。
もう避けられないというときに使うアレです。
つけてみることにしました。 (さらに…)

Posted by honeylab on 2014/02/13 under Development

LeapMotion + enchant.jsで弾幕系シューティング作ってみた

2年近く前にPreOrderしていたLeapMotionがようやく届きました。しれっと。
サイトではもう普通に購入できるようになったみたいですね。なんだったんだ、PreOrder。ちゃんとデベロッパー登録もしたからもう少し早く届くと思ったんだけどな〜。 で、せっかく届いたのでまずは練習がてら試しに何か作ってみようと思ったので、ウチの社員が以前練習で作った弾幕系シューティングを改造してLeapMotionを使って指で操作できるようにしてみました。 LeapMotion持ってる方はこちらに置いておくので遊んでみてください。 弾幕系シューティング LeapMotion版
■操作方法
画面クリックで開始
LeapMotion上に指一本で、前後左右に移動で自機が移動します。 (さらに…)

Posted by kiyokazk on 2013/07/24 under Development