मैं थोड़ी देर के लिए घटक आधारित इकाई प्रणाली में दिलचस्पी किया गया है, और उस पर अनगिनत लेख पढ़ा ( Insomiac खेल , सुंदर मानक Evolve अपने पदानुक्रम , टी मशीन , Chronoclast ... बस कुछ नाम हैं)।
वे सभी कुछ के बाहर की तरह एक संरचना है लगता है:
Entity e = Entity.Create();
e.AddComponent(RenderComponent, ...);
//do lots of stuff
e.GetComponent<PositionComponent>(...).SetPos(4, 5, 6);
और यदि आप साझा किए गए डेटा के विचार में लाते हैं (यह सबसे अच्छा डिज़ाइन है जो मैंने अब तक देखा है, हर जगह डेटा की नकल नहीं करने के मामले में)
e.GetProperty<string>("Name").Value = "blah";
हां, यह बहुत कुशल है। हालाँकि, यह पढ़ना या लिखना बिल्कुल आसान नहीं है; यह बहुत ही भद्दा और काम करने वाला-आपको लगता है।
मैं व्यक्तिगत रूप से कुछ करना चाहूंगा:
e.SetPosition(4, 5, 6);
e.Name = "Blah";
हालांकि निश्चित रूप से इस तरह के डिजाइन को प्राप्त करने का एकमात्र तरीका वापस निकाय में है-> एनपीसी-> दुश्मन-> फ्लाइंग इनेमी-> फ्लाइंगएनिमीविथाहैटऑन इस तरह के पदानुक्रम से बचने की कोशिश करता है।
क्या किसी ने इस तरह की घटक प्रणाली के लिए एक डिजाइन देखा है जो अभी भी लचीला है, फिर भी उपयोगकर्ता मित्रता का एक स्तर बनाए रखता है? और उस मामले के लिए, एक अच्छे तरीके से डेटा भंडारण के आसपास (शायद सबसे कठिन समस्या) प्राप्त करने का प्रबंधन करता है?
घटक आधारित इकाई प्रणाली के लिए कौन से डिज़ाइन हैं जो उपयोगकर्ता के अनुकूल हैं लेकिन फिर भी लचीले हैं?