ゲームプログラムなら俺に聞け25at TECH
ゲームプログラムなら俺に聞け25 - 暇つぶし2ch2:デフォルトの名無しさん
12/08/18 15:28:33.24

                 // | ___ ヽ─--.__
                 { | :.:|:.:.:.ノ:.:.|:.:リ,.=‐''  ̄   ` ヽ 、     __
               ,r─弋ヽ :.V:. ,.r‐'´     ...:.:.:.:.. ..  ヽ  // ̄ ヽ
                 //  :.:ヾ /     .:.:.:.:.:.:.        V/
              L   :.:./     .:.:.:.:.:.  .:.:.:.:.:.:      .:.:..
             / |  :.:.:/    :.:.:.:.:.:.:__:.:.:.:.:.:.:
           /   \:/   :.:.:.:.:.:.:./\///:.:.:. :.:.:.
          /     :.:./  :.: :.:.:.:.:.:/   /へ/,イ:. .:.:.:.:.  .:.:.:..
        /    :.:.:.:/  :.:.:.:.:.:./¨,ゞ 、/  i/゙ !:. :.:.:.:.:.   .:.:. ..
       / ⌒ソ  :.: :.:.:.:! :.:.:/:.:.:/  く:::::::::::ヽ |  |:.:.:.:.:.:./i .:.:.
      ({   /:.:.: :.:.:.:.:.| :.:.:|:.:./    \っrへ  レ'|:.:./ |
         厶r/:.:.:.:.:.:.:ノ :.:∧:.|      `      |:/ 、j/
            /:.:.:.:.:.∠:.:| :/ jハ!              ∨
      __   {:.∧:.:.:./ | |              ,へ:.:.:.:/ィ. ..
─=ニ  f´ ̄¨Vー}:/   }/      ハ    .:.:.   ヽ::::::ヽ:. .:}...:. .:..
 __   }   | ,.r‐ ''プ    :.:.     ヽヽ :.:.:.:.:.:.:. :.:`Cr'' 〉:. .:.:.
´    ヽ V        :.:.:.:.', .:. :.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.. :... .. :...:
      \}      ____,.ム:.:.:.:.:.:.::.:.:.:.:.:.:.:.:.:.:.:....:.. .:.. .

3:デフォルトの名無しさん
12/08/18 17:03:15.38
推奨NGネーム: uY

4:デフォルトの名無しさん
12/08/18 17:04:41.02
いやいやwいなかったらお前らネタ切れするくせに

5:デフォルトの名無しさん
12/08/18 17:07:35.05
前スレの>>999見たいなやつが出てくるから、やっぱトリはつけといた方がいいな
スレリンク(tech板:999番)

6:デフォルトの名無しさん
12/08/18 17:10:32.91
だからだれかはよuY理論の解説頼む
マジで意味不明だから話についていけない
何を目的としていてどうやってどこまでできるものなんだ?

7:デフォルトの名無しさん
12/08/18 17:12:30.26
>>6
気にしたら負け

8:デフォルトの名無しさん
12/08/18 17:14:02.71
いや勝ち負けとかどうでもいいから教えてくれ頼む

9:デフォルトの名無しさん
12/08/18 17:14:51.79
前スレ>>1000

問題のコード
> 900 :uY ◆gXFLM6waxs :2012/08/17(金) 19:27:30.51
> >>899
> お前程度でこれ何やってるかわかる?
> 俺のいってた加速カウンタはこんな感じのメソッドがずっと続いていく
>
> def count_function
> if @loop_wait > 1
> @loop_wait -= 1
> return @c
> end
> @c += @add
> @add += @plus
> @add *= -1 if @c >= @rrrr || @c <= @nnn
> @c = @rrrr if @c >= @rrrr
> @c = @nnn if @c <= @nnn
> if (@c >= @rrrr) or (@c <= @nnn)
> @loop_wait = @loop_wait_wait
> end
> if @loop_wait_ex.include? @c
> @loop_wait = @wait_ary
> end
> return @c
> end


1.uy STGのキャラの動きは「理論的には」全て上記を使用して書けると発言。お前らには理解は無理。
2.初期パラによって決まった数値が帰ってくる仕組みでは外の影響を考慮できないことを指摘される。
3.uy「理論的に」と言ったと発言。考え切れないとことか難しいところは直接書いていると発言。

10:デフォルトの名無しさん
12/08/18 17:16:54.11
つまり、矛盾したことは言ってないということで

11:デフォルトの名無しさん
12/08/18 17:16:56.23
で、なんでそのアルゴリズムですべて表現できんの?


12:uY
12/08/18 17:20:07.34
省略しすぎ
3つあるうちの1個のメソッド晒しただけでカウンタはあと2つある

13:デフォルトの名無しさん
12/08/18 17:20:28.00
ふっほっ

14:デフォルトの名無しさん
12/08/18 17:21:03.97
なるほど環境や入力は無視してて、引数にたいして必ず決まった数列が返ってくるのね
敵弾丸とかならそれでもいいかもしれないからそこは良いとしよう

そんじゃあ、たとえばSinカーブとかexpカーブを出力するにはこれ初期値は何になるのか示してよ
sin()とかexp()って書くより簡単になるんでしょ?ならなかったら意味ないもんな


15:デフォルトの名無しさん
12/08/18 17:22:08.29
>>6
使用可能領域(uyの想定する古典ゲーム)
・スケジュールどおりの動作をするキャラ
・単純なパラパラ漫画型アニメーション

使用不可能領域(uyが想定しない自由度の高いゲーム)
・自キャラを追尾する
・凸凹地形を走行する

16:デフォルトの名無しさん
12/08/18 17:23:07.03
>>14
uyの知らない関数挙げるなよかわいそうだろ

17:デフォルトの名無しさん
12/08/18 17:27:00.00
>>9
追加で(>>907)
> プログラミングにおいてのアルゴリズムのほとんどは
> 1 , 2 , 3 と 1 , 2 , 3 , 1 , 2 , 3 と 1 , 2 , 3 , 2 , 1 のカウンタで表現できる

ほとんどのアルゴリズムをカウンタで表現できると発言

18:デフォルトの名無しさん
12/08/18 17:27:14.43
uY ◆gXFLM6waxs以外、uYの発言としては無効です

19:デフォルトの名無しさん
12/08/18 17:28:53.69
>>14
えっ?今そういう話なん?

20:デフォルトの名無しさん
12/08/18 17:28:59.65
>>9
1で実際には「理論的には」とは言っていなかった

21:デフォルトの名無しさん
12/08/18 17:35:06.04
>>19
え?違うの?
シューティング系ゲームのオブジェクトのうち決定的な軌道を出力するシステムで
その表現力は多彩でパラメーターも簡潔で非常に再利用性が高いという話じゃないの?

だから俺はどうやったらそんな簡単にいろんな軌道を思い通りに出せるか不思議でさ
試しに一番簡単そうなsinやexpの軌道を実際に出力してほしいなって思ったんだ


22:uY
12/08/18 17:35:28.25
>>14
別にxやyに直接値を代入するしかやれないわけじゃない

speedやangleに対しても可能
ac = func( 0 , 360 , 1 )
task_add { |o|
 o.speed = 1
 o.angle = ac.call
}

やれば内部で勝手に動くようにしてる
デフォルトではo.speedは0なので
根幹部分でsin,cosでキャラ動かす処理は通ってるけど、動いてないだけ
基本的に弾幕アルゴリズムにsinはあまり使わずspeedとangleの変更のみで作ってるし作れる

23:デフォルトの名無しさん
12/08/18 17:37:47.97
基本的に弾幕アルゴリズムは三角関数つかいまくりですが
uyの言う弾幕アルゴリズムはグラディウスあたりで止まってるのでしょう

24:デフォルトの名無しさん
12/08/18 17:38:06.47
>>22
ごめん意味不明だわ
funcの中身とか、内部で勝手に動くようにしてるとか曖昧に濁さないでちゃんと説明してください

25:デフォルトの名無しさん
12/08/18 17:40:25.44
>>22
1 2 3 1 2 3 ...
1 2 3 2 1 2 ...

はよ、この数列を合成してsinへ変換する方法教えてくれ

26:デフォルトの名無しさん
12/08/18 17:41:17.70
>>22のuYは偽もん

27:uY ◆gXFLM6waxs
12/08/18 17:45:21.96
funcは カウンターだよ
初期値 0 最大値 360  add 1
呼び出す度に 1,2,3,4,5,6,7,8,..............


速度と角度を指定すれば、これだけで動くってこと
task_add { |o|
 o.speed = 1
 o.angle = 45
}

指定しなければ初期値が0だから非移動


>>25
わかってねーわ
sinは、ゲームロジックでは使わない
全ソースコード中、sin,cosを使ってる場所は1つのメソッドだけって言えば分かる?

28:デフォルトの名無しさん
12/08/18 17:45:27.85
>>25
多分count_functionで

An = 1 2 3 4 ・・・

て数列作って

x^(Ai * 2 - 1) / (Ai * 2 - 1)!

でsin(x)を生成するんだと思う。

29:デフォルトの名無しさん
12/08/18 17:46:56.88
>>27
その計算済みsin値を数列生成ロジックに適用してみろって話

30:デフォルトの名無しさん
12/08/18 17:50:16.53
uYさんのゲームってどこに売ってるんですか?

31:デフォルトの名無しさん
12/08/18 17:53:16.40
>>28
それって素直にsinって書けばいいじゃんって疑問はuYワールドではタブーなの?

32:デフォルトの名無しさん
12/08/18 17:55:32.83
>>31
sinそのまま使ったらuyの根幹部分使う局面が減るじゃん
簡単な問題に難解なソリューションを、が俺すげーの源になるらしい

33:uY ◆gXFLM6waxs
12/08/18 17:55:59.43
>>29
どんなデータ?
適用できるけど適用しない
それは普通にかいたほうが良い
だから、speed = 0 にして、x、yを直代入でキャラ移動させる方法と
speed = 1 とかにしてangle指定でキャラ動かす方法の2つを用意してるんだよ
sinカーブ作りたいならspeed = 0 にして x、y 直代入でいいだろ
さらにいえば数列生成ロジックと呼んでるものさえ表現する1個の道具に過ぎない

それに曲線を描くなら三角関数使わずとも
xx = counter( 0 , 3 , 0.05 )
 y += 1
 x += xx.call

こんな感じでもいけるのは分かるよね?

34:デフォルトの名無しさん
12/08/18 17:58:59.40
sin使いたい時はsin関数使うのが普通だろ
重箱のすみばっかりつつきよって
おまえらどんだけuY好きなんだよw

35:デフォルトの名無しさん
12/08/18 17:59:36.80
?x?

36:デフォルトの名無しさん
12/08/18 18:00:01.61
実際動いてるとこのキャプチャくれよ
とてもではないがこんな糞コードでゲーム作ってるなんて信じられん

37:デフォルトの名無しさん
12/08/18 18:00:59.94
>xx = counter( 0 , 3 , 0.05 )
>y += 1
>x += xx.call

ごめんなさい、僕これが曲線になるとは思えないんです

38:548
12/08/18 18:02:55.93
>>37
イメージだよ、イメージ
ってごまかされるから無駄

39:デフォルトの名無しさん
12/08/18 18:07:09.95
>>37
多分(x, y)を曲座標平面の座標と捕らえて、直行座標に変換すると曲線になるっていう意味だと思う

40:デフォルトの名無しさん
12/08/18 18:10:47.24
ああ、それなら渦巻き型に曲線を描くね

41:uY ◆gXFLM6waxs
12/08/18 18:10:58.20
>>37
 ↓
  ↓
  ↓
  ↓
   ↓
   ↓
    ↓
     ↓
       ↓
          ↓
             ↓


42:デフォルトの名無しさん
12/08/18 18:13:47.67
>funcは カウンターだよ
>初期値 0 最大値 360  add 1
>呼び出す度に 1,2,3,4,5,6,7,8,..............

>xx = counter( 0 , 3 , 0.05 )
⇒呼び出す度に 1, 1.05, 1.10, 1.15,..............

43:デフォルトの名無しさん
12/08/18 18:16:11.24
>>42
ん?でそのxxを足し込んでいくから曲線になるんでしょ?
あんま馬鹿にしてっと馬鹿がばれるぞ

44:uY ◆gXFLM6waxs
12/08/18 18:17:15.71
つうか、俺はもっとネストにネストして複雑な仕組みでやってて
それをどうにか理解されるように解凍しながらコード書いてたけどもう無理なようだな
かいてるコードをそのまま載せる

既に俺は直接 インクリメントとか += とかは、かかないんだよ

実際に使ってるコードを載せるならこんな感じ

URLリンク(s1.gazo.cc)

↓ これを表現するコードはこれ

  def testtt o
    img = Image.new(20,20,[200,250,220])
    spd = Counter.cc  0 , 5 , 0.01 
    ang = Counter.cc  90 , 875 , 1
    pattern_4 o , img , spd , ang ,   4 ,  10 , 180   
  end

45:デフォルトの名無しさん
12/08/18 18:19:26.83
その軌道じゃ複雑に書く意味が一ミリもないwww


46:デフォルトの名無しさん
12/08/18 18:20:28.16
>>45
馬鹿にしてるやつは自分のも晒せや

47:デフォルトの名無しさん
12/08/18 18:23:07.33
結局優位性は見えないまま

48:デフォルトの名無しさん
12/08/18 18:28:18.04
くだらないところで生産性削いで効率とかほざくならmoonscriptとluajitにして素直に書くほうが良くないか

49:デフォルトの名無しさん
12/08/18 18:32:34.12
そうするとスクリプトに持ってかれるから俺すげーできなくてつらいんだろ

50:デフォルトの名無しさん
12/08/18 18:34:56.56
おまえら馬鹿にすることしか楽しみがないんだな
かわいそうに

51:デフォルトの名無しさん
12/08/18 18:37:12.59
>>50
根本的に問題だらけだから、目をつぶれというなら手放しで褒めることになるんだが

52:uY ◆gXFLM6waxs
12/08/18 18:38:11.82
元々これは
画像のalpha値を表現するためのカウンタとして作った
フェードインやフェードアウトのときに
n+= 1
if n > 255
 n = 255

とか、こんなコードをなくすための単純なものだった
上のコードは今では
n.call  で終わり

そこから少しずつ進化して、今ではあらゆる物が記述できるようになったに過ぎない

53:uY ◆gXFLM6waxs
12/08/18 18:38:59.85
誰でもいいから>>44 をsinか何かで表現してみてよ

かけますか?

54:デフォルトの名無しさん
12/08/18 18:39:22.18
あらゆるもの記述できてないってさっき言ってましたやん岡村はん

55:uY ◆gXFLM6waxs
12/08/18 18:40:17.90
>>54
7割

56:デフォルトの名無しさん
12/08/18 18:40:28.61
>>54
('_')

57:デフォルトの名無しさん
12/08/18 18:40:30.81
yaneuraoのyaneCounterじゃねえか

58:デフォルトの名無しさん
12/08/18 18:42:17.32
>>53
sin使うまでもない
<action>
<fire>
<direction type="sequence">23</direction>
<bullet/>
</fire>
<wait>1</wait>
</action>

59:デフォルトの名無しさん
12/08/18 18:45:38.76
>>58
あれ、こっちのが短くねーか?


60:デフォルトの名無しさん
12/08/18 18:46:11.76
>>57
何それ

61:uY ◆gXFLM6waxs
12/08/18 18:46:29.66
>>57
え、そのソースみたいんだけど

62:デフォルトの名無しさん
12/08/18 18:47:35.51
BulletML使えし

63:uY ◆gXFLM6waxs
12/08/18 18:47:52.19
>>58
違うだろそれ
sequenceは、前の弾幕との相対距離じゃなかった?
カーブを表現するためのコードが入ってない

64:デフォルトの名無しさん
12/08/18 18:48:39.27
×距離
○角度

65:uY ◆gXFLM6waxs
12/08/18 18:53:40.24
BulletMLしね

66:デフォルトの名無しさん
12/08/18 18:55:30.24
車輪再発明の努力をすべてBulletMLに否定されまた一人の男が散って逝った

67:デフォルトの名無しさん
12/08/18 18:57:35.90
そろそろ休み終わるから有意義に過ごそうぜ

68:uY ◆gXFLM6waxs
12/08/18 19:03:01.63
相対って言う概念はまだ入れてないから
BulletMLみてsequenceは入れようかどうかは考え中

よくみたら>>58>>44全然表現できてないし
速度の加速はどこいった?
ソースコードとキャプ晒して欲しいんだよ

69:デフォルトの名無しさん
12/08/18 19:15:20.07
>>67
そうだな、土日が明日で終わる

70:デフォルトの名無しさん
12/08/18 20:12:01.18
>>67
ばぶー!

71:デフォルトの名無しさん
12/08/18 20:36:20.86
トリつけて真っ向勝負したuYの勝ち
まあ、勝負してるつもりもないだろうけど

72:デフォルトの名無しさん
12/08/18 20:38:23.34
>>71
よぉuy

73:デフォルトの名無しさん
12/08/18 20:44:04.28
>>72
残念ながら違う
嘘だと思うなら2ch運営にリモホ訊いてご覧なさい

74:デフォルトの名無しさん
12/08/18 20:53:08.88
で?
一生のうちで50回もないお盆休みのうちの1回をuyは車輪の再発明に使ったって?

75:デフォルトの名無しさん
12/08/18 20:56:54.79
再発明は先人に失礼だろ

76:デフォルトの名無しさん
12/08/18 21:03:42.41
お盆休みに2ch。。。

77:デフォルトの名無しさん
12/08/18 21:23:24.83
効率性を求めるのが無駄とは言わんが
それより先に高速性や可読性のあるコードが先だと思うんだが・・・・。
効率性なんてそれこそスクリプト化すればいいし

78:uY ◆gXFLM6waxs
12/08/18 22:10:06.67
可読性でいったら俺にとってはXMLよりこれが読みやすいし
後からメタもしやすいんだよ

それにこのカウンタは俺様Libの標準ライブラリだから
別にゲ製作でのみ使うものでもないし
2年前に作った機構

79:デフォルトの名無しさん
12/08/18 22:19:31.19
それもう飽きたから次のネタ頼むわ

80:デフォルトの名無しさん
12/08/18 22:23:17.38
そうだそうだ!

81:デフォルトの名無しさん
12/08/18 22:23:53.72
てめーらuyに文句たれる割にはネタ切れとか、たまには自分で提供しろやw

82:デフォルトの名無しさん
12/08/18 22:28:13.83
だってネタは真新しさかあるいはツッコミどこがないとダメだろ
俺ら程度の実力じゃ新しいネタはでてこないし
過去に議論され尽くした技術の話してもそうだねで終わる
だからツッコミどこしかないuyのネタはありがたいんだよ話題としてはね

83:デフォルトの名無しさん
12/08/18 22:31:31.04
モルピグ作りたいんだけど
普通のPCスペックのマシンを鯖にしたら何人くらい同時接続できるもんなの?
200人くらいいける?

84:デフォルトの名無しさん
12/08/18 22:33:33.58
どうしてスクリプト=XMLと思ってるかは知らんが
自前のスクリプトというつもりで書いたんだけどな

「俺にとっては」ってのも結構危険な考え方だと思うが
余所様のやり方にいちいち難癖つけたとこでどうにもならんか

85:デフォルトの名無しさん
12/08/18 22:37:49.47
MMORPGをモルピグって言うのどうなの?

86:デフォルトの名無しさん
12/08/18 22:42:26.75
>>85
どうもこうも英語圏ではそう読む。

87:デフォルトの名無しさん
12/08/18 22:43:15.95
常識だよな

88:デフォルトの名無しさん
12/08/18 22:48:40.08
>>83
100人くらいで先にネットワークが音を上げそうだけど
計測したことないから分からないな

89:デフォルトの名無しさん
12/08/18 22:54:15.76
コンピュータネットワーク関連の学会とかだと
MMORPGが例として出されることがあるんだけど
みんな「ッモルピグ」って読んでる

たまに日本人の研究者がうっかり「えむえむおーあーるぴーじー」って読むけど
変な顔をされたりジョークの一種だと思って笑われたりしてるよ

日本国内に限定して言えば「えむえむおーあーるぴーじー」のほうが普及してるけど
本来の正しい読み方は「ッモルピグ」だよ

ただ、日本人には「ッモ」の発音がかなり難しいから最初の「ッ」を取って「モルピグ」になってるんだろ

90:デフォルトの名無しさん
12/08/18 22:56:40.73
常識だよな

91:デフォルトの名無しさん
12/08/18 23:39:02.14
それでッモルピグじゃなくてモルピグって読む奴が多いのか

92:デフォルトの名無しさん
12/08/19 00:13:38.65
>>88
サンクス
やっぱり作ってみるしかないか・・・

93:デフォルトの名無しさん
12/08/19 01:08:34.01
海外鯖だからリアルタイム性によっては堪えられないだろうけど
PhotonCloud/Serverなんかはトータルで安くなりそう

94:デフォルトの名無しさん
12/08/19 01:58:02.82
>敵A が x座標 200からスピード1ずつ右へ移動しx座標400へ到達し、
>そこで100フレーム待機、その後左へ移動しx座標200へ戻り、到達したら100フレーム待機
>この動作をループさせたい

>c = func( 200 , 400 , 1 )
>task_add { |o| o.x = c.call }

まあループは良いとして、
「そこで100フレーム待機、その後左へ移動しx座標200へ戻り、到達したら100フレーム待機」って
どこに書いてあるの?



95:デフォルトの名無しさん
12/08/19 02:28:27.61
きっと1動作終了後に100フレーム待機がデフォルトで、
移動後は元の座標へ戻るってのもデフォルト動作なんだよ

96:デフォルトの名無しさん
12/08/19 02:46:41.37
それってどういう設計方針だってばよぉ

97:uY ◆gXFLM6waxs
12/08/19 02:57:08.28
細かいとこに気づくな
waitは抜けてた

そのメソッドは元々ハッシュ引数を受け取るメソッドだったんだけど、
いちいちハッシュKeyの指定が面倒だから、数値だけでも指定できるようにしていただけで
正しく書くとこんな感じ

func(
:init => 200 ,
:end => 400 ,
:add => 1 .
:wait => 100 ,
:loop_wait_ex => [200,400] ,
)

この場合、200と400は初期値と終点だから、
>:loop_wait => [200,400] , これなしでもwaitするけど
配列の要素増やせば200,400以外の場所でも止まれますよアピールです

98:デフォルトの名無しさん
12/08/19 03:05:22.41
tweenの出来損ないにしか見えない

99:デフォルトの名無しさん
12/08/19 03:07:43.50
>>98
文句だけは速いなw

100:uY ◆gXFLM6waxs
12/08/19 03:08:26.40
俺はすべてのメソッドのメソッド名と引数の順序覚えてるからハッシュ使わない

101:デフォルトの名無しさん
12/08/19 03:16:10.57
>>97
俺はレガシC++で止まっているんで
こういう抽象度が高い言語はわからないんだが、

例えば
x=200での待機を10フレーム
x=400での待機を100フレームにしたら
そのコードはどう変わるの?

102:デフォルトの名無しさん
12/08/19 03:23:14.54
>>101
おまえ>>9のコード読んだ上で言ってるだろ
uyに誤れ!

103:uY ◆gXFLM6waxs
12/08/19 03:27:15.59
>>101
その機能はまだ入れてない。入れようとはしたけど途中でやめた
結局コードっていうか、ただのメソッドへの引数だよ

どういう引数を渡せば自分が
>x=200での待機を10フレーム
>x=400での待機を100フレーム
こういう処理をかきやすいか&覚えやすいかってところ

今思いつくのはこんなもの
:loop_wait_ex_ex => [ 200 => 10 , 400 => 100 ] ,

こういうのやって実装するのは簡単だけど、
実装コードが>>9
こんな風に"綺麗に書いても"、大変なことになってるのであまり触れたくない
そして色んな場所でも使ってるカウンタだから、多機能にすればそれだけ全体処理が重くなる
現在のrubyの速度ならこんなもんだろうと思って実装は見送り中

104:デフォルトの名無しさん
12/08/19 03:28:14.67
>>99
お前、uyのコードだけ見て育ったみたいな顔してるよ

105:デフォルトの名無しさん
12/08/19 03:30:13.91
>>104
ちょっと何いってっかわかんないっすねぇ

106:デフォルトの名無しさん
12/08/19 03:50:06.46


107:デフォルトの名無しさん
12/08/19 03:51:29.67
>>103
だから一極集中せずに分割しろと・・・

108:デフォルトの名無しさん
12/08/19 04:00:58.51
>>103
もう痛々しすぎてみてらんない
大口叩いて引っ込みつかなくなったのはもう十分解ったから
もう諦めたら?

109:デフォルトの名無しさん
12/08/19 04:04:44.29
>>108
おまえ友達いねーだろ。。

110:uY ◆gXFLM6waxs
12/08/19 04:26:22.11
バカには無理

111:uY ◆gXFLM6waxs
12/08/19 04:32:24.70
実際これでも忙しくて
そのカウンタは自分がよく使う機能をまとめたに過ぎない
もう少し付け加えたい機能はいくつかあるけど時間がない

112:uY ◆gXFLM6waxs
12/08/19 05:08:46.57
なんだかんだいって実装した
ほかにも現在のカウンタの様子とか知らせるメッセージ用の変数も入れたいんだけどな
良い方法が思いつかないから見送り

:loop_wait_ex => [200,400] ではwait固定
:loop_wait_ex => ({ 200 => 10 , 400 => 100 }) でwaitは各個指定

お前らに使えとかいってない


>>101

func(
:init => 200 ,
:end => 400 ,
:add => 1 ,
:loop_wait_ex => ({ 200 => 10 , 400 => 100 }) ,
)


113:デフォルトの名無しさん
12/08/19 05:26:03.36
>お前らに使えとかいってない

じゃあ何がしてえんだよ
ここはお前のブログじゃねーんだよ
ブログ作っても誰もコメントしてくれないからここに書き込んでるんだろ
寂しいねえ

114:uY ◆gXFLM6waxs
12/08/19 05:27:29.47
念のためだけどお前らに使えとか言ってないから
3つあるカウンタも2個消して1個しか載せないけど
お願いしますと敬語で懇願したら晒せないこともない
けどどうせお前らには使いこなせない
けど普段の書いてるアルゴリズムってもしかしたらuYカウンタで表現できるんじゃね!?とか思い返すくらいは良いと思う

URLリンク(ideone.com)


 1 2 3 4 5 5 6 7 7 7 7 8 9 10
 9 8 7 7 7 7 6 5 5 4 3 2 1 0
 1 2 3 4 5 5 6 7 7 7 7 8

115:デフォルトの名無しさん
12/08/19 05:28:16.72
>>109
痛いとこついてくるなそうだよ
大学でも一緒に遊んだりするやつは両手で数えられるぐらいしかいない
学内で暇な時しゃべるぐらいの密度薄いつながりならもっといるんだが友達に数えられるのは少なすぎててなけてくる

116:uY ◆gXFLM6waxs
12/08/19 05:32:53.05
こんだけ友達いる
URLリンク(thwiki.info)

俺様は明日からはもうこれない
ゲ製作一区切りついた
プログラムの作業は休止、すいっちがきりかわる

117:デフォルトの名無しさん
12/08/19 05:34:58.87
心へしおれたか
そりゃそうだよな


118:デフォルトの名無しさん
12/08/19 07:40:28.96
アルゴリズムに自分の名前付けおったw

119:デフォルトの名無しさん
12/08/19 08:00:05.45
ゲームの中にしかお友達いないの?(´・ω・`)

module名もなんか東方キャラできもいし・・・
あ、僕のライブラリもけいおんのキャラ名だった(´;ω;`)

120:デフォルトの名無しさん
12/08/19 10:37:07.40
じゃあぼくちんゼロの使い魔キャラにする~^^

121:デフォルトの名無しさん
12/08/19 11:10:59.29
>>115
いや、そんだけいれば十分だ

122:デフォルトの名無しさん
12/08/19 11:12:27.60
>>116
あららもう来ないのか、、寂しくなるねぇ

おまえらがいじめすぎたからじゃねーか?ったく

123:デフォルトの名無しさん
12/08/19 11:25:46.65
>>122
>>116

124:デフォルトの名無しさん
12/08/19 11:30:14.46
変な奴だったけどいなくなるとさびしくなるな(しんみり)

125:デフォルトの名無しさん
12/08/19 12:01:17.58
いや明日からって話だからまだいるんじゃね
つかどうせしばらくしたらまたくるだろうし

126:デフォルトの名無しさん
12/08/19 12:36:16.63
使い方気をつけないと使えないってのはちょっとな…。
いやまぁ趣味でやっている分にはいいんだけど。


127:デフォルトの名無しさん
12/08/19 13:30:46.62
だね

128:デフォルトの名無しさん
12/08/19 15:09:27.69
ひゅーひゅー

129:uy
12/08/19 22:33:47.12
一文字メソッド名や連番のメソッド名ってなんでいけないの?
覚えれないから?

じゃあ完全記憶能力保持者なら一文字や連番でいいじゃん

130:uy
12/08/19 22:35:53.94
気づかれてるとおもうけど俺それ
一回みただけで待ちゆく人の数、木にある葉の数
飛んでる鳥の数
すべて覚えてる

131:デフォルトの名無しさん
12/08/19 22:35:57.85
1文字:検索に引っかかりにくいから
連番:意味がわかりにくいから

変数名を適切につけることは難しいことではないのに
わざわざ難読化する理由はオナニー以外の何者でもない

132:デフォルトの名無しさん
12/08/19 22:47:16.63
>>129
にせuyはお引き取りください
偽とかなんとかいわれたくないならトリ

133:デフォルトの名無しさん
12/08/19 22:50:51.57
本物の天才はバイナリで理解するから識別子とか必要ない

134:デフォルトの名無しさん
12/08/19 22:58:31.24
バイナリとれねーからいってんだろ

135:デフォルトの名無しさん
12/08/19 23:17:27.75
うほっ

136:デフォルトの名無しさん
12/08/19 23:22:07.20
おまえらつまらない

137:デフォルトの名無しさん
12/08/19 23:22:25.90
わざわざ書き込まなくてよし、つまらんから

138:デフォルトの名無しさん
12/08/20 00:29:32.44
さて、今年もやってきました CEDEC、逆から読んでも CEDEC

会場に行けない奴は、せめて気になるセッションだけでも
今のうちにニコ生のタイムシフト予約しとけよ

139:デフォルトの名無しさん
12/08/20 01:38:03.05
ああ今年いけないや。
でもまあcedilで読めばいい話だけどな。

140:デフォルトの名無しさん
12/08/20 13:43:07.21
ふっほっ

141:uY ◆gXFLM6waxs
12/08/20 20:47:28.40
ツリーでゲーム内オブジェクト管理してる奴に聞きたいんだけど、違う管理方法してる奴は話しかけないでね
オブジェクトに識別子みたいな名前って付けるじゃん

でもそれ、例えばこのAからツリー全体を検索する時に

            A
            │
      ┌────┐
      B          C
     │           │
   ┌──┐   ┌──┐
   D     F    D      F 


DとFが名前同じな場合に、区別する方法ってどうすればいいの?


142:uY ◆gXFLM6waxs
12/08/20 20:56:56.82
基本的に識別子は、"同じ階層内"では重複しない識別子を規則に沿って与えてる

ツリー全体で絶対に重複しない識別子を与えると、
ちょっと設計の仕様的にまずい事が起こる可能性が高くてやばい
ネスト回数でも与えるのが普通の手段ですか?

143:デフォルトの名無しさん
12/08/20 21:04:06.22
ポインタで識別すればよくね

144:デフォルトの名無しさん
12/08/20 21:06:14.88
あれ?
もう来ないんじゃなかったの?


145:デフォルトの名無しさん
12/08/20 21:08:36.61
>>142
まずは全体で重複しない識別子にすると発生する問題を詳しく説明して
なにがどうなって問題になるの?

146:デフォルトの名無しさん
12/08/20 21:10:25.87
ふにー

147:uY ◆gXFLM6waxs
12/08/20 21:18:35.06
>>145
全体で重複しない識別子にする方法は2種類だと思うけど
1 ツリー全体検索をかけて重複しないものを探す( 遅いから論外 )
2 オブジェクト生成の度に違う文字列でも返しとく

この2は出来なかった
RubyのSymbolを使って識別子にしてたんだけど、Symbolは200万個ほど生成するとrubyが落ちることが発覚
未使用になったらSymbolの削除の方法をrubyスレに聞きに行ったけど多分誰も教えてくれない

148:デフォルトの名無しさん
12/08/20 21:38:58.62
>>147
GUID使えばいいよ

149:デフォルトの名無しさん
12/08/20 21:40:15.62
>>147
概算でいいからシーン中の全オブジェクト数は最大どれぐらいだ?

150:uY ◆gXFLM6waxs
12/08/20 21:45:41.65
>>149
一度に表示するのはせいぜい500くらい
基本的に
:effect_(連番)
:eneny_(連番)
という具合生成

でもエフェクトとかは生成と破棄がかなり行われるから
多分連番でつけてたらゲーム最後まで行く前に200万超えてる
起動しっぱなしで2週目されたら絶対アウト
いまSymbolを使っちゃってる場所を少しずつ文字列で書き換える作業を・・・・・

151:デフォルトの名無しさん
12/08/20 22:01:00.10
>>150

一度に500程度なら番号生成ロジックはこんなのとか

que:空き番キュー。破棄された番号をキューイングしていく
idx:連番の先頭

1.queが空でなければ先頭の要素を使用する
2.queが空ならidxを使用し、idxを+1しておく
3.破棄したら番号をqueの末尾に追加

152:デフォルトの名無しさん
12/08/20 22:09:49.71
>>150
その程度なら整数をインクリメントしながらIDとして与えれば十分
たかが二百万だろ?整数の最大値からすればカスみたいなもんだ
使い終わったIDを処理する必要すらない

153:デフォルトの名無しさん
12/08/20 22:16:43.93
アクション系のゲームでパフォーマンス絡むと適切かどうかわからないけど、

名前が同じなら絶対パスで比較するとかは?

D == D and A.C.D == A.B.D

省リソース化は、Flyweightパターン等を参考にインスタンスを再利用するといいよ。

154:uY ◆gXFLM6waxs
12/08/20 22:29:48.06
>>151
SUGEEE流石ゲームPGだ
Thx!それ使わしてもらう

>>152
いや使い終わったSymbolも処理されないのがruby
元々Symbolはオブジェクトとかに使っちゃいけなかったのかもしれない
一回でも :aa ってやったら処理系再起動するまで永久に残ると思う
これセキュリティホールになりうる気がして仕方ない

>>153
あー、そういう手もあった


155:152
12/08/20 22:51:42.23
>>154
いやSymbolじゃなくてただの整数をIDとして使うんだよ


156:uY ◆gXFLM6waxs
12/08/20 23:01:16.03
いやだよ
書きえられる場所は文字列にした

157:デフォルトの名無しさん
12/08/20 23:03:53.56
なんで嫌なんだよ?
個体識別には整数IDが正解だよ
意気地になってないでたまには素直に人のアドバイスも聞いたほうがいいよ

158:デフォルトの名無しさん
12/08/20 23:20:25.99
オナニーできないアプローチを彼が取り入れるわけがない

159:uY ◆gXFLM6waxs
12/08/20 23:43:46.72
rubyにはobject_idっていうものがついてて
格オブジェクトに勝手に数字割り振られてるから
それだったら最初から出来てる

俺様がやりたいのは
文字列等で自分が分かる形での識別だし


160:デフォルトの名無しさん
12/08/20 23:53:30.14
>>159
頭悪いんだなぁ
だったらそのIDから文字列生成すればいいじゃないか
ひょっとしてギャグで言ってない?

161:uY ◆gXFLM6waxs
12/08/21 00:22:59.41
死ね

162:デフォルトの名無しさん
12/08/21 00:25:37.77
複雑にしなきゃ気が済まないんだもん☆ぷんぷん

163:デフォルトの名無しさん
12/08/21 00:46:23.74
次の土日あたりには何食わぬ顔して戻ってくるんだろうと思ってたが
まさか1日もたないとは…

164:デフォルトの名無しさん
12/08/21 00:50:53.90
いいんだよ、きてくれなきゃぽまいらもさびしいだろ

165:uY ◆gXFLM6waxs
12/08/21 01:44:03.48
>>160
あ、きつい事いっちゃってごめんね
object_idね、確かに良い手段だね
実装めんどくさいんだよアホが

166:デフォルトの名無しさん
12/08/21 01:44:46.77
こんどはツンデレ系かよ

167:デフォルトの名無しさん
12/08/21 01:49:52.77
すまんデレツンだった
おれもまだまだだな

168:デフォルトの名無しさん
12/08/21 12:03:23.98
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |  / ̄ ̄ ̄ ̄ ̄
  |∵ |   __|__  | < うるせー馬鹿!
   \|   \_/ /  \_____
      \____/

169:デフォルトの名無しさん
12/08/21 14:45:06.26
rubyワラタ

170:デフォルトの名無しさん
12/08/21 17:15:01.07
3Dのゲームを作りたいのですが、ツクールのように作成できるツールはありませんか?
C言語の基礎くらいなら勉強しました。

171:デフォルトの名無しさん
12/08/21 17:34:57.45
>>170
ほらよ
URLリンク(tkool.jp)

172:デフォルトの名無しさん
12/08/22 23:58:34.51
2Dアクション作るのにオススメの参考書とか教えて下さいな

173:デフォルトの名無しさん
12/08/23 00:06:25.78
2chはクズしかいない

174:デフォルトの名無しさん
12/08/23 07:33:04.56
>>172
Programming 2D Games
URLリンク(www.amazon.com)

主に大学生を対象に書かれている。
ゲームエンジンを自作するところから、当たり判定処理などは当然として、
エフェクトやサウンド関係、ネットワーク処理まで扱っている。

175:デフォルトの名無しさん
12/08/23 13:04:28.97
日本語の本ないんですか?

176:デフォルトの名無しさん
12/08/23 13:40:11.74
うらおのWebサイトでも見てろ
日本語の初心者向けゲーム開発本で当たりは無いよ
だいたい初期化の呪文確認本

177:デフォルトの名無しさん
12/08/23 14:48:11.83
あ~あ…

178:片山博文MZボット ◆0lBZNi.Q7evd
12/08/23 16:28:33.17
いいのがないと思ったら、自分で出版しなさい

179:uy
12/08/23 17:57:26.81
俺様的にC++での開発ならまずスマートポインタの作り方を本にかくべきだと思うけど手動でメモリ管理してるような書籍しか見たことない
ゲーム本かいてる奴のHP見に行ってももゲームなんて公開されちゃいないし手動解放してる箇所がソース中一カ所でもあったら初心者乙
って言いたくなるスマートポインタすらなかったらまず規模のあるゲームはバグだらけになって開発のスタートラインにすらたてない手動管理と手動解放はちがうだろかす

180:uY
12/08/23 18:29:18.77
作り方書いてある本はカス
使い方で十分


181:デフォルトの名無しさん
12/08/23 18:30:53.25
タイムマシンの作り方


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch