Bagaimana saya bisa menghasilkan peta panas berdasarkan data yang dilaporkan pemain?


17

Untuk contoh yang benar-benar bagus tentang apa yang saya bicarakan, lihat bagaimana pengembang Pulau Replika melakukannya berdasarkan kematian pemain: http://www.youtube.com/watch?v=7-62tRHLcHk&feature=player_embedded#t= 37 m

Bagaimana saya bisa dengan mudah menghasilkan peta panas berdasarkan data yang saya lewati?

Halo 3 adalah contoh lain yang baik dari penggunaan peta panas dalam pelaporan data game: http://www.bungie.net/Online/Heatmaps.aspx


Jawaban:


9

Dengan asumsi Anda memiliki kumpulan data yang ingin Anda plot, dan peta yang ingin Anda plot, Anda dapat mulai dengan membuat peta intensitas: kisi-kisi nilai titik apung yang proporsional dalam batas ke peta akhir (jika peta cukup kecil, 1: 1 mungkin baik-baik saja). Inisialisasi seluruh array menjadi 0.

Kemudian Anda berjalan melalui setiap titik yang ingin Anda plot, memetakannya ke dalam ruang koordinat dari peta intensitas (yang seharusnya merupakan operasi skala sederhana, biasanya), dan kemudian plot "blip" di peta intensitas yang berpusat di posisi itu.

"Blip" dasar mungkin hanya terdiri dari peningkatan intensitas pada titik blip ditambah beberapa jari-jari dengan jumlah kecil. Implementasi yang lebih kompleks dapat membaca intensitas yang ada, dan menggunakan radius falloff yang lebih besar semakin intens titik blip. Anda dapat bereksperimen dengan blip plotter untuk menemukan implementasi yang Anda sukai.

Setelah Anda memiliki peta intensitas, Anda dapat menggunakan intensitas di setiap titik individu sebagai pencarian 1D ke dalam gradien warna, yang akan memungkinkan Anda untuk mencapai dampak visual yang diinginkan (ini adalah bagaimana Anda bisa mendapatkan hasil multi-warna yang paling sering dilihat). Anda harus melakukan pencarian warna ini saat Anda mentransfer peta intensitas ke plot terakhir Anda (jelas, jika diperlukan, untuk memperhitungkan perbedaan ukuran dalam peta intensitas versus gambar akhir).

Ini harus cukup untuk implementasi dasar, tetapi ada ruang untuk optimasi. Misalnya, peta intensitas tidak akan dinormalisasi, jadi Anda mungkin perlu untuk melakukan renormalisasi (mungkin lambat) atau melacak intensitas maksimum saat Anda merencanakan setiap blip, sehingga Anda dapat melakukan renormalisasi intensitas individu pada waktu yang sama. Anda sedang melakukan pewarnaan ulang. Selain itu, ada kemungkinan bahwa distribusi nilai Anda sedemikian rupa sehingga tidak efisien memori untuk menyimpan seluruh ruang koordinat peta, dan Anda mungkin ingin menggunakan solusi alternatif yang tidak melibatkan preallocating sejumlah besar memori itu sebagian besar akan kosong.

Jika Anda memiliki cukup data sebelumnya untuk menanyakan intensitas minimum dan maksimum yang Anda harapkan untuk dilihat dalam kumpulan data, Anda dapat menghindari keharusan melakukan renormalisasi sama sekali - pada dasarnya jika Anda memiliki beberapa peta antara (X, Y, Z) dengan jumlah " klik "dari data yang diplot yang terjadi pada saat itu - itu adalah sesuatu yang dapat Anda bangun ke sistem yang mengumpulkan data yang akan membantu Anda mengoptimalkan bagian pemetaan.

Karena peta intensitas hanyalah, pada dasarnya, gambar skala abu-abu merupakan cara yang sangat mudah untuk membuat prototipe sistem semacam ini untuk menggunakan bitmap untuk peta intensitas dan API gambar pilihan Anda (misalnya, System.Drawingdalam C #) untuk merencanakan lingkaran yang sebagian transparan ke menghasilkan peta intensitas. Itu tidak terlihat yang terbaik, tetapi fungsional.


3

Echo Chamber adalah alat logging dan visualisasi gratis yang khusus dibuat untuk gim.

Visualisasikan file data berbasis SQL yang berisi informasi yang dihasilkan oleh aplikasi c ++. Informasi dapat berupa pernyataan log, panggilan fungsi, tangkapan layar, atau daftar parameter.

Lihat metrik game 2D dan 3D seperti posisi kematian, senjata yang paling sering digunakan, dan penggunaan memori di berbagai bagian level.

Sistem logging memiliki antarmuka C ++ (yang seperti printf () yang output ke database SQL, opsional di seluruh jaringan), tetapi Echo Chamber harus dapat memvisualisasikan setiap database SQL (atau semestinya mudah untuk membuat database di format yang diharapkan oleh Echo Chamber). Navigasi situs web agak tumpul; manual Echo Chamber yang relevan dan fungsi logging Raknet terkait .

Sayangnya tidak ada tangkapan layar dari peta panas yang sedang beraksi, tetapi Echo Chamber pasti mendukung peta panas:

masukkan deskripsi gambar di sini


2

Misalnya, dapatkan koordinat pada acara yang ditentukan dalam game. Misalnya saat pemain mati, Anda mendapatkan koordinat dalam naskah skenario tempat pemain meninggal.

Jadi, begitu Anda memiliki nilai yang Anda butuhkan dalam database Anda, sebutkan setiap koordinat berapa kali muncul dalam daftar / database Anda. Anda akan memiliki daftar seperti:

  • 15: 1,5
  • 10: 6.15
  • 3: 27,58

atau apa pun nilai-nilai Anda. Anda akan memiliki pasangan frekuensi dengan koordinat seperti pasangan kunci-> nilai. Anda kemudian dapat mengukur skala kunci menjadi warna. Misalnya kunci 0 adalah hitam dan kunci maksimum yang Anda miliki dalam daftar nilai kunci Anda adalah merah, dan semuanya adalah gradien antara hitam, titik tengah kuning dan titik maks merah. Hitung setiap hasil dengan warna dan Anda memilikinya.


1
Untuk gim 3D, atau bahkan gim tanpa posisi integral, ini dapat diperluas lebih lanjut dengan merender lingkaran atau gradien bola dari beberapa radius.
dash-tom-bang

2

Saya tidak yakin apakah Anda mencari semacam aplikasi atau algoritma untuk yang ini. Saya benar-benar merasa senang membangun perangkat lunak visualisasi peta panas khusus dan sangat menyenangkan.

Pencarian Google cepat mengungkapkan HeatMap API yang bisa menjadi solusi yang tepat jika Anda tidak ingin roll sendiri.

Mungkin jika Anda menjelaskan dengan tepat apa yang Anda cari (berdasarkan aplikasi atau pemrograman) kami dapat membantu Anda lebih baik?


0

Hal lain yang dapat Anda lakukan adalah hanya mengeluarkan data yang relevan ke file CSV atau sesuatu, lalu mengimpornya dengan perangkat lunak statistik (seperti Microsoft Excel, LibreOffice Calc, R, atau GNUPlot) dan minta grafiknya diludahkan. Jika Anda tahu sedikit scripting shell (atau Batch jika Anda menggunakan Windows), Anda mungkin bisa mengotomatiskan semuanya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.