Peredvizhnikov Engine adalah mesin permainan yang sepenuhnya bebas kunci yang ditulis dalam C++20. Ini mengimplementasikan model aktor komputasi bersamaan di atas primitif coroutine bahasa tersebut.
Dengan menggunakan abstraksi model aktor , dimungkinkan untuk mengembangkan logika paralel yang kompleks sambil sepenuhnya terisolasi dari detail sinkronisasi antar-thread. Implementasi model yang benar-benar bebas kunci membawa banyak keuntungan, yaitu jaminan kemajuan bahkan ketika ada penghentian thread secara sewenang-wenang, bebas kebuntuan, latensi yang dapat diprediksi dalam bereaksi terhadap peristiwa penting, dan toleransi kesalahan.
Faktanya, tingkat toleransi kesalahan pada Mesin Peredvizhnikov begitu besar, sehingga mesin dijamin akan terus berjalan bahkan ketika salah satu thread pekerja dimatikan secara asinkron. Anda dapat memverifikasinya sendiri.
Implementasinya didasarkan pada perpaduan ide klasik dan baru dalam pemrograman bebas kunci. Ini mencakup implementasi baru dari Memori Transaksional Perangkat Lunak, jenis antrian bebas kunci baru, primitif serialisasi bebas kunci asli, std::atomic_shared_ptr bebas kunci, penjadwal bebas kunci, pengalokasi memori bebas kunci, a DAG waktu kompilasi dan banyak lagi!
Untuk perincian mendetail tentang semua algoritme bebas kunci yang digunakan dalam mewujudkan mesin, dasar pemikiran desain, tolok ukur, dan banyak lagi, silakan lihat dokumen terlampir: Mesin Peredvizhnikov: Desain dan Implementasi Penjadwal yang Sepenuhnya Bebas Kunci .
Untuk lebih memfasilitasi pengembangan dengan desain berorientasi data, Peredvizhnikov Engine mengimplementasikan database dalam memori yang dioptimalkan untuk akses berdasarkan komponen dan mendukung kumpulan data besar. Ini didasarkan pada Flat Hash Map yang berkinerja baik dan Bitwise Trie dengan struktur data Bitmap.
Saat ini, satu-satunya platform yang didukung adalah Linux. Dentang++ 16 diperlukan untuk membangun sumber.
git clone https://github.com/eduard-permyakov/peredvizhnikov-engine.git
cd peredvizhnikov-engine
make -j16 DEBUG=0
Kode sumber Mesin Peredvizhnikov tersedia secara gratis di bawah lisensi GPLv3. Namun, saya dapat memberikan izin untuk menggunakan sebagian atau seluruh kode di bawah lisensi yang berbeda berdasarkan kasus per kasus. Silakan bertanya melalui email.
Anda dapat menghubungi saya jika ada pertanyaan, komentar, atau kekhawatiran apa pun yang berkaitan dengan kode sumber atau algoritme yang mendasarinya.
Selain itu, saat ini saya sedang aktif mencari pekerjaan. Jangan ragu untuk menghubungi kami mengenai peluang yang sesuai.
Email saya adalah: [email protected]