09-10-2019, Saat: 22:15
(Son Düzenleme: 10-10-2019, Saat: 02:13, Düzenleyen: omer.hatay.)
Unreal engine de yaptığım oyuna dışarıdan yazdığım bir program ile müdahale etmek istiyorum. Mesela, bir görüntü işleme programında yüz taratacağım. Program eğer kamera ile yüz algılarsa, unreal engine ile yaptığım oyunda bir olay bir efekt tetiklenecek. Örneğin unity de c# ile oyuna dışarıdan müdahale edebiliyoruz diye biliyorum, ki bununla ilgili tubitakta bir proje ile karşılaşmıştım. Peki bunu unreal enginde nasıl yapabilirim?
Aradığınız konu Inter Process Communucation(IPC). En yaygın yöntemlerden bir tanesi Shared Memory diğeri de socket haberleşmesidir. Herhangi iki process bu yöntemlerden bir tanesi ile haberleşebilir. Bu konuda Unity veya Unreal'ın desteklemesi yada desteklememesi söz konusu değil. Size tavsiyem en kolay, dökümantasyon konusunda en zengin olan TCP/IP yada UDP protokolü ile Socket haberleşmesini kullanmanız yönünde.
İyi çalışmalar.
Ayrica yapacagin islerin multithread olmasini gectim asynchronous yani birbirinden asenkron olarak turetilen seyler hemen oyun threadina entegre olmadan calisiyor mesela bunlari network bilgi aktarimi sayesinde oyun dunyasindaki pointeri alabilirsiniz. Motorda bulunan network, grafik, oyun, ui vesaire hepsi ayri bir thread ama aralarinda etkilesim kurabilmeni mumkun kilan network, oyunda beklenmeyen sonuclara neden olabilir ama cok dusuk bir ihtimal.
(UDP protokolunde bir paketin kayip oldugunu anlayamazsin. Cunku handshaking yoktur.)
UE üzerinde hemen hemen her şey mümkün sadece senin ne kadar bildiğin ile alakalı. Motoru şu an açık kaynak olarak indirebiliyorsun. Bu demek ki kendine göre revize edip kullanabilirsin tabi o kadar c++ ve motor bilgin varsa.