やねうらお blog

.NETでゲームを作ったり、IL上に独自言語を実装しちゃうぞ

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  23  : 記事  0  : コメント  33  : トラックバック  9

書庫

2009年2月3日 #

古典的なタスクシステムを近代的手法(C++ template , C++0x , boost なんでもアリ)でどう実装するのかについてまとめてみました。

近代的タスクシステムの構築
http://d.hatena.ne.jp/yaneurao/20090203


並列化については練り直し中。その他、何かアイデアがあれば教えてくださいませ。
posted @ 23:11 | Feedback (0)

2008年11月25日 #

あまりにも情報が少ないのでSQL Server Compact Edition 3.5の使い方をまとめてみました。 SQL Server Compact Edition 3.5の使い方
http://d.hatena.ne.jp/yaneurao/20081124

なんか、最近、LINQやC#にまつわる技術に興味がわいてきました。(いまさらかよ)

それmicrothreadで書くべきだよ
http://d.hatena.ne.jp/yaneurao/20081125


そんなわけで、このblogも、ぼちぼち更新していこうと思ってます。
posted @ 1:41 | Feedback (0)

2007年1月31日 #

Luaについてはいまさら語るまでもないだろう。手続き型言語、関数型言語の特性を備えたマルチパラダイム言語である。(参考: http://www.radiumsoftware.com/0604.html#060407)

ちょっとしたスクリプトを書くのに使うと便利で、C/C++からLuaで書かれたプログラムを呼び出して使ったりもする。RPGで、イベントに番号を振っておいて、それぞれのイベントをLuaで書くというような使い方も出来る。

Lua自体は有名な言語ではあるのだが、.NET版はいま一つ知名度が無い。Luaの.NET版はLuaInterfaceと呼ばれる実装が一番勢力があって、LuaInterfaceではLuaで書かれたスクリプト側から、.NETで書かれたクラスなどを呼び出したりも出来る。C/C++とLuaとの相互運用をするよりさらに密なコラボレーションが図れる。

 このLuaInterfaceだが、monoには非対応なのでLuaInterfaceを使ってしまうとLinux環境で動かすことが出来ない。そこでこの度、monoで動くようにportingした。LuaInterfaceの作者にpatchを送りつけておいたので、次期バージョンのLuaInterfaceでサポートされる。

 また、LuaInterfaceのWindows上のx86/x64のdllはYaneuraoGameSDK.NET公式のほうからdownload出来るようにしておいた。Luaの.NET版に興味のある人はお試しあれ。

posted @ 7:46 | Feedback (0)

2006年12月19日 #

YaneuraoGameSDK.NET(通称Yanesdk.NET) 1.50系開発完了のお知らせ。

本日2006年12月19日をもってYanesdk.NETのversion 1.50系の開発は完了した。当初、目標として掲げていたものがどのように結実したかご覧いただこう。

・.NETを用いてWindows/Linux/MacOSで動作する実用的な商用ゲームプログラミングが可能であることを示す

実際、これにせよ商用オンラインゲームを開発し、十分.NETの真価を示せたと思っている。また、Yanesdk.NETで開発したゲームはWindows98/SE/ME/2000はもちろん、WindowsXP(x86,x64),WindowsVista(x86,x64),Fedora5(x86,x64,PS3),FreeBSD,MacOSなどで動作確認できた。ゲームのバイナリもYanesdkのバイナリもすべての環境で共通であり、特定環境用にコンパイルしなおす必要は無い。

・C#だけでなくC++/CLI,VisualBasicからも利用できるゲームライブラリの製作


Yanesdk.NETをCLS準拠にすることによりC++/CLIやVisualBasicからも利用できるようになった。VisualBasicで100FPSオーバーの表示速度は圧巻である。

・SDLを.NETから利用する方法を確立する。

これについては達成できた。.NETから扱うためのヘッダを用意し、それがx86/x64環境の両方から正しく呼び出されるようにした。

・OpenGLを.NETから利用できる方法を確立する

これについても達成できた。さらにWindows環境ではFormにコントロールとして貼り付けて使うことが可能である。

・各コミュニティに貢献する

開発の途中で発見したmonoやSDLのバグについてはそれぞれmono公式,SDL公式にreportした。

.NETからSDL/OpenGLをx86/x64環境の両方で利用する例はあまり類を見ないためバグを発見する機会に恵まれたことを感謝している。


また、Yanesdk.NETのプロジェクトはmonoで実用的なアプリが作れるのかという疑問に対する答えにもなっていると思う。Yanesdk.NETのソースは1.2MB程度あり、genericsの技法などを交えて書かれており、gmcsに対する試金石の役割をも果たしたと思っている。


よって上記の当初のプロジェクトの目的はYanesdk.NET version 1.54でほぼ達成したと思う。あとはノベルゲーム対応、マップ表示対応、スプライト表示、スプライトエディタ作成、マップエディタ作成、3D対応、物理エンジン対応などであるが、これらは手間はかかるものの技術的に難度はさほど高くない。つまり現在のYanesdkで技術的な障壁はすべてクリアした状態にあると考えて良いだろう。

posted @ 18:58 | Feedback (2)

2006年11月12日 #

Yanesdk.NET Live Lectureに新しいものを追加した。
興味があれば是非Yanesdk.NETを使っていただきたい。

この手のFlash作成は意外と面倒くさい。
しかし1024×768サイズの10分強の動画が圧縮して10.9MBで収まる魅力は何とも捨てがたい。

posted @ 17:05 | Feedback (2)

2006年9月1日 #

技術評論社の『.NET Expert #03』が出ちょります。例によって私も20ページ弱書いてます。

本当は50ページぐらい書くつもりだったんですけど、仕事が修羅場だったので…(´ω`)

posted @ 11:21 | Feedback (0)

2006年8月12日 #

VisualStudio2005では、セットアッププロジェクトと言うのが作成できて、インストーラが簡単に作れるのだけども、そのときに.NET Framework2.0やWindowsInstallerも自動的にインストールされるように設定できる。C#で書いたアプリをCD-ROMなどで配布する場合は、これを利用するのがお手軽である。

以前、Windows2000の場合、Windows Installer3.0をインストールする必要がある(→id:yaneurao:20060524)と書いたが、これは、マイクロソフト公式でそう書かれていたのだけども、実際はWindows Installer2.0のほうをWindows2000にインストールすることが出来るようなので、こちらを指定しておけば良いようだ。

インターネット経由で自分の作ったアプリを配布したい場合、.NET Framework2.0もバンドルしてしまいたいということもあるだろう。バンドル自体は、上の方法で簡単に出来るのだけども、ファイルが複数になると配布が大変なのでzipか何らかのアーカイバでファイルをひとまとめにしたい。

zipはWindowsXPではクリーンインストールされた状態でも解凍できるのだけども、Windows2000以前だとそうもいかない。zip解凍のためのアナウンスを配布するときに書くのも面倒である。そこで、7-Zipの自己解凍形式を用いることを考える。

問題は、7-ZipのライセンスはGNU LGPLなのだが、自己解凍形式にして配布することが許されているのか、ということだ。id:O-sakaに聞いたところ、以下とのこと。(id:O-saka:20060706#p2)

SFX License Question
上記の質問に開発者の Igor Pavlov が「I don't think that it contradicts LGPL.
So you can use it.」と答えているので、LGPL に従う必要はないでしょう。
よし、C#で書いたプログラムの配布は、これにしよう。
posted @ 20:36 | Feedback (0)

2006年8月5日 #

Microsoftは2006年7月11日にWindows98/SEとMeのサポートを終了したことは記憶に新しい。しかし世のなかからWindows98/SE/Meを搭載したパソコンが一気に消滅するわけでもなく、弱小ソフトハウスは依然としてWindows98をサポートしていかなくてはならない状況が続いていると言えるだろう。

 たとえば、どこかの会社とソフトウェアの保守契約をしていて、そのソフトウェアがWindows98の入ったパソコンで動いているならば、WindowsUpdateなどの面倒も見ないといけない状況に陥る。MicrosoftはWindows98/SE/MeのWindowsUpdateをいつまでサポートするのだろう?近いうちにサポートされなくなってもおかしくはない。

そこで、(そういう立場にある人は)いまのうちにWindows98/SE/MeのWindowsUpdateのpatchを一式落としておかなければならない。 以下、その手順を示す。(情報はdoriさんから。doriさんthanks!!)

 続きを読む

posted @ 0:58 | Feedback (0)

2006年7月3日 #

このたび、Microsoft MVP (Visual Developer - Visual C# 2006.07-2007.06) を受賞した。 私は10年前にはビルゲイツが憎くて憎くて仕方なかった。いまにして思えば、ビルゲイツが憎かったのではなく、当時のWindowsとそれを取り巻く環境自体が嫌だったのだろう。

 

DOSに比べてリソースを馬鹿食いするし、当時はメモリが馬鹿高かったし、何かにつけて再起動が必要になるし、デバイスドライバは不安定なものが多くすぐにブルースクリーンになる。何より開発者のための敷居が高すぎた。「Windowsでプログラムをするなら、WindowsAPIバイブル1~3(翔泳社)やほげほげ本は必携だろう」という雰囲気自体が嫌だった。

 

それが いまや、Visual C# 2005のExpress版は無料配布だしMSDNライブラリも無料配布だ。マシンも5万ぐらい出せば趣味で開発するには十分なスペックのものが手に入る。

 

この状況で私の気もすっかり変わり、一開発者としてMicrosoftが好きになった。いまなら「これからプログラムを勉強したいんですけど」という人にVisual C#を胸を張って勧められる。

posted @ 13:26 | Feedback (11)

2006年5月29日 #

今回は
・Marshal.UnsafeAddrOfPinnedArrayElementの使い方
・delegateは、closureか?
・クリーンインストールしたOSに .NET Framework2.0のインストールするために必要なもの
・O/R mapping
・stack trace
・dpi変更関連の話題。
である。

その25 その26 その27 その28 その29 その30
その31 その32 その33 その34 その35 その36

posted @ 2:29 | Feedback (0)