タグ

ブックマーク / aba.hatenablog.com (18)

  • 「撃って」「○○する」ゲーム それがシューティングゲーム - ABAの日誌

    4/17にTokyo Indiesでシューティングゲーム (STG)のアイデアを考える話をした。 プレゼンのスライドは以下の通り。でもほとんど口頭で話したので、このスライドだけ見ても何の話か分からない。なのでその補足を書こうと思う。 「撃って」「敵を倒す」ゲーム、それがSTG。当たり前である。でも当にそれだけだろうか。 例えば「撃って」「四角を作る」ゲーム。これは何か。 画面上から迫る謎のブロックにブロックを発射して、四角にして消すゲーム、クォースである。でははたしてクォースはSTGか。家が「シューティング・パズルゲーム」と言っているので、STGであろう。ならば「〇〇する」は「敵を倒す」でなくてもSTGであるはずだ。 そういえば、私は今までいろんな「〇〇する」STGを作ってきた。 「撃って」「敵をくっつける」ゲーム、TUMIKI Fighters 敵を倒すとその敵が落ちてくるのでそれを

    「撃って」「○○する」ゲーム それがシューティングゲーム - ABAの日誌
    tuto0621
    tuto0621 2024/04/22
  • 小さなゲームを作ること、それ自身が楽しいのだ - ABAの日誌

    小さなゲームとは何か。スモールゲームマニフェスト(宣言書) 1 によれば、1プレイが10分以内に終わる、ブラウザなどで手軽に遊べるゲームを指す。 その定義で言うと、私は小さなゲームをすでに350個以上 2 作っていることになる。1年間で139個作ったこともある 3 。無類の小さなゲーム好きだ。 小さなゲームの何が良いって、短時間で作れるのが良い。速くて2時間、ちょっと苦戦しても10時間くらいではできるだろう。アートワークなどを凝り始めるといくらでも時間はかけられるが、ここでは1週間に1つゲームを作る、Game a week 4 のような取り組みでできる規模の、開発者目線でも小さなゲームとしたい。 短時間で作れるということは、いろんなアイデアを簡単に試すことができるということだ。「ヘンテコにおもしろい小さなゲームを作ろう」 5 というエッセイを、「ゲームクリエイターが知るべき97のこと2」と

    小さなゲームを作ること、それ自身が楽しいのだ - ABAの日誌
    tuto0621
    tuto0621 2023/09/10
  • ゲーム作りをパターン化して1年で139個のミニゲームを作る - ABAの日誌

    このページの上から139個が今年の分だ。こうして並べてみるのは楽しいな。ゲームをたくさん作ることでゲーム制作のスキルアップを!みたいな気概は無いので、ヤマザキ春のパンまつりのシールを集めるのと同じような楽しさだが。でも、作って、Twitterに放流して、いろんな人に遊んでもらって、フィードバックをもらう、というサイクルがたくさん回せたのは良かった。今年遊んでくださった皆さま方、ありがとうございました。 2,3日とかの短期間でミニゲームを作り続けるためには、作るもの・作り方をパターン化してほうが良い。今年は以下のレギュレーションで作った。 Chromeで遊べる恐竜ジャンプゲームのような、手軽にブラウザで遊べるゲームを目指す 操作方法はスマホでの操作が容易な、ワンボタン、左右へのスライド、画面上のタップ、の3種類に限定する 画面サイズは100x100を基とし、キャラクタは6x6と小さくするこ

    ゲーム作りをパターン化して1年で139個のミニゲームを作る - ABAの日誌
    tuto0621
    tuto0621 2022/01/11
  • ワンボタンゲームをたくさん作ったので、その作り方をおさらいしたい - ABAの日誌

    English version: How to realize various actions in a one-button game はじめに 自作ゲームライブラリcrisp-game-libを使ったミニゲームを最近たくさん作っているが、特に多く作っているのがワンボタンゲームだ。ここで言うワンボタンゲームは、レバーによる移動の他のボタンが1つ、といったものではなくて、純粋に1つのボタンしか操作に使わないゲームを指す。 ワンボタンゲームの利点は、操作が分かりやすく、タッチデバイスでも操作しやすい点にある。とにかく何かボタンを押せばそれがプレイヤーが取れる動作の全てであり、操作説明がほぼ不要である。またタッチデバイスでも画面中のどこかをタップあるいはホールドすれば操作ができるので、バーチャルパッドでよく起こる、ボタンを押した感触が無いので操作がしづらいという問題が発生しない。 欠点は、当然

    ワンボタンゲームをたくさん作ったので、その作り方をおさらいしたい - ABAの日誌
    tuto0621
    tuto0621 2021/08/09
  • 残りゲーム制作体力10%な人のためのずぼらゲームライブラリcrisp-game-lib - ABAの日誌

    を目指してまた自作ゲームライブラリを作っている。 ゲーム制作体力が無いならゲーム作りをやめればいいのだが、ウン十年とゲームを作り続けているゲーム制作ジャンキーはそんなことでは立ち止まれないので、より短時間で体力が尽きる前にゲームを完成させるためのライブラリを再発明し、今日もゲーム制作RTAを走るのだ。1時間くらいで完走できるのが理想。 crisp-game-libは短時間で手軽にブラウザゲームを作るためのJavaScriptライブラリだ。2014年に50個のミニゲームを作ったが、そのときにはそれらゲームを作るためHaxeライブラリmglとCoffeeScriptライブラリmgl.coffeを合わせて作った。その後も懲りずにミニゲームとライブラリ作りを続けた経験を活かし、クラシックでアーケードライクなミニゲームを作るために必要最小限な機能を備えたライブラリを目指して、crisp-game-l

    残りゲーム制作体力10%な人のためのずぼらゲームライブラリcrisp-game-lib - ABAの日誌
    tuto0621
    tuto0621 2021/04/09
  • クイックソート VS 挿入ソート、ファイッ! - ABAの日誌

    昇順に並べたいクイックソートと降順に並べたい挿入ソートが殴り合う動画です pic.twitter.com/YxsN1aSI0A— ABA (@abagames) 2020年1月18日 コードとライブデモはこちら。 アルゴリズムの王道ソートアルゴリズムでコードバトリングをしてみたかったので作った。左(赤)のコードが昇順に、右(青)のコードが降順に同一の配列をソートしようとして戦う。昇順に揃ったら左の勝ち、降順に揃ったら右の勝ち。 コードは普通のJavaScriptとして書く。以下の2つの特殊な関数がある。 get(i): 配列からi番目の要素を取得する swap(i, j): 配列のi番目とj番目の要素を交換する setはできない。setを許すとコード内のメモリに配列を逃しておいてソート、一気に書き込むというインチキができるから。右の降順側のgetは要素のマイナスの値が帰ってくるので、右のコ

    クイックソート VS 挿入ソート、ファイッ! - ABAの日誌
    tuto0621
    tuto0621 2020/01/20
  • マップを書くだけでゲームが作れる環境が欲しかった - ABAの日誌

    ので、テキストでタイルマップを書くとゲームになるrj-10ってのを作った。ブラウザで遊べる。 これを作ろうと思ったのはPix64っていうファンタジーコンソールを見つけたから。Pix64は画像1枚を描くだけでゲームが作れる。ピクセルの色がプレイヤーとか敵とかの種別を決めているのと、矢印状のパターンを書くと矢印の方向にパターンが進むというルールを使ってゲームを作る。 画像を描くのすら面倒な私は単にテキストを使うことにした。以下のようなテキストを書くと、 ----------- | v v o| r r g | | | | | | |@ ^ | c r ----------- 以下のゲームになる。 テキストは基レベルのタイルマップを表しているけど、途中のrとかgとかだけからなる列は特殊で、その上の列のテキストに色を付ける働きをする(redとgreen)。 いくつかルールがある。 色が付いたテキ

    マップを書くだけでゲームが作れる環境が欲しかった - ABAの日誌
    tuto0621
    tuto0621 2019/05/02
  • JavaScript向けブラウザREPLを試作した、けどREPLってゲーム開発に活用できる? - ABAの日誌

    前にClojureScriptのREPL駆動開発について書いたけど、REPL駆動開発環境自体は別にClojureScriptじゃなくJavaScript向けにもあるんじゃないか、と思ったけどこれが案外見つからない。なのでちょっと試作した。 browser-repl-test 作るのは別に難しくなくて webpack-dev-middlewareを使ったdev serverを立ててその横でWebSocketサーバを立てる ブラウザ側のコードからWebSocketサーバに接続 dev server上からコードを入力、WebSocketでブラウザ側に送ってeval、結果もWebSocketで返す エディタからコードをdev serverに送るのはSendToREPL VS Code extensionってのがあるのでこれでできる とやった。 で、ここまで作っておいてなんだが、これってゲーム開発に

    JavaScript向けブラウザREPLを試作した、けどREPLってゲーム開発に活用できる? - ABAの日誌
    tuto0621
    tuto0621 2018/02/19
  • WebAssemblyのゲームをアセンブリ直書きで作る - ABAの日誌

    左右矢印キーでスタートして移動、降ってくる岩を避けて下さい。 wasm-game-by-hand コードは以下。 game.wat ブラウザ上のアセンブリ言語ことWebAssemblyChromeやFirefoxで動くようになってきたので何か作ろうと思った。普通はUnityとかRustとかのWebAssemblyを出力できるエンジンや言語を使って生成するのだが、せっかくだから直に書いてみた。 WebAssemblyはS式で書ける(wast形式)。 Understanding WebAssembly text format WebAssemblyはスタックマシンなので、2つの値を足す場合、それら値をスタックに順に積んでAddを呼び出す、というふうに書く。 get_local $p get_local $p i32.add でも引数が先に来て後に命令がくるのはあまり直感的な感じはしない。なの

    WebAssemblyのゲームをアセンブリ直書きで作る - ABAの日誌
  • テキストエディタで完結したゲーム開発環境は無いかね - ABAの日誌

    「コーディング不要でゲーム開発!」っていうウリのツールはあるが「デザイン不要!全てをコードでねじ伏せる」ツールはなかなか見かけない— ABA (@abagames) 2016年11月5日 グラフィックスもサウンドもコードでなんとかしてもらいたい— ABA (@abagames) 2016年11月5日 テキストエディタだけでグラフィックス作ろうと思ったら何が使えるだろう。SVG, 3D API/シェーダ各種, LOGO, PostScriptとか?サウンドだとMML, ByteBeat。あまり思いつかんな— ABA (@abagames) 2016年11月6日 と書いたが要はテキストエディタだけを入力として完結したゲーム開発環境が欲しいなという話。グラフィカルなドット絵エディタや3Dモデラー、ミュージックシーケンサなどは無し、さらにいうと外部リソースインポートも無し、ゲームに必要なリソースは

    テキストエディタで完結したゲーム開発環境は無いかね - ABAの日誌
    tuto0621
    tuto0621 2016/11/14
  • プログラミングパズルゲームが作りたかった - ABAの日誌

    セルオートマトンプログラミングパズルゲームconsomatonというのを作った。 consomaton screenshot ブラウザで遊べます ソースコードはこちら (GitHub) ゲームプログラミングを趣味としている者として、昔から作ってみたかったのがプログラミングパズルゲームだった。プログラミングパズルゲームってのはたとえばGoogleがアランチューリング生誕100周年で公開していたチューリングマシンのロジックパズルとかメイドイン俺のくみたて道場とかTIS-100とか。カルネージハートとかよりはよりプログラミング感が全面に出ているタイプのゲームゲームとしてプログラミングを扱うにはなるべく簡単にコードが書けることが望ましい。スクラッチとかのパネルを置くタイプもいいんだけどこれですらちょっと面倒。なのでライフゲームに代表されるセル・オートマトンのルールを書くものにした。 ルールの書

    プログラミングパズルゲームが作りたかった - ABAの日誌
    tuto0621
    tuto0621 2016/07/08
    4面までクリアできた、面白い。
  • 物理エンジンMatter.jsをテキストでレンダリング - ABAの日誌

    CRTっぽいテキスト画面をWebGLで作るLocatePrintを使って物理エンジンをレンダリングするというデモも作った。 物理エンジンはMatter.jsを使っている。Matter.jsはもちろん自前のレンダラを持っているんだけどそれを他のレンダラで差し替えられる。 差し替える独自レンダラはMatter.jsのRender.jsを参考に作れば良い。特にRender.bodyWireframes関数にボディの頂点を線でつなぐ一番単純な描画方法が実装されているので、これを真似るのが簡単だ。 デモのコードでは、頂点を線でつなぐ部分でテキストを書くようにした。画面をテキストの幅と高さ(40キャラ x 20キャラ)のグリッドに分割し、線とグリッドが交わるポイントをリストアップする。グリッド内の各キャラについて、それらポイントがどこにあるかに応じて書くテキストを変える。例えば上端右と下端左にポイント

    物理エンジンMatter.jsをテキストでレンダリング - ABAの日誌
    tuto0621
    tuto0621 2015/09/17
    Matter.jsはもちろん自前のレンダラを持っているんだけどそれを他のレンダラで差し替えられる。
  • ミニゲームに適切なリスクとリワードにはどんな種類があるかね - ABAの日誌

    ゲームにおけるリスクとリワード、つまりプレイヤーがリスクを取るとリワードが得られるという仕組みは、ゲームの面白さを増すのに重要と言われている。 Extra credit! (http://www.supermeatboy.com/16/Extra_credit_/) Risk/reward is a system established by the arcade generation that rewards the player for taking a risk that goes beyond what they are asked to do normally. 'arcade generation'とあるように、リスク/リワードはアーケードゲームによって確立されたものなので、現代のゲームにおいても必須かどうかは分からんが、アーケードライクなミニゲームにおいてはあったほうが望まし

    ミニゲームに適切なリスクとリワードにはどんな種類があるかね - ABAの日誌
  • HTML5ミニゲーム作り向けライブラリMGL.COFFEEを作った - ABAの日誌

    またゲームエンジンを作っているのか、きみは。 MGL.COFFEE (https://github.com/abagames/mgl.coffee) 前にHaxeでFlashのミニゲームというかプロトタイプを作るためにmgl (https://github.com/abagames/mgl)というゲームエンジンというかライブラリを作っていたが、そのCoffeeScript版を作った。CoffeeScriptのやたら短いコード記述ができるのが好きなので。 作るものがきっちり決まっていれば1時間以内、漠然としたアイデアからでも3時間以内に、いちおうタイトルとスコアと音が付いたゲームが作れる、ということが目標。その分グラフィックスやら音やらは最低限でしょぼいが。 メソッドチェインと短縮記法を使うと、例えば上方向へのスピード0.05、サイズ0.05のパーティクル20個を、以下の短い記述で出せる。

    HTML5ミニゲーム作り向けライブラリMGL.COFFEEを作った - ABAの日誌
  • ゲーム開発日記を簡単に作る方法はないかね - 2013-10-24 - ABAの日誌

    Bigosaur blog (http://bigosaur.com/blog/23days) Androidゲームを23日で作った記録のブログだって。こういったゲームを作る行程が見られるのはいいね。 ゲームの開発日記的なものが残せるのは、他の人が作り方を学べるところもいいけど、記録する自分自身にとっても、自分は今日これだけ頑張った、っていうことが実感で分かるのが良さそう。 でも、いざこういった記録をちゃんと残そうと思うと結構面倒そう。今日書いたコードの断片を記録して、スクリーンショットを取って、説明を書いて、とかいう作業を、コードを書く以外にも毎日コツコツ続けるのは、なかなか骨が折れそうだ。 せめて今日の作業に関連するコードとかスクリーンショットとかは、ツールで自動的に記録してくれる方法があればいいんだが、ちまたにそういったツールは落ちてないかね。 コミットログ 普通に考えると、バージョ

    ゲーム開発日記を簡単に作る方法はないかね - 2013-10-24 - ABAの日誌
  • 2012年作ったゲーム遊んだゲーム - ABAの日誌

    今年自分で作ったゲームと遊んで面白かったゲームを書いてみた。 作ったゲーム ミニゲームばかり30個少し。ほとんどFlashでプチコン少し。wonderflにはお世話になりまくりです。Haxeにも対応いただけませんかね。 一応自分で気に入っている順に書いた。上の方がお気に入り。 ブラウザゲーム ufast (http://wonderfl.net/c/8Ylg) undermine (http://wonderfl.net/c/bv3w) TANK FIRES BLOCK (http://wonderfl.net/c/dxL8) boxinbox (http://wonderfl.net/c/2D7T) commandmissile (http://wonderfl.net/c/kqI2) timebomb (http://wonderfl.net/c/tuh0C) carpieces (h

    2012年作ったゲーム遊んだゲーム - ABAの日誌
    tuto0621
    tuto0621 2012/12/29
  • Haxe+NMEを使えば、FlashとHTML5とWindowsで動くゲームが一つのコードから作れる

    ActionScriptやJavaScriptC++など、さまざまな言語向けにコンパイルできることがウリのHaxe (http://haxe.org/)と、Haxe向けゲームライブラリのNME (http://www.haxenme.org/)を使えば、一つのソースコードを書くだけで、Flash、HTML5、Widnowsネイティブで動くゲームを作ることができるらしいので、作ってみた。 benchstg (http://abagames.sakura.ne.jp/nme/benchstg/) 確かにできる。一つのコードから複数の環境向けバイナリが作れるのは素晴らしい。近代的なSDL (http://www.libsdl.org/)という感じ。 ただ、何も考えずにHaxeのコードを書いていればなんでもクロスプラットフォームになる、とまではいかない印象。最初はFlash向けに作っていて、いざ

    Haxe+NMEを使えば、FlashとHTML5とWindowsで動くゲームが一つのコードから作れる
    tuto0621
    tuto0621 2012/09/20
  • フリーゲームを作っても世界の中でうずもれてしまう問題 - ABAの日誌

    IGDA日 同人・インディーゲーム部会(SIG-Indie)第1回研究会「同人・インディーゲーム開発の現状と課題」 (http://www.igda.jp/modules/news/article.php?storyid=1633) に呼ばれたのでフリーゲームの開発、公開にまつわる問題点と解決法みたいなのを話してきた。参加者はゲーム会社所属のプロの人が予想外に多かった印象。フリーゲームを今も作っているという人は少数派。あと20代30代がほとんどで、10代は0。 最後のパネルディスカッションの時にもちょっと話題になったが、世の中にはゲームが溢れすぎていて、アマチュアがゲームを作ってもその中にうずもれてしまい、注目してもらうのは難しいという問題は共通認識として多くの人がもっているようだ。この問題は、特にこれからゲームを作ろうとする人のモチベーションをどうやって担保するか、ということと密接に関

    フリーゲームを作っても世界の中でうずもれてしまう問題 - ABAの日誌
  • 1