逆求人レポ

1/20に開催されたゲーム逆求人に参加してきました。
次回参加することが有るかは今のところ分からないのですが、今後の面接などでも役立ちそうな学びがあったので、振り返りを。

良かったこと(キープすること)

  • 作ったゲームへの反応が好感触だった
  • 学生間の面談練習で得られたものが沢山あった
    • 企業の方からは指摘されないけど、学生同士なら指摘出来るみたいな
  • 他の学校、学生が作った作品がハイレベルでライバル心に火が着いた

悪かったこと(問題点)

  • エンジンや描画ライブラリを使わずに、DirectXで一から書いている理由みたいなのを伝えられなかった
    • DirectX9/11で作っていますって言っても伝わらない、アピール的に弱い
    • 後で友人から聞いたけど、どうせ学校内ライブラリとか使ってるんでしょみたいに思われてるらしい
  • そもそもプレゼンの仕方が不味かった
    • 絵が無いと伝えづらいのだけど、手元のスマホでプレゼンのページを操作してPC画面はあちら側に向けていた
    • 自分と企業の人の間に壁を作った状態になってた
    • 向こう側からはスマホ観ながら、ずっと何か詠唱しているような奇妙な姿に見えたらしい…(あかん)
  • モバイル向けゲームを開発しているところをメインに就職を考えていることを伝えられてなかったこと
    • そもそも自分の作品だとそれを全く感づいてもらえない
  • 質問に対して答えに窮することが多々あったこと
  • もっとゲームを触ってもらえばよかった
    • 実際にゲームを触ってもらえば、こんな考えでここを実装したとか色々話せることがあった
  • ビジョンが抽象的過ぎて突っ込まれた
  • プレゼンの準備を怠りすぎた
    • 一晩でガーッと書いた
    • 表題のページに前日の日付を書き残してて(18.01.19 逆求人)、「1日でプレゼン作った?」って突っ込まれた…
  • マナーがなってなかった
  • エンジニアとしてのアピールが弱かった
  • 他の学生の作品をもっと観察すべきだった
  • 面談相手のことを考えれてなかった
    • エンジニアの方なのか、人事担当の方なのか
  • 一般の人(ゲーマーでも無い、クリエイター側でも無い)人に触ってもらった実績があまり無かった

次回からやること

  • エンジンなどを使わずに実装した理由を説明する
  • プレゼンの仕方を改善する。具体的にはPCをサイドに置いてこちら側相手側から見えるようにする、目を合わせる、声をはっきりと、相手に語りかける
  • 質問に答えられるように自分の中で回答を用意しとく
  • プレゼンで動画を見せるだけでは無くて、実際にゲームを触ってもらう
  • ビジョンは具体的にする
  • プレゼンは構成を考える、事前に他人に見てもらう
  • 名刺交換などのマナーは調べておく
  • エンジニアとしてのアピールをしっかりする。触ってきた技術、問題の解決法を自分の中で言語化しておく
  • 名刺などから相手の役職に合わせた話題などを考える
  • 一般の人に触ってもらう機会を増やす、具体的にはイベントに参加するなど

まとめ

結果としては残念でしたが、得られるものは沢山あったので、参加してよかったです。このような場を提供していただいた、ジースタイラスのみなさま、また面談相手の企業のみなさま、本当にありがとうございました。

Google Test入門 + ReSharper

この記事はHAL Advent Calendar 2017、23日目の記事です。

TL;DR

続きを読む

毎日VisualStudioと戯れている学生にオススメなReSharper

専門学生になってから人の顔よりVisualStudioと顔を合わせている時間の方が長い、やしへいです。最近になって開発が全然進まずに力が欲しかったので、JetBrainsと契約しました。

ReSharper?

www.youtube.com
JetBrains社が開発してるVisualStudioのExtensionです。C#, VB, JS, TS, C++などに対応しており、コード解析、リファクタリング、コード生成、コーディングスタイルの矯正など、様々な機能を取り揃えています。つまるところ、今以上にVisualStudioがプログラマのお世話をしてくれるようになります。

How much?

それが何と学生なら無料で使えます*1

(https://www.jetbrains.com/shop/eform/students)から学生ライセンスの申請が出来ます。申請には学校から発行されているメールアドレス*2が必要です。フォームに入力したメールアドレスにJetBrainsからメールが届くので指示に従いアカウントを作成しライセンスを取得します。

ライセンスを取得後、マイページ*3からReSharper*4インストーラーをダウンロードし、各バージョンのVisualStudioにインストールします。VisualStudioを立ち上げ、ライセンス認証を済ませたら後は自由にReSharperが使えます。

設定とか

ReSharper先生は、丁寧にも命名規則違反を調べて教えてくれます。

デフォルトの設定だと、例えばC++の場合、命名規則がsnake_caseで統一されているので、CamelCaseの人はそこら中に破線が入ると思います。ので、メニューから「ReShaper」→「Code Editing」→「設定する言語」→「Naming Style」からお好みの命名規則に変更しましょう。

この書き方はなってないよ!みたいな指摘も*5、項目ごとにon/offが出来ます。
「ReShaper」→「Code Inspection」→「Inspection Severity」から気になる項目を調整しましょう。

Introduction - Help | ReSharper
その他にも色々設定項目が有りますが、マニュアルが有るのでそちらを参考に設定するのも良いと思います。

それでは、ReSharperでより良いコーディングライフを!

*1:1年契約、更新が必要

*2:ac.jpドメインなどの

*3:JetBrains Account

*4:C++の場合はReSharper C++

*5:const化しろとか、C style castするなとか

絵が描けなくても何とかなるかもしれない、ゲーム制作

qiita.com この記事は、HAL Advent Calendar 22日目の記事です。

HAL大阪、ゲーム制作学科2年生の@yashiheiです。
@HIEMONに誘われたのですが、華やかな技術ネタが特に無かったので自分なりのゲーム制作で意識していることを書かせてもらいます。

プログラマーは絵が描けない?(一部例外を除き)

プログラマーは絵が描けないことが多いです。なので一人でゲーム制作をしている場合ぶち当たるのが、リソースの問題です。
気合でEDGEを立ち上げそれっぽい素材を作るのもいいですが、大変な労力が必要です。またはフリー素材をお借りするというのも手ですが、オリジナリティが損なわれてしまいます。

図形でそれっぽく魅せよう


上のゲームは、そんなプログラマーがリソース作るのがだるいと、テクスチャを一枚も使わずに作ったゲームです。 基本的な図形、丸と四角の組み合わせで、それなりの見た目になっているのが確認出来るかと思います。

ポイントとしては

  • 背景を暗く
  • 透明度を60%ぐらいにして図形を重ねる
  • パーティクルで見た目を華やかに
  • Easingでアニメーション

など、他にも基本的な図形でリッチに魅せる為の方法はあると思われます。(今のままだと少し画面が寂しい…)

Easingで動きを豊かに

Easing Function 早見表
ゲーム学科では、使っている人が少ないのですが、Easingは動きをリッチに魅せるにはとても有効な手段なので、ガンガン使っていきましょう。C++での実装も探してみればあると思います。

欠点

やっぱり表現の幅は限られますね…。
海外のインディーズゲームとか漁ってみると、ミニマリストな表現をされている方が結構居られるので、そちらを参考にしてみるのも良いかもしれません。

今度は3Dで魅せるぞ!

3Dでもプリミティブな図形を使った表現で、色々出来ないかなと模索中です。冬の3校合同コンテストでは金賞を取るので、色々盛り込めることは盛ろうと思います。ということで良いお年を!

Siv3Dを用いた全方位STGの実装について

Siv3D Advent Calendar 2015 - Qiitaの21日目の記事です。
この記事では、現在制作中の全方位STGの実装を大雑把に解説します。
コードはGitHubにて公開してます。yashihei/Alone · GitHub
記事内のコードは一部解説用に、実際のコードから書き換えてる部分もあります。

どんな感じのゲームなのさ

f:id:yashihei:20151221010427g:plain

Geometry Wars弾幕要素が加わった感じでしょうか。AREA 2048に影響を受けたようにも感じられます。

続きを読む

GitHubPages + Honoka + Jadeでサイトを作った

yashihei.net

前から作ったゲームなどを公開して置く場所が欲しいなと思っていて、まぁ特に強く必要性を感じてはいなかったので後でいいやーってなってたのだけど、暇だったので作ってた。

きっかけというか先日、先輩(id:windyakin)が公開されたBootstrapテーマを使って見たかったのもあった。honokak.osaka

Bootstrapを使うのは初めてだったけど、グリッドシステムさえ抑えれば特に難しいことは無くて、簡単に扱うことが出来た。Bootstrapの扱いやすさと適当に組んでもそれなりに見栄えがいい感じになるので、こんなに楽出来ていいのかなと感じたぐらいには楽だった。実際今回cssに関してはmarginをちょっと付けるだけで後は何もしてない。

んで、サーバーとか特に持って無かったのでGitHub Pagesを使った。なのでWordPressみたいなCMSは使えないのだけど、コンテンツ量が特に多くは無いしCMSを導入するまでも無いかなって思った。
ただHTMLを一々手書きするのは苦痛だったので、Jadeを使った。これが思ったより便利だった。

まず、Jadeが素晴らしかったのがページのレイアウトを継承出来ることだ。例えば、WordPressの場合、ヘッダはheader.phpからサイドバーはsidebar.phpからみたいな感じでモジュール化していくのだが、Jadeでもそのようなモジュール化はincludeで可能なのだが、それとは別にページ全体のレイアウトを継承することができる。実際にコードを見てもらうのがわかりやすいが、今回の場合複数ページのレイアウトをlayout.jadeで定義した。

あと、mixinが便利だった。元々JSONでゲームの説明文やurlなどを定義してeachで回して拾っていこうと思っていたのだけど、mixinを使えば手軽に繰り返すhtmlが生成出来た。mixinを使ったのがこれ。ただかなり適当に書いてるのでもっと良い書き方とかあるのかもしれない…。

ただJade使いどころが難しいかなというか、ブログとかつけたりもうちょっと大きなサイトになるとCMSとかが必要になるだろうし、HTMLを短く書きたいなら他にもHamlとかあるし…、けどjsなのでローカルで完結するし、手軽なのは良いのではと思う。モックアップとかを作るときに使うと良いかも。

ドメインどうするかなーって思って何かそれで1ヶ月経ってたのだけど、何も変哲の無いドメインにした。

と、かなり楽して目的に応じたサイトが作れたので楽しかったです。

避けることは楽しいことだ!凶悪難易度な避けゲー「Velocibox」


避けゲーってのは最高です!障害物をただ避ければいいだけ。面倒なルールは一切なし!
避けゲーといえば外せないのがSuperHexagon!あの6方から押し寄せる障害物を避けるだけというシンプルな、しかしながら凶悪な中毒性を持った避けゲーにハマった人も多いはず。そんな避けゲーの魅力に触れてしまったやられてしまった人にはお勧めなのがVelocibox。

まず驚かされるのはレベル1からの凶悪な難易度。流石にこれ脳の処理能力超えてるんじゃないかと思えるぐらいには障害物が押し寄せる。
難易度が凶悪な理由として、SuperHexagonではステージが2Dであり左右に避ければ良かっただけなのが、Velociboxはステージが3Dなのだ!左右に避けるだけでも精一杯だったのに、更に上下にも避けなければならない。情報量が多い。狂ってる。

f:id:yashihei:20150215194415j:plain

「Level 1 Begin」
「Level 1 Begin」
「Level 1 Begin」
……

数十回回して、うん、これもう無理だ。辞めよう諦めよう。SuperHexagonが多少出来るからって調子に乗ってしまったんだ。これは常人に出来る避けゲーではない。と何度か思いかけたのだけど、そういえばSuperHexagonのときも最初はこれ絶対無理ゲーだろ…とか思っていたのにHyper Hexagonestクリアまでなんとか辿り着けたんだ。諦めるなって信じて繰り返してたらコツが掴めてきた。

コツとしてはまず早めの回避行動。特に上下反転は思ったより対空時間が長いのでその感覚を上手く掴まなくてはならない。

次は徹底したパターン化。これはSuperHexagonでも同じことだけど、レベル毎に決まった障害物のパターンがランダムに出てくるので、各パターンを記憶して避け方をパターン化してしまえば安定してクリアすることができる。
またVelociboxは避けるだけではなく、レベルごとにキューブを6つ拾う必要があるのでそれを組み込んだパターン化が必要だ。

f:id:yashihei:20150215191039j:plain

itch.ioにレベル3まで遊べる体験版もあるので是非。steamの実績を見る限り8割ぐらいの人がレベル3までで折れてるので大分体験版で遊べるのでは無いかと…。