クリスマスプレゼントで Geometry Dash を 60% OFF で買った 【第二弾】

こんにちは。

Besiege に続き、クリスマスプレゼントで、
もう一つゲームを買いました。

Geometry Dash です。

geometry-dash-steam

Steam の Winter Sale で、60% OFF、159円 で売っていました!

Save 60% on Geometry Dash on Steam
Jump and fly your way through danger in this rhythm-based action platformer!

さっそくプレイしたのですが、これが超絶難しいです・・・・

geometry-dash

このようなステージを、ジャンプで進んでいくのですが、
一回でもミスったら最初からになってしまう、という、
かなりの鬼畜ゲームなのです。

最初の5ステージくらいは簡単ですが、
徐々にロケット・半重力などのギミックが増えていき、難易度も上がっていきます。

geometry-dash-11
11個目のステージをちょっとやってみましたが、
途中で進行方向が変わったりしてよくわからなかったので開始 10 秒くらいで挫折しましたw

コツ

Normal Mode のほかに、Practice Mode という、
ミスっても途中から始められるモードがあるので、
それで何回か練習した後、Normal Mode でやると、
割と楽です。

ちょっと反応が遅い?

曲のリズムにステージがあっているところがありますが、
PC のスペックの問題なのか、ジャンプの反応が 0.25 秒くらい遅いです。
操作方法で、マウス・キーボード・コントローラーがありますが、
コントローラーが一番やりやすいと思います。

難しいですが、クリアできた時の達成感は半端じゃないので、
これからも続けてやっていこうと思います。

第一弾はこちら

クリスマスプレゼントで Besiege を 30% OFF で買った 【第一弾】
こんにちは。メリークリスマス!!(1日遅れ)いやー、今年は旧正月になる前にクリスマスプレゼントを買えましたw去年はなんか gdgd してたらセールが終わっちゃって...

クリスマスプレゼントで Besiege を 30% OFF で買った 【第一弾】

こんにちは。メリークリスマス!!(1日遅れ)

いやー、今年は旧正月になる前にクリスマスプレゼントを買えましたw

去年はなんか gdgd してたらセールが終わっちゃって、大変でした・・。

Cities: Skylines がセールだったから買ってみた
やっとクリスマスプレゼントが買えました!!Cities: Skylines です。Steam で、旧正月セールが行われています。Cities: Skylinesも、60%Off で売られていたので、買い...

今年は、Steam でセールになっている安いゲームをたくさん買うことにしました。

第一弾は Besiege です!

Steam で 30% オフ:Besiege
Besiege is a physics based building game in which you construct medieval siege engines and lay waste to immense fortresses and peaceful hamlets. Build a mach...

besiege-winter-sale

Winter Sale 中なので、30% OFF で、558 円になっています!!

というわけで、さっそくプレイしました。

動作を軽くした

去年の Cities: Skylines と同様、ぼくの PC だとちょっと重かったです。
Windows 10 の都合上、GPU をオフにしているのが原因だと思うんですけど・・・・

とりあえず、設定を変更して軽くしました。

besiege-lite

ほとんどすべて無効化しました。

SSAO はないとグラフィックがわるくなってしまったのでつけました。
SHADOWS は空中戦の時につけるようにします。

いろいろ作ってみた

besiege-catapult
こんなのとか、

besiege-bom-car
こんなのとか、

besiege-drone

こんなのを作って、とりあえず、ZONE 22 までクリアしました。

どうやって作ったのかなどは、また今度紹介します!

最後に

Besiege 超楽しいです!
しかし、ずっとこれをやっていると、時間がたつのが早くて、
冬休みがあっという間に終わってしまいそうなので、
ほどほどにプレイするようにします!!

【MIDI】セカオワの Error の間奏を作った

こんにちは。

今回は SEKAI NO OWARI 「Error」の間奏を作りました。
音がピコピコしていて、すごく好きな部分です。

メロディ部分は音が多すぎて、自分で全部わからなかったので、

https://www.youtube.com/watch?v=gX3keesEbp4

上の動画を参考にし、それをピコピコ音に変えました。

ベースとドラム、最初の音は自分で耳コピしました。

よかったら聞いてみてください。

ハルスター・アクション(beta)

2014年~2015年にかけて作っていたゲームです。
Unity で作りました。イラストは友達が作りました。

ルール

マリオのようなアクションゲームです。
ステージにあるぶどうを集めたりしながら、ゴールを目指します。

操作方法

  • ←・→ : 移動
  • SPACE : ジャンプ
    ゲームを進めると、そのほかのアクションができるようになります。

ダウンロード

クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 – 非営利 – 改変禁止 4.0 国際 ライセンスの下に提供されています。

ダウンロード
上のリンクを開き、右上のダウンロードボタンからダウンロードしてください(Zip形式)
解凍し、 game.exe を開くと、ゲームが起動します。

※このゲームはかなりの鬼畜ゲームだそうです。
 製作者によりクリアできることは確認されておりますが(W0を除く)、
 難しいそうです。がんばってください!!

※このゲームは beta 版です。ステージに不具合がある場合があります。
 また、現在 Unity でなく、別のフレームワークでの開発を試しています。
 更新はそちらで行うかもしれません。

工夫したところ

ステージのシーン

ステージ(W1-1、W1-2)ごとにシーンを作るのではなく、
ステージの状態を CSV で保存し、それを利用するようにしました。

【MIDI】「クロノ・トリガー」を耳コピしてみた

MIDI 系では初めて動画を投稿しました。
Domino を使用して、クロノ・トリガーの名曲「クロノ・トリガー」を耳コピしました。

後半の部分は、切ないイメージがきちんと出るように、
主旋律をストリングスとフルートで演奏するように工夫しました。

よろしければお聴きくださいー

【Emscripten】 C++ でJSの関数を関数ポインタとして使う

ものすごく久しぶりの投稿となってしまいました。すみません。

今回は、Emscripten で C++ を実行するときに、
JSの関数を関数ポインタとして登録し、それを呼び出せるようにする方法を紹介します。

実行環境

  • Ubuntu 14.04.5 LTS
  • emcc 1.36.0
  • clang version 3.9.0

やりたいこと

  • JS の関数を set_js_listener 関数を使用して登録する
  • call_listener 関数を呼び出した時、登録した JS の関数を実行する

手順1: set_js_listener、call_listener 関数を実装

typedef void(*JS_LISTENER)();
JS_LISTENER js_listener = NULL;

extern "C"
{
  void set_js_listener(JS_LISTENER f)
  {
    js_listener = f;
  }
}

void call_listener()
{
  js_listener();
}

EMSCRIPTEN_BINDINGS()
{
  emscripten::function("call_listener", &call_listener);
}

typedef を利用して、型を簡略化して使用できるようにしています。

また、set_js_listener は、EMSCRIPTEN_BINDINGS は使用せず、
ビルド時に EXPORTED_FUNCTIONS で js から呼び出せるようにします。
そうしないと、次のようなエラーが出ます。
emscripten_failed_js_pointer
(EMSCRIPTEN_BINDINGS、allow_raw_pointers を使用した場合)

手順2: ビルドする

$ emcc main.cpp -std=c++11 -s RESERVED_FUNCTION_POINTERS=1 --bind -s EXPORTED_FUNCTIONS="['_set_js_listener']"

それぞれの引数は、次のような意味があります。
std=c++11 を指定しないと、embind を使用する際にエラーが出ます。
-s RESERVED_FUNCTION_POINTERS=1 : 1つの関数ポインタを使えるようにします。
--bind : embind を使えるようにします。
-s EXPORTED_FUNCTIONS="['_set_js_listener']" : set_js_listener を js から呼び出せるようにします。

手順3: 関数ポインタをJSで作成する

var fnPointer = Runtime.addFunction(function() {
  console.log("called!");
});

// 登録する
Module.ccall("set_js_listener", "void", [], [fnPointer]);

関数ポインタは、Runtime.addFunction を通して使用します。
set_js_listener は、Module.ccall を使用して呼び出します。

手順4: 登録した関数ポインタを呼び出す

JS から関数ポインタを呼び出します。

Module.call_listener();

emscripten_called_js_pointer

called! とコンソールに出力されたので、登録した関数が呼び出されたことがわかります。

コード

今回実行したコードは次のようになりました。


参考

http://stackoverflow.com/questions/12358877/passing-js-function-to-emscripten-generated-code