Pertanyaan desain / pengeditan / penyimpanan Tingkat 2D [ditutup]

12

Saya berpikir untuk membuat game 2D Sidescroller sederhana seperti SuperMario. Lalu saya bertanya-tanya bagaimana cara menyimpan, memuat atau membuat level untuk game. Hal pertama yang saya pikirkan adalah menggambar png gumpal sederhana yang mewakili level, membuat semua bagian di mana pemain dapat berjalan dengan warna khusus (mungkin lilac). Saya akan mengimpor level dalam blok atau ubin sehingga saya bisa memeriksa tabrakan.

jadi pertanyaan saya adalah:
adakah metode yang lebih baik untuk ini?
apa metode profesional untuk ini?
haruskah saya melakukan ini dengan Ubin dan editor Peta berdasarkan ubin? (untuk beberapa alasan saya tidak suka ini, tetapi saya kira jika ini adalah metode terbaik saya akan menggunakannya)
dengan tingkat berbasis ubin, bagaimana Anda menyadari lereng, dan bagaimana Anda memeriksanya untuk tabrakan?

Simiil
sumber

Jawaban:

10

Untuk MMO 2D kami menggunakan http://www.mapeditor.org/ . Kami menggunakan beberapa lapisan untuk latar belakang, dekorasi latar belakang, benda-benda pada tingkat yang sama dengan para pemain dan benda-benda di depan pemain. Dan layer tambahan dengan hanya satu kotak merah untuk menandai tabrakan.

Saya tidak yakin apakah appoach ini atau perangkat lunaknya berfungsi untuk penggulung sisi 2D tetapi mungkin perlu untuk melihatnya.

Hendrik Brummermann
sumber
+1. Ini alat yang hebat. Ini juga open source, sehingga Anda dapat memperpanjangnya jika diperlukan.
Janis Kirsteins
Itu benar-benar alat yang bagus, saya mengujinya dan tidak punya satu masalah mengimpornya ke dalam permainan saya.
Simiil
1
ok jadi sekarang saya ingin tahu cara membuat level non-ubin, seperti dunia dalam cacing, tapi saya rasa saya akan menanyakan ini dalam pertanyaan baru suatu hari nanti
Simiil
6

Cara yang umum bisa jadi hanya string misalnya

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

di mana 0 akan menjadi blok Anda bisa berjalan di 1 bisa menjadi paku dan 2 bisa menjadi garis finish

Anda cukup membacanya melalui file teks (atau memasukkannya ke dalam game) dan menggambar blok relatif yang terkait dengan nomor tersebut dan memiliki logika colision untuk ditangani namun pengaturannya sudah diatur.

Jelas Anda dapat memilih format apa pun yang Anda inginkan dan mungkin 0 berarti menggambar 5 blok walkable.

Ini hanya satu cara yang bisa dicapai.

http://www.smudgedcat.com/tut_tiledlevel.html tautan ini adalah contoh dalam c # menggunakan kerangka kerja XNA. itu akan memberi Anda ide kasar (TIDAK berisi lereng, tetapi hal serupa dapat digunakan untuk mendefinisikan jenis huruf ini)

Salam Mark

markblue777
sumber
Ini persis seperti bagaimana "Excite Bike" melakukannya peta kustom kembali di Nintendo. vc.nintendolife.com/games/nes/excitebike
Stephen Furlani
5

teks alternatif

Banyak game menggunakan aplikasi sumber terbuka yang disebut Mappy . Ini memiliki format sendiri yang mendukung banyak lapisan dan fitur lainnya. Anda mungkin ingin mengaitkan beberapa jenis data dengan ubin yang diberikan.


Saya pikir pendekatan editor level dalam game sangat umum. Mode Pengembang adalah akun orang dalam tentang bagaimana level untuk game yang sangat populer, Braid, dirancang. Gim ini memiliki mode pengembangan tempat level dapat dibangun / dimodifikasi. Level-level itu sendiri memiliki lapisan tabrakan yang ditutup dengan ubin grafis:

teks alternatif


Dan saya pribadi tidak merekomendasikannya, tetapi program demo 2D untuk Allegro menggunakan beberapa jenis format pemodelan 3D dan mengubahnya menjadi format khusus dalam game. Keuntungannya adalah bisa memodelkan permukaan yang sangat halus dan kontinu. (Itu adalah game skate boarding 2D berbasis fisika.)

Untuk mengedit data level dari game demo Allegro, kami menggunakan alat Blender gratis dan sumber terbuka. Anda bisa mendapatkannya di sini:

http://blender.org

Berikut adalah petunjuk langkah demi langkah cara kerjanya:

1) Tempatkan file ademo_export.py ke dalam folder skrip Blender Anda. Ini adalah skrip ekspor yang akan mengonversi dari format .blend ke format .txt yang digunakan oleh game demo. Di bawah unix, path akan menjadi:

~ / .blender / scripts / ademo_export.py

2) Muat blender file .blend. Di bawah unix, ketik ini dari direktori dengan file level.blend:

blender -w level.blend

(The -w adalah menggunakan mode berjendela, yang saya sukai.)

3) Edit level. Di menu, di bawah

Bantuan -> Skrip Bantuan Browser -> Ekspor -> Tingkat Permainan Demo Allegro

Anda akan menemukan beberapa tips yang bermanfaat.

4) Simpan file (gunakan kompresi sebelum melakukan). Ekspor sebagai .txt dari menu ekspor, pilih Allegro Demo Game Level.

5) Perbarui level. Dengan menggunakan level.txt, level baru akan muncul di permainan.

Leftium
sumber
2

Metode 'profesional' mungkin akan melibatkan editor peta yang sangat rinci, mungkin dalam C #, yang akan memberi mereka kontrol penuh atas semuanya.

Ada dua pendekatan utama; seseorang lebih mudah dilakukan, tetapi tidak seefektif itu.

  • Anda dapat menggunakan editor peta; baik menulis Anda sendiri atau menemukan yang sudah ada sebelumnya seperti mapeditor yang disebutkan oleh nhnb. Menulis sendiri akan bagus untuk pengalaman belajar, tetapi tidak terlalu banyak untuk produk jadi.
  • Anda bisa mengetik data ke dalam file teks. Ini lebih sederhana, tetapi tidak mudah dibaca lagi. Anda mungkin bisa mendapatkan yang sama dari editor peta, tetapi itu akan otomatis. Kelemahannya lagi adalah Anda tidak dapat menambahkan efek khusus seperti ubin tertentu (bukan tipe ubin , tapi ubin (13,45) misalnya) untuk melakukan hal-hal khusus.
Bebek Komunis
sumber
2

Saya memiliki pemikiran yang sama (yaitu kembali hobi menulis game - pekerjaan dan komitmen lainnya ...)

Saya serius mempertimbangkan rute pengembangan 'Editor Peta' sebagai bagian dari permainan / aplikasi.

Jika game Anda melampaui PC Anda sendiri, Konten Komunitas akan sangat bermanfaat.

Mesh
sumber