Apakah Anda mengisi semua data game Anda dalam tabel excel yang sangat besar? Apakah ada metode yang lebih baik?

8

Saya benar-benar ingin tahu berapa banyak perancang permainan yang lebih suka bekerja dengan meja besar untuk semua item, meja lain untuk semua keterampilan, dan bahkan meja lain untuk semua massa dalam MMORPG. Dan tabel ini dapat tumbuh hingga beberapa ratus MB dengan ribuan catatan, tetapi sebagian besar catatan hanya menggunakan beberapa bidang dalam tabel.
Saya tahu beberapa perancang permainan bekerja dengan cara ini. Apakah ada metode yang lebih baik?

Huang F. Lei
sumber
1
Wow! Beritahu teman perancang game Anda untuk setidaknya mempertimbangkan sesuatu seperti SQLite :)
bummzack
@bummzack: SQLite adalah basis data relasional. Excel adalah spreadsheet. RDB mungkin (buruk) diganti oleh program spreadsheet, tetapi Anda tidak bisa mengganti program spreadsheet hanya dengan RDB.
(Saya punya anekdot profesional tak berujung tentang mengapa Excel hebat / mengerikan untuk hal semacam ini, yang mungkin saya tulis dalam satu atau dua hari jika saya pikir saya bisa melakukannya tanpa digugat, tapi saya berharap seseorang memiliki lebih banyak bukti berbasis jawaban.)
1
Saya kira saya salah menafsirkan konteksnya di sini. Saya pikir ini akan digunakan sebagai sumber data game dan bukan sebagai "alat desain".
bummzack
Adakah yang terpikir untuk menggunakan file XML untuk tujuan ini?
James P.

Jawaban:

4

Saya tidak ingin menjawab di sini, tetapi ketika saya melihat jawaban / komentar lain saya berubah pikiran. SQL bukanlah solusi yang sangat baik untuk ini. SQL mendefinisikan tabel dan menyisipkan banyak data ke dalam tabel itu. Ini bukan itu masalahnya. Saat membuat / menguji desain game Anda sebagian besar ingin memeriksa apakah sistem besar seimbang. Itu berarti banyak tabel yang saling mempengaruhi. Tidak ada yang baik untuk SQL sebenarnya - atau itu, tetapi tidak mudah untuk ditangani, karena Anda harus melakukan pemrograman yang tidak perlu. Dan desainer game tidak harus mengetahuinya.

Sebagai pemrogram / pengembang game, kami dapat meremehkan excel dan penggunaannya untuk apa pun, tetapi alat ini cukup bagus untuk kasus ini, terutama ketika desainer game dapat menggunakannya dengan baik dan dokumen dibuat dengan baik.

Saya tidak bisa merekomendasikan alat lain, tetapi saya bisa mengatakan bahwa saya tahu desainer game profesional yang menggunakan excel juga. Jadi saya menganggap itu adalah alat umum.

Notabene
sumber
Ya, excel adalah alat yang umum. Inti dari pertanyaan adalah: "satu meja besar untuk semua item", item termasuk peralatan, konsumsi, dll. Apakah perlu untuk membagi yang besar menjadi yang kecil? Bahkan file konfigurasi terpisah untuk setiap item? Saya khawatir meja besar itu bisa melukai mata mereka: o)
Huang F. Lei
Maaf saya tidak tahu ini. Saya programmer mesin. Saya hanya ingin mengatakan "Hei, mengapa Anda semua mengatakan SQL dan membuat lelucon tentang excel, ketika itu adalah alat yang umum?". Pertanyaannya bagus dan saya tertarik pada beberapa jawaban yang lebih canggih, lebih baik daripada saya.
Notabene
Jawaban SQl asli saya adalah karena saya melewatkan bagian 'perancang permainan' dari pertanyaan dan saya menghapusnya karena itu akan menyesatkan.
Bebek Komunis
3

Saya setuju dengan sebagian besar penjawab yang terkadang spreadsheet dapat membuat alat pengembang yang layak, terutama untuk desainer.

Jika Anda tertarik untuk mengambil pendekatan ini lebih jauh, program spreadsheet Resolver One menggunakan python untuk scripting, membuatnya mudah untuk mengatur spreadsheet untuk desainer yang melakukan pemodelan kompleks dan mengekspor ke format data yang ramah-game. Saya merasa jauh lebih mudah untuk bekerja daripada VBScript Excel.

tenpn
sumber
1
bersenang-senang menunggu beberapa detik untuk membuka! Bah itu lambat (bahkan pada mesin cepat)
Spooks
2

Excel adalah solusi terbaik. Saya bertanya-tanya bagaimana ini harus dilakukan. Tetapi memikirkannya, Excel adalah alat yang sangat populer dan cukup memadai untuk tugas ini, saya tidak akan merekomendasikan praktik ini. Selain itu, basis data aktual, seperti yang disarankan oleh @notabene, membawa banyak overhead tambahan yang benar-benar tidak Anda butuhkan. Saya melihat beberapa opsi, salah satunya mirip dengan menggunakan Excel:

  • Open Office Calc: gratis. Ada juga unduhan konektor MySql (open source, saya percaya) untuk Calc.
  • data bersambung: baik XML atau biner (terenkripsi)

... bagaimanapun juga, gratis dan Anda memiliki kendali penuh.

Saya pribadi akan cenderung untuk pergi dengan data serial dan terenkripsi biner . Dua alasan:

  • data game tidak dapat dengan mudah dirusak
  • Saya dapat bekerja dengan datatables daripada serialisasi dataset Xml, yaitu saya punya pilihan.

Apakah ada kebutuhan akan pustaka data yang didedikasikan dan berorientasi permainan yang sejati ? Mungkin ... kecuali seseorang mengetahui perpustakaan semacam itu sudah ada.

Untuk pertanyaan OP, lihat setiap file csv halaman sebagai tabel data tunggal - mirip dengan tabel dalam database. Setiap file halaman harus berisi data terkait:

  • Keterampilan, atau
  • Perlengkapan, atau
  • Statistik NPC

Ini membantu Anda mempertahankan tingkat organisasi yang tinggi yang akan sangat penting ketika konten data tumbuh, konten game bertambah, dll.

Sunting
Setelah benar-benar mencoba menggunakan .ODS (file OpenOffice Calc) dan menghubungkan dari suatu aplikasi, sebenarnya tidak mungkin karena tulisan awal pada situs OO tersirat. Saya tidak dapat menemukan sesuatu yang secara khusus menunjukkan kodez pada implementasi.

Juga, menggunakan file Excel mungkin baik - baik saja saat mengembangkan game sehingga data dapat di-tweak tanpa overhead dari database. Namun, dan ini penting, jika Anda berencana melakukan ini, Anda harus menginstal MS Office agar Anda dapat merujuk Microsoft Excel Interop COM. Ini mungkin menguntungkan pada awalnya, tetapi saya tidak ingin menghapus atau mengubah banyak kode untuk mendapatkan aplikasi yang siap untuk Alpha, Beta, atau RC. Perpustakaan yang sangat sederhana akan membutuhkan lebih banyak upaya daripada yang saya lihat bermanfaat.

Saya akan menggunakan file .CSV untuk penyimpanan data tahap awal. Ada beberapa kekurangan, tetapi secara keseluruhan saya merasa ini adalah pilihan yang jauh lebih baik. Semuanya terkandung dalam perpustakaan saya. .Net memiliki kelas yang sangat berguna untuk membaca file teks ini. Juga, sebagai file .CSV, data mudah dimanipulasi; dan, untuk tahap pengembangan selanjutnya, yang perlu saya lakukan adalah memiliki file data saya serial ke XML, kemudian ke biner terenkripsi serial.

Ekstrak
sumber
Saya sama sekali tidak keberatan dengan downvotes ... kecuali ketika saya tidak tahu mengapa. Apakah ada yang salah tentang opsi yang saya berikan atau saran saya tentang mengatur spreadsheet? Atau apakah seseorang tidak menyukai pilihan saya?
IAbtract
Saya memberi Anda -1 karena Anda membandingkan spreadsheet dengan format data disk, dan kemudian membuat pernyataan seperti "data game tidak dapat dengan mudah dirusak". Program / antarmuka dan format data disk tidak benar-benar sebanding, dan membuat biner data gim Anda tidak banyak berpengaruh untuk menghalangi modder. Selain itu, skema spreadsheet yang Anda usulkan sangat mengerikan, karena menyimpan semua data dalam satu file. Tentu saja keterampilan dan NPC harus dalam file terpisah ; mungkin semua NPC harus berada di halaman terpisah di file yang sama , meskipun jika Anda menggunakan RCS penguncian, itu juga akan mengerikan.
Saya tidak setuju. Ambil Open Office Calc dengan konektor MySql. Tentu Anda dapat membuat file yang berbeda untuk masing-masing file. Tapi saya tidak berharap untuk menyimpan data saya dalam format ini setelah saya memiliki RC.
IAbstract
Jika desainer menggunakan Excel, mereka akan mengirimkan data satu sama lain dalam format seperti .xls atau .csv. Jika Anda tidak ingin kehilangan data itu ke dalam lubang hitam Outlook atau ketika komputer mereka rusak, Anda perlu mengajari mereka untuk menyimpannya di RCS.
1

Selama sifat data Anda memungkinkannya disimpan dalam spreadsheet tanpa melompati terlalu banyak rintangan, itu membuat format yang sangat baik, terutama untuk pekerjaan pengembangan. Pada akhirnya Anda mungkin ingin menyimpannya dalam format lain untuk digunakan tetapi spreadsheet memberi Anda editor yang sangat kuat yang bisa SANGAT bagus jika Anda memutuskan untuk mengubah cara Anda menangani sesuatu!

Jika Anda menggunakan Excel, dapatkan salinan utilitas ASAP - itu membuat spreadsheet menjadi editor yang lebih baik.

Loren Pechtel
sumber
SECEPAT MUNGKIN??? Dapatkah Anda menyediakan sebuah sambungan?
IAbtract
@boarman: asap-utilities.com
Loren Pechtel
-2

Bagi saya, saya kira program-program speartesheet tidak dapat menangani hal-hal seperti itu dengan benar dan efektif. RDB sebenarnya dirancang untuk menangani data dan tabel besar. RDB modern dirancang untuk menangani hal-hal 'Besar' dan mereka melakukannya dengan sangat baik.

Intinya adalah, untuk mendapatkan hasil terbaik dari RDB Anda perlu mendesain database Anda dengan cara yang benar. Jika skema data Anda buruk, atau tidak mencakup semua data proyek Anda, Anda akan berakhir dengan hasil, kinerja, dan keluaran yang sangat buruk.

Gagasan RDB adalah memecah tabel besar menjadi yang lebih kecil sehingga Anda dapat meningkatkan kinerja dan keterbacaan. Jika Anda memiliki tabel yang sangat besar (atribut bijaksana atau bahkan catatan bijaksana) atau banyak partisi ulang, dan Anda tidak menggunakan sebagian besar dari mereka, itu berarti desain DB Anda memiliki beberapa kesalahan.

Dalam pertanyaan Anda, Huang F. Lei, jika saya diminta mendesain basis data MMORPG, saya tidak akan menambahkan semua keterampilan dalam satu tabel dan semua massa dalam satu tabel. Saya akan membagi keterampilan sesuai dengan kelas dan penggunaannya ke dalam beberapa tabel. Setiap jenis keterampilan akan memiliki tabel sendiri atau bahkan tabel. Untuk massa, saya akan membaginya sesuai dengan tipenya, atau menurut lokasi mereka di dunia yang berbeda. Dan seterusnya.

Dengan cara ini saya dapat mengecilkan ukuran tabel, membuatnya lebih mudah bagi saya untuk melacak data, dan meningkatkan kinerja DB.

Di Excel, di sisi lain, semua data akan 'hancur' di satu tempat. dan untuk menemukan sepotong data hampir tidak bisa dilewati, secara episial ketika Anda memiliki data yang berulang. Selain itu, seiring bertambahnya ukuran data, waktu pembukaan file akan meningkat.

Pada akhirnya, Excel - menurut saya - adalah cara yang sangat buruk untuk menangani data terkait yang sangat besar.

Ali Albahrani
sumber
Anda benar, tetapi ini bukan jawaban yang benar. Jika Anda membaca pertanyaan dengan cermat atau membaca jawaban atau komentar lain, Anda akan tahu bahwa pertanyaan itu adalah tentang desain game, bukan menyimpan data.
Notabene
Saya tahu ini tentang desain dan merah pertanyaan dan jawaban. Yang saya mengerti adalah bahwa, Huang F. Lei, sedang mencoba untuk memilih antara RDB dan spreadsheet. Jawaban saya berusaha menunjukkan perbedaan antara keduanya!
Ali Albahrani
Mengutip: Huang F. Lei: "Ya, excel adalah alat yang umum. Inti pertanyaannya adalah:" satu meja besar untuk semua item ", item termasuk peralatan, konsumsi, dll. Apakah perlu untuk membagi yang besar ke dalam yang kecil? File konfigurasi yang terpisah untuk setiap item? Aku takut meja besar dapat melukai mata mereka: o) "
Notabene
2
Terima kasih atas jawaban Anda: o) Pertanyaannya adalah tentang bagaimana perancang game menyediakan data untuk membuat game, bukan tentang bagaimana programmer menyimpan / mengakses data pemain dalam game.
Huang F. Lei