[過去ログ] C/C++ゲーム製作総合スレッド Part1 (1001レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
952: 2012/10/21(日)11:05 ID:2HisPjSj(1/2) AAS
マシン性能におんぶにだっこで、できる改善をやらないのは、プログラマの行動じゃないと思う。
953: 2012/10/21(日)11:12 ID:VgVyyYQT(1) AAS
じゃあ全部ハードウェアで実装しろ
954: 2012/10/21(日)11:26 ID:utAVkLK4(1) AAS
改善というのは、できうる限りマシン性能におんぶにだっこさせることなんだが、
それがプログラマの行動じゃ無いというのは、いったいどれだけ愚か者なんだろう?
955: 2012/10/21(日)11:29 ID:uEOq6DXM(1/2) AAS
ハードに頼れない馬鹿なプログラマはクビだ
956
(2): 2012/10/21(日)11:40 ID:fWFEJkHx(1/3) AAS
こいつらってハッカソンとか勉強会に参加してない低能なんだろ?
957: 2012/10/21(日)12:06 ID:un2TMSqt(1/2) AAS
できる改善というやつも
結局コーディングの手間と実行速度やリソース消費とのバランスだよな。
一概に言えるもんじゃない。
958: 2012/10/21(日)12:15 ID:/1IdSLkb(1) AAS
あーよくいるよね、知識だけ溜めこんで実装できない奴
959
(1): 2012/10/21(日)12:15 ID:uEOq6DXM(2/2) AAS
わかる
俺も中二の頃はハッカソンとか勉強会に参加するだけでカッコいいと思ってたよ
960: 2012/10/21(日)12:29 ID:PTum4Ngu(1) AAS
C++を知らないゲームプログラマ達
外部リンク:d.hatena.ne.jp
961: 2012/10/21(日)13:13 ID:smvmEgiA(1) AAS
だれこいつ
962: 2012/10/21(日)14:29 ID:2HisPjSj(2/2) AAS
例えば「この処理はハードがやってくれるからそっちに投げよう」というのはアリだろう。
けど「最近のPC処理能力ならできるだろうからやる必要はない」は相手の状況次第だろう。
相手が対象としてるPCが「最近の」だとは限らないし、作るゲームの規模も不明。

少なくともプログラム技術について語るスレで言うようなことじゃない。
963: 2012/10/21(日)15:22 ID:8o2Qx0nE(2/2) AAS
950からの流れでプログラム技術とか言っちゃう人って……
964: 2012/10/21(日)15:36 ID:VBPhaVkU(1) AAS
手を抜くための理由以上のモノではないしな
965: 2012/10/21(日)18:48 ID:fR9B1EWl(1) AAS
>>925が救われたのかが気になる
スレチだろうけどな
966
(1): 2012/10/21(日)19:16 ID:9rCgavl9(1/3) AAS
>>950は素直にC使った方がいいんじゃないだろうか
そんなところに拘っても可読性落ちるだけで
プレイヤーには誤差にも感じない程度の差しかでないでしょ
967: 956 2012/10/21(日)21:43 ID:fWFEJkHx(2/3) AAS
>>959
かっこいいって何?
ハッカソンとかGame Jamにも足運んでるし
CEDECとかにも毎年参加してるし
いろいろな勉強会開いたりしてるよ?
バンナム社員の人と会話とかしてTwitterでも話してるし

ちなみに愛機はMBP(MacBook Pro)使ってるかな
省7
968
(2): 956 2012/10/21(日)21:52 ID:fWFEJkHx(3/3) AAS
一応できる言語書くね

C,C#,C++,Javascrip(Node.js),Coffeescript,Haskell,Eralng,Go,Scala,Python,Objective-C,OCaml,Scheme,LISP
とか使えるね

あとUnityの本とか全部そろえてるし
今はアンドロイドアプリ作ってるかな
じゃんけんゲームみたいなやつ
969: 2012/10/21(日)21:58 ID:70260In1(1) AAS
ここってプロフェッショナルレベルの人たちが集っていたのか
970: 2012/10/21(日)22:02 ID:EmtRs25+(1) AAS
>>968
「使える」のレベルが低いことが用意に窺い知れる書き込みだな
971: 2012/10/21(日)22:07 ID:9rCgavl9(2/3) AAS
>>968
はじめて見るのがいくつかあるな
俺もgimpのスクリプト書くのにschemeちょっとやったけど
lisp系の言語ってどういう場面で必要になんの?
やっぱりスクリプト?
972: 2012/10/21(日)22:22 ID:koRq+7Oz(1) AAS
lispはemacsの設定で使う場面しか思いつかないな
973
(1): 2012/10/21(日)22:42 ID:63szXM1n(1) AAS
>>966
可読性が落ちるのは間違いないが、効果は誤差どころじゃないな・・・。
俺が950で挙げた前者は、みんなもやってるよね。

今時のコンパイラなら後者もOKなら、そろそろ観念してVS2012Pro買うかなぁと思ってさ。
974: 2012/10/21(日)23:43 ID:un2TMSqt(2/2) AAS
プログラミングのスキルは手段であって目的じゃないからな。
自分の作りたいゲームが作れなければ全ては無意味だ。
975
(1): 2012/10/21(日)23:51 ID:9rCgavl9(3/3) AAS
>>973
すいません、やってないっす…

関数細かく作るから同じメンバに何度もアクセスする箇所があんまりない
ループする箇所はSTLにまとめてイテレーターでやっちゃってるな…

もしかして、俺のコード超遅い?
976: 2012/10/22(月)00:56 ID:z1W7+ZfO(1) AAS
>>975
いやフレーム毎に収まれば正義ですし、可読性重視でいんでないですかね。

考えてみればExpressならすぐ使えたなと言うわけで、VS2012で試してみました。
うちの環境だと、基底から仮想関数で呼び出した場合に比べ、直で呼び出した場合は、
大体23%くらいの速度で行けるみたい。

最適化オプション色々変えてもあまり変わらず。
最新のコンパイラでも、やっぱり遅いみたいね・・・。
省1
977: 2012/10/22(月)02:16 ID:bfhvnErC(1/5) AAS
クラスインスタンスのdelete時に、Pure virtual function callのエラーが出て悩まされた。
純粋仮想関数持ってる親クラスのデストラクタに入ってから、その仮想関数を呼んでいることが原因だった。
978
(2): 2012/10/22(月)02:24 ID:GibO9cqH(1/4) AAS
deleteなんて自分で書くものじゃないし
デストラクタもなるべく書かないほうが良い
979: 2012/10/22(月)02:27 ID:F1nyTPCI(1) AAS
2012ってXPには未対応なんね
980: 2012/10/22(月)04:33 ID:bfhvnErC(2/5) AAS
>>978
そうなのか?
俺はdeleteもデストラクタも使い放題だぜ。
981: 2012/10/22(月)06:01 ID:87TUN/xt(1) AAS
>>978
気になる。理由は?
982
(1): 2012/10/22(月)08:33 ID:19qPn/dP(1) AAS
boostの参照カウンタ使えばdelete書かなくてもなんとかなる…かも?
983: 2012/10/22(月)09:11 ID:wKQ4qRL6(1) AAS
>>982
移植の際にコンパイルエラー出たときの対応コストがboostは大きくつく。
ジャンルによってはカウンタ同期のコストが馬鹿にできないこともあるだろうし。

minmalなオレオレsmartptrを作っておくのが一番苦労しない気がする。
984
(1): 2012/10/22(月)15:22 ID:buj+NpWL(1) AAS
#include <iostream>
#include <vector>
#include <string>

int main(){
std::vector<std::string> Strings;
std::vector<int> Vector;
Strings.push_back("1-2-3-4-5");
省11
985: 2012/10/22(月)18:04 ID:bfhvnErC(3/5) AAS
誰が調べてあげてたもれ
986: 2012/10/22(月)18:38 ID:yaXLi6zV(1/2) AAS
試してないけどboost::regex_grepに\\d+を突っ込むんじゃダメかな
987: 2012/10/22(月)19:30 ID:GibO9cqH(2/4) AAS
deleteを自分で書くな

std::unique_ptrを使え
ノーコストのスマートポインタだ
スコープから抜けるときに自動的にdeleterを実行してくれる

std::unique_ptrが使えない場面では仕方ないのでstd::shared_ptrを使え
多態が必要なときはstd::shared_ptrじゃないとダメだった気がする

デストラクタを書くのはスマートポインタで自動的に解放できないリソースを扱うクラスのときだけだ
省6
988: 2012/10/22(月)20:05 ID:YuwwqXlf(1) AAS
>>984
strtokでググれ
989: 2012/10/22(月)20:11 ID:bfhvnErC(4/5) AAS
でもさ、
あるクラスをアプリ実行期間中、存続させつつづけて、
ゲーム・ステージの切り替わりのタイミングで、
それが持つ配列型メンバをリサイズする場合なんかには
deleteを使わざるを得ないんじゃないか?
こういうケースは頻繁にあるんだが。
全ステージ配列のサイズは固定とか縛り持たせるわけでもあるまい。
990: 2012/10/22(月)20:20 ID:GibO9cqH(3/4) AAS
スマートポインタのvectorを使いなさい

あと、いまどき生配列はないな
固定長配列ならstd::array、可変長ならstd::vectorを使いなさい
Visual C++でデバッグモードでコンパイルすれば、範囲外アクセスしたときに例外投げてくれるはずだ
991
(1): 2012/10/22(月)20:56 ID:bfhvnErC(5/5) AAS
相互に関連していて、deleteでトリガーされるデストラクタの実行順を気にしなきゃいけない時もあるよ。
またブラックボックスな配列ってのは、リサイズ後のメモリアクセス効率性への影響が不安じゃない。
992
(1): 2012/10/22(月)21:12 ID:yaXLi6zV(2/2) AAS
それなりに寿命が短くて、確実に管理できるなら
new/deleteの方が楽よね
993
(1): 2012/10/22(月)21:21 ID:oFyoxOqU(1) AAS
>>991 例えばこういう循環参照を持つやつだよね。
struct B;
struct A{ B* b;};
struct B{ A* a;};

こういうときは、生存期間の管理用に一つ使い捨てのクラスを用意して、
struct C{
A a; B b;
省6
994: 2012/10/22(月)23:30 ID:GibO9cqH(4/4) AAS
オブジェクトへの参照を保持していることとオブジェクトを所有していることは別だと思うんだ

例えば木構造でなるべくメモリを局所化したい場合だとこういう感じになると思う

class Node { Node* firstChild; Node* sibling; Node* parent; };
std::vector<Node> vNode;

この場合、Nodeは他のNodeへの参照を持ってるけど、所有しているわけじゃない
所有しているのはvNodeを持つオブジェクトだ

あれこれって>993と同じことじゃね
995: 2012/10/23(火)00:04 ID:jziPb4Rf(1) AAS
weak_ptrを使うのだてめえら
996: 2012/10/23(火)01:15 ID:lf4QviES(1/2) AAS
class Task {
Task* m_pNext;
Task* m_pPrev;
bool m_Head; //デク先頭フラッグ
bool m_ToBeDeleted; //削除フラッグ
virtual void Exec()=0; //
};
省17
997: 2012/10/23(火)01:16 ID:lf4QviES(2/2) AAS
↑極端な例だが、
Repositoryクラス内で、シーン中、必要なインスタンスしか確保しないという条件の場合、
 まずSynthesisクラス内の要らないfibers_active要素だけ削除フラッグを立てて、
 次にRepositoryクラス内のフラッグが立ったfibers要素をdeleteして、
 次にRepositoryクラス内のフラッグが立ったfilaments要素をdeleteして、
 最後にRepositoryクラス内のフラッグが立ったtasks要素をdeleteする、
っていうのが効率的なんじゃないか?
省1
998: 2012/10/23(火)02:02 ID:7yJptL6x(1) AAS
>>992
「確実に管理しなければならない」ポイントを減らすためにライブラリ使うんでしょ
999: 2012/10/23(火)10:35 ID:8kXxMAJY(1) AAS
お疲れ
1000: [age] 2012/10/23(火)10:41 ID:5T7QFGuf(1) AAS
そしてさようなら(#゚Д゚)/~~
1001: 1001 Over 1000 Thread AAS
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.016s