# HG changeset patch # User Kazuma Takeda # Date 1486539174 -32400 # Node ID 6ff8188a7cfadbd21e7726fbfc9ab41590a7e31d # Parent dcaa3015e0d5def55fa0ed9df60e8ed62688dede Add one Sentence after Chaper. diff -r dcaa3015e0d5 -r 6ff8188a7cfa paper/main.tex --- a/paper/main.tex Tue Feb 07 20:41:22 2017 +0900 +++ b/paper/main.tex Wed Feb 08 16:32:54 2017 +0900 @@ -78,6 +78,10 @@ % 1章では研究目的を書かない(もったいない) \chapter{ゲームエンジンにおけるデータベース} +この章ではデータベースのあり方と問題点を提議し、解決方法を提案する。 + +\section{インピーダンスミスマッチ} + プログラムからデータを分離して扱うデータベースには、 プログラム中のデータ構造とRDBの表構造のズレによりインピーダンスミスマッチという問題がある。 @@ -89,10 +93,15 @@ しかしレコードをプログラム中のオブジェクトを対応させるORMapperの技術でインピーダンスミスマッチの本質的な部分を解決することはできない。 +\section{NoSQL} + +NoSQLはSQLを必要としない非リレーショナル型のデータベースである。 + JsonやXMLを扱えるデータベースでは通常スキームを必要としないため、特に設計を行わずデータを格納することができる。 しかし、不定形の構造の変更をトランザクションとして、Jsonの一括変更という形で処理されてしまっており、並列アプリケーションには向いていない。 +\section{Jungleの提案} 当研究室ではデータの変更の際に過去の木構造を保存するデータベースのJungleを提案している\cite{1}。 本研究ではJungleをUnityを用いたゲームで使用する方法を提案する。 @@ -100,6 +109,10 @@ \chapter{Jungle Database の概念} +本章ではJungle Databaseの構造とAPIについて記述する。 + +\section{木構造データベースJungle} + 当研究室で開発しているJungleは過去の木を保存しつつ、新しい木を構成する手法を採用している。 これを非破壊的木構造という。 非破壊的木構造により、データベースを参照する側と更新する側のデータを安全に扱うことができる。 @@ -260,6 +273,15 @@ \chapter{Unityでのデータベースの取扱い} \label{chap:concept} +この章ではゲームにおけるデータについて述べ、その後Jungleとの関係性や実装を記述する。 + +\section{ゲームのデータ} +ゲーム中のデータには幾つか考えられる。 + +シーンのオブジェクトが持つパラメータ +ゲームのセーブデータ +ネットワーク上で使用するデータ + \section{UnityとJungleの関係} Unityは3Dゲームエンジンで、ゲームを構成する要素(Object)をC\#で制御する。 @@ -269,7 +291,7 @@ \section{Unityにおけるデータベース} -Unityでのデータベースとして考えられるものとしてはMySQL、SQLite3、PlayerPrefsが挙げられる。 +Unityでのデータベースとして考えられるものとしてはSQLite3、PlayerPrefsが挙げられる。 PlayerPrefsとは、Unityに特化したバイナリ形式でKeyとValueのみで保存されるものである。 セーブ機能に特化していてメモリ上にDBを展開するものではない。 @@ -277,7 +299,11 @@ SQLite3ではC\#で利用できるORMapperが提供されている。 プログラム中からデータのインサートやデリートを行う。 -%% 最近ではUnityでもJsonが扱えるようになった。 +%% 思いついたこと入れた UnityでのJsonのお話 +Unity5.3以降のバージョンでは標準でJsonが扱えるようになった。 +これにより、インスタンスをJson化することができる。 +しかし、変数名をKeyとしてValueを取り出すといったことは出来ない。 + \chapter{Jungle-Sharpの実装} @@ -417,6 +443,8 @@ \chapter{Unityで実装したアプリケーション} +本章ではUnityで実際に作成したアプリケーションを示し、どのようにデータの設計を行ったかを述べる。 + \section{例題ゲーム} 本論文ではC\#で再実装を行ったJungleをUnityで作られたゲームの上に構築する。 @@ -491,14 +519,14 @@ \end{figure} - \section{Attributeの格納するデータの型} UnityではGameObjectクラスがシーンを構成する。 +\chapter{ベンチマーク} -\chapter{ベンチマーク} +本章ではC\#とJavaのJungleとの比較、Jungle-SharpとUnity上で使われるSQLite3、PlayerPrefsとの比較を行う。 \section{Javaとの比較}