毎日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までで折れてるので大分体験版で遊べるのでは無いかと…。