NetDynamics adalah taman bermain jaringan berorientasi data untuk transportasi UDP yang andal. Aplikasi ini dibuat untuk pengujian stres dan debugging perpustakaan jaringan berpemilik, tetapi juga mendukung ENet sebagai alternatif sumber terbuka.
NetDynamics memungkinkan untuk menghasilkan hingga 100.000 entitas dinamis, memproses data secara efisien, dan merender grafik menggunakan batch panggilan undian. Aplikasi ini menghasilkan sejumlah besar data untuk ditransfer melalui jaringan atau loopback menggunakan transportasi UDP yang mendukung pengiriman pesan berurutan yang dapat diandalkan/tidak dapat diandalkan. Tujuan utamanya adalah untuk menentukan titik masalah, kemacetan, atau bug dalam jaringan transportasi dan memvisualisasikannya secara real-time.
Pendekatan keseluruhan didasarkan pada Sistem Komponen Entitas di mana suatu entitas hanyalah sebuah pengidentifikasi yang dipisahkan dari data dan logika. NetDynamics adalah aplikasi client-server yang menyinkronkan representasi visual entitas di seluruh koneksi. Server membuat serialisasi dan mengirimkan ke klien sejumlah besar komponen yang pada dasarnya adalah data entitas. Sistem digunakan untuk logika dan untuk memproses komponen untuk entitas yang ditunjuk.
Server memiliki otoritas penuh atas semua entitas, klien hanya dapat berpartisipasi dalam populasi dunia dengan mengirimkan pesan yang sesuai. Server juga dapat memunculkan entitas, dan juga dapat menghancurkannya secara lokal dengan sinkronisasi lebih lanjut antar klien. Server mengirimkan pembaruan status untuk entitas pada interval tetap (20 pembaruan per detik secara default). Klien menggunakan interpolasi untuk mereplikasi pergerakan entitas yang lancar antara pembaruan status berdasarkan komponen posisi dan kecepatan. Ekstrapolasi tidak diterapkan sehingga kehilangan paket akan terlihat.
Aplikasi ini dirancang untuk menghasilkan lalu lintas secara eksponensial dengan ratusan ribu pesan jaringan. Bukan multi-thread yang sengaja melihat penurunan kinerja thread utama ketika transport jaringan berada di bawah beban tinggi, sehingga transport single-thread akan selalu bekerja dengan latensi lebih tinggi tergantung pada framerate aplikasi. Memindahkan logika transport ke thread khusus yang terpisah atau menjadikannya framerate independen dengan cara lain akan menyelesaikan masalah ini, tetapi ini di luar tujuan NetDynamics.
Unduh aplikasi dan atur parameter yang diinginkan di file settings.ini
. Jalankan aplikasi, gunakan tombol kiri mouse di server atau klien untuk menelurkan entitas, gunakan tombol kanan mouse di server untuk menghancurkan entitas.
Untuk menguji performa rendering dan pemrosesan aplikasi awal guna mendapatkan perbedaan visual dalam konsumsi waktu frame dengan logika jaringan, Anda cukup menelurkan entitas di server tanpa koneksi apa pun.