dyanikoglu

Unreal MVP
5 Kas 2015
399
93
28
106
Belirtilmemiş
Veri yapılarının oyun geliştirmede kullanım alanlarını kısaca açıklayabilecek var mı acaba? Misal şu tarz kullanımlar ne kadar mantıklı olur bir oyunda;

- Bir şarjör için Stack ADT
- Karışık bir skill ağacı için Graph ADT ( veya daha sade bir ağaçsa Tree ADT)
- Main/Side Quest Listesi için PriorityQueue ADT

Bu tarz şeyler mümkün müdür oyun programlarken? Yoksa çok yanlış bir bakış açım mı var konuya karşı :D
 
dyanikoglu' Alıntı:
Veri yapılarının oyun geliştirmede kullanım alanlarını kısaca açıklayabilecek var mı acaba? Misal şu tarz kullanımlar ne kadar mantıklı olur bir oyunda;

- Bir şarjör için Stack ADT
- Karışık bir skill ağacı için Graph ADT ( veya daha sade bir ağaçsa Tree ADT)
- Main/Side Quest Listesi için PriorityQueue ADT

Bu tarz şeyler mümkün müdür oyun programlarken? Yoksa çok yanlış bir bakış açım mı var konuya karşı :D

Hayır, yanlış bir bakış açın yok, en azından genel anlamda.

Gerçekten ihtiyaç varsa bu veri yapılarının kullanımı oldukça yaygın. Ancak yapı, gerekmedikçe, ciddi performans problemlerini çözmedikçe; kullanılmaz, gerek yoktur. "Stack, Queue, Linked List..." gibi basit veri yapılarını bir kenara bırakalım. Bunlar, belirli problemlerin çözümünde sıklıkla kullanılabilir, bu algoritma yazma biçimiyle alakalı daha çok. Çünkü çok fazla şey değiştirmezler.

Karışık bir yetenek ağacı, en azından yeteneğin kökenlerini tespit etmek için sıklıkla kullanılan bir yöntem. Aynı şekilde sıklıkla "Crafting" için de kullanılabilir.

Asıl veri yapıları tasarımı gerçekten performans ile ilgili sorunlar doğuran durumlarda ortaya çıkıyor. Bir de bunların çoğu oyun motorunda hallediliyor. Oyun motoru kullanmadan oyun yapmak isteseydik sıklıkla kullanırdık. Örneğin Landscape, LOD + QuadTree kullanır. Realtime GI, OcTree kullanır gibi.

Şimdi hızlı bir tahminle temel amacın iterasyon sayısı düşürmek olduğunu söyleyebiliriz. Ancak şarjör örneğinde, Inventory ve eşya yönetimi karakter ölçeğinde ciddi bir mesele değil. Basitçe array kullanımı yeterli olacaktır, çoğu problemde. Ne kadar iterasyon yapabilirsin ki zaten.
 
cahitburak' Alıntı:
dyanikoglu' Alıntı:
Veri yapılarının oyun geliştirmede kullanım alanlarını kısaca açıklayabilecek var mı acaba? Misal şu tarz kullanımlar ne kadar mantıklı olur bir oyunda;

- Bir şarjör için Stack ADT
- Karışık bir skill ağacı için Graph ADT ( veya daha sade bir ağaçsa Tree ADT)
- Main/Side Quest Listesi için PriorityQueue ADT

Bu tarz şeyler mümkün müdür oyun programlarken? Yoksa çok yanlış bir bakış açım mı var konuya karşı :D

Hayır, yanlış bir bakış açın yok, en azından genel anlamda.

Gerçekten ihtiyaç varsa bu veri yapılarının kullanımı oldukça yaygın. Ancak yapı, gerekmedikçe, ciddi performans problemlerini çözmedikçe; kullanılmaz, gerek yoktur. "Stack, Queue, Linked List..." gibi basit veri yapılarını bir kenara bırakalım. Bunlar, belirli problemlerin çözümünde sıklıkla kullanılabilir, bu algoritma yazma biçimiyle alakalı daha çok. Çünkü çok fazla şey değiştirmezler.

Karışık bir yetenek ağacı, en azından yeteneğin kökenlerini tespit etmek için sıklıkla kullanılan bir yöntem. Aynı şekilde sıklıkla "Crafting" için de kullanılabilir.

Asıl veri yapıları tasarımı gerçekten performans ile ilgili sorunlar doğuran durumlarda ortaya çıkıyor. Bir de bunların çoğu oyun motorunda hallediliyor. Oyun motoru kullanmadan oyun yapmak isteseydik sıklıkla kullanırdık. Örneğin Landscape, LOD + QuadTree kullanır. Realtime GI, OcTree kullanır gibi.

Şimdi hızlı bir tahminle temel amacın iterasyon sayısı düşürmek olduğunu söyleyebiliriz. Ancak şarjör örneğinde, Inventory ve eşya yönetimi karakter ölçeğinde ciddi bir mesele değil. Basitçe array kullanımı yeterli olacaktır, çoğu problemde. Ne kadar iterasyon yapabilirsin ki zaten.

Teşekkürler, oldukça faydalı oldu verdiğiniz bilgiler.