2007年05月

2007年05月31日

Adobe CS3も高スペックを要求

 もうすぐ日本語版が発売のAdobe CS3ですが、
 要求するPCのスペックを見て愕然

 1GB 以上の RAM

 えっと、「推奨」って書き忘れてないですか?

 ・・・・

 忘れてないんですね、やっぱり。
 会社のPCでは動かないことが確定してしまいました。
 

2007年05月30日

FlashMediaServerをレンタルする

 FlashMediaServerについては、
 Web開発に携わる人でも名前しか聞いたことがないという人も多いと思う。

 Flashで開発している多くの企業を見ても、
 Flashはトップページを飾るものであり、
 どちらかというとデザイン会社の領野の感がある。

 FlashMediaServerというのは、
 Flashを使って映像送信や音声通信(Skypeのようなこと)を行えるサーバーのことです。
 やろうと思えばオンラインゲームも作れます、多分。

 名前の割りにサーバー側ではJavaScriptでコーディングするのですが、
 まぁ、ActionScriptとJavaScriptは似ているといわれますので気にしないでおきましょう。

 購入しようとすると、驚愕のお値段ですが、レンタルサーバーを利用することで格安のお値段で利用できます。

 ヘテムル

 月額1500円です。
 ブラボー!!

 まずはトップページ右上の「申し込み」をクリック。
 次のページの規約を斜め読みして、「同意する」にチェックを入れて、
 「アカウント入力画面へ進む」をクリック。

 ヘテムルドメイン(URLのことだ)はもちろん、

 http://coelacanth.heteml.jp/

 IDとパスを入力して、

 あとはメールアドレスを入力。
 して次を進んでいくと仮申し込み終了。

 次は登録したメールアドレスにメールが届くので、
 そのメールで示されたリンク先に飛んで、住所氏名などの細かい入力。
 これで本登録の終了。

2007年05月29日

プログラマーほど残業に向いていない職業はないのでは?

 先週末は、夜間作業が入って休日勤務を幾許かこなしました。
 世間のデスマーチな開発現場とは比較にならない程度ですが、
 それでもアウトプットはわかりやすいぐらい低下してしまい、
 暫くブログも更新が止まってしまいました。

 まぁ、日曜日に子供を連れて動物園に行った疲れもあるのですが、

 プログラマーに残業をさせるというのは、
 納期の遅れを取り戻せるかもしれませんが、
 品質は確実に落ちると知るべし、です。

 8時間という労働時間をいかに効率よく使える環境を作るかが、
 管理者の目指すものということですね。

2007年05月25日

DirectXプログラミングを簡単に触って見れる本

 ちょっと昔の本になりますが、
 日経ソフトウェアの2006年9月号にあった
 ゲームプログラミング特集はDirectXを使ったプログラミングの大枠を適度な長さのコードで読めるので勉強になります。

 Webサイトからファイルをダウンロードして実際に動かしてみることもできます。
 まだざっと読んだだけですが、
 拡張子が.xのファイルの使い方とか、
 処理の流れを俯瞰することができます。

 Windowsゲームプログラミングの入門書を読んだ直後レベルの人にはちょうど良い特集だと思います。


日経ソフトウエア 2006年 09月号 [雑誌]


VC++でイベントを取得する

 入門書も中盤、
 イベントを取得してみるページに来ました。

 同じ処理ならC#の方が短いコードで書きやすいですが、
 ゲーム特有のエフェクトや処理の解説情報はC++の方が圧倒的に多いので、
 C++で色々な処理を試してみるという方針です。

 今までも、「ウィンドウが閉じられたとき」とか「描画が開始されたとき」のようなイベントを利用していたのですが、
 今回はマウスやキーボードの入力を受け取って処理を行うことを学びました。

 なんかゲームっぽくなってきました(ちょっとだけ)。

 イベントを受け取る仕組みはシンプルで、
 キーが押されたりすると、
 イベント受信用の関数が呼び出されます。

 ウィンドウを作成するときの設定で

 wc.lpfnWndProc = WindowProc;

 と設定した場合 WindowProc()が呼び出されます。
 そのなかで引数として与えられたイベントメッセージを読み取って、
 イベントごとの処理を行うという感じです。

 「マウスが左クリックされましたよー」
 とWindowProcが呼び出され、マウスをクリックした位置などを引数で渡されます。
 その中でswitch文などでイベント毎の処理を行う感じで入門書は書かれています。

 switch文は嫌いですが、
 最初は入門書に習い記述していく。

 入門書なので簡単なコードですが、基本は学びました。
 さぁ、次回はウィンドウの制御です。

 フルスクリーンとか、枠をなくすとか、
 ゲームならでは処理が書いてあるようで楽しみですね。

一年前の自分を見る

 C言語の本を紐解いています。
 初めてのプログラミング言語としてCを選んだ自分が
 一度目を通した本もあります。
 ほぼ忘れ去っていますが・・・。

 一年前の自分、
 Windowsのコマンドプロンプトさえ使ったことのなかった自分にとって
 プログラミングの世界はいかに知らないことが多かったかがわかる
 赤線っぷりです。

 一年仕事でプログラミングに従事した自分と、
 一年前の初心者の中の初心者、厳選された初心者達と比肩する初心者だった自分を比べると色々と見えてくるものがあります。

 まず赤線を引くこと、
 これは今も変わりませんが、昔の自分は引きすぎです。
 知らないことの量も違いますが、
 わからないことをスルーできないで、
 全部覚えよう、理解しようとしています。

 書き込みをしないこと。
 線は引いているけど、 それは

 覚えるために文章を印象付ける

 という目的だったのだと思います。

 今は後で読むために注釈とかコメントを残します。
 覚えようとせず、後で目的を持ってから探りやすくする意図が強いです。

 やっとC言語の入門書を何冊か読んで、
 ろくにコードも書かずに、Windowsプログラミングの用語の波に全力でぶつかっていった自分がいます。
 多分、職業訓練でWebデザインの勉強という転進がなければ、
 そのまま壁にぶつかって挫折していたことでしょう。

 今になったらわかるけど、
 最初はどこが大事で、どこは軽く流せば良いかなんてわかりませんものね・・・。

2007年05月24日

Adobe(Macromedia)も面白い

 マイクロソフトのWeb展開についてのことを書きましたが、
 Macromediaを飲み込んだ本家Web開発IDE製品も非常に興味深いです。

 Apolloの件もありますが、
 一応、Webコンテンツを飯の種としている身としては、
 Adobe CS3にめろめろです。

 画像系ソフトの有名人Phptoshopは3D機能の強化で、
 3D編集ソフトと相性が良くなりそうだし、

 FlashもActionScript3の導入で、
 コンソールでプログラムを走らせることができるとか、
 スペックの低いノートPCでも気軽に開発できそう。

 個人的にはAdobe Premireという動画編集ソフトも気になる(個人で買うのは不可能かつ会社では不要なものなので触れる可能性は低いけど・・・)。
 学生時代の友達のVAIOに標準でついていたAdobePremireはこれぞVAIOという動画編集PCの名に恥じないソフトでしたが、その最新版はどうなのでしょう。

 魅力たっぷりですが高いです。
 Eclipseのようにフリーで、とまではいいませんが、
 MicrosoftのVisualStudioみたいに1年間無料版を出してくれないものですかねぇ。
 
 あとFlashMediaServerの資料が欲しい・・・。

WPFの準備をしようかと思いまして

 Rubyだ、Pythonだ、AjaxだとWebアプリケーションにも色々な、
 波がやってきているのですが、

 一年目の新米の癖に、
 Windowsプログラミングに手をだしたのには
 ちょっとだけわけがあります。
 もちろん、もともとゲームを作ってみたかったというのはあります。

 Microsoftが打ち出した

 WPF(Windows Presentation Foundation)

 に興味が沸いてきたからというのがその理由です。

 AdobeがApollo(紹介記事)でデスクトップアプリケーションを従来のWeb技術に近い形で開発できるようにしたように、MicrosoftがWindowsプログラミングでWebアプリケーションを作成できるようにな環境を提供しはじめたのがこのWPFなんだと思います。

 OSはVista限定ですが、このページでデモを見ることができます(要.NET3.0)。
 一応、動画形式でも見ることができますが、実際に触ってみると、DirectXの技術を用いた3次元空間をリアルタイムで移動することができデモになっていました。
 現Flashではよほど技術力がないと表現できない動きではないでしょうか?

 Vista限定であったり、
 デモの要求するスペックから見て、
 今すぐ普及というわけではないでしょうが、
 だからこそ今から学んでおく価値はあるかなぁと思います。

 FlashもWPF(Windowsプログラミング)も使えるWebプログラマーというのはこれから需要が増えそうですよ。

さぁDirectXを触ってみよう!!

 ついに、ようやく、とうとう、
 念願、悲願と祈願しつづけたDirectXを触ってみます。

 一昨年の夏にデザートナイフを投げ捨てて、
 10日でおぼえるC言語入門教室
で人生初のプログラミングを行い、職業訓練の3ヶ月から就職して今に至るまで、遠ざかっていたWindowsプログラミング、DirectXの世界の門をついにくぐる日がやってきました!!

 とりあえずはDirectXをダウンロードしてきます。
 MicrosoftのDirectXダウンロードページより最新版のDirectXをDL、400MBぐらいあって時間がかかります。

 ページを見ると、DirectXのバージョンは9でしたが、Direct3DはD3D10と表記していたり、アイコンがXと10という数字だったりと、自分がDLしているファイルのバージョンがわからないという不安を抱きながら、DLしたDirectXをインストール。

 さぁ、VisualStudioを起動です。
 C#のプロジェクトを作成。

 using Microsoft.DirectX.Direct3D;

 と、DirectX関連のライブラリを利用することを宣言。
 ただしデフォルトでは参照していないので、

 「プロジェクト」→「参照の追加」

 で追加してあげます。

 あとは素直にC#ゲームプログラミング
のコードを打ち込み。

 さぁデバック!!
 ・・・当然のようにエラーです。恐るべしDirectX。

 このページを参照にエラーの一つは取り除くが、まだエラー、どうも

 device = new Device(0, DeviceType.Hardware, this, CreateFlags.HardwareVertexProcessing, pp);

 という部分がこけているらしい。
 解説を読んでみると、DeviceType.Hardwareはグラフィックカードが3Dアクセレーターに対応している必要があるらしい。
 VistaのAeroが十分に表示できる性能だから大丈夫と疑っていませんでしたが、DeviceType.Referenceに変更してみる・・・。

 おおっ、成功!!

 見事、初DirectXの門をくぐることができました。

2007年05月20日

酷いソースコードとであった

 まぁ、プログラマーにも上から下までいるわけで、
 この程度を「酷い」というなんて、幸せものなのかもしれません。


 1.関数名と中身が違うことをやっている

 これ多いのかもしれませんが、
 getParam()とかの中で、ファイル転送とかやられてしまうと、
 コントローラーを上から下まで追って、ソースコードを読んでいかないとファイル転送をしている部分を見つけられません。

 まさか、そこかよ・・・

 2.変数がvalueとかdataばかり

 何か値とかデータが入っているのはわかっているんですよ・・・。
 小さな関数のなかなら別に構いませんが、
 そういう方ほどリファクタリングしないので1メソッド100行越えとか余裕でやってくれます。

 3.同じ処理がコピペでいくつも書いてある

 しかも何箇所かだけ微妙に変わっている(必要ではなく、全部を修正しわすれてバグが仕込まれている場合が多い)

 4.不要な処理がいくつも書いてある

 何をやっているのか良く理解しないままコピペしてきましたね?

 これが全部合わせ業で盛り込まれていました。
 ある意味感動しました。

Profile

シーラカンス

Recent Comments
QRコード
QRコード
livedoor Readerに登録
RSS
livedoor Blog(ブログ)