PlanetSide için madde işareti yazdım. Birkaç 'hitscan' mermisi vardı, fakat çoğunlukla mermileri CPU kısıtlamaları ve herhangi bir zamanda oyundaki çok sayıda mermi verebileceğimiz en iyi şekilde simüle etti.
Hitscan durumunda, etki, genellikle tek bir raycast kullanılarak, girişle aynı çerçevede belirlenir. Bu, lazerler veya diğer son derece hızlı mermiler gibi silahlar için uygundur. Sadece mermi üzerindeki başlangıç hızını, oyun tahtasını tek bir tıklamayla geçecek kadar yükselterek hitscan yaptık.
Hitscan olmayan mermiler, grafik çerçeve zamanına veya sabit bir zaman dilimine, hızlanma (düşünce roketleri), yerçekimi, hava sürtünmesi, rehberlik (ısı arayan mermileri düşün) hesaplamaları vb. İle işaretlenir. Amaç, merminin timestep için terminal konumunu oluşturmak. Başlangıç ve bitiş noktaları oluşturulduktan sonra, uçuş yoluna yaklaşmak ve uçuş sırasında meydana gelebilecek herhangi bir çarpışmayı tespit etmek için bir veya daha fazla ışın fırlatılabilir.
Hem hitscan hem de hitscan olmayan mermilerde, bir çarpışmada gerçekleşen olay mermilerinizin özelliklerine ve çarptığınız yüzeye bağlıdır. Örneğin, sert bir yüzeye çarpabilirsiniz; bu durumda hemen çıkma sayınızı kontrol edebilir ve yansıma başına konumunu ve hızını ayarlayabilir veya maksimum geri dönme sayınıza çarptığınızda mermiyi patlatabilirsiniz. Bu sistemde bir roketin maksimum sıçrama sayısı 0'dır. Yumuşak bir yüzeye çarpabilir ve ardından merminin malzemeden geçip geçmeyeceğini belirlemek için delici gücünüzü kontrol edebilirsiniz.
Yazmak eğlenceli bir koddu. Ayrıca, ne olup bittiğine dair iyi hata ayıklama görselleştirmesi yazmak, böylece uçuş yollarını, olayları vb. Görsel olarak inceleyebilmeniz son derece yararlıdır.