Sebagian besar perusahaan memiliki editor, atau sistem kontrol variabel untuk mengutak-atik hal-hal dalam permainan, tetapi apakah ada solusi middleware untuk masalah ini? Saya sudah menulis dua sistem seperti itu di masa lalu, dan bekerja dengan lima, mungkin enam yang berbeda, tetapi tidak satu pun dari mereka yang siap.
Masing-masing solusi yang ditanamkan di rumah ini memiliki masalah, mulai dari harus terus mencari nilai, hingga tidak mampu menyelamatkan keadaan variabel saat ini.
Apakah ada pustaka / aplikasi kontrol variabel Config / Runtime yang matang?
Saya biasanya kode dalam C ++, tapi saya akan berpikir bahwa editor pengaturan / variabel dewasa mungkin berbasis socket (dan karena itu bahasa agnostik sampai batas tertentu) karena semua perangkat keras pengembangan saat ini selain dari barang-barang Nintendo menyediakan mekanisme untuk berbicara dengan server. Implementasi kode juga harus cukup sederhana (saya suka artikel hot_var / TweakableConstants yang dibagikan oleh Oskar, tetapi ini bukan paket)
Mungkin ide Tweakable Constants sesuai dengan kebutuhan Anda. Hal ini sangat berguna sehingga Anda akan berpikir Anda akan membutuhkan solusi yang kompleks untuk memiliki kontrol variabel run-time yang efektif, tetapi dalam kenyataannya implementasi hampir terlalu sederhana. The Diskusi asli dari teknik ini juga menarik dibaca.
Contoh:
The
H
makro mengembang untuk sesuatu sepertiHotValue(x, __FILE__, __LINE__, __COUNTER__)
. Ini mencatat nilai ke beberapa registri global. Kemudian memiliki fungsi sepertiRefreshHotValues()
yang Anda panggil secara berkala. Fungsi ini mencari setiap entri dalam registri, mem-parsing file sumber tertentu dan memuat ulang nilai panas.Saat Anda memodifikasi kode sumber yang sebenarnya, Anda memiliki ketekunan di sana.
Jelas ini tidak akan bekerja di mana
H()
tidak dievaluasi setiap frame, tetapi ada cara untuk menyelesaikan ini seperti yang dibahas di sini .Anda dapat memperluas ide ini ke solusi berbasis soket, mungkin. Mungkin ada overhead kinerja yang signifikan untuk memanggil
HotValue()
setiap frame, tetapi karena Anda dengan mudah dapat mengkompilasi makro sepenuhnya menggantinya dengan konstanta, ini bukan masalah.sumber
H(int, myvar, 5)
dan ketika perubahan file Anda menggantimyvar
memori di. Lihat mollyrocket.com/forums/viewtopic.php?p=5395#5395AntTweakBar sangat berguna untuk apa yang ingin Anda lakukan, namun, sebagian besar waktu, Anda ingin memiliki metode yang 'kompilasi' dalam rilis dengan beberapa makro atau sejenisnya.
sumber
Dari pertanyaan tentang debugging waktu-nyata , muncul jawaban David McGraw tentang AsyncSocket untuk pengembang iOS. Lihat jawabannya untuk informasi lebih lanjut.
sumber
Manajemen pengaturan tampaknya menjadi salah satu hal yang dikerjakan ulang dari awal untuk setiap game, mungkin karena betapa relatif sederhana dan variabilitas tinggi dalam jenis pengaturan yang diperlukan. Dengan asumsi Anda memiliki pengaturan backend penyimpanan yang layak (SQL / apa pun), Anda dapat membuat kode solusi yang kuat untuk manajemen pengaturan dalam satu atau dua hari sehingga tampaknya tidak ada banyak kebutuhan bisnis nyata untuk solusi middleware. Mengatasinya di atas apa pun yang Anda gunakan untuk penyimpanan informasi pemain adalah saya pikir cara terbaik untuk pergi dalam banyak kasus.
sumber
Saya sebenarnya telah memikirkan hal seperti itu belakangan ini, dan saya pikir itu akan menjadi kandidat yang bagus untuk aplikasi Android yang dipasangkan dengan perpustakaan kecil dalam bahasa apa pun yang Anda inginkan . Aplikasi ini akan menjadi kumpulan tombol, matikan, dropdown, dan lain-lain yang dapat disesuaikan (widget apa pun yang Anda inginkan), dan itu akan mengirimkan tindakan melalui WLAN (atau USB jika Anda ingin menyulitkan hal-hal) ke perpustakaan. Perpustakaan akan menelurkan utas terpisah dari gameplay dan akan tahu kontrol mana pada ponsel Android yang sesuai dengan variabel mana dalam game (Anda akan mengaturnya dalam kode startup Anda) dan akan memiliki koneksi ke aplikasi Android.
Kemudian, bermain-main dengan game Anda semudah menyentuh barang-barang di ponsel Anda. Anda bahkan dapat memiliki beberapa kotak teks di telepon yang menunjukkan nilai variabel waktu nyata dari permainan, atau Anda bisa memiliki perpustakaan maju
stdin
ataustderr
ke textarea bergulir di telepon. Opsi tidak terbatas!Satu-satunya masalah nyata adalah kecepatan. Jika kecepatan dan waktu reaksi sangat penting maka Anda hanya akan menghubungkan ponsel melalui USB dan adb (android debugger) mendukung port penerusan melalui USB ke telepon. Tetapi sebaliknya, WLAN hanya akan memiliki penundaan yang sangat kecil yang saya pikir akan banyak diterima untuk tujuan ini.
Saya tidak berpikir hal seperti di atas telah ditulis, tetapi saya sangat mempertimbangkan untuk menulisnya. (Saya hanya belum cukup jauh dalam pengembangan game saya sendiri untuk membutuhkannya)
Tentu saja, Anda yang pengguna Apple mungkin dapat melakukan hal yang sama dengan iDevices Anda. Secara pribadi saya menemukan pengembangan iOS menjadi pesanan yang jauh lebih sulit daripada pengembangan Android, dan tentu saja aplikasi di atas dapat dengan mudah dipublikasikan ke pasar Android untuk distribusi yang mudah sedangkan Apple mungkin tidak akan mengizinkan alat pengembang masuk ke app store, jadi saya rasakan platform Android lebih cocok dengan alat ini.
sumber