Skip to content

Instantly share code, notes, and snippets.

View umegaya's full-sized avatar

iyatomi takehiro umegaya

View GitHub Profile
@umegaya
umegaya / gist:4736387
Created February 8, 2013 03:31
how we can get along with timeout?

how can we handle timeout

timeout : head-ache error in network programing

  • what's happening?
  • remote peer crushes
  • network conjested
  • network become unavailable
  • bug
@umegaya
umegaya / gist:4738012
Created February 8, 2013 10:40
new backtrace feature of yue
RuntimeError:test error!!:
stack traceback:
../test/lua/_8888.lua:59: in function <../test/lua/_8888.lua:57>
on calling tcp://127.0.0.1:8888
stack traceback:
./yue.lua:387: in function 'error_test3'
../test/lua/_7777.lua:15: in function <../test/lua/_7777.lua:14>
on calling udp://127.0.0.1:7777
stack traceback:
../../bin/yue.lua:387: in function 'server_rpc_error_test'
@umegaya
umegaya / gist:4943761
Last active December 13, 2015 16:58
mrogue 設計
scene
+-childs (entity)
+- wall (x, y)
+- wall (x1, y1)
+- player (xx, yy)
+- item1
+- item2
+- NPC (xx1, yy1)
+- item1
+- item2
@umegaya
umegaya / gist:4969064
Last active December 13, 2015 20:18
ゾーンとユーザーのスケーリングについての設計
mrogueのクラスライブラリとintegrateさせて実装する
Klass:find(id)でKlassのインスタンスを検索できるが、通常これはfindを呼び出したスレッドで生成されたオブジェクトだけがみつかる。
これをほかのスレッドのオブジェクトも見つかるように拡張する。見つかるようにするかどうかはオプショナルに設定できる。
見つかるようにしたオブジェクトをuniversalである、と呼ぶようにしよう
Object > UniversalObject としてそれを継承させる
Object.map[Klass]に設定されるのは通常はただのテーブル(ゆえに同じスレッドからしか見つからない)
ここにyue側のmapを使えるようにして、thread emitterのポインタを設定するのがよかろうか
@umegaya
umegaya / gist:5115284
Last active December 14, 2015 16:29
traitのre organize案private repositoryのため何を言っているかわからねーと思うが
basic_a_i.lua
- target 関連の機能はrouge_entityに移動
- cancel_action消す
basic_attack.lua
- 廃止? => basic_action.lua
- basic_action.luaにzone:actionからよばれるコマンドはすべて追加していくことにする(ほかのtraitsには実装しない)
- いま存在している直接呼ばれるactionはすべてbasic_actionに移動させる
move, step, attack, pick, discard, use, equip, unequip, (future) invoke(skill), cast(magic), memorize, craft, gather, talk
問題:
traitクラスはmixedを継承したいが、propertyはクラス名をキーとして与えられている。
propertyを取得するのに親クラスの名前をキーとして取得しても、そのクラスは(サブクラスの名前をキーとしてプロパティを保持しているので)
正しくpropertyを取得できない。どうする?
これはもう一つの問題と関連している:
クラスのインスタンスを作る場合に、base classのtraitはそれをoverrideするtraitがクラスにmixされている場合でもmixedが呼ばれてしまうのが無駄である。
とはいえ、overrideされていないtraitが存在する場合、そのtraitのmixedは呼ばれるべきだし、うーん
アイデア:
@umegaya
umegaya / gist:5235199
Last active December 15, 2015 08:59
ダンジョンのランダム生成のアルゴリズム
1. ダンジョンを生成する領域をランダムにNxNの領域に分ける(これはx、y軸それぞれで、N-1の区分座標を選ぶことで行う)ただし、サイズが3x3以上になるようにする
2. それぞれの領域に収まる範囲で部屋を作る
2-1. 部屋の左上の座標を選ぶ
2-2. 領域に収まる範囲で幅と高さを選択する(部屋は3x3以上のサイズになるようにする)
3. NxNの部屋ができる。これを左上から右=>下の順でA1, A2, ..., A9とよぶ
4. NxNつの部屋を通路でつなげる
4-1. それぞれの部屋から以下の方向にジグザグな通路を引く
A1:左上隅 => 右下(右壁)
A2:上端 => 右下(右壁) 左下(下壁)
@umegaya
umegaya / gist:5243087
Last active December 15, 2015 10:08
ゲームの仕様:決めるべきこと
*楽しませ方
weekday:
テーマ別ダンジョン
- 自分自身を強化する eg)南海の大密林
- 強力な武器、防具を手に入れる eg)ドワーフの洞窟
- 武器、防具を強化するアイテムを手に入れる eg)レプラコーンの里
- 便利系アイテムを手に入れる eg)盗賊のねぐら
- 回復、攻撃系アイテムを手に入れる eg)魔女の村
@umegaya
umegaya / gist:5252890
Created March 27, 2013 09:12
スケーリング計画
DAU 10000 (同説2500 - 4000)
で32万/monthぐらいで砂漠
@umegaya
umegaya / gist:5262025
Last active December 15, 2015 12:39
ゲームの仕様:パラメータおよび攻撃について
ダメージの計算式:
まず、ダメージにはタイプがある
物理、炎、氷、毒、雷の5種類
攻撃に複数ダメージタイプがある場合はそれぞれ以下の計算が行われる
また物理以外のダメージでは以下のdebuffがつくことがある
氷:slow
雷:スタン
炎:能力低下