प्रस्तावना
इसलिए, आज मैं आपको एकता के बारे में बताना चाहता हूं (जो लोग इससे परिचित नहीं हैं, कम से कम)। बेशक, होबे पर ऐसे लोग हैं जो जानते हैं कि यह क्या है, लेकिन खोज में इस विषय के साथ बहुत कम संख्या में विषय मिलते हैं - उनमें से दो बस नए संस्करणों की रिपोर्ट करते हैं, एक संक्षिप्त रूप से प्रस्तुत करते हैं, और दूसरा इसके उपयोग के लिए समर्पित है। "अक्षम्य, हमें इसे ठीक करने की आवश्यकता है!", मैंने सोचा, और तकनीक को लोकप्रिय बनाने के लिए एक छोटी प्रस्तुति लिखने का फैसला किया। यदि आप पहले से ही इस विषय में हैं, तो आप आगे नहीं पढ़ सकते हैं।
ईमानदारी से, जब मैं विकिपीडिया पर मुफ्त के बारे में पढ़ता हूं (कम से कम पूरी तरह कार्यात्मक नि: शुल्क लाइसेंस के साथ) एक सामान्य आईडीई के साथ 3 डी इंजन, अंतर्निहित सामान्य भौतिकी, एक ऑडियो इंजन और नेटवर्क मल्टीप्लेयर का एक सीधा कार्यान्वयन जिस पर आप सिवाय सब कुछ के आवेदन कर सकते हैं। शायद nix'ov (Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3, XBox 360 समर्थित और सामान्य रूप से काम कर रहे हैं), मैंने पहले ही एक कैच पकड़ लिया।
जब मुझे पता चला कि एकता के लिए किसी भी एप्लिकेशन को ब्राउज़र में निर्मित प्लग-इन के लिए एक विशेष संस्करण में इकट्ठा किया जा सकता है, और आप फ़ायरफ़ॉक्स विंडो में एक ईमानदार, पूर्ण विकसित ट्राइड देख सकते हैं, व्यावहारिक रूप से मॉडल की गुणवत्ता और बनावट के समाधान को कम किए बिना, मुझे लगभग यकीन है कि यह लगभग निश्चित था हमेशा ऐसे मामलों में, पूरी बकवास।
और जब मैंने अपने लिए यह चमत्कार स्थापित किया और उपरोक्त सभी की सत्यता के बारे में आश्वस्त हो गया, तो मुझे लगभग प्यार हो गया।
कई बार ऐसी तकनीकें पैदा हुईं जो खुद को इंटरनेट पर ईमानदार ट्राइड ट्रांसफर करने का लक्ष्य निर्धारित करती हैं। विफल VRML को याद करें, थोड़ा कम सक्रिय ActiveWorlds ... आज, लगभग कोई भी उन्हें याद नहीं करता है। जल्द ही पूरी दुनिया एचटीएमएल 5 से भर जाएगी, 3 डी त्वरण के साथ एक नया फ्लैश जारी किया जाएगा ... लेकिन जब तक ऐसा नहीं होता, तब तक वेब पर मल्टीमीडिया सामग्री की दुनिया फ्लैश के वर्तमान संस्करण के साथ-साथ जावा और सिल्वरलाइट द्वारा शासित होती है। शायद सिर्फ फ्लैश भी। डेवलपर्स एक क्रेक के साथ अन्य तकनीकों का उपयोग करते हैं, यह समझ में आता है - उपयोगकर्ता को केवल एक गेम खेलने / एक साइट देखने के लिए किसी अन्य तृतीय-पक्ष प्लग-इन को स्थापित करना मुश्किल है।
हालांकि, उपरोक्त इंजन के एक नए, तीसरे संस्करण के रिलीज के साथ, आप अपने पसंदीदा फ्लैश पर अपने विचारों को संशोधित करने के बारे में सोच सकते हैं। अंत में, अगर कॉंग्रेगेट जैसे फ्लैश खिलौनों के दिग्गजों ने इस तकनीक पर ध्यान दिया (विशेष रूप से, उन्होंने एकता पर सर्वश्रेष्ठ गेम के लिए एक प्रतियोगिता की घोषणा की) - यह कम से कम इसे देखने के लिए इसके लायक है।
आप बहुत कुछ देख सकते हैं, लेकिन एक उदाहरण के लिए मैं कुछ लिंक दूंगा। लिंक स्थापित करने के बाद आपको प्लगइन स्थापित करने की पेशकश की जाएगी - इसका वजन किलोबाइट है और ब्राउज़र को फिर से शुरू किए बिना काम करता है (दुर्भाग्य से, डेमो के आकार की गणना नहीं की जा सकती है, इसलिए सावधान रहें - आकार 30-50 मीटर के आसपास हो सकता है):
- बूटकैम्प - तीसरे संस्करण के लिए एक डेमो, एक तीसरे व्यक्ति का शूटर, आप इस समय पूरे इंजन का चेहरा बता सकते हैं। इसके अलावा नीचे आप अन्य डेमो पर क्लिक कर सकते हैं - सबसे पुराने संस्करणों से संबंधित हैं, लेकिन आप अभी भी देख सकते हैं
- Kongregate.com पर एकता खंड - यहाँ खेल पहले से ही वेब के लिए अनुकूलित हैं, सामान्य फ्लैश ड्राइव से अधिक नहीं
- ऑफसाइट पर गेम की सूची - आप भी देख सकते हैं
आइए यह पता लगाने की कोशिश करें कि यह किस तरह का जानवर है, और क्या यह वास्तव में उतना अच्छा है जितना कि इसे ऑफसेट पर चित्रित किया गया है।
प्रो एट संक्रमण
शुरुआत के लिए, आइए शर्तों को परिभाषित करें। एकता एक पूर्ण विकसित खेल इंजन है, जिसे यह सुनिश्चित करने के लिए डिज़ाइन किया गया है कि संपूर्ण विकास प्रक्रिया (अच्छी तरह से, संसाधनों की तैयारी और स्क्रिप्टिंग को छोड़कर) सब कुछ बंडल एडिटर में होगी। आमतौर पर, इस तरह के प्रश्न का अर्थ एक गैर-व्यवहार्य राक्षस है जो एक बहादुर GUI के साथ बड़ा हुआ है, इसलिए आप चारों ओर गड़बड़ नहीं करते हैं, जिसे gamedev-tubi श्रेणी के किशोरों को यह महसूस करने के लिए डिज़ाइन किया गया है कि वे gamedev में शामिल हैं। लेकिन इस विषय के साथ टैब को अभी तक बंद न करें - एकता इस परीक्षण से नहीं है। तो क्या एकता अच्छी है? आइए देखते हैं, लेकिन एक ही समय में यूडीएल - एसडीके के लिए अवास्तविक 3 की तुलना करें, जिसे एपिक गेम्स ने हाल ही में स्वतंत्र डेवलपर्स के लिए मुफ्त बनाया है।
अच्छी एकता:
- अपनी आईडीई के साथ, वह एक दृश्य संपादक (वह निम्नलिखित में से सभी का संपादक भी है), खेल वस्तुओं के एक संपादक और यहां तक कि एक साधारण स्क्रिप्ट संपादक को भी जोड़ता है। इसके अलावा, सेट में एक पेड़ जनरेटर एक ला स्पीडट्री (खराब नहीं) और टेरेंस (मानक, सुविधाजनक) शामिल है;
- स्क्रिप्टिंग के अवसर - यूडीके के विपरीत, जिसमें आप केवल अंतर्निहित स्व-लिखित भाषा में लिख सकते हैं, एकता में पहले से ही तीन भाषाएं उपलब्ध हैं: जावास्क्रिप्ट, सी #, और बू नामक एक अजगर बोली। मैंने व्यक्तिगत रूप से इसका परीक्षण नहीं किया है, लेकिन रूसी समुदाय में, वाक्यांश फिसल गए कि यूडीके में स्क्रिप्ट निष्पादन की गति कई बार धीमी है (यह समझ में आता है - एकता में, आखिरकार, लिपियों को मूल कोड में संकलित किया जाएगा);
- क्रॉस-प्लेटफॉर्म - जैसा कि ऊपर उल्लेख किया गया है, विंडोज, मैकओएस, वाईआई, आईफोन, आईपॉड, एंड्रॉइड, पीएस 3 और एक्सबॉक्स 360 समर्थित हैं। खैर, वेब प्लगइन, निश्चित रूप से, नहीं भूलना चाहिए। ये सभी मुफ्त लाइसेंस के तहत उपलब्ध नहीं हैं (वास्तव में, बिल्ड केवल विन, मैक और वेब के लिए उपलब्ध हैं), लेकिन यह समझ में आता है। विन और मैक के तहत सब कुछ कोड में किसी भी बदलाव के बिना संकलित करता है, वेब के तहत आपको संसाधनों में कटौती करनी होगी, निश्चित रूप से - ब्राउज़र में एक स्तर खोलने के लिए 400 मीटर डाउनलोड करना बहुत सुविधाजनक नहीं है। मैं नीचे दिए गए वेब संस्करण के संचालन का वर्णन करूंगा;
- ग्राफिक्स का एक पूरी तरह से आधुनिक स्तर - एकता द्वारा कार्यान्वित सुविधाओं की संख्या के संदर्भ में एक ही यूडीके, निश्चित रूप से, हारता है - आखिरकार, इस संबंध में अनार्येल्वेन को फ्लैगशिप में से एक कहा जा सकता है, और इसे पार करना मुश्किल है। लेकिन एकता ने प्रकाश व्यवस्था का निर्माण किया है, एक अंतर्निर्मित शेडर संपादक, पोस्ट-प्रोसेसिंग प्रभाव का एक मानक सेट (एक पूरी सूची , आप अपने स्वयं के स्वाभाविक रूप से लिख सकते हैं), एसएसएओ अब फैशनेबल है - संक्षेप में, एएए प्रोजेक्ट बनाने के लिए उपकरणों का एक पूरा सेट है। लाइटमैप्स, वैसे, योग्य और स्मार्ट तरीके से अधिक कर रहे हैं;
- भौतिक इंजन - भौतिक इंजन के लिए सक्षम होना चाहिए कि सब कुछ है। अपने हाफ-लाइफ 2 को अच्छी तरह से आप-खुद-ब-खुद जानें। आराम से!
- प्रदर्शन और मापनीयता - "उत्कृष्ट" सेट करने में संकोच न करें। क्योंकि इस संबंध में अधिकांश दिनचर्या के साथ, इंजन खुद को प्रबंधित करता है, और उल्लेखनीय रूप से प्रबंधन करता है;
- किसी भी एप्लिकेशन को वेब प्लग-इन में चलाना - हम पहले ही इस बारे में बात कर चुके हैं, लेकिन इसे फिर से उल्लेख करना कोई पाप नहीं है।
- एक लाइसेंस के लिए कम कीमत - केवल $ 1,500। और मुफ्त संस्करण, कुछ अच्छाइयों के बिना;
खैर, ऐसा ही कुछ। अब हम चर्चा करेंगे कि यह खराब क्यों है:
- यह बंद है। यानी स्रोत कोड आपको लाइसेंस के तहत भी नहीं दिए जाएंगे। यूडीके के साथ, अगर मुझे सब कुछ सही ढंग से समझ में आया, तो एक ही तस्वीर - स्रोत कोड अलग से, अधिक पैसे के लिए लाइसेंस प्राप्त है। हालांकि, एकता स्क्रिप्ट में, आप बिल्कुल वही काम कर सकते हैं जो हम सोर्स कोड के साथ करेंगे - लगभग सब कुछ modded किया जा सकता है ... लेकिन फिर भी, स्रोत कोड सब बेहतर है, इसलिए यह एक माइनस है - कम से कम उन लोगों के लिए जो तृतीय-पक्ष भौतिकी या समान स्क्रू करना चाहते हैं। SpeedTree;
- ????
- लाभ।
ईमानदारी से, मैं अभी भी कोई वास्तविक minuses नहीं देखता हूं। इंजन स्थिर, उत्पादक, उपयोग में आसान है - लेकिन और क्या चाहिए? शायद नुकसान हैं। इसलिए, मैं अक्सर एनिमेशन के अजीब तरह से काम करने वाले योगात्मक सम्मिश्रण के बारे में रिपोर्टों पर ठोकर खाई। कुछ लोग टेर्रान्स को कई सामग्रियों के असाइनमेंट की कमी के बारे में शिकायत करते हैं - मुझे नहीं पता, मैंने इसकी कोशिश नहीं की है। लेकिन क्या उपरोक्त फायदों के मद्देनजर यह इतना महत्वपूर्ण है? मेरे लिए यह नहीं है।
तथ्य यह है कि ज्यादातर छोटी टीमों के लिए, इंजन हमेशा मुख्य समस्या बन गया है (ठीक है, एक विचार और अच्छी कला की कमी, ज़ाहिर है, लेकिन हम अभी उस बारे में बात नहीं कर रहे हैं)। खरोंच से लिखना - टीम में एकमात्र प्रोग्रामर करना मुश्किल है, यह देखते हुए कि इंजन केवल एक 3 डी रेंडर नहीं है, यह पाइपलाइन टूल्स का एक गुच्छा भी है - आयातकों, संपादकों, दर्शकों ... एक असंभव कार्य, जब तक कि अतिसूक्ष्मवाद को बनाए नहीं रखा जाता है। मिनिमलिज़्म बुरा नहीं है, हमारे सभी पसंदीदा 8-बिट शैली में बहुत सारे अद्भुत गेम हैं जिन्हें आप गिन नहीं सकते हैं ... लेकिन उनमें से ज्यादातर एक दिवसीय गेम हैं (Minecraft doesn’t count, Yes। और वैसे, यह स्क्रैच से नहीं, बल्कि LWJGL पर भी लिखा गया है)। जब यह एक ऐसे गेम की बात आती है जिसे एक दिन से अधिक खेला जाएगा, तो आपको एक पूर्ण इंजन की आवश्यकता होती है, और फिर हम मुफ्त समाधानों की तलाश शुरू करते हैं। ऑग्रे, इरक्लिच और उनके जैसे कुछ अन्य लोग निश्चित रूप से अच्छे हैं, लेकिन क) वे नैतिक रूप से पुराने हैं और बी) उन्हें अध्ययन करने और उन्हें काम करने की स्थिति में खत्म करने के लिए बहुत समय और एक बड़ा सैद्धांतिक आधार लगता है। बेशक, आप उन पर एक शांत बिक्री परियोजना लिख सकते हैं (टॉर्च पर ऑग्रे इसका एक उदाहरण है), लेकिन फिर भी आपको एक से अधिक प्रोग्रामर की आवश्यकता है। गेममेकर जैसी प्रोग्रामिंग भाषाओं के ज्ञान के बिना एक ला "गेम भी सेट किया गया है, लेकिन ये खिलौने, सही शब्द हैं।
एकता के मामले में, हमारे पास एक तैयार-निर्मित पाइपलाइन, एक तैयार-निर्मित रेंडरर, एक तैयार-निर्मित भौतिक, ऑडियो और नेटवर्क लाइब्रेरी है, हम एक परिचित भाषा में कोड कर सकते हैं - वास्तव में, कोडिंग पक्ष से हमें केवल मूल बातें जानना, कहना, जावास्क्रिप्ट करना और आधिकारिक सहायता में एक सप्ताह खोदना होगा। एफपीएस को रिवाइव करने के लिए। रिलीज के लिए एक बाधा नाबालिग। यदि कोई किसी और के हाथों से लिखे गए कोड की गुणवत्ता पर विश्वास नहीं करता है जिसे ठीक नहीं किया जा सकता है, तो इसे देखें, सब कुछ इतना बुरा नहीं है।
यह कैसा दिखता है
तस्वीरें क्लिक करने योग्य हैं।
वास्तव में आईडीई:

आईडीई में राइट, आप प्ले बटन पर क्लिक कर सकते हैं, और वर्तमान रियलटाइम दृश्य का परीक्षण कर सकते हैं:

अंतर्निहित क्लास इंस्पेक्टर जांच, टॉटोलॉजी के लिए खेद है, चर के लिए कक्षाएं और आपको कोड को देखे बिना मक्खी पर लिपियों में चर बदलने की अनुमति देता है। और न केवल स्याही, बल्कि सामग्री, बनावट, मॉडल भी ... यह बहुत समय बचाता है। एपीआई के लिए दस्तावेज़ीकरण अच्छे रूप में नहीं लिखने के लिए इंगित करता है, उदाहरण के लिए, सीधे स्क्रिप्ट में बनावट का पथ, लेकिन बस वर्ग संपत्ति को उपयुक्त प्रकार की एक खाली संपत्ति बनाने के लिए, और आपको निरीक्षक में जिसकी आवश्यकता है उसका चयन करें:

निरीक्षक प्रीफ़ैब्स (दाएं) और इकाइयां (बाएं)। मोटे तौर पर, दाईं ओर ऑब्जेक्ट्स के रिक्त स्थान हैं, बाईं ओर वे ऑब्जेक्ट्स हैं जो वर्तमान दृश्य में हैं। यह सुविधाजनक है कि संपादक में स्तर के दौरान ("प्ले" बटन), आप रन को रोक सकते हैं और वस्तुओं की वर्तमान स्थिति देख सकते हैं - एक छोटे चर के व्यवहार को देखने के लिए HUD पर लॉग को पढ़ने या डिबग लाइन प्रदर्शित करना बहुत कम आवश्यक है:

और अंत में, मैं कहूंगा ...
इस बिंदु तक सभी वर्बल कचरा को समेटते हुए, यदि आप एएए प्रोजेक्ट कर रहे हैं, तो आप सबसे अधिक संभावना अपना इंजन लिखेंगे। या आपके पास पहले से ही किसी पिछले प्रोजेक्ट का इंजन है। या आप स्रोत के साथ कुख्यात UnrealEngine 3 के स्तर पर कुछ खरीदते हैं। लेकिन ऐसा तब है जब आप केवल दर्जन भर लोगों के साथ AAA प्रोजेक्ट कर रहे हैं।
यदि आपके पास स्टूडियो में केवल दस लोग हैं (और इससे भी अधिक, दो), तो अपना खुद का इंजन लिखना आमतौर पर बहुत महंगा है। पूर्ण-विकसित ब्राउज़र-आधारित 3 डी गेम की लहर पर होने का एक प्रलोभन (ओग के लिए जावा आवरण की गिनती नहीं है। खैर, वास्तव में) अभ्यास में एकता का प्रयास करने लायक है। एक नियमित ब्राउज़र को विकसित करने की गति और जटिलता फ्लैश की तुलना में अधिक नहीं है, और ग्राफिक श्रेष्ठता स्पष्ट है। हां, और किसी ने अभी तक वाह-प्रभाव को रद्द नहीं किया है।
अंत में, आप एकता पर साइटें बना सकते हैं (बहस योग्य, लेकिन संभव है), प्रस्तुतियाँ, वैज्ञानिक परियोजनाओं की कल्पना करें ... यह सब मैन्युअल रूप से शुद्ध ओएनजीएल पर लिखा जा सकता है, लेकिन कार्यान्वयन के समय और गुणवत्ता की तुलना करके, मैं अभी भी यूनिटी विकल्प की ओर झुकता हूं । फ्लैश को अभी तक ध्यान में नहीं लिया गया है - हम हार्डवेयर 3 डी त्वरण की रिहाई की प्रतीक्षा करेंगे।
इस तरह के शब्दों से अन्य इंजनों के अनुयायियों के बीच भावनाओं का तूफान पैदा होगा। "हाँ, यह सब% enginename% में है", "% gamename% और% gamename%% enginename% पर बने हैं, और यह सब बिना सब-उपभोग ड्रैग एन'एनलाइडप्रो ...
मैं आपको एकता को बस एक मौका देने की सलाह दूंगा - यह अपनी सुविधा, क्षमताओं, लचीलेपन और विकास की गति (कम से कम यह मुझे रिश्वत देता है) के साथ मोहित करता है। और इसके अलावा ... अरे, यह ब्राउज़र में एक पूर्ण विकसित ट्राइड है! :)
UPD: ghisguth ने रूसी भाषी समुदाय (बल्कि बड़े और सक्रिय) और लिपियों के भंडार के साथ-साथ उपयोगकर्ता स्क्रिप्ट और ट्यूटोरियल के एक भंडार के बारे में याद दिलाया।