汎用ビデオゲーム記述言語VGDLとその処理系PyVGDL

2Dビデオゲームのメカクニスを記述するための言語VGDL (Video Game Description Language)というものを研究している人達がいる。 Towards a Video Game Description Language (pdf) ゲーム内AIなどを研究するために必要な言語仕様の提案として始まったようだ…

斬新なゲームメカニクスを目指した時の「やらかし」と「もがき」の制作過程が分かる本「組み立て×分解!ゲームデザイン」

組み立て×分解!ゲームデザイン 筆者のkuniさんから献本いただいた。 ひどくおおざっぱに言うと、斬新なルール、ゲームメカニクスを持つゲームを作るに向けて、これは面白いだろうと思って作ったルールがイマイチな時、そこからどうやって工夫することで面白…

ES2015のProxyを使った関数呼び出しのフック

ES2015にはProxyという仕組みがある。 Proxy Proxyを使うことでオブジェクトへの書き込みや読み込みをフックすることができ、メタプログラミング的なことがJavaScript上で実現できるようになる。 例えば、関数呼び出しをフックして呼び出し前に何か別の処理…

クリックだけでプログラムが作れる夢のプログラミング環境作った

ウソです。いやウソではないか……誇張です。 sarad p5.js demo 上のデモ開いて、左クリックでコード生成、右クリックでコード削除。運が良いと何かのグラフィックスを描くプログラムができる。あまりに何も描かないようだったら一旦右下の[Reset]を押して下さ…

無限ランダムひどいアクションゲーム生成器への道

ゲームそれ自体を自動生成してくれる機械が欲しい。開発者はその機械が生成するゲームを遊んで良ゲーなら採用、クソゲーなら捨てる、その作業だけでゲームが作れる。夢の機械だ。 人が後で見て取捨選択する前提なら、出来上がるものの大半ではクソゲーでもい…

SVGのPathの当たり判定を取る方法

Pathで囲まれたSVGの当たり判定を取ることができれば、ベクター形状の間で正確に当たり判定が取れる。現代版1ドットのエクスタシーを魅せることが可能だ。以下の様なコードを書いた。 stars SVGPathCollider SVG自体にはバウンディングボックスを使ったおお…

Elmのエラーメッセージが分かりやすくなっている

だいぶ前にElm触ってゲーム作った時はElmに色々と不満があったんだけど、あれからElmもだいぶバージョンアップして0.15.1ではエラーが人フレンドリーになったらしい。前回の不満がどれだけ解決されているか調べてみよう。 関数の引数の数間違いが謎の型エラ…

物理エンジンMatter.jsをテキストでレンダリング

CRTっぽいテキスト画面をWebGLで作るLocatePrintを使って物理エンジンをレンダリングするというデモも作った。 物理エンジンはMatter.jsを使っている。Matter.jsはもちろん自前のレンダラを持っているんだけどそれを他のレンダラで差し替えられる。 差し替え…

昔のCRTっぽい画面をWebGLで作る

マイコンをつないだテレビみたいな画面を作りたいと思ってLocatePrintっていうコードを書いた。 こんな画面が作れる、し遊べる。locate, print, colorなどの命令でテキストを書けます。というかテキストしか書けない。 こういうブラウン管っぽい画面を作るに…

BLCK4777の絵の作られ方も知っておきたい

JavaScriptデモBLCK4777の音の作られ方について前に調べたので、ついでにその絵の方もどのように作られているか調べてみた。多分に憶測が入っているけど、多分以下の様な感じ、のはず。 前の記事で追ったAudio生成部分を除いてコードを整理してみると、以下…

JS1KデモBLCK4777のせめて音を作ってる部分だけでも分かりたい

今年のAssembly 2015 1kb intro勝者のJavaScriptデモBLCK4777、わずか1023 bytesでできているとは思えない美しいデモで話題になった。 1023 bytes版のファイルはPNG bootstrapping techniqueで圧縮されているそうで見た目はバイナリである。見ても分からない…

New 3DSブラウザのゲーム開発向けJavaScript API対応具合チェック

Newニンテンドー3DS インターネットブラウザーの主な仕様を見ると HTML4.01/HTML5/XHTML1.1/Fullscreen/Gamepad/SVG/WebSocket/Video Subtitle/ WOFF/Web Messaging/Server-Sent/Web Storageの一部/XMLHttpRequest/ canvas/Video/DOM1-3/ECMAScript/CSS1/CSS…

GitHubで行にリンクを張る

ファイルへのリンクの後ろに#L21とか#L21-L23とかつければOk。 https://github.com/abagames/phaser_p2_threejs/blob/master/src/app.ts#L21-L23 ただこれだとファイルのバージョンが変わった時に行がずれてしまうことがある。なのでGitHubのショートカット…

機能モジュールのパイプラインでキャラを制御する

Phaserをthree.jsで描画ネタのサンプルコードでもう一つ実験したのは、ゲーム内のキャラを機能のモジュールを組み合わせて制御できないかということ。例えば、上から降ってくるバルーンは、以下のコードのようにした。 interface Baloon extends Phaser.Spri…

2DゲームエンジンPhaserの描画をthree.jsで3Dにする

小さなJavaScriptライブラリをガッチャンコしてゲームエンジンっぽいことをさせるのは可能なのかの微妙に続き。2DのHTML5ゲームライブラリPhaserを使うけど、描画は3Dライブラリのthree.jsを使いたい、みたいな組み合わせは、ちょっと工夫すればできることは…

小さなJavaScriptライブラリをガッチャンコしてゲームエンジンっぽいことをさせるのは可能なのか

ゲームを作る時にモノリシックなゲームエンジンを使う方法の他に、ブラウザゲームのプロトタイピングに役立つJavaScriptライブラリで述べたようなライブラリ群を機能ごとに組み合わせて作る、っていうアプローチも考えられる。そうした方が、グラフィックス…

ブラウザゲームのプロトタイピングに役立つJavaScriptライブラリ

ブラウザで動くゲームのプロトタイプを作るとき、もちろんPhaserとかの機能満載のゲームエンジンを使ってもいいのだが、こういったエンジンは多彩な機能に応じてAPIが豊富すぎて、使いこなせるようになるまでが若干面倒なことがある。そういった時、もっと軽…

手続き脳人間がWeb向け関数型言語elmを使ってゲームを書こうとしてみた

がまだ私には難しすぎる気がするよ…… Elm - functional web programming (http://elm-lang.org/) ElmというFRPやろう (http://qiita.com/jooex/items/89ab4bf7c953a6f40069) elmはHaskellに似た構文を持つ関数型言語のAltJS。コンパイルするとJavaScriptが生…

今年面白かったゲーム

Risk of Rain (http://riskofraingame.com/) LUFTRAUSERS (http://luftrausers.com/) Mini Metro (http://dinopoloclub.com/minimetro/) Space Run (http://spacerun-thegame.com/) プチコン3号 (http://smileboom.com/special/ptcm3/) The Sea Has No Claim…

今年50のゲームを作って分かった面白いゲームを作る方法

なんてのは無いということが。 I Have Created 50 Games in 2014 (http://www.asahi-net.or.jp/~cs8k-cyu/blog/2014/12/12/games-in-2014/) 作ったものは上のページにまとめた。全ゲームのスクリーンショットがアニメGIFになっていて、クリックすればそのゲ…

最新ゲーム機の裸眼立体視をマイコン時代のBASICで堪能できるプチコン3号

ニンテンドーDS用プログラミング環境プチコンの第3弾は3DS用である。 プチコン3号 (http://smileboom.com/special/ptcm3/) しかも裸眼立体視対応である。1000円を握りしめてニンテンドーeショップに駆け込み、プチコン3号を買って、以下のプログラムを打ち込…

リワードがスコアだけとはなんという古めかしいゲームじゃ

昨日ゲームのリスク/リワードのうちリスクの話だけ (http://d.hatena.ne.jp/ABA/20141017#p1)したけど、リワードの話はしなかった。いやしなかったというか、私が最近作ってるミニゲームにおけるリワードは「スコアが入る」以外なにも無いので、しようがな…

ミニゲームに適切なリスクとリワードにはどんな種類があるかね

ゲームにおけるリスクとリワード、つまりプレイヤーがリスクを取るとリワードが得られるという仕組みは、ゲームの面白さを増すのに重要と言われている。 Extra credit! (http://www.supermeatboy.com/16/Extra_credit_/) Risk/reward is a system establishe…

HTML5ミニゲーム作り向けライブラリMGL.COFFEEを作った

またゲームエンジンを作っているのか、きみは。 MGL.COFFEE (https://github.com/abagames/mgl.coffee) 前にHaxeでFlashのミニゲームというかプロトタイプを作るためにmgl (https://github.com/abagames/mgl)というゲームエンジンというかライブラリを作って…

一週間に一つミニゲームを作り続けるのに役立つひどいゲームをかろうじてましなゲームにする力

最近一週間で一つゲームを作るってのにチャレンジしてるよ、という記事をちょいちょい見かける。 Game A Week: Getting Experienced At Failure (http://www.gamasutra.com/blogs/RamiIsmail/20140226/211807/Game_A_Week_Getting_Experienced_At_Failure.ph…

2013年作ったゲーム遊んだゲーム

ちょうど20個なので例年の30個ペースには届いとらん。 WASD THRUST (http://wonderfl.net/c/cUIn) I'M FRONTLINE (http://wonderfl.net/c/yCOI) REVGRAV (http://abagames.sakura.ne.jp/flash/rg/) LONG EDGE WINS (http://abagames.sakura.ne.jp/flash/lew/…

ミニゲームのステージを自動生成した時の難易度調整はどうする?

最近はよくて10分遊んでもらえれば上出来みたいなミニゲーム作っているが、それでも数回は繰り返し遊んでもらえるくらいのリプレイアビリティは欲しい。でも面倒な作り込みはしたくない。と考えた結果、ステージは無限に自動生成、1ステージは10秒くらい、残…

ゲームは一日一時間半!

遊ぶ方じゃなくて作る方ね。 31 games in 31 days (http://zeppelincaptain.wordpress.com/2013/11/06/31-games-in-31-days/) 31個のゲームを31日で作った人のブログ記事。 They were all made in less than 3 hours (most of them in less than 90 minutes).…

ゲーム開発日記を簡単に作る方法はないかね

Bigosaur blog (http://bigosaur.com/blog/23days) Androidゲームを23日で作った記録のブログだって。こういったゲームを作る行程が見られるのはいいね。ゲームの開発日記的なものが残せるのは、他の人が作り方を学べるところもいいけど、記録する自分自身に…

Haxeの@:buildマクロを使えばコードにDSL混ぜ放題、かも

Building Types with Macros (http://haxe.org/manual/macros/build) Haxeではclass宣言の前に@:buildマクロを書けば、class内の関数とかをビルド時に受け取って、その内容を書き換えるマクロが作れる。なので、こういうインタプリタ作って、 abagames/totsu…