<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>いちばんやさしいゲームの作り方 &#187; POSH</title>
	<atom:link href="http://www.game-create.com/archives/tag/posh/feed" rel="self" type="application/rss+xml" />
	<link>http://www.game-create.com</link>
	<description>文系の人でも、数理学がわからない人でもゲームプログラミングをマスターできるブログ</description>
	<lastBuildDate>Tue, 08 Jun 2010 01:28:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>いまさら訊けないバイトオーダーの話</title>
		<link>http://www.game-create.com/archives/1065</link>
		<comments>http://www.game-create.com/archives/1065#comments</comments>
		<pubDate>Fri, 12 Dec 2008 13:42:45 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[POSH]]></category>
		<category><![CDATA[バイトオーダー]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1065</guid>
		<description><![CDATA[大丈夫です。 Byerkut さんも深くは理解していません。

突然ですが、コンピュータのデータはバイト単位で管理されることはご存じでしょうか。緻密なグラフィックも膨大なデータベースのデータも突き詰めるとバイト単位で保存 [...]]]></description>
			<content:encoded><![CDATA[<p>大丈夫です。 Byerkut さんも深くは理解していません。</p>
<p><span id="more-1065"></span></p>
<p>突然ですが、コンピュータのデータはバイト単位で管理されることはご存じでしょうか。緻密なグラフィックも膨大なデータベースのデータも突き詰めるとバイト単位で保存されているのです。</p>
<p>しかし、実はここに問題があるのです。</p>
<p>ご存じかとは思いますが１バイトが表現できる数値の範囲は 0 ～ 255 です。昔のゲームなどではステータスの上限が 255 だったりすることがありますよね。ですが、 0 ～ 255 までの数値があればゲームは成り立つでしょうか？それは、おそらく無理です。ファミコン時代のドラクエでもゴールドは 999999 くらい持てますので 0 ～ 255 では数値が足りません。では、いったいどうすれば大きい数値を扱うことができるのでしょうか？普段からプログラミングをしていないと意識できないかもしれませんが、実は簡単なのです、「１バイトで足りないなら２バイト使ってしまえ！」ば良いのです。</p>
<p>かくして大きなデータを扱う際にはｎバイト使えばいいことがわかりました。しかし、問題はここにあるのです。</p>
<p>何が問題なのかというと、ｎバイトのデータを保存する際、データをどういう順番で詰めるか？が CPU などによって異なっているという点です。たとえば 1234 という数値をファイルに保存したいとします。 1234 を表現するには２バイト必要なのですが、それぞれのバイトの値は 0&#215;04 と 0xD2 になります（← 16 進数表記です）。ここで Intel の CPU のマシンで 1234 という数値を保存すると、ファイルへはデータが 0xD2 0&#215;04 という順番で保存されます。 Intel の CPU では下の位から順番にデータを詰めることがわかります。一方 IBM などのメインフレームでは 1234 という数値を保存すると 0&#215;04 0xD2 というように上の位からデータを詰めたりします。前者の環境をリトルエンディアン、後者の環境をビッグエンディアンと呼びます。</p>
<p>コンピュータにはリトルエンディアンとビッグエンディアンがあることがわかりました。ファイルへデータを保存したり、ファイルからデータを取得したりする際には注意しなければなりません。 Windows などの Intel マシンでのみ動作すれば良いのであればリトルエンディアンを前提にプログラムすればいいのですが、他の環境へ移植したい場合はバイトオーダーを意識してプログラムを分岐する必要があります。こういった作業はつまらない上に面倒です。</p>
<p>ここで POSH の登場です。</p>
<p>POSH ライブラリを使うと、バイトオーダーの違いを理解して適切にデータを保存したり読み込んだりするマクロや関数が使えるようになります。プログラマは「 1234 という数値を保存したい」という一念だけで移植性のあるプログラムを書くことができるようになります。面倒から解放されてとても楽になります。ぜひとも利用を検討してください。</p>
<p>実際はゲームの開発で移植性を考えると、「相手が組み込みでも通じるソースになるのか？」とか「例外やメタプログラミング機能のない C++ でも同じ動作をするのか？」など、いろいろな問題に直面します（実はゲーム会社在籍時代は移植もやっていました）。こうなっては POSH の力はほとんど無力ですので、最初から移植性は無視して利用しないという決断もありかと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1065/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>同人ソフトを作るために現在決まっていること</title>
		<link>http://www.game-create.com/archives/1037</link>
		<comments>http://www.game-create.com/archives/1037#comments</comments>
		<pubDate>Fri, 05 Dec 2008 02:54:47 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[Boost]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Lua]]></category>
		<category><![CDATA[Ogg Vorbis]]></category>
		<category><![CDATA[POSH]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[VC++ 2008 EE]]></category>
		<category><![CDATA[備忘録]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1037</guid>
		<description><![CDATA[同人ソフトを作るために現在決まっていることのメモです。



プラットフォーム
Windows (Win32API)


言語
C++ + Boost + TR1


開発環境
Visual C++ 2008 Expre [...]]]></description>
			<content:encoded><![CDATA[<p>同人ソフトを作るために現在決まっていることのメモです。</p>
<p><span id="more-1037"></span></p>
<table class="style-1">
<tr>
<th>プラットフォーム</th>
<td>Windows (Win32API)</td>
</tr>
<tr>
<th>言語</th>
<td>C++ + Boost + TR1</td>
</tr>
<tr>
<th>開発環境</th>
<td>Visual C++ 2008 Express Edition</td>
</tr>
<tr>
<th>プレゼンテーションレイヤー</th>
<td>（未定）</td>
</tr>
<tr>
<th>パーシストレイヤー</th>
<td>SQLite</td>
</tr>
<tr>
<th>効果音</th>
<td>WAV</td>
</tr>
<tr>
<th>BGM</th>
<td>Ogg Vorbis</td>
</tr>
<tr>
<th>スクリプトドライバ</th>
<td>Lua</td>
</tr>
<tr>
<th>データ抽象化</th>
<td>POSH</td>
</tr>
<tr>
<th>プロジェクト管理</th>
<td>Chaw</td>
</tr>
<tr>
<th>ソースコード管理</th>
<td>Chaw + Subversion</td>
</tr>
<tr>
<th>バグ管理</th>
<td>Chaw</td>
</tr>
</table>
<p>やっぱりプレゼンテーションレイヤーが鬼門ですね。作るゲームによって適切に切り替えられるような仕組みが必要です。大丈夫です、きっと yomogi さんが良いゲームエンジンを作ってくれます。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1037/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>スクリプトドライバ実装の決定版 &#8211; Lua</title>
		<link>http://www.game-create.com/archives/595</link>
		<comments>http://www.game-create.com/archives/595#comments</comments>
		<pubDate>Wed, 13 Aug 2008 17:15:56 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Lua]]></category>
		<category><![CDATA[POSH]]></category>
		<category><![CDATA[書籍]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=595</guid>
		<description><![CDATA[ゲームプログラミングではスクリプトドライバが必要なことが多くありますが、近年のトレンドはなんといっても Lua です。
Lua
Lua言語の紹介


一昔前までは YACC + Lex や Bison + Flex など [...]]]></description>
			<content:encoded><![CDATA[<p>ゲームプログラミングではスクリプトドライバが必要なことが多くありますが、近年のトレンドはなんといっても Lua です。</p>
<p><a href="http://www.lua.org/" class="external">Lua</a><br />
<a href="http://staff.aist.go.jp/yutaka.ueno/lua/docsjp.html" class="external">Lua言語の紹介</a></p>
<p><span id="more-595"></span></p>
<p><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=game-create-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4797342722&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" class="left"></iframe></p>
<p>一昔前までは YACC + Lex や Bison + Flex などを使ってスクリプトドライバを書いていましたが、これらはかなり本格的なプログラミング言語を作れるだけの非常に柔軟なプログラムなだけに気軽に使えるという感覚はありませんでした。それに対して Lua は基本文法はほとんどできており、 Lua スクリプトの中から C/C++ の関数を呼び出すことや、逆に C/C++ から Lua スクリプトを呼び出すことが簡単にできます。</p>
<p>最近は POSH や Lua などゲームプログラミングに役立つライブラリが増えてまいりました。嬉しい限りです。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/595/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>移植性の高いプログラムを書くためのライブラリ</title>
		<link>http://www.game-create.com/archives/509</link>
		<comments>http://www.game-create.com/archives/509#comments</comments>
		<pubDate>Sun, 27 Jul 2008 04:09:49 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[DirectX]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[POSH]]></category>
		<category><![CDATA[SDL]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=509</guid>
		<description><![CDATA[クロスプラットフォームを実現するためのライブラリです。
POSH

「最初から Windows でしか動かす予定はないよ！」との意気込みの方が大半かと思われますが、 C/C++ の性格として移植性はなかなか頭から離れない [...]]]></description>
			<content:encoded><![CDATA[<p>クロスプラットフォームを実現するためのライブラリです。</p>
<p><a href="http://www.hookatooka.com/poshlib/" class="external">POSH</a></p>
<p><span id="more-509"></span></p>
<p>「最初から Windows でしか動かす予定はないよ！」との意気込みの方が大半かと思われますが、 C/C++ の性格として移植性はなかなか頭から離れない問題だと思います。たとえばエンディアンや呼び出し規約など。「中途半端になるくらいならいっそとことんやってみよう！」という方におすすめです。</p>
<p>まぁ、 DirectX などを使った時点で移植性はゼロですが。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/509/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

