X



今までみた絶望的なソースコード [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん垢版2015/04/17(金) 23:00:30.63ID:55USvuES
今井氏:ソースコード公開は、社長のティム(*2)の意向です。彼はバリバリのプログラマーで、初期の「Unreal Engine 1」を
1人で書いた人ですが、若い時に雑誌に載っていたコードを書き写して勉強したそうです。それで今の若い人にも、プロのソー
コードとはこういうものだというのを見せたいという願いがあって、ソースコードを公開しています。本当に今のゲーム業界の
事情を憂いてる1人だと思います。(*2)Epic Gamesの創業者兼CEOであるTim Sweeney氏

出村氏:読みやすいコードですよ。「C++」というのは、黒魔術(高度な計算)が多くなりがちな言語ですが、
そういうこともなく、すっきりしていて目的の機能も探しやすい。解読しやすいコードなので、確かにお手本になると思います。

僕は初代のゲームボーイからプレイステーション 2の頃くらいまでゲームプログラマーだったのですが、ゲームプログラミングでは
必ず数学が出てきます。行列とか三角関数とか。もちろん今でもまったく不要になったわけではありませんが、そういう知識の
重要性は薄れてきていると思います。「Unreal Engine」では特にそうです。
http://game.watch.impress.co.jp/docs/interview/20150417_698349.html

初級者から中級者へ昇格する時期は、ほぼどのようなソースコードでも読める程度にプログラミング言語に精通し、
また偉いプログラマーの提唱したデザインパターンも一通り理解したくらいの時期である。

すると、プログラミング言語の持つあらゆる機能と、偉いプログラマーの提唱するあらゆる技術を使わねばならない
という思い込みが発生する。そしてHello Worldにまで崇高なオブジェクト指向や壮大なデザインパターンを
適用しようとしだすのである。

その結果、
* 大量のクラス
* 迷路のような変数渡し
* 底なしに深いネスト
などといった凄いものが生まれる。また、条件分岐に三項演算子を乱用するなどの症状も多く見受けられる。
最終的には第三者にとって読みにくい保守性の悪いスパゲッティコードが生成されることになる。
http://monobook.org/wiki/%E4%B8%AD%E7%B4%9A%E8%80%85%E7%97%85
0691デフォルトの名無しさん垢版2016/01/09(土) 20:13:15.02ID:1QZox6W1
>>685
>それともAとBとCの単体テストだけやっておしまいって話?

だったらお前はその上層と下層を全て含めた
ABCDEFGHIJKLMN…
の全てのケースを含んだテストを一生かけてやってろ。

ユニットテストのしかたもする意味もわかってない馬鹿。
0692デフォルトの名無しさん垢版2016/01/09(土) 20:18:44.12ID:j10t/SxZ
単体テストのやり方がわかっていないからといって馬鹿とは限らない。
アインシュタインは単体テストのやり方を知っていただろうか。
0693デフォルトの名無しさん垢版2016/01/09(土) 20:32:29.40ID:1QZox6W1
単体テストのやり方がわかっていないから馬鹿だといってるのではない。
馬鹿だから単体テストのやり方がわかっていないと言っている。
0694デフォルトの名無しさん垢版2016/01/09(土) 20:36:35.31ID:1QZox6W1
AのバグとCのバグを合わせた結果、テストケースでは見かけ上正しい出力がされてグリーンになってしまいました、

ABとCが分けてなかったらどうやって隠れた問題を検出するんだ。
0695デフォルトの名無しさん垢版2016/01/09(土) 20:41:02.73ID:+5afeFvR
そもそも全てのプログラマがユニットテスト書くわけでもないしね(技術的にも仕様的にも)
0696デフォルトの名無しさん垢版2016/01/09(土) 20:47:18.34ID:1QZox6W1
ユニットテスト出来ない奴がいる事と、理想的なコード自体の書き方と、何の関係があるんだよ。


何がそもそもだ、ばーーーーーーーーーーーか!
0697デフォルトの名無しさん垢版2016/01/10(日) 06:54:26.02ID:wBDEYS7B
>>1
RPGツクール2000 , RPGツクールMV https://tkool.jp/mv/ ( JavaScript 採用 )

WOLF RPGエディター http://www.silversecond.com/WolfRPGEditor/

デュエル・マスターズ Android版 ,i-OS版、公式 http://dm.takaratomy.co.jp/extra/dmapp/entrygate_ds/
デュエル・マスターズ対戦CGI ex
https://web.archive.org/web/20150809154946/http://www53.atwiki.jp/dmsuishinparty/pages/314.html

デュエル・マスターズ(デュエマ)DM ONLINE 1.8a  /  VanGuard ONLINE 1.5a
https://web.archive.org/web/20150809160254/http://uhyohyohyo.sak ura.ne.jp/hsp.html

ヴァンガード専用ネット対戦ツール【 VanGuard Online 】
https://web.archive.org/web/20150809155032/http://kiimaa.jugem.jp/?eid=61

「カードファイト!!ヴァンガード」のネット対戦ができる公式オンラインゲーム「Cardfight!! Online」 2015年冬スタート
https://web.archive.org/web/20150809153724/http://supersolenoid.blog63.fc2.com/blog-entry-6886.html

遊戯王 Automatic Dueling System
https://web.archive.org/web/20150809164855/http://www3.atwiki.jp/ads-wiki/pages/20.html

遊戯王 デュエル・オンライン
https://web.archive.org/web/20150809171527/http://www31.atwiki.jp/vipdo/pages/15.html
https://web.archive.org/web/20140628005202/http://do.yugioh-portal.net/

ウィクロス( WIXOSS ) WEBXOSS http://webxoss.com/about_en.html http://webxoss.com/DeckEditor/

BG(ボードゲーム)Engine https://web.archive.org/web/20151209080842/https://bgengine.net/
https://web.archive.org/web/20151209172205/http://14owl.hateblo.jp/entry/2015/12/09/011234

アプレンティス  マジック:ザ・ギャザリング(MtG)オンライン化 http://homepage1.nifty.com/Q_Q/ap.html
https://web.archive.org/web/20151202202725/http://homepage1.nifty.com/Q_Q/ap.html
0698デフォルトの名無しさん垢版2016/01/10(日) 06:55:32.25ID:wBDEYS7B
【 オンラインTCGエディター 】   >>1,>>697

デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。

例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、
当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを
ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。
既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。
デュエマ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、旧ガンダム・ウォー、ライブオン、ディメンション・ゼロ、シャーマン・キング、カードヒーローなど
のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書け。
マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストしろ。
個vs個、多数乱戦、チームvsチーム、個vsチームを実現し、P2P通信対戦プラグイン有り。

設計思想は 《 RPGツクール 》 が良いかな?  他に、優れたエディター有ったら挙げてみろ。

個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。

エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。

遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。
バトスピ、ヴァンガ、デュエマなど発売済みゲームソフトが存在してるTCGはベンダーに研究させる。

各社TCGを再現するテストプレイ ⇒ 更に改良や修正 + コード記述の仕様書(設計書)を作成。

機能制限した下位版を制作しても原則として発売せず + 上位版デュエリ−グ用でサーバー稼動。

下位版を仮に発売した場合の改造および商用利用には、別途で当社との契約が必要。

さ〜て、インド人ベンダーと日本人の翻訳担当SEを見つけよっと!ww
http://wc2014.2ch.net/test/read.cgi/entrance2/1451262577/-16
0699デフォルトの名無しさん垢版2016/01/10(日) 13:12:39.79ID:/ndDSiBm
971 名前:名無しさん@七周年[] 投稿日:2006/11/11(土) 00:56:10 ID:M8+ahUZV0
自称スーパープログラマー某

強烈加齢臭
メール見ない メール無視
ドキュメント見ない ドキュメント無視
説明聞かない 説明無視
話聞かない 話無視
ガム→むっちゃー むっちゃー むっちゃー むっちゃー
煎餅→バリバリバリバリバリバリ
菓子パン→モグモグモグモグモグモグモグモグモグモグ
カップアイス→むっちゃー むっちゃー ペロペロペロペロ

フロアすべてに響き渡る 超ばかでかいくしゃみ 当然手でおさえない

異音と異振動
ドスーン!ドスーン! ドカーン!ドカーン! バコーン!バコーン! ズドン!ズドン!
机が近いとマウスポインターが飛ぶ 誤操作誘発
書類だしたりしまうだけでドカンドカン

30秒ごとに口と鼻から異音
ふんっっ!    ふんっっ!   

備品破壊 貸与P C 破壊 他人のもの破壊

奴の作ったスクリプトとプログラムは使えない バグ製造機

電話や共有携帯電話 キーボードが油ベタベタ
奴に電話とPCとコンソールは触らせてはいけない
0700デフォルトの名無しさん垢版2016/01/11(月) 07:33:36.74ID:+0r+kZff
>>685
funcX(){
funcAB()
funcC()
}

funcAB(){
if
A
else
B
retuen
}

funcC(){
C
}

ってことなんじゃねーの。funcCが、funcABの動作に影響しないんであれば、
テストパターンは減らないけど、テストパターンごとの確認観点が減るんじゃない?
0701デフォルトの名無しさん垢版2016/01/11(月) 17:12:25.34ID:L4NGHVvd
ABとCが常にセットにして呼ばれる仕様だとしたら、
関数が増えて見通しが悪くなるだけな気がするけど
ユニットテスト利用する場合ってこうするほうがいいの?
0702デフォルトの名無しさん垢版2016/01/11(月) 17:25:55.13ID:WtkSn+b8
ソースコード見て問題なければテストする必要ないと思うの
0703デフォルトの名無しさん垢版2016/01/11(月) 17:50:15.50ID:d9M93+6h
完璧なプログラムを書けばテストは必要ない。
テストに頼るのは甘え。
0704デフォルトの名無しさん垢版2016/01/11(月) 18:22:50.45ID:zdgy9eHJ
プログラムが完璧でもコンパイラがバグっていて間違った実行ファイルができることもよくある
0710デフォルトの名無しさん垢版2016/01/12(火) 07:53:31.84ID:fdNSnT90
16bit系組み込みCで
配列の要素数が16bitに制限されるのを
無視したコード渡されてバグってた事あるな
コンパイラからの警告一切無し
0711デフォルトの名無しさん垢版2016/01/12(火) 08:05:23.03ID:fZplAbze
配列の添字が汎用レジスタのサイズ(≒int)の範囲に制限されるのは仕方ない
でもまともなコンパイラなら制限事項として明記してある
0719デフォルトの名無しさん垢版2016/01/13(水) 18:29:02.62ID:IMboGSkT
>>717
Cの標準ライブラリが無いってことは最近では非常にマレ
ROM容量の関係で使えないことはある
これを無いって言うなら無い
デカいのはprintfとか
あとはfloat, double, long longもROM容量の関係で使えないことも
0720デフォルトの名無しさん垢版2016/01/13(水) 18:32:38.56ID:IMboGSkT
標準ライブラリを使うのをためらうくらいの規模なら、当然ヒープも使わない
当然OSレスで、シングルタスク+割り込みのみ

もっと小さく、時計レベルのコードになると、そもそもコンパイラを使わない
0721デフォルトの名無しさん垢版2016/01/13(水) 20:04:23.38ID:AxNHdrPg
>>719
printf使えなかったらデバッグできないじゃん!
0722デフォルトの名無しさん垢版2016/01/13(水) 21:23:08.94ID:VbVWsLR9
>>721
リアルタイム性が不要ならICE(デバッガ)が使える
動かしながら変数の読み書きが出来るヤツもある

原始的なのだとポートを上げ下げしてオシロスコープで見るとか、LEDを点灯したりとか
0725デフォルトの名無しさん垢版2016/01/13(水) 21:58:56.38ID:AxNHdrPg
>>722
すごい世界
0726デフォルトの名無しさん垢版2016/01/13(水) 21:59:40.92ID:4t9WgEvh
putsどころかそもそも標準入出力ないからな
汎用ポートの空いてるピン使うか
JTAG使ってICEか計測器繋ぐかだな
0728デフォルトの名無しさん垢版2016/01/14(木) 00:28:34.09ID:qww60aj8
組み込みは感心する反面潰しきかないのがなんとも言えねぇ
組み込みは程々にした方がいいぞ
0729デフォルトの名無しさん垢版2016/01/14(木) 00:37:39.18ID:Xzg+p3Xe
シリアル入出力はよく使うけど、....
規模が小さいとデバッグ用だけにわざわざシリアルドライバを書かなかったり
そもそもシリアル用ハードが無かったり使えなかったり

非常にリアルタイム性が要求されるDSPプログラミングとかだと割り込みなんか使いたくないし、
小型マイコンだとバッファ用にメモリが割けなかったり

まあ物によってデバッグ方法もいろいろ
0731デフォルトの名無しさん垢版2016/01/14(木) 15:09:22.15ID:h8CGsofL
低速マイコンでRAMも使わずにCPUも占有せず、場合によってはポートも使わないでソフトUARTか
頑張って作ってね
0733デフォルトの名無しさん垢版2016/01/14(木) 20:34:54.74ID:1Js/RlWK
>>730
割り込み禁止にしてCPUサイクルでクロック作るのか
タイマ割り込み駆使してクロック作るのか
どっち?
0734デフォルトの名無しさん垢版2016/01/14(木) 20:44:59.00ID:Xzg+p3Xe
もう一個位は方法があるけど...
まあ普通はそんなことはせずもっと普通の方法を使う

スローCPU、RAM使えず、ピンが足りない、パフォーマンスがシビア
とかだと使えないし
0736デフォルトの名無しさん垢版2016/01/14(木) 21:41:12.92ID:fK8eMzuy
なんでマイコン1個でやろうとすんだよ
そんな後付け条件出すなら信号垂れ流し用と信号待ち受け兼UART出力用のマイコン2つ使えばいいだろアホが
0737デフォルトの名無しさん垢版2016/01/14(木) 21:47:03.21ID:fK8eMzuy
>>732
AVRやLPC810とかなら知ってるけど?
つーか米粒の6ピンすらソフトで全二重UARTぐらい実装できるだろ
アホが
0738デフォルトの名無しさん垢版2016/01/14(木) 21:56:18.73ID:fK8eMzuy
>>733
ソフトUARTつても実装は色々あるからな
その全部かな
つーかアホはオシロやロジアナも使えないのか
0739デフォルトの名無しさん垢版2016/01/14(木) 22:09:04.91ID:Xzg+p3Xe
>>736
いや、マイコンの規模によって、いろんなデバッグ方法があるって話だが

デバッグ用にわざわざマイコンを積むのか?
金をかけて
組み込みはコストが非常に重要だったりサイズが非常に重要だったりするんだけど
で、複数マイコンを積んだとして、マイコン間の通信はどうする?
デバッグじゃなくてシリアル通信が目的になってないか?
0741デフォルトの名無しさん垢版2016/01/14(木) 22:21:14.63ID:fK8eMzuy
というか組み込みでデバッグ大変だわーで釣ってる奴が気に入らないわ
肝心なコアをMSに握られてるWindowsアプリのデバッグ考えるとただの愚痴にしか見えないんだわ
0743デフォルトの名無しさん垢版2016/01/14(木) 22:38:04.92ID:fK8eMzuy
>>742
誰が悪って言うならデバッグ方法いろいろとか書いといて具体的な方法は何一つ提示しないアホが悪いなんじゃないの?
組み込みはこういう口ばっかの奴が多くてうざいわほんと
0746デフォルトの名無しさん垢版2016/01/14(木) 22:40:31.37ID:fK8eMzuy
そういやここ絶望的なコードのスレなんだが
そもそも組み込みで絶望的な事なんてあるか?
作った品が売れないとかか?
0748デフォルトの名無しさん垢版2016/01/14(木) 22:43:01.11ID:fK8eMzuy
>>745
>>721は別のIDだしお前の発言かなんてわかんねーよ
ID:Xzg+p3Xeで具体的なこと何も書いてねーなーってことだよ
IDも判らないアホだって言いたいのか?
0749デフォルトの名無しさん垢版2016/01/14(木) 22:43:56.17ID:Xzg+p3Xe
>>746
いくらでもある
組み込みも規模はいろいろ
時計や簡単なオモチャレベルからWindowsを積んだようなものまで
0752デフォルトの名無しさん垢版2016/01/14(木) 22:46:09.80ID:fK8eMzuy
>いろいろある
>いくらでもある
吹いた
組み込み業界はこんなんばかりでまさに絶望的だな!
0760デフォルトの名無しさん垢版2016/01/14(木) 22:58:47.53ID:Xzg+p3Xe
>>758
わざわざUARTを使う理由はいろいろある
UARTを使わない理由もいろいろある

使わない理由は既にいろいろ書いた

使う理由は、
ログをテキストで(簡単に)残せる
PCからいろいろな制御が出来る
テストの自動化がやり易い
などなど

デバッガはデバッガで便利だが、シリアルデバッグもいろいろと便利
0761デフォルトの名無しさん垢版2016/01/14(木) 23:00:29.70ID:y5xIxK0W
まあ>>726は俺なんだけど
>>727に言いたいのは
printfもどき作る暇があったらICE使ってステップ実行した方が効率的だってこと
0763デフォルトの名無しさん垢版2016/01/14(木) 23:13:33.49ID:y5xIxK0W
こういうこと言うのもアレだけど
JTAGとかLFASTがシリアルじゃないとでも?
プログラムトレースとかデータトレースはリアルタイムで吐かせようよ
どうせ周辺のIPが勝手にやっといてくれるんだし
ログっておいて後でデバッガで再生すりゃいいんだからさ
0765デフォルトの名無しさん垢版2016/01/15(金) 00:04:58.75ID:zaUY/8Xo
>>764
なんで追えないの?
検索機能とか知らないの?

膨大なログを出すだけの実行コード行を
ステップで一行一行実行していく気?w
0767デフォルトの名無しさん垢版2016/01/15(金) 08:33:23.10ID:3+jxxZHF
膨大と言ってもせいぜい数百MB程度だから検索できない訳がない
printf使ったって結果はファイルにリダイレクトするだろ
同じようなもんだ
0768デフォルトの名無しさん垢版2016/01/15(金) 11:05:47.01ID:qP185FEX
       ロギング

  ∧_∧          __
 ( ・∀・)         | i \ \
 ( U U          | i  l =l
 と_)_) ____     | |__ノ  ノ
       | i(;;)H|   | ̄ ̄| ̄ ̄|
0770デフォルトの名無しさん垢版2016/01/15(金) 12:55:53.08ID:0fhpXD7V
そもそも、小さいマイコンじゃそんなに多量には吐けない

ブロッキングだと動作速度が大きく変わり
ノンブロッキングだと間引かれる
0774デフォルトの名無しさん垢版2016/01/16(土) 14:50:47.80ID:OsKsEu35
971 名前:名無しさん@七周年[] 投稿日:2006/11/11(土) 00:56:10 ID:M8+ahUZV0
自称スーパープログラマー某

強烈加齢臭
メール見ない メール無視
ドキュメント見ない ドキュメント無視
説明聞かない 説明無視
話聞かない 話無視
ガム→むっちゃー むっちゃー むっちゃー むっちゃー
煎餅→バリバリバリバリバリバリ
菓子パン→モグモグモグモグモグモグモグモグモグモグ
カップアイス→むっちゃー むっちゃー ペロペロペロペロ

フロアすべてに響き渡る 超ばかでかいくしゃみ 当然手でおさえない

異音と異振動
ドスーン!ドスーン! ドカーン!ドカーン! バコーン!バコーン! ズドン!ズドン!
机が近いとマウスポインターが飛ぶ 誤操作誘発
書類だしたりしまうだけでドカンドカン

30秒ごとに口と鼻から異音
ふんっっ!    ふんっっ!   

備品破壊 貸与P C 破壊 他人のもの破壊

奴の作ったスクリプトとプログラムは使えない バグ製造機

電話や共有携帯電話 キーボードが油ベタベタ
奴に電話とPCとコンソールは触らせてはいけない
0777777垢版2016/01/16(土) 18:26:19.06ID:XWGZA0lu
777げっち(´・ω・`)b
0778デフォルトの名無しさん垢版2016/05/01(日) 10:15:32.72ID:tKi6j9CT
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
0780デフォルトの名無しさん垢版2016/05/01(日) 18:06:50.36ID:XA7YY+e1
>>778
絶望的なコードの紹介?
0785デフォルトの名無しさん垢版2016/06/03(金) 12:08:02.65ID:cGjwwdHV
Enumを文字列のコード値にswitch文で変換して、それをswitch文で別のEnumに変換する
ってのがいろんな所に書いてあった
0789デフォルトの名無しさん垢版2016/06/06(月) 05:03:16.22ID:QbKl1YZH
>>787
納品前の結合環境のバグだよ
まともなフェーズ管理のある環境で働いたことのないガキは引っ込んでろ
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況