読者です 読者をやめる 読者になる 読者になる

難度曲線をいじっていい具合のプレイ感覚を探る

3分間でプレイヤーをゲームから追い出すお気に入りの式 [難度] = sqrt([経過フレーム数] * 0.0001) + 1 これで10800フレーム(3分)後に難度が約2.04倍になりプレイヤーはやられる。生き延びても後は真綿で首をしめるように難度がじりじり上昇— ABA (@abagam…

WebAssemblyのゲームをアセンブリ直書きで作る

左右矢印キーでスタートして移動、降ってくる岩を避けて下さい。 wasm-game-by-hand コードは以下。 game.wat ブラウザ上のアセンブリ言語ことWebAssemblyがChromeやFirefoxで動くようになってきたので何か作ろうと思った。普通はUnityとかRustとかのWebAsse…

ゲームのリプレイデータをURLへ埋め込む

URLには2000文字を詰め込むことができるので、頑張ればここにいろんなデータを埋め込むことができる。例えば、ゲームのリプレイデータ。この前作った例。 ワンボタンSTGのREFREV作った。3つの武装を駆使して1分くらいでやられて下さい https://t.co/OMgRpeEq…

テキストエディタで完結したゲーム開発環境は無いかね

「コーディング不要でゲーム開発!」っていうウリのツールはあるが「デザイン不要!全てをコードでねじ伏せる」ツールはなかなか見かけない— ABA (@abagames) 2016年11月5日 グラフィックスもサウンドもコードでなんとかしてもらいたい— ABA (@abagames) 201…

お手軽にゲームプレイAIを試してみる

最近はゲームもAIがプレイしてくれる時代だ。 ゲーム攻略で人間を超えた人工知能、その名は「DQN」 有名なDQN。フルネームはdeep Q-networkと呼ばれる強化学習の一種だ。こういう機械学習系の仕組みはマシンパワーでもって学習をぶん回して動かさないといけ…

世の中にワンボタンゲームってどんなのがあるの

ゲーセンの1ボタンゲームって連打系を除くとスタートリゴンしか知らないんだけど他に何かあったのかな https://t.co/C1kQfYkxrN— ABA (@abagames) 2016年11月10日 って聞いて教えてもらった。ワンボタンゲームってのはプレイ中に使う操作がボタン一つだけの…

セルオートマトンでゲームは作れるか

作れそうだけど大変そう。 consomaton-game-lib 前にセルオートマトンプログラミングパズルゲームconsomaton作った時から、セルオートマトンのルールを書くだけでゲームが作れたらお気軽ではないかと思っていた。ただセルオートマトンのルールは、あるセルと…

プログラミングパズルゲームが作りたかった

セルオートマトンプログラミングパズルゲームconsomatonというのを作った。 ブラウザで遊べます ソースコードはこちら (GitHub) ゲームプログラミングを趣味としている者として、昔から作ってみたかったのがプログラミングパズルゲームだった。プログラミン…

ES2015のProxyを使ってJavaScriptを改造して遊ぼう

ES2015にはProxyという仕組みがある。Proxyを使えばオブジェクトへの各種操作に割り込んで好き勝手な動作を定義できる。 ただProxyには問題が合って、サポートするプラットフォームが少ない。 ECMAScript 6 compatibility table どうもProxyはpolyfillやトラ…

汎用ビデオゲーム記述言語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…

EmscriptenとLDCを使えばD言語のSDLゲームがブラウザで動かせる、かも

とりあえずひどく簡単なサンプルは動いたけど、D言語でclassを書いたらLLVMからJavaScriptへの変換が失敗したので、まだ実用までは壁がありそう。 Emscripten (https://github.com/kripken/emscripten/wiki) EmscriptenはLLVMからJavaScriptへのコンパイラ。…

STGの敵の出現パターンとか、敵の飛行曲線とか、弾幕とかを安直に書くための言語STGL作った

STGL demo (http://abagames.sakura.ne.jp/stgl/) 上のページ行って、「START」ボタン押せば遊べます。左に書いてあるのがSTGL。大昔に弾幕を書くための言語としてBulletMLってのを作ったけど、これは弾幕専用なので、敵の飛行曲線とかは書けなかった。あとX…

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

今年自分で作ったゲームと遊んで面白かったゲームを書いてみた。 作ったゲーム ミニゲームばかり30個少し。ほとんどFlashでプチコン少し。wonderflにはお世話になりまくりです。Haxeにも対応いただけませんかね。一応自分で気に入っている順に書いた。上の方…

Flashでの2Dイメージ描画はStarlingフレームワークで高速化できるけど注意点もある

Starling Framework (http://gamua.com/starling/) Flashで2Dイメージを高速に大量に書きたいときは、GPUを使った2D描画を実現してくれるStarlingフレームワークを使えばいい。Flashの従来の2D描画と似たようなAPIで、Stage3Dを使ったGPUでの描画をしてくれ…

HaxeでAway3Dとthree.jsをラップすればFlashとHTML5で動く3Dゲームは作れるけどね

rowcov (http://abagames.sakura.ne.jp/nme/rowcov/) 正直ラッパーを書くのが面倒すぎるのと、HTML5+three.js (WebGL)版があんまりパフォーマンスが出ないこと、Bloomシェーダーやらライティングやらを両方の環境で同じ感じに調整するのが難しいことを考える…

Haxe+NMEを使えば、FlashとHTML5とWindowsで動くゲームが一つのコードから作れる

ActionScriptやJavaScript、C++など、さまざまな言語向けにコンパイルできることがウリのHaxe (http://haxe.org/)と、Haxe向けゲームライブラリのNME (http://www.haxenme.org/)を使えば、一つのソースコードを書くだけで、Flash、HTML5、Widnowsネイティブ…

Haxeを使って、PS VitaとFlash、両方で動くゲームを作れるか

すごく頑張ればできるかもしれないけど、色々と障害が多そう。特にパフォーマンス。一度コードを書けば、それをFlashやJavaScript、C#などにコンパイルできるHaxe (http://haxe.org/)を使えば、ブラウザ上はFlashで、モバイルデバイスとしてはPS Vitaで動く…

プチコンで広がるおっさんプログラミングコミュニティ

プチコンmkII (http://smileboom.com/special/ptcm2/) ニンテンドーDSでBASICが書ける夢のソフトプチコンがmkIIになった。初代と比べていろいろ機能が拡張されたけど、個人的に一番うれしいのは、QRコードで自分のプログラムが簡単に公開できるようになった…

コンピュータはコンピュータゲームを作ることができるのか

Space Station Invaders (http://www.newscientist.com/movie/space-station-invaders) なんの変哲もないジャンプアクションだが、これ、AngelinaというAIが作ったという触れ込みのゲームなんだって。 AI designs its own video game (http://www.newscienti…

将来的にはどうなるといいんだろうねえ

Unityのゲーム向けに安定したVM、Flashの手軽な開発言語、CoffeeScriptの少ない記述量、みたいなものを兼ね備えた言語+VM向けゲームを、Codea (http://twolivesleft.com/Codea/)みたいなお手軽ゲームエンジン+開発環境で開発する、ってのが理想かなあ。Uni…

で、どれがいいの?

総合的にみるとやっぱりFlashかなあ。ActionScriptは小さいゲーム書くにもいい言語だし、記述量とエラー検出性能のバランスもいい感じなので、非常につまらない結論だがFlashが総合バランス的には良い。ただ私はそれでもfunctionとかvarとか書くのが面倒とい…