नहीं । कम से कम, शायद नहीं।
यह पहिया के सुदृढीकरण का एक बहुत ही लगातार मामला है खेल विकास, एक गलती जो अभी भी काफी लोकप्रिय है।
यदि आप यह प्रश्न पूछ रहे हैं, तो आप दूसरों के द्वारा प्रभावित होने की बहुत संभावना रखते हैं, इसलिए केवल महाकाव्य खेलों को देखें जो अवास्तविक इंजन के साथ किया है:
- UE3 में एक कस्टम, अजीब, गैर-अनुकूलित, हार्ड-टू-डीबग UnrealScript चीज़ थी,
- यदि अफवाह सच है, तो इसका समर्थन UE4 में हटाया जा रहा है , गर्म-पुनः लोड करने योग्य C ++ DLL के पक्ष में।
क्या आपको लगता है कि आप एपिक से बेहतर कर सकते हैं?
लम्बी भाषाओं का निर्माण प्रोग्रामिंग भाषा रचनाकारों का है , खेल इंजीनियरों का नहीं।
किसी भाषा को पूरी तरह से परिपक्व होने में सालों-साल लग जाते हैं, और उसका साथ देने वाला टूलसेट (कंपाइलर, लिंकर, दुभाषिया, डिबगर ..) प्रयोग करने योग्य होता है। आजकल आपके पास बहुत सारे उपलब्ध समाधान हैं, इसलिए खरोंच से एक नई चीज़ शुरू करने का कोई वास्तविक कारण नहीं है, कम से कम यदि कोई लक्ष्य केवल खेल बनाने का नहीं है। अवधि।
अपने पक्ष के सवालों का जवाब देने के लिए, नहीं, इन बहुत कारणों से मैंने अपनी स्क्रिप्टिंग भाषा को कभी लागू नहीं किया है। लेकिन मैंने कुछ आधे पके हुए लोगों के साथ बहुत कुछ झेला है। क्योंकि वे एक बहुत ही संकीर्ण विशेषता को ध्यान में रखते हुए बनाए गए थे, उनके पास हमेशा यह थोड़ा पागल quirks होता था जो आपको पागल बना देता है। अक्सर, आप अपने आप को केवल अपना खेल बनाने के बजाय भाषा की सीमा के आसपास काम करने की कोशिश में बहुत समय बिताते पाएंगे।
यदि आप भाषा बनाना चाहते हैं तो इसका कारण यह है कि इसका उपयोग ऐसे लोगों द्वारा किया जाता है जो प्रोग्रामिंग को अच्छी तरह से नहीं जानते हैं, या यदि आपको लगता है कि आपको इसकी आवश्यकता है, क्योंकि आप कुछ बहुत ही डोमेन-विशिष्ट चाहते हैं, तो मैं आपको बता दूं कि ये भी हैं बुरे कारण। आप फ़ंक्शन के साथ एक बहुत ही उच्च-स्तरीय एपीआई लिख सकते हैं do_what_they_say_and_say_what_they_do()
, और कुछ बहुत ही सरल बॉयलरप्लेट कोड जो इसके मूल उपयोग को उजागर करते हैं। आपके नहीं-तो-तकनीकी उपयोगकर्ताओं को थोड़ी प्रोग्रामिंग सीखने में खुशी होगी, और आपको खुशी होगी कि कुछ बुरी तरह से लागू भाषा द्वारा सीमित नहीं किया जाएगा।
इसलिए, जैसा कि यह थोड़ा या अचानक कठोर होगा, मैं कहूंगा कि एक मामला है जहां यह समझ में आ सकता है: यदि आप सीखना चाहते हैं कि स्क्रिप्टिंग भाषा कैसे बनाई जाती है। लेकिन कृपया, कृपया, यदि आप ऐसा करते हैं: दूसरों को इसका उपयोग करने के लिए मजबूर न करें।
संपादित करें
मैंने अभी आपके द्वारा लिंक की गई Cave Story कमांड सूची को देखा था। आउच:
<ECJx:y [EC?] Jump @ Jump to event Y if any npc with ID X is present
मैं गुफा स्टोरी के पीछे डेवलपर का अनादर नहीं दिखाना चाहता, लेकिन यह एक साधारण कमांड सूची का एक आदर्श उदाहरण है जो एक बेकाबू कस्टम स्क्रिप्टिंग भाषा में उत्परिवर्तित होती है। यह अभी भी किसी एकल डेवलपर या बहुत छोटी टीम के लिए उपयोग करने योग्य हो सकता है, लेकिन इस स्तर पर मैं एक उचित ट्यूरिंग-पूर्ण और अच्छी तरह से आजमाई गई भाषा (जैसे लुआ) पर स्विच करने की सलाह देता हूं, जहां आप कर सकते हैं:
if (npc.id == x) then
jump_to_event(y)
end
उदाहरण के लिए, चीजों को इतना आसान बना देगा कि आपको अधिक जटिल स्थिति की आवश्यकता होगी:
if (npc.id == x) or (npc.type == "enemy") then
jump_to_event(y)
end