<?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; Chaw</title>
	<atom:link href="http://www.game-create.com/archives/tag/chaw/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>今話題の trac って何をしてくれるの？（ Chaw もあるよ）</title>
		<link>http://www.game-create.com/archives/1062</link>
		<comments>http://www.game-create.com/archives/1062#comments</comments>
		<pubDate>Thu, 11 Dec 2008 13:17:36 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Chaw]]></category>
		<category><![CDATA[OSS]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[trac]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1062</guid>
		<description><![CDATA[Byerkut さんはオープンソースソフトウェアを使うことが多いためか、日常的に trac に触れる機会があるのですが、これはいったい何をしてくれるのでしょうか？

まず、一番わかりやすい用途が Subversion の [...]]]></description>
			<content:encoded><![CDATA[<p>Byerkut さんはオープンソースソフトウェアを使うことが多いためか、日常的に trac に触れる機会があるのですが、これはいったい何をしてくれるのでしょうか？</p>
<p><span id="more-1062"></span></p>
<p>まず、一番わかりやすい用途が Subversion の WEB ブラウザに対するフロントエンドです。フロントエンドという言葉が聞き慣れないかもしれませんが、要は「外側」とか「インタフェース」とか「接点」という意味です。実は Subversion を使うためには Subversion の専用クライアントが必要なのですが、 trac のフロントエンドを使うと WEB ブラウザさえあれば Subversion にアクセスできるようになるのです。「 WEB ブラウザでアクセスする必要ってある？」と思われるかもしれませんが、ソースコードの改変履歴などを見るためだけにわざわざ Subversion の専用クライアントをインストールするのは面倒です。たとえば他人の家や出先でソースコードを確認したいことなどありませんでしょうか？</p>
<p>次の用途がタスク管理とバグ管理です。 Byerkut さんは trac の使用経験が浅いため、うまくタスク管理とバグ管理を分離できていないのですが、 trac を使うと今のプロジェクトにどれだけのタスクとバグが残っているのかを確認することができるようになります。バグは開発者以外の人間も投稿することができ、フォロワーの力を得てゲームの品質を上げることもできます。残りタスクは進捗バーで表示され、「ああ、プロジェクトの完成度はこの辺か」と毎日確認するのが楽しみになります。</p>
<p>最後の用途が wiki による情報共有です。これは単純に trac が wiki の機能を持っているのです。しかし、ただ単に trac に wiki がバンドルされているだけというわけではありません。特定のタグを打ち込むことでタスク管理やバグ管理と連携することができるのです。たとえば、「○○という環境では××が発生する（#1234）」という文字列を作ると #1234 の部分が該当のバグ情報へリンクされるようになるのです。これは情報共有の強力な武器になります。</p>
<p>簡単ではありますが、これが trac の用途です。しかし trac は普及率と拡張性は高いものの、動作に python が必要であったり、別のプロジェクトを管理したい場合は trac をもうひとつインストールする必要があるなど、若干ではありますが導入に抵抗があります。そこで最近見つけたのが Chaw です。 Chaw は PHP で動作する trac のようなソフトウェアで、ひとつインストールするだけで複数のプロジェクトを管理することができるようになります。正式リリースは先ですが、今後の動向を要チェックです。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1062/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ソースコードのバージョン管理ツールは何をしてくれるのか？（後編）</title>
		<link>http://www.game-create.com/archives/1056</link>
		<comments>http://www.game-create.com/archives/1056#comments</comments>
		<pubDate>Wed, 10 Dec 2008 12:01:06 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Chaw]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1056</guid>
		<description><![CDATA[多人数でゲームを作る際には、他人が手を加えたコードを誤って上書きして消してしまわないようにする必要があります。これをサポートするプログラムがソースコードのバージョン管理ツールです。

実は Subversion というの [...]]]></description>
			<content:encoded><![CDATA[<p>多人数でゲームを作る際には、他人が手を加えたコードを誤って上書きして消してしまわないようにする必要があります。これをサポートするプログラムがソースコードのバージョン管理ツールです。</p>
<p><span id="more-1056"></span></p>
<p>実は Subversion というのは、このソースコードのバージョン管理ツールの代表的な実装なのです。 Subversion を使うと先のシナリオのような事態に陥っても問題を解決しやすくなります。</p>
<p>まず、先のシナリオのように、 Byerkut さんと yomogi さんが同時に bootstrap.cpp を更新してしまった際に、 Subversion を使っているとどうなるのかというと、なんと何事もなかったかのようにふたりの作業が消失せずに反映されるのです。 Subversion を使うと、同じファイルが複数の人間によって編集された場合、 NAS へアップロードする段階で、ふたりの編集ポイントをマージ（併合）します。つまり、 Subversion を使うと、「これから編集しようとするファイルは、他の誰かによって編集されているかもしれない」という配慮が必要なくなるのです。もう、好きなときにソースコードを編集することができます。なんて便利なんでしょう！</p>
<p>しかし、ひとつだけ注意点があります。 Subversion は同じファイルが別の人間によって変更された場合、それぞれの変更点をマージ（併合）してソースコードを保ちますが、これはそれぞれの変更点が異なる場合です。たとえば Byerkut さんが bootstrap.cpp の Activate() 関数を変更し、 yomogi さんは bootstrap.cpp の Deactivate() 関数を変更した場合などのように、変更を加えた場所が異なるときのみの話なのです。もし、 Byerkut さんと yomogi さんが同じ行のコードを書き換えた場合、 Subversion はどちらの変更が正しいのか判断できないため警告を発します。警告を受けたプログラマは他のプログラマと議論してどちらの変更が正しいのかを決定し、 Subversion へコミットしなければなりません。</p>
<p>ちょっと覚えることが多くて面倒に感じられますでしょうか？しかし、多人数でのソフトウェア開発において、ソースコードのバージョン管理ツールを使うことはデファクトスタンダードになっています。これからチームで同人ソフトを作ろうと思われている方は Subversion について一考いただくことをおすすめします。</p>
<p>ちなみに Chaw は Subversion のフロントエンドを備えたバグトラッキングシステムです。一言で言って「プロジェクト管理システム」です。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1056/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ソースコードのバージョン管理ツールは何をしてくれるのか？（前編）</title>
		<link>http://www.game-create.com/archives/1052</link>
		<comments>http://www.game-create.com/archives/1052#comments</comments>
		<pubDate>Tue, 09 Dec 2008 11:35:18 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Chaw]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1052</guid>
		<description><![CDATA[このサイトを読んでいると Subversion とか Chaw とか出てくるのですが、これはなんでしょうか？

答えはソースコードのバージョンを管理してくれるということです。…まったく人をなめた回答ですが、まずは次のよう [...]]]></description>
			<content:encoded><![CDATA[<p>このサイトを読んでいると Subversion とか Chaw とか出てくるのですが、これはなんでしょうか？</p>
<p><span id="more-1052"></span></p>
<p>答えはソースコードのバージョンを管理してくれるということです。…まったく人をなめた回答ですが、まずは次のようなシナリオをご想像ください。</p>
<p>10 人くらいでゲームを作っているとします。 Byerkut さんと yomogi さんはプログラマのツートップでガンガンソースコードを書いています。ゲームのソースコードは NAS を使ってメンバーで共有しています（ NAS というのは LAN 上に置ける共有ハードディスクみたいなものです）。 Byerkut さんと yomogi さんはプロジェクトに参加する際に NAS からソースコードの一式を手持ちのパソコンにコピーして作業を始めました。</p>
<p>ある日 Byerkut さんは WinMain() を UNICODE 化する手法を勉強したので WinMain() が書いてある bootstrap.cpp を編集しました。めでたく WinMain() は _tWinMain() になり、プログラムのパラメータとして UNICODE が渡せるようになりました。さっそく、他の人にも使ってもらおうと bootstrap.cpp を NAS 上にアップロードしました。</p>
<p>時を同じくして yomogi さんは WinMain() 関数を巧みに隠蔽する方法を発見し、これを実装しました。めでたく bootstrap.cpp はカプセル化され、 Windows プログラミングの基礎知識を持たない人でも開発に参加できるようになりました。さっそく、他の人に使ってもらおうと bootstrap.cpp を NAS 上にアップロードしました。</p>
<p>さて、ここで問題が生じます。いったい何が問題になるのでしょうか？</p>
<p>そうです、かなり高い確率で bootstrap.cpp 内の Byerkut さんが編集した部分が消失します。 Byerkut さんと yomogi さんは、プロジェクトを開始する直後こそ同じ bootstrap.cpp を持っていましたが、お互いが同じファイルを更新してしまったために、先に編集してアップロードした Byerkut さんのコードが、後から編集してアップロードした yomogi さんのファイルによって上書きされてしまうのです。これを避けるためには後から編集する yomogi さんが、 bootstrap.cpp が Byerkut さんによって編集されていることを予測し、 NAS 上へアップロードされているであろう bootstrap.cpp の最新版を、あらかじめダウンロードしておかなければならないのです。</p>
<p>つまり、この問題を一言で言うと、「これから自分が編集しようとしているファイルは、他の誰かによって編集されているかもしれない。ゆえに作業に先立って最新版のファイルを入手しなければならない」ということです。これは面倒です。本格的なゲームとなるとファイルは 100 や 200 を超えますから、ちょっとした不注意から他人が書いたコードを上書きして消してしまうかもしれないという恐怖にさいなまれます。</p>
<p>これを解決するプログラムがソースコードのバージョン管理ツールなのです。</p>
<p><a href="http://www.game-create.com/archives/1056">続きます</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1052/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ゲーム制作ポータルサイトを作ろうかなぁ…</title>
		<link>http://www.game-create.com/archives/1042</link>
		<comments>http://www.game-create.com/archives/1042#comments</comments>
		<pubDate>Sat, 06 Dec 2008 03:20:35 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Chaw]]></category>
		<category><![CDATA[XOOPS Cube]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1042</guid>
		<description><![CDATA[最近、自宅とオフィス間でのデータ同期が面倒になってきているため、レンタルサーバを契約しようと思っているのですが、さすがにデータ同期だけのためにサーバを借りるのはもったいない気がしてきました。
そこでゲーム制作ポータルサイ [...]]]></description>
			<content:encoded><![CDATA[<p>最近、自宅とオフィス間でのデータ同期が面倒になってきているため、レンタルサーバを契約しようと思っているのですが、さすがにデータ同期だけのためにサーバを借りるのはもったいない気がしてきました。</p>
<p>そこでゲーム制作ポータルサイトを作れないかと画策中です。</p>
<p><span id="more-1042"></span></p>
<p>内容はフォーラムやゲーム制作に役立つライブラリのメモやダウンロードコーナーなどです。ちょっと寂しい気もしますが、これだけでも十分に価値があると思います。方向性としては当サイトが理想とする省エネプログラミングです。</p>
<p>あと、何とかやりたいのが Chaw との連携です。これにはふたつのアプローチがあって、ポータルサイトに Chaw のフロントエンドを作るか、 Chaw にポータルサイトの機能を持たせるかです。 Chaw は CakePHP ですので後者の方が簡単ですが時間がかかるかもしれません。</p>
<p>いろいろと考えてみます。少なくともメモは自分のためにほしいです。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1042/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ついに来た PHP による trac みたいなやつ！ &#8211; Chaw</title>
		<link>http://www.game-create.com/archives/1028</link>
		<comments>http://www.game-create.com/archives/1028#comments</comments>
		<pubDate>Tue, 02 Dec 2008 00:39:39 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[コンピュータ]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Chaw]]></category>
		<category><![CDATA[OSS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[trac]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1028</guid>
		<description><![CDATA[ゲームを作る際のプログラム進行管理はこれに決まりです。
Chaw

まだ、αバージョンということで、 SVN との連携に問題があるようですが、ひとつのアプリケーションで複数のプロジェクトを管理することができたりと、 tr [...]]]></description>
			<content:encoded><![CDATA[<p>ゲームを作る際のプログラム進行管理はこれに決まりです。</p>
<p><a href="http://thechaw.com/" class="external">Chaw</a></p>
<p><span id="more-1028"></span></p>
<p>まだ、αバージョンということで、 SVN との連携に問題があるようですが、ひとつのアプリケーションで複数のプロジェクトを管理することができたりと、 trac よりも魅力的なスタートラインに立っています。 trac の拡張性を考えると簡単に乗り換えできないかもしれませんが、この手のツールを全く使ったことがない方にはちょうど良いと思います。</p>
<p>何よりうれしいのが CakePHP で作られているという点です。常々、他のプログラマーのコードを読んで勉強したいと思っていたところでした。</p>
<p>プロジェクトの今後に目が離せません！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1028/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
