【0から】C言語でゲームを作る【スタート】
■ このスレッドは過去ログ倉庫に格納されています
00011
04/08/25 08:14ID:GyrQ+1pUC言語を勉強していきたい人、など
まったく0から覚えていこうというスレです。初歩的な質問から進行状況の報告、
こんなゲームを作りたいんだ、等の夢、妄想を語ってくれてもおkです。
みんなでモチベーションを高めて挫折しないようにがんばっていきましょう。
たまたま来た先輩方は、みんな初心者なので暖かい目で見守ってください。アドバイス
や質問に答えてくれる方は大歓迎です。
0261名前は開発中のものです。
04/09/25 06:25:14ID:TV9NYwmX質問の意味がよくわからんが、
VBの実装はC++じゃないのかな、しかもかなり汚いコーディングと
思われる。なぜかというと、VBアプリはメモリリークが酷いのと
例外が飛びまくるから
0262名前は開発中のものです。
04/09/25 20:44:10ID:+hGFQdl8>>1
おめーがいいだしっぺだろ
こ、このスレまだ1ヶ月ですし、、た、たまたま来た先輩方は、みんな初心者なので暖かい目で見守ってください。
で、でも1さんはそろそろ何か書き込んでほしいっす。
ぼ、ぼくは一つの目標としてアクションRPG作りたいっす。南の島の平和な国、そこに住む少年が主人公。
ある日頭の中で声がする、「助けて・・・」誰かが助けをもとめている、でも少年は理解できない。
その日以来、少年の周りで奇怪な出来事が数々発生する。「助けて、助けて、助けて、助けて」
またあの声がする。困った少年はこのことを、親友のほんたまに話す。ほんたまは天然キャラで、これまた「理解できにゃ〜い」と言う
二人は、その町の物知りじじいのところへ相談しにいく。しかしじじいはあきらかに的外れなえっちィことばかり言う。
その日の夜、少年が眠りにつくと物語は急速に広がっていく・・・そう、それは精神の叫び・・・・
0264名前は開発中のものです。
04/09/27 11:46:50ID:vgTQXwV1Oからなら別に構わないけれど、少なくともゼロからじゃないよ。
たくさんのライブラリがあるから、ライブラリから作る必要はない。
時間はそんなにかからない。
0265名前は開発中のものです。
04/09/27 18:01:46ID:45vfQUszほとんどム板で足りる内容だな。
0266名前は開発中のものです。
04/09/28 02:49:46ID:5BOGiNuL初心者というか何も知らない状態です。
いろんなスレやサイトを見たのですがさっぱりわかりません。
本などを見てみたのですがライブラリというのがなければつくれないんですか?
また、ライブラリを手に入れる方法、使い方を教えてください。
0267名前は開発中のものです。
04/09/28 04:07:41ID:E2zIf+GH0268名前は開発中のものです。
04/09/28 05:40:22ID:KrLK6Y+v>いろんなスレやサイトを見たのですがさっぱりわかりません。
多分あきらめた方がいいと思いますが一応…
本を買ってひととおり読んでからまた来てください
初心者にはどの本がいいかはム板あたりで聞いてください
本をひととおり読んでもさっぱりだったら、潔くあきらめてください
0269名前は開発中のものです。
04/09/28 07:57:00ID:NQbjquqOちゃんと初心者向けの入門書で初歩から勉強しろ
いきなりツールを手に入れたからってお前にゲームを作る能力が
生まれるわけではない
ライブラリにしたって今の段階で手に入れたところで
使い方がわかるはずもない
ちゃんと初心者向けの入門書で初歩から勉強しろ
VBで、足し算やって結果を表示するくらいのことすら
できないのに一足飛びにゲームなんぞ無理だ
0270名前は開発中のものです。
04/09/28 08:15:43ID:2xEWyHUuVBの初心者向け講座のページ リンク
座標平面
http://f1.aaacafe.ne.jp/~zahyou/
VBFAN
http://www.sala.or.jp/~itagaki/vb/
和の空間
http://www2u.biglobe.ne.jp/~i-you/
------------------------------------------------
cの初心者向け講座のページ リンク
C言語入門
http://wisdom.sakura.ne.jp/programming/c/c.html
猫でも分かるプログラミング
http://www.kumei.ne.jp/c_lang/
0からのゲームプログラミング
http://www.plustarnet.com/aspil/Programming/
電子通
http://www.realdigital.co.jp/densi2/index.html
0271名前は開発中のものです。
04/09/28 12:13:44ID:K507FT3C0272名前は開発中のものです。
04/09/28 17:20:13ID:1Aqz8YG00273名前は開発中のものです。
04/10/03 22:32:45ID:4Dx4jUqoハードルは少しでも低くしていったほうがいいと思うんです。
Cで躓くというか、期待はずれなのは、グラフィカルじゃないという点だと思います、
ウインドウを出して、マップを貼ってキャラを動かす。
これができるだけでもやる気が違ってくるのではないでしょうか?
その裏にある膨大な処理も、細部を変える→画面に映るオブジェクトが変わるという風に
直感的に理解していけると思うのですが。
0274名前は開発中のものです。
04/10/03 22:44:43ID:+KDGoImHしかし、実際にはゲーム開発の場合、ビジュアルな環境は意味がない
どころか邪魔なんだよな。ゲームの中では画面周りは自分で描画する
から、VBやDelphiの最大の特長であるGUI部品は普通使わないw
しかも、RPGやアクションゲームの場合はゲームの処理自体もイベント
ドリブンにはしないでメインループを作るかスレッドで処理するだろ
うし(ビジュアルな開発環境、特にVBとの相性は最悪でVBの「手軽に
部品を貼り付けイベント処理でプログラミング」なフレームワークは
邪魔にしかならない)。
結局、Cが一番開発しやすい、ということになる気がw
0275名前は開発中のものです。
04/10/03 22:48:35ID:HZRN1qxQ0277名前は開発中のものです。
04/10/03 23:15:14ID:hKWPu2Oxすまんマジで何がいいたいのか解らん。
コードのサイズが画像一枚以下程度増えることに何か問題でもあるのか?
GUI部品を使った場合はユーザに視覚的な影響を与えるけど
コードのサイズは別に実行ファイルを生成すれば、
製作環境の違いによる差はほとんどでないよな?
0278名前は開発中のものです。
04/10/03 23:26:45ID:4Dx4jUqoそれが邪魔になったら捨てればいいだけで、
邪魔だとわかるまでには直感的にわかるものを見せたほうがいいと思うんです。
道具を選べる人というのは、それなりにスキルがある人ですから。
変なたとえ話ですけど、大工の棟梁が新人に、カンナ・のこぎり・トンカチ・水平器つきのマルチツールを渡しても
使いこなせないと思います。
初めは道具(各命令)がどのような働きをするのか?部品(処理)を操作するためにはどんな道具を使うのか?
を学んだほうがいいかと。
0279名前は開発中のものです。
04/10/04 00:26:31ID:OlATXCsZ確かに操作は簡単ですし、直感だけで頭空っぽにしてても
何かやった気にはなれますが。
…ってかコンソールでの基本制御構造の学習ってそんなにハードル高いか!?
単純に数値での結果しか画面に出ないからやる気でねーって気持ちは解るが
メンドクセー作業は、プログラム組んでく以上いつかは必ず発生するのだから
最初から、直感的じゃないから嫌だなんてこと言ってたら必ずどこかで躓くぞ。
イベントドリブンなんて必ずどっかで捨てるときがくるんだから、
初めから素直にCの基本制御構造覚えて、ループ処理での製作を目指したほうが
ずっと近道だと思うぞ。
0280名前は開発中のものです。
04/10/04 00:41:02ID:cd+i/ei4コンソールの地味な処理に魅力を感じないので
つくづくVBって罪な存在
0282名前は開発中のものです。
04/10/04 01:41:28ID:YCGOj2Qfだってオッサンなんだもん!そのほうが途中で数日あけても再開しやすいんだもん!
0283名前は開発中のものです。
04/10/04 04:20:39ID:KgUV+MGE0284名前は開発中のものです。
04/10/04 05:46:23ID:Hwc7Yvdg>グラフィカルじゃないという点
クソワロタ
0285名前は開発中のものです。
04/10/04 06:01:51ID:Hwc7Yvdgttp://pukapuka.s1.x-beat.com/img-box/img20041004060015.lzh
これでも見て目を覚ませや
0286名前は開発中のものです。
04/10/04 18:21:18ID:744Dt0gx0287名前は開発中のものです。
04/10/04 19:21:29ID:bxyBsrYEC++Builder使っとけよ(w
0288名前は開発中のものです。
04/10/04 20:12:28ID:r/uVIviH0289名前は開発中のものです。
04/10/05 01:27:56ID:jwAKdijX0290名前は開発中のものです。
04/10/05 01:34:18ID:n38QPiuwでもガリガリ書いていくと後で機能を追加する時に酷い目にあうから、
独習C++一通り眺めてみた程度でゲームオブジェクトのクラス化等企ててみたが
さっぱり巧くいかねぇ。MFCも訳解らんしなぁ…
0291名前は開発中のものです。
04/10/05 04:53:28ID:RiACBbxq0292名前は開発中のものです。
04/10/05 05:59:17ID:judce2ed0293名前は開発中のものです。
04/10/05 08:09:47ID:jWsixgV3後で機能を追加することを最初から想定するな
最初に仕様を確定してから製作を始めるんじゃボケェ
0294名前は開発中のものです。
04/10/05 09:48:01ID:XlWfTslW遊び方がわからん
>>290
> 最初は生C+APIでガリガリ書いていったほうが良いかのかねぇ。
最初はOSの振る舞いを理解するためにそれはやったほうがいいと思う
メッセージの役割とかイベント駆動とかをそれで理解する
0295名前は開発中のものです。
04/10/05 10:15:28ID:IQpS05j1MFCは無視しておk
最初はAPIガシガシでいいと思う
それとは別にオブジェクト指向の理解を深めていけばいいんでない?
0296名前は開発中のものです。
04/10/05 22:12:58ID:XKB+CD6X0297290
04/10/05 22:50:47ID:n38QPiuw常にきれいにすることを意識しているんだけど、
粗方完成してから校正をするって方法をとっても構わないってことなんでしょうか?
>最初に仕様を確定してから製作を始める
最初から完成品を想定して作るのは構造が複雑になるから難しいなぁ、
取り合えずデータローダ部、表示部等、主要機能ごとのテストプログラムを作って
最終的にそれらを参考にして機能を統合したものを作り直すって方針で頑張ってみます。
アドバイスありがとう。
0298名前は開発中のものです。
04/10/05 23:07:20ID:KIqeghM40299名前は開発中のものです。
04/10/05 23:40:25ID:WKT2TzzQ0300名前は開発中のものです。
04/10/06 01:36:22ID:U/N/jtk820行かかってたコードが5行くらいに収まると、俺はいったい最初何考えてたんだと嫌になってくるw
0301名前は開発中のものです。
04/10/06 01:55:46ID:TgqIBNEdあるある、そういうときw
0302名前は開発中のものです。
04/10/06 21:29:38ID:aWQd+ZDL安心しろ。ゲーム用に作ったクラスが次のプログラムで
まともに再利用できたことなんて漏れは皆無だw
屁理屈は捨てて、とにかく動くものを作ったのが勝ちよー
0303名前は開発中のものです。
04/10/06 21:40:22ID:TgqIBNEdでもできるだけ再利用性の高いプログラムを作ったほうがいいのは確か
入力やグラフィック、サウンドなんかは再利用性の高いプログラムが作れるし、
スクリプトなんかのテキスト処理も再利用性の高いプログラムが作れるかな
0304名前は開発中のものです。
04/10/07 00:28:41ID:M724c7AP0305名前は開発中のものです。
04/10/07 00:35:31ID:Y0o6SuyOそっちの方が面白くなって、ライブラリが出来上がる、と。
こうやって、汎用ゲームライブラリが沢山作られていく訳なんですね。
0306名前は開発中のものです。
04/10/07 00:40:54ID:YOl7QRML0307名前は開発中のものです。
04/10/07 04:01:02ID:+gyb9Qn6これいいんじゃないかな
0308名前は開発中のものです。
04/10/07 08:51:59ID:CCz8hdsk折角カプセル化したのに。。。
0309名前は開発中のものです。
04/10/07 19:00:10ID:t0DzobpIまあよくあることさ
現実のプログラミングでは教科書にあるようなスムーズな設計なんて
そうそうありえないだろう
リファクタリングの繰り返しはつきものだと覚悟しようや
0310名前は開発中のものです。
04/10/07 20:05:57ID:twoCrKPA0311名前は開発中のものです。
04/10/07 21:59:06ID:v9TuhgKLVBやVC自体もVCで作られてるわけだし、スタンドアロンで動くものなら大概作れるはず
0312名前は開発中のものです。
04/10/07 22:27:39ID:I3sfiLDbん、まてよ、、VCを作るためのVCは何で作られたんだ?
0313名前は開発中のものです。
04/10/07 22:32:46ID:K+0RdeTC何か別のCだろうね。
Quick Cとか?
0314名前は開発中のものです。
04/10/07 23:53:42ID:xyAbVRA/0315名前は開発中のものです。
04/10/08 00:53:44ID:qIiRhPFE最終的にはアセンブラ、マシン語か?
0316名前は開発中のものです。
04/10/08 01:07:57ID:fWiLK0NV0317名前は開発中のものです。
04/10/08 01:11:33ID:e/i/tRzj0318名前は開発中のものです。
04/10/08 07:23:14ID:s1UWdx7y0319名前は開発中のものです。
04/10/08 13:44:52ID:9SYF2QVl0320名前は開発中のものです。
04/10/08 21:37:20ID:FdbMCei70321名前は開発中のものです。
04/10/08 21:51:20ID:s1UWdx7y0322名前は開発中のものです。
04/10/09 11:27:58ID:5oKbr+dG0323名前は開発中のものです。
04/10/09 13:38:41ID:tslH+qd40324名前は開発中のものです。
04/10/09 16:11:35ID:LY4EHezQそんな新しいものを持ち出すな。
紙に書かれたマシン語をスイッチアレイで毎回入力にきまってるだろ
0325名前は開発中のものです。
04/10/09 17:49:24ID:mWcsQio70326名前は開発中のものです。
04/10/09 18:21:49ID:hwRzF6Xd当たり前。 Flash作ってる馬鹿共と比べんな!
0327名前は開発中のものです。
04/10/09 19:53:57ID:LY4EHezQその分プログラミングに打ち込める
0328名前は開発中のものです。
04/10/09 20:10:41ID:8y+MrD9z外注するなとは言わんが。
0329名前は開発中のものです。
04/10/09 23:10:59ID:nlZtXkPK外注といえば外注かもしれんけどねw
0330名前は開発中のものです。
04/10/10 20:30:28ID:s8oE2TUmBCCdevつかってゴリゴリ書いてみた。
自分で窓つくるコード書いたり面倒だけど、おもしろい!
メッセージループとコールバック辺りの仕組みなんかも
漠然とイメージはしてたけど、実際に動きを理解して自分で書くと
プログラムが活き活きして見える。
昨日は没頭しすぎて午前4時まで作業してました。
今は2章の途中まで理解して、多分ゲームには役にたたなそうなGDI関数を
いじってますが、文句を言わずにじっくり取り組もうと思います。
0331名前は開発中のものです。
04/10/10 21:40:25ID:cGhJgSHS今の気持ちを忘れず長く続けていけるといいですね
0332名前は開発中のものです。
04/10/10 22:16:09ID:zcyFGEI5とりあえずしn・・・・・・がんばれや、おじちゃん応援しとるで!
0333名前は開発中のものです。
04/10/10 23:56:26ID:zvqqI3MG(・∀・)イイヨイイヨー
最初からこれは役に立つかなとかあんまり
気にせずどんどん行こう
つまらんことでもどこかで繋がって役に立つゾ
0334名前は開発中のものです。
04/10/11 04:07:32ID:Fb1tCrTyんでもって、次はBスプラインだ、とか考えてそれっぽいサイト見てたんですけど、
そこに書いてある公式をプログラムに出来ずに悩んでます。
ttp://nis-lab.is.s.u-tokyo.ac.jp/~nis/CG/cgtxt/cg3/cg033_4.htm
の式(3.7)>>(3.8)です。
「tiは結節点(knot)と呼ばれる。一般には0,1,2,..n-k+2のように等間隔にとられる。」
とあるのですが、それはiが1,2,3と増えると、tiも同じように1,2,3と増えるのでしょうか?
でもそれだとtiと書く意味ないですよね。
暇な方いたらおねがいします。
0335名前は開発中のものです。
04/10/11 08:54:44ID:HoAdeOEw0336名前は開発中のものです。
04/10/11 12:54:21ID:5WZyj5YT接点(knot)は曲面区間の範囲を定義する、
制御点の個数 + (次数 + 1) の個数を持つ単調に増加する数列。
たとえば、6個の頂点を持つ3次の曲線だと、10個の接点が必要。
曲線区間は接点間の比率で決まるので、
数列は [0 1 2 3 4 5 6 7 8 9] でも [0 0 0 0 1 2 3 3 3 3] でもいい。
0337334
04/10/11 18:52:58ID:Fb1tCrTyおかげでちゃんと動くところまでいけました。
かなり嬉しかったです。
動いた瞬間思わずガッツポーズです。
しかし、どうも節点というものがいまだ理解しがたいです。
どこかで拾ったソースには、
for(int k = 0 ; k < KnotMax ; k++)
{
if(k < Rank)
Knot[k] = 0.0;
else if(k <= PointNumber)
Knot[k] = Knot[k-1] + 1.0;
else
Knot[k] = Knot[k-1];
}
と、ありまして、これでやったら問題なくいくのですが、
数列は01234・・・でも0000123333・・・でもいい、
という言葉どおりに、
for(int k = 0 ; k < KnotMax ; k++)
{
if(k == 0)
Knot[k] = 0.0;
else
Knot[k] = Knot[k-1] + 1.0;
}
とやったらなにやら設定したポイントに関係なく動いてしまいました。
てことは、これって勝手に決めちゃあまずいってですよね、
節点の作成というのは何かルールがあるんでしょうか?
0338koo
04/10/12 03:08:18ID:d9b5l6x8https://furima.rakuten.co.jp/user/seller_itemagree.php3?dummy_string=%81%95&action=1&trgt_i=item_name&str=&dn=50
0339名前は開発中のものです。
04/10/12 05:39:55ID:BtSuC0TK0340名前は開発中のものです。
04/10/12 14:10:53ID:6RBXEO5O0341名前は開発中のものです。
04/10/12 15:38:13ID:JI/oVSLAknotは制御点によって制御できる曲線の範囲だと思って構わない。
knotを変えれば制御範囲も変わるので曲線の形も変わる。
どういう影響を及ぼすかは数式や図解なしには説明にしくいので、
数式を読み解くか、実際に色々な数列を設定してトライ&エラーで頑張ってくれ。
3Dでキャラクターのモーションとかだと、
制御点以外に接点ベクトルやウェイトなんかも設定できるので、
open uniform(開一様)なknot列じゃ上手く再現できなかったりするが、
ゲームで移動の軌跡として使う程度なら、拾ってきたソースのような、
曲線の両端が制御点の両端と一致するように、
両端で位数個重複しているopen uniformなknot列を使うのが一般的。
0342名前は開発中のものです。
04/10/12 20:00:35ID:T2ODe9z0今の自分ではまだ言われたことの半分、理解できるか出来ないかなので、
この公式を理解して扱えれるように、もっと勉強していこうと思います。
とりあえず、まずは数式をよく考えて見ます。
0343名前は開発中のものです。
04/10/13 03:06:39ID:s239kc13>>340
の流れにワラヌ
0344初心者@一知半解
04/10/14 13:59:11ID:hZ7VVEVthttp://www.kumei.ne.jp/c_lang/bcc/bcc_03.htm
こちらで試したら警告と共にエラーが出てコンパイル出来ません。
読む限りではコンパイル可みたいですけど
どうもこちらの場合エラーで足が止まってしまいました。
う〜ん、この場合どうすればいいのかなあ??
0345名前は開発中のものです。
04/10/14 14:54:06ID:ZNW5RLV8エラーメッセージを具体的に示してくれないとわからん
0346名前は開発中のものです。
04/10/14 14:56:08ID:T3JzKORSエラーメッセージを書けよ
0347名前は開発中のものです。
04/10/14 19:18:12ID:ZNW5RLV8ちなみにC++Builderでコンパイルしたら問題なく動いたぞ
0348名前は開発中のものです。
04/10/14 19:40:42ID:gITA8TMgコンソールプロジェクトとかでやろうとしてるからとかじゃないの
いや素人なんで的外れかもしれないけど
0349名前は開発中のものです。
04/10/14 20:22:56ID:wJKkfksrどうせ窓アプリ形式にしてないだけだろう。
0350344
04/10/15 10:35:00ID:XKXjqZeuしかし、意味がわからずここで手が止まってしまいました
普段は入門書に載っているソースをこれでコンパイルしているんですけどね…
うーん、どこがおかしいのかな?
0351名前は開発中のものです。
04/10/15 14:23:35ID:azmQp6Yu猫でもわかる〜か?
CD付いてるだろ?それそのまんまコンパイルしても駄目なのか?
0352名前は開発中のものです。
04/10/15 14:58:42ID:hV6u+CLY書いてあるのと全く同じ手順でやるか、10章まで読んでからやるか、他のサイトを探すかしましょう。
0353名前は開発中のものです。
04/10/15 18:53:02ID:EHz8wKsn調べたらプロジェクトの指定が間違ってたらしい。多分。
visualC++でWin32コンソールともう一つのコンソールと
では違うのかな。Win32コンソールの方で確か作ったと思うけど。
コンソールあんまり使わないから戸惑った。
0354名前は開発中のものです。
04/10/15 19:31:54ID:azmQp6Yu情報が少なすぎ。
0355名前は開発中のものです。
04/10/15 21:06:23ID:Q+ioU/Pnオプションは何つけてコンパイルしてる?
0356名前は開発中のものです。
04/10/16 07:58:53ID:+HzjJBFLBCCなら、「bcc32 ファイル名.c」でできるはずだが。
0357名前は開発中のものです。
04/10/16 11:47:00ID:OZGxiGO5これで通ったyo
ウィンドウズ(GUI)アプリを作ろうとしてるのに、オプションの中に -W を入れてないんじゃない?
猫でも〜のページでは、オプションの小文字の -w と大文字-Wの違い、
どこに-w-8075を挿入すればよいかが書かれていないね
その辺で迷ったのかな
↓ボーランドのFAQにも書いてあったから読もう
Borland C++ Compiler 5.5 - コンパイル時のトラブルに関する一般的な質問と回答
http://www.borland.co.jp/cppbuilder/freecompiler/faq/bccfaq4.html
>Q. プログラムをコンパイルすると、「外部シンボル 'WinMain' が未解決」というエラーが発生します。
0358350@猫以下
04/10/16 13:17:33ID:PynNLdhcありがとうございます
確かにWinアプリを作ろうとしてたのにその部分が間違っていました。
ようやく解答にこぎつけたと言う所ですが、ここへ来てああ、まだまだ自分は
勉強不足なのだなあと痛感しました。
でも、ともあれこれでわずかでも進む事が出来て嬉しいです。
私はまだまだヘボですがヘボなりに色々やって見ますね
0359名前は開発中のものです。
04/10/16 13:24:19ID:9f1F5+HL大丈夫、「猫でも」の作者が猫以下の説明能力だっただけだよ。
0360名前は開発中のものです。
04/10/17 16:57:44ID:3VxwyS7b見てるやつも分からなかったら猫以下だと思えって宣告に見える。
0361名前は開発中のものです。
04/10/17 17:01:40ID:Wxs4+5UH■ このスレッドは過去ログ倉庫に格納されています