2Dレベルの設計/編集/保存に関する質問[終了]


12

SuperMarioのような単純な2D Sidescrollerゲームを作成することを考えました。次に、ゲームのレベルを保存、ロード、作成する方法について考えました。私が最初に考えたのは、レベルを表す単純なブロック状のpngを描画することでした。これは、プレーヤーが特別な色(おそらくライラック)を歩くことができるすべての部分を作成します。衝突をチェックできるように、ブロックまたはタイルでレベルをインポートします。

私の質問は次の
とおりです:これのためのより良い方法はありますか?
これの専門的な方法は何ですか?
タイルとタイルに基づくマップエディターでこれを行う必要がありますか?(何らかの理由で私はこれが好きで
はありませんが、タイルベースのレベルでは、どのように傾斜を実現し、どのように衝突をチェックしますか?

回答:


10

2D MMOの場合は、http://www.mapeditor.org/を使用します。背景、背景装飾、プレーヤーと同じレベルのオブジェクト、およびプレーヤーの前のオブジェクトにいくつかのレイヤーを使用します。そして、衝突をマークするための赤い正方形が1つだけの追加レイヤー。

このアプローチやソフトウェアが2Dサイドスクローラーに適しているかどうかはわかりませんが、見てみる価値はあります。


+1。それは素晴らしいツールです。また、オープンソースなので、必要に応じて拡張できます。
ジャニスカースティン

それは本当に良いツールです。テストしましたが、ゲームにインポートするのに問題はありませんでした。
シミール

1
わかりましたので、ワームの世界のようにタイル以外のレベルを作成する方法を知りたいのですが、いつか新しい質問でこれを尋ねることになると思います
-Simiil

6

一般的な方法は、たとえば文字列だけにすることです

0,0,0,0,0,0,1,1,1,0,0,0,2

ここで、0はあなたが歩くことができるブロックであり、1はスパイクであり、2はフィニッシュラインです。

テキストファイルを介してこれを読み取り(またはゲームにハードコーディングして)、番号に関連付けられている相対ブロックを描画し、セットアップされているにもかかわらず処理するコリジョンロジックを使用します。

明らかに、あなたはあなたが望むどんなフォーマットでも選ぶことができます、そして、おそらく0は5つの歩きやすいブロックを描くことを意味します。

これは、実現可能な1つの方法にすぎません。

http://www.smudgedcat.com/tut_tiledlevel.html このリンクは、XNAフレームワークを使用したc#内の例です。大まかなアイデアが得られます(勾配は含まれていませんが、このタイプのケースを定義するために同様のものを使用できます)

よろしくマーク


これは、まさに「Excite Bike」​​が任天堂でカスタムマップを作成した方法です。 vc.nintendolife.com/games/nes/excitebike
スティーブン

5

代替テキスト

多くのゲームはMappyと呼ばれるオープンソースアプリケーションを使用しています。複数のレイヤーやその他の機能をサポートする独自の形式があります。おそらく、いくつかのタイプのデータを特定のタイルに関連付けたいと思うでしょう。


ゲーム内レベルのエディターのアプローチは非常に一般的だと思います。 開発者モードは、非常に人気のあるゲームBraidのレベルがどのように設計されたかを示す内部アカウントです。ゲームには、レベルを構築/変更できる開発モ​​ードがあります。レベル自体には、グラフィカルタイルで覆われたコリジョンレイヤーがあります。

代替テキスト


個人的にはお勧めしませんが、Allegroの2Dデモプログラムでは、ある種の3Dモデリング形式を使用して、カスタムのゲーム内形式に変換しました。利点は、非常に滑らかで連続した表面をモデル化できることでした。(2D物理ベースのスケートボードゲームでした。)

Allegroデモゲームのレベルデータを編集するには、無料のオープンソースツールBlenderを使用します。ここから入手できます:

http://blender.org

手順を追った手順は次のとおりです。

1)ファイルademo_export.pyをBlender scriptsフォルダーに配置します。これは、.blend形式からデモゲームで使用される.txt形式に変換するエクスポートスクリプトです。UNIXでは、パスは次のようになります。

〜/ .blender / scripts / ademo_export.py

2).blendファイルブレンダーをロードします。unixで、level.blendファイルがあるディレクトリから次のように入力します。

ブレンダー-w level.blend

(-wは、ウィンドウモードを使用することです。

3)レベルを編集します。メニューの

ヘルプ->スクリプトヘルプブラウザ->エクスポート-> Allegroデモゲームレベル

役に立つヒントが見つかります。

4)ファイルを保存します(コミットする前に圧縮を使用します)。エクスポートメニューから.txtとしてエクスポートし、Allegro Demo Game Levelを選択します。

5)level.txtを使用してlevel.datを更新すると、新しいレベルがゲームに表示されます。


2

「プロフェッショナル」な方法には、おそらくC#で作成された非常に詳細なマップエディターが含まれ、すべてを完全に制御できます。

主に2つのアプローチがあります。1つは簡単ですが、それほど効果的ではありません。

  • マップエディターを使用できます。独自に作成するか、nhnbが言及したmapeditorなどの既存のものを見つけます。独自の文章を書くことは学習体験には適していますが、完成品にはあまり適していません。
  • テキストファイルにデータを入力するだけで済みます。これは簡単ですが、もう一度読むのは簡単ではありません。おそらくマップエディターから同じものを取得できますが、それは自動化されます。これの欠点は、特定のタイル(タイルの種類ではなく、タイル(13,45)など)などの特殊効果を追加して特別なことを実行できないことです。

2

私は同じような考えを持っていました(つまり、趣味でゲームを書くことに戻ります-仕事と他のコミットメント...)

ゲーム/アプリケーションの一部として「マップエディター」を開発する方法を真剣に検討します。

ゲームが自分のPCを超えた場合、コミュニティコンテンツは大きな恩恵になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.