ブログを投稿するのは初めてになります。フィードテイラーでは今一番新入りのアンコウテルオ(通称アンテル)です。
さて、入社して間もなく社内1週間ハッカソン「超聖域」を行うことにしました (7月1日 〜 7月7日)というイベントが開催されました。
タイトルにもある通り、私はスライドパズルというカジュアルゲームを作ってみました。
作ったもの -> スライドパズル
スライドパズルって何?って方はGoogle画像検索してもらえれば「あーこれね!」ってなるんじゃないでしょうか。そうです、よくお土産物屋なんかで見かけるパズルの玩具ですね。15パズルとも呼ばれます。
で、少々殺風景ながら実際の画面がこんな感じ。
デバッグ表示なんかも出たまんまでありますが、デモということでご了承ください。
使ったもの -> Cocos2d-x(C++)
Cocos2d-xとは、クロスプラットフォームでの2Dゲーム開発に特化したゲーム開発フレームワークです。国内でもモンストなど数々のヒットゲームアプリでも使用されています。
クロスプラットフォーム対応ということで、iOS、AndroidなどOSの垣根を越えた開発が容易なため、個人で開発されてる方々にも人気が高い印象。
Cocos2d-x: オープンソースゲーム開発プラットフォーム
このCocos2d-x、言語としては以下の言語で開発できます。
- C++
Javascript
Lua
今回はC++で開発しました。理由はC++を書いてみたかった!というだけです。
個人的な超聖域に対してのコンセプト
――未習得技術を使って一週間(5日間)でどこまでできるか?
実際まったく新しいことを、これだけの期間取って1から習得(学習)するというのは、最近ではなかなか無かったので、久しぶりにどこまで出来るか試してみたいという気持ちがありました。
ちなみに私は普段Webエンジニアとして働いています。なのでC++を触る機会は普段0です。
もちろん基本的な文法はWebの言語にも通じるところは多々ありますが、画像を表示->アニメーション->その結果を判定して……など、普段Webのバックエンドの開発とは実装する内容が違うので、まっさらな感覚です。
果たして動くデモまで作ることが出来るのか……という不安を抱えながらでしたが、最低限デモ出来るまでに作ることができました。
成果物
ではどんな感じで出来上がったかというのがこちら。
一応それっぽく形だけタイトル画面も用意。
隣り合ったマスが空いているパネルをタップすると、空いている方向へスライドアニメーション。
「15」を動かせば完成というクリア間近の状態。
すべて然るべき位置に揃えると「16」のパネルが埋まってクリア表示。
この後もう一度プレイする or タイトル画面に戻るというだけ。お土産物の玩具の要件を満たしたくらいの感じですね。
やはりデジタルなゲームとして作る以上はちょっと寂しいので、タイマーを付けたり、パズルのバリエーションを増やしたり、あとはもっと見た目をリッチにしたりと色々やり残した感はあります。
拘ったポイントとしては、初期のパネル配置。これは完全にランダムで配置してしまうとクリアできない詰みの状態が発生しまので、ちゃんとパネルが揃った状態で配置してから、辻褄が合うようにシャッフルしています。
さいごに
一週間まるまる「業務以外で何してもいいよ」というのは、楽しみな反面いざ直面すると、何をするかの選択など、なかなかに戸惑うこともありました。
今となっては、ここはもっと準備しておけば!といった反省点もありますが、新しいことを1からやってみてリフレッシュにもなったし、自分の幅も少しは広がったと感じています。
そして、こういった取り組みを業務の時間を使ってチャレンジさせてもらえる環境が非常にありがたいと思います。