2013-01-01から1年間の記事一覧

Alcantarea

C++ ソースの変更を実行中のプログラムに反映させる Visual Studio アドインをリリースしました。Alcantarea - A Visual Studio Add-In for Runtime C++ Code Editingこれは DynamicPatcher に改良を加えつつ Visual Studio のアドイン化したもので、既存の…

runtime member variable editing

x86 勉強会で、clang のソースコード解析機能で class の構造を得て実行時にデータを表示したり編集したりする、という話を聞いて、以前デバッグ情報を使って似たようなことをやろうとしてたのを思い出してちゃんとやってみました。指定オブジェクトのメンバ…

Cookie Clicker

https://github.com/i-saint/scribble/tree/master/CookieClicker 自分の時間を救うために Cookie Clicker の自動連打&自動 golden cookie クリックツールを作りました。 自動連打は SendInput() しまくるだけですが、golden cookie 探しは結構大変で、Cook…

Runtime C++ Editing

x86/x64 最適化勉強会 6 で、実行時 C++ 編集の実装方法について話しました。上はその時の資料です。 私が知ってるいくつかの実装の解説と、DynamicPatcher の実装について解説しています。 あとは最初にこんなもんが必要になるゲーム屋特有の事情についてざ…

raymarching for games

demoscene の世界では近年 raymarching というレンダリング手法がよく用いられています。ポリゴンモデルは使わず、モデルデータは数式の図形としてシェーダコードの中で表現し、pixel shader で図形との距離を求めて可視化していく、というものです。 demosc…

after C84

コミケ参加した方々、お疲れ様でした。予想外に反響があって、久しぶりにすごく手応えを得られた回になりました。スペースに足を運んでくださった方々、声をかけてくださった方々、ありがとうございました。 ただ、今回マスターデータにソースコード入れ忘れ…

before C84

またしてもギリギリの告知になってしまいましたが、C84 版 atomic はこんな仕上がりになりました。開発中バージョンにつき 100 円、いつも通りソースコードも同梱です。3日目東ホ-44b primitive。 書き残しておきたい開発記録なんかもいくつかあるのですが、…

photo

雷を撮る、という趣味写真屋としての目標が達成できた一枚。雷雲が接近中だけどまだ雨は降ってきていない、という理想の状況に遭遇し、シャッター時間を限界まで長くして暴風の中雷が落ちそうな方向を 1 時間近く延々撮りまくっていました。 最近 α550 中古…

function hooking

ここ数ヶ月でいろんな関数 hook を試したのでメモ。Windows でしか試していませんが、x86/64 であれば他のプラットフォームでも同等のことができるはずです。 関数 hook と dll injection は解析/デバッグツールやら動画キャプチャツールの類を作るための基…

WebController

WebControllerブラウザからゲームを操作するツールをしばらく前に作りました。主にモバイル機器から Wii U コントローラ的にゲームを操作するのを目的としたものです。 上の動画は Nexus7 から REVOLVER360 RE:ACTOR (C83) を遠隔操作しているところ。見ての…

generic function call

サイト本体では既に告知していますが、コミケ受かりました。スペースは 3日目東ホ-44b primitive です。 予定より大きく遅れていますが、前回よりは色々進歩したものを出せる予定です。 最近の状況。 それっぽく動く水車、raymarching による背景、以前 書い…

DynamicPatcher - Runtime C++ Editing

[2013/12/25 追記] この DynamicPatcher をさらに改良し、Visual Studio のアドインとして実装した Alcantarea をリリースしましたDynamicObjLoader を改良し、実用に耐えそうな実行時 C++ コード編集機能を実装しました。 C++ コードを編集してそれをリアル…

WebDebugMenu

ゲーム屋の間ではおなじみのデバッグメニューをブラウザで実装してみました。 WebDebugMenuデバッグメニューとは、変数や関数を事前に登録しておき、後でメニューから値を書き換えたり関数を呼んだりできるようにする代物で、周囲の人間の話を聞くにコンソー…

experimental codes

最近書いた雑多な実験コードのまとめ。 ・GetThisOfCaller() 現在の関数の呼び出し元がメンバ関数であればその this を返すというもの。 スタックフレームをさかのぼり、デバッグ情報を使って該当スコープの変数を巡回して this が見つかればそれを返す、と…

eval() in C++

しばらく前にやったことですが、ネタとして面白い気がするのでサルベージ。DynamicObjLoader を使って C++ で eval() を実装しました。 C++er が夢に見たり見なかったりしたこういうコードが動きます。 #include "DynamicObjLoader.h" class Hoge { public: …

memory leak buster (2)

以前作ったメモリリーク検出器がとても役立っていて、今も機能追加を加えつつ使っています。 最近大きな改良を加えたので再掲。 MemoryLeakBuster実行時にイミディエイトウィンドウから呼ぶデバッグ機能を追加したのが主な変更で、以下のようなことができる…

implementing level editor by HTML

レベルエディタを実装中です。 今は DyncmicObjLoader があるので全部 C++ でレベル (ステージ) を書くのも十分アリなんですが、それとは別に、レベルエディタ的なものを実装してそれをゲームの一要素にしたいと考えています。 exception conflict が、サー…

retrospect 2012

2012 年は例年にはないくらい得たもの、考えさせられたことが多い年でした。 仕事 仕事では主に Agni's Philosophy に携わっていました。ゲーム屋はもっと自分の仕事を自慢した方がいいんじゃね?とこの頃よく思います。 個人間で切磋琢磨している感じが薄い…

atomic C83 preview +

コミケお疲れ様でした。ブースに足を運んでいただいた方々、ありがとうございました。 事前の告知通り、コミケ版に若干手を加えたものを公開します。atomic C83 preview + (コミケ版にはたまに数秒止まったり BGM が途切れたりするなどのバグがありましたが…