カテゴリー

アクセスカウンター


since 1996/06/14

Count per Day

  • 11今日の訪問者数:
  • 48昨日の訪問者数:
  • 1266月別訪問者数:
  • 1現在オンライン中の人数:

Webプログラミングメモ

NTT Docomo 文字コードはSJIS。 画像はGIF。2003年以降の機種はJpegもOK。 JavascriptやCookieは非対応。 Willcom フルブラウアザなので、まぁ何でも困ることは無いかも。 Vodafone 画像はPNGとJpeg。2005年以降の機種はGIFもOK。 EZweb 画像はPNG。最近のはJpegとGIFに対応。

プログラミング本

DirectX Amazon:4798013161  Direct3D/Input/Soundで痒い所に手が届く…そんな本。 Amazon:4797329807  DirectXの基礎学習にはお勧め。エフェクト系がちょっと詳しい。Ver2なので初版を持ってる人は買う必要が無いかも。 Amazon:4798007811  これも基礎学習系。ただし後半はシェーダ系中心なので、初心者には取っつきづらいかも? Amazon:477751272X  DXUT(Feb 2007版)がとても詳しい。 Amazon:4777510077  とても微妙な本。広く浅くって感じ。数少ないDirectPlayを扱ってるけど、結局浅いので…。 通信 Amazon:4797330449 winsockの基本的なリファレンスとして役立ちます。 Amazon:4797328479 持ってないけど、数少ないオンラインゲームの通信ネタ本。 Amazon:4797328460 持ってないけど、数少ないオンラインゲームの通信ネタ本。

VC++.net2005の環境設定

 Windowsアプリの開発環境であるVisualC++.net 2005 Express Edition(以下、VC)のセットアップ方法です。  無料だけど環境設定が面倒で、Windowsを再セットアップする度に調べるのが大変なので、メモとして残しておきます。 WindowsUpdateとかで.net Frameworkを全部入れておく。重要な更新に含まれてないことがあるんで注意。 MicrosoftからVCを落としてインストする。 Platform SDK(Windowsアプリを開発するキット)をインストする。 DirectX SDK(DirectXアプリを開発するキット)をインストする。ちなみに、頻繁にバージョンアップする上に、頻繁に仕様が(下位互換無しに)変わるので、どこかのライブラリを使うなら、ソレにあったSDKを入れること(複数のバージョンの混在も出来たはず)。 C:\Program Files\Microsoft Visual Studio 8\VC\VCProjectDefaults\corewin_express.vspropsをメモ帳とかで開いて、AdditionalDependencies="kernel32.lib"を以下の内容にする。 AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib" C:\Program Files\Microsoft Visual Studio 8\VC\VCWizards\AppWiz\Generic\Application\html\1041\AppSettings.htmの441〜444行目をコメントアウトする(;´Д`) // WIN_APP.disabled = true; // WIN_APP_LABEL.disabled = true; // DLL_APP.disabled = true; // DLL_APP_LABEL.disabled = true; VCを起動して以下のあたりを更新 ツール→オプション プロジェクトおよびソリューション→VC++ディレクトリ 実行可能ファイル – 「C:\Program Files\Microsoft […]

ゲーム製作アレコレ

 今日は雨が降ってるので、しみじみとパソコンをいじってます。寒いなー。コタツ出そうかな。あーでも後で買い物にも行かないとー(´・ω・`)  Flashでゲームを作るのは一旦リセットしてます。AdobeのFlashCS3で作ってたけど、ぶっちゃけFlashDevelopの方が使いやすい。よくあるFlash動画を作るならFlashCS3の方がいいかもね。まー、リセットというよりか、コードをそのまま流用して再構成し直してますって感じ。  あと、ちょっとググってたら、GameMaker(日本語非公式サイト)というサイトを発見。RPGツクールほど楽じゃないけど、かなり多岐にわたるゲームを簡単に作れるらしい。  どうも使ってみないとどの程度のことが出来るのか見えてこないけど、ネットゲーみたいのは作れないのかなーって感じ?

flash作成中のサンプル

 今まで、なんかいろいろ作っりつつもなんも公開してませんね…  って、今回作成してるflashはよくよく考えると簡単にwebで公開できるじゃん! ってことで、作成中のを公開しちゃいます…と、言っても、まだ以下の事しかできません。 地図があって無いようなもの。 地図上をクリックすると、一応カーソルの方向に移動する。 ウインドウはあくまでサンプル。一応、タイトルをドラッグで移動、チャットウインドウ側は右下をドラッグでリサイズくらいはできる。  ってくらいしか出来ません。なお、テストなんてロクにしてないので、環境によっては挙動不審になるかも?Flash PlayerはVersion9じゃないと動かないと思います。 壁紙は昔作ったWebゲームのまんまなので、気にしないでくださいw  そんな訳で以下のアドレスからアクセス出来ます。 http://pub.d77.jp/fg/test1/fg.html

flashでネットゲー

 flashでネットゲーってできるのかな?ってことで挑戦中。DirectXでもよかったけど、いつまでも時間がかかりそうだから手っ取り早く作れそうなプラットフォームはないかなぁって、たどり着いたのがflash。  flashっていうと、普通はWebアニメーションの作成ツールを思い浮かべると思うけど、最新版はちゃんとオブジェクト指向だし、結構複雑な画像処理を標準の機能で賄えるので、そこそこ手軽に作れるからいいかも。  サーバとの通信方法は、XMLを使った非同期っぽいのもできそうだけど、サーバ側を作り込むのが面倒だからperl/CGIでやりとりをしてみることにした。 リアルタイム性を維持するのはほぼ無理だけど、手軽に作れるし、まぁ1〜2秒インターバルくらいでいければいいなぁと、気軽に考えてます。  今のところ作ったのは… 通信クラス…クライアント側はほぼできあがり。サーバ側はゲームの内容に直結するから、まだシンプルな機能しか作ってない。 ダイアログクラス…ベースはほぼ完成。チャットウインドウ、メニューウインドウ(の形だけ)とかなら、XMLで定義すれば自動生成してくれるくらいまでできた。 チャット…テストは完了。受信は5〜10秒周期くらいにするつもりだけど。  と、まぁ基本的なところまではできてる。今は、マウスカーソルでフィールドっぽいところを移動するところを作ってる。移動方向のカーソルと、実際の移動はできるけど、スムーズじゃないし、内部データとの連動も全然考えてないので、まだまだの出来。  また、いつ飽きるかわかんないけど、2週間程度でここまでいければまぁいいでしょ?  作成中の画像には、REFMAPが配布しているフリー画像素材を使用してます。

クリエイター向けツール

 昔から、プログラミングとかグラフィックとかは一通りやってるので、ゲームを作ろうと思いつくとさほど苦では無いんですが、唯一「音」関係が苦手なんですよ。 作曲はもちろんのこと、効果音なんてのも作れません。  で、とある本を読んでいたら以下のようなツールを見つけました。 別にゲームを作らなくても、楽しいツールですよ。 作曲ホイホイ、Music Factory http://www5f.biglobe.ne.jp/~mcs/  ゲームっぽい曲を作曲してくれるツール。ある程度パターンを入力することで独自性を持たせることができるっぽい?作曲ホイホイはフリーで、Music Factoryはシェアウェア。 kanawave  こっちは効果音を作ってくれるツール。たとえばテキストボックスに「ぴろーん」と書くだけで「ぴろーん」という効果音を作ってくれる優れもの。思い通りの音を作るには少し馴れが必要だけど、すごく簡単に作れます。 ダウンロード http://www.vector.co.jp/soft/win95/art/se232653.html 紹介記事 http://www.forest.impress.co.jp/article/2002/04/02/okiniiri.html

プログラマニア

 私ってプログラミングが趣味なんですよ。 たぶん、性格的に自分が満足いかないものに対して満足するまでの努力と時間を惜しまないので、パソコンを前にするとそれを実現する方法としてプログラミングがマッチしてしまったと。  んで、プログラムにはプログラム言語がつきものなんですが、それなりにプログラムを打ったことがある言語って、どのくらいなんだろうと思って数えてみた。 ※ちなみに、それなりの1つでもプログラムを作り上げたもののみ。 もう忘れた言語 COBOL まだ覚えてる/思い出すのはたぶん容易 ※同じ言語でも製品によって実装や扱いがかなり違うのは別とした。あと、TeraTermマクロとか実装がショボイのは含めてません。 アセンブラ(MASM) BASIC(NECのN88、SharpのNewZ) VisualBASIC WSH/VBScript(中身はVBと同じだけど、まぁ独自記述も多いので分けた) C C++ VisualC++(MFCとかCOMとか独自ライブラリっぽいの) VisualC# HTML(言語と言っていいものか?) WindowsのBATCHファイル Java JavaScript(含むJScript) ASP.NET(中身はVBと同じだけど以下略) MS-Access(中身はVBと同じだけど以下略) C-ShellのScript SQL Perl  結構やったなー。 ちなみに、最近はFlashのActionScriptを覚えようかなぁと奮闘中。 意外と知らない言語 PHP(使われ方がApacheとかと密接すぎるので嫌い)。 Ruby(Script言語のくせに文法上の制約が厳しいのですぐに投げ出した) VBA(アプリ依存ってのが嫌い) HSP(プログラムが書きづらすぎてやめた)  最近は歳のせいか、変な理由をつけて覚えたがらない…orz

散財その1-Flashの本

 今日っていうかここ最近で買った本。別に読書の秋とか関係なく年がら年中読書をしている訳ですが、今回はちょっとFlashの勉強をしようかなと買いあさってみました。 Amazon:4774130230 とりあえず入門からと思って買った本。ただ、正直ダメダメでした。パソコン初心者向けを意識しているのか説明がすごく丁寧なんですが、この内容だと応用が利かない。しかも基本も身に付かない。そんな感じ。値段も高いしね。 Amazon:4839924805 一冊目で力を実感出来なかったので買った二冊目。まだ読んでる途中だけど良さそう。情報量が多いのと、個々の機能に対し1つ1つ項を分けて説明が書かれているので、わかりやすそう。情報量が多い割に一冊目と値段は大差無い。 Amazon:4881665901  まだ、これを読めるまでの技術を習得してないけど、いずれ必要だろうと思って買った本。高いけど、amazonでの評価も高いのでいいんじゃないかな。

strcpy

 コンピュータへの不正アクセスの方法として、buffer overflow(もしくはbuffer overrun)という攻撃があります。コンピュータには「メモリ(記憶装置)」というものがありますが(HDDとか半導体とかいうのは気にしないでください)、「メモリ」にはプログラムとデータが入っています。  しかし、ここがプログラム、ここがデータという明示的な境界はありません。それはプログラマが決めます。  どういうことかというと、砂場で遊んでいる子供が、砂場が狭いと「ここまではボクの遊び場、そこからはキミの遊び場」なんて境界を作ることがありますが、「砂場」の砂の色が違ったりとか壁があったりとかはしません。第三者から見れば、どこからがボクでどこからがキミの砂場かはわからない…つまり、論理的な境界であって、物理的な壁がある訳ではないです。 ※最近はメモリ保護機能とか、単純なレベルならOSが保護してくれます。  で、buffer overflowというのは、データを溢れさせてメモリ上のプログラムを書き換えることで実現する攻撃方法です。  こういうbuffer overflowな話でよく言われる例として、プログラム言語であるC/C++の関数の「strcpy」が例によく使われます。「strcpy」は文字列Aを文字列Bにコピーするという関数です。つまり、文字列Aが10文字、文字列Bが5文字しかキャパシティが無いと、あっさりbuffer overflowが発生します。はみ出した5文字分は、メモリ上の「プログラム」がかかれている場所に行くか、「データ」の場所に行くかはわかりません(意図的にそういうことをすることはありますが…)。  ちなみに、C/C++言語にはもう少し複雑な背景があって、こういう関数が「標準化」されています。C/C++言語はVisualC++とかgccとかBorland Cとか様々な種類がありますが、「標準化」された命令はそのまま実装されています。「この命令はヤバいので乗せない」なんてことはそうそう出来ません(移植性が損なわれる)。それが、こういうセキュリティ問題をさらに根深いものにしてるとも言えるのかな。だから、未だにstrcpyはC/C++にそのまま存在します。  で、今VisualC++でプログラムをしてるけど、最近のバージョンではこんな警告が出るようになりました。

warning C4996: ‘XXXXX’: This function or variable may be unsafe. Consider using XXXXX_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.

訳)警告 C4996: ‘XXXXX’: この機能か変数が危険であるかもしれません。代わりにXXXXX_sを使用すると考えてください。 無効にするには、_CRT_SECURE_NO_WARNINGSを使用してください。

 strcpyを使うと警告(エラーじゃないので、無視すればそのまま使える)がでて、strcpy_sなんてものを使うことを薦められます。ちなみに、strcpy_sはstrcpyとほとんど同じだけど、「文字数」を指定してそれを超えるとエラーになります。プログラマーが文字数を間違えたら話にならないですが、まぁそんな感じであまり意識しなくても安全なプログラムを書けるようになっています。  こういった関数を多く使うと「標準化」されたプログラムでは無くなってきます。つまり、プログラムの「移植性」が損なわれてきます。しかし、JAVAのような違うベクトルから「移植性」を重視した言語が現れてきた今日では、そもそもそういう「標準化」の意味も薄れてきているのかなぁ…と、何となく思いました。 ※っていうか、過去のプログラムを使ったら警告だらけになって一つ一つ修正しています(T_T