2011-07-11 10 views
6

私は3D「ロボットプログラミング」ゲームを作る設計段階にあります。ロボット、ロボットオデッセイ、チョロなどのゲームに触発されました。ゲーム内で仮想マシンを使用していますか?

私は実際のゲームと同じように、自分の孤立した環境/オペレーティングシステム/仮想マシンを持っています。それぞれの環境はサンドボックス化されていなければならないので、ロボットがゲームの残りの部分とどのように相互作用するかについては、ロボットにとってローカルになるようにしてください。

本来、「コンピューティングシステムの要素」という本で説明されているようにHACK VMを実装しようとしていましたが、このゲームスタイルのパフォーマンスに関してより良い解決策があるかどうか不思議です。

私の質問は、仮想マシンのアーキテクチャが既に存在していて、その目的を十分に果たしているかどうかです。

p.s.使用する言語とゲームエンジンはまだ決定されていませんが、おそらくC#またはスモールトークのいずれかになります。

+0

実装自体のSmalltalk VMを使用し、ノードがIP経由で通信するようにしますか? – Marcin

+0

私はこの考えをsmalltalk HydraVMで調べていました。私はいくつかの問題に遭遇した後、すべてを忘れてしまった。私は何がうまくいかなかったのか分かりますか? – zenchess

+2

さて、私はHydraVMで11個のsmalltalk画像を横並びに読み込むことができました...残念ながら、画像は12日にロードしようとするとクラッシュしました。 200メガバイトのメモリが使用された。これらの画像を縮小する時間。 :) – zenchess

答えて

3

Hmm ..ロボットごとに別々の画像を使用することは、過剰なIMOのビットです。 あなたのプロジェクトの要件はわかりませんが、自分のプロセスを使って同じイメージですべてのロボットを動かさないのはなぜですか? (smalltalkは緑色スレッディングモデルをサポートしていることを知っておく必要があります)。

HydraVMについて:元々は概念プロジェクトの証明でした。意外にも、それはうまく働き、かなり安定しています。 しかし、さらなる開発のためには、本当にそのようなアーキテクチャを必要とするプロジェクトが必要です。 そして、率直に言って、smalltalkの言語レベルのインフラストラクチャーは、現時点では準備ができていませんでした。(私は今日は準備ができているとは言いません) これを利用するには、リモートデバッグ、管理など。

あなたは11枚の画像を並行して走らせることができたことに本当に驚いています。それは素晴らしいです。以来、私は2つ以上を実行しようとしたことはありません:) このような多くの画像の問題は、別のメモリ管理システムが必要です。そして、Hydraで使用されているものはSqueak VMから継承されており、実際にそのようなデザインには適合しません。

+0

別のプロセスを使って同じイメージでロボットを動かすことは、自分のゲームのアイデアにも役立つかどうかは分かりません。つまり、ユーザーにはロボットをプログラミングできるようにしたい、つまり各ロボットには基本的な 'オペレーティングシステム'があります。理想的には、彼らは小さなトークでロボットをプログラミングすることができますが、スクリプト言語は私にとってはうまくいくでしょう。私がプロセスが1つのイメージで動作するとは思わない理由は、あるロボットのスクリプトを書くと、このスクリプトはイメージ内の他のロボットにアクセスできないようにするか、ローカルにあるものを超えてゲームの状態を変更できるそのロボットに可能です。 – zenchess

関連する問題