Napakahusay na engine ng laro Unity: paglalarawan

Ang artikulong ito ay tumutuon sa cross-platform engine Pagkakaisa. Una sa lahat, ito ay isang panimulang artikulo para sa mga user na hindi pa pamilyar sa engine na ito. Tungkol sa maikling paglalarawan engine na matatagpuan sa Mga network sa internet, kung gayon ito ay mahirap na makahanap ng isang paglalarawan na maaaring masiyahan ang isang tao na mayroon pangunahing kaalaman tungkol sa paglikha ng mga laro sa kompyuter sa pangkalahatan.

Mahirap isipin kung ano ang maaaring umiiral nang may kondisyon libreng makina, kung saan maaari kang lumikha ng isang laro sa computer. Gayunpaman, umiiral ang makinang ito. Ito ay three-dimensional, may normal na IDE, built-in na physics, isang audio engine at mga iniresetang network multiplayer na kakayahan. Sinusuportahan ng Unity engine ang mga operating system ng Windows, IOS, Android, Playstation, Xbox at Nintendo Wii.
Mahirap isipin iyon Pagkakaisa ay may mga kakayahan na nagbibigay-daan sa iyong mag-assemble ng isang bloke ng mga command sa isang espesyal na bersyon para sa isang plugin na binuo sa browser. Sa ganitong paraan, makakakuha ka ng 3D na imahe sa window ng iyong browser nang hindi binabawasan ang resolution ng mga texture at ang kalidad ng mga modelo.

Sa pangkalahatan, may mga sanggunian sa mga teknolohiya na naglalayong gumana sa 3D sa Internet, sa partikular na ActiveWords at VRML. Ngunit ang lahat ng mga sistemang ito ay pinalitan ng Flash (bilang karagdagan sa Java at Silverlight). Mayroong iba pang mga teknolohiya, ngunit sa ngayon, ay makabuluhang hinahadlangan ng teknolohiyang Flash.

Paglabas ng ikatlong bersyon Pagkakaisa sa katunayan, pinilit nito maging ang mga higanteng gumagawa ng mga laro ng eksklusibo sa Flash na bigyang pansin ang makinang ito. Kaya ano nga ba ang kakanyahan at prinsipyo ng Unity engine?
Ang Unity ay isang ganap na makina ng laro na naglalayong tiyakin na ang buong proseso ng pagbuo ng laro (maliban sa scripting at paghahanda mapagkukunan ng laro) ay isasagawa sa isang hiwalay na editor.

Tingnan natin ang makinang ito kung ihahambing sa Unreal Engine3.

Mga kalamangan sa pagkakaisa:

  • IDE: kumbinasyon ng editor ng eksena (kasama pangkalahatang editor) na may editor ng object ng laro at mga editor ng script. Bukod pa rito, kasama ang mga generator ng puno at lupain.
  • Pinahusay na mga kakayahan sa pag-script, ibig sabihin, hindi tulad ng engine sa itaas, ang Unity ay mayroong tatlong wika na magagamit: JavaScript, C# at isang variation ng Python's Boo.
  • Cross-platform - tulad ng nabanggit sa itaas, sinusuportahan ang Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3 at XBox 360, hindi lahat, siyempre, ay magagamit sa libreng lisensya. Well, siyempre, hindi mo dapat kalimutan ang web plugin.
  • Mga modernong antas ng graphics na maaaring makipagkumpitensya sa iba pang mga makina. Ang pagkakaisa ay tiyak na mas mababa sa UnrealEngine sa mga tuntunin ng bilang ng mga ipinatupad na tampok. Gayunpaman, ang Unity ay may mga tampok tulad ng ipinagpaliban na pag-iilaw, karaniwang hanay post-processing effect, SSAO, pinabilis na pagbuo ng mga lightmap.
  • Isang mahusay na binuo na makina ng pisika.
  • Scalability at pagganap. Karamihan sa mga simpleng proseso Ang makina ay humahawak sa isang mahusay na antas.
  • Magpatakbo ng anumang application ng Unity sa isang web plugin.
  • Mababang presyo para sa buong lisensyadong bersyon para sa isang malaking web developer.

Mga Kakulangan sa Pagkakaisa:

  • Isinara ang code. Imposibleng makakuha ng mga source code ng engine kahit na sa ilalim ng lisensya.
  • Ang imposibilidad ng pagdagdag sa physics ng engine na may mga kakayahan ng third-party. Hindi ka makakapagdagdag ng third-party na pisika o SpeedTree sa makina.

Ang mga tunay na disadvantages ay mahirap matukoy sa unang tingin. Ang makina ay produktibo, matatag at madaling gamitin.

Para sa karamihan ng maliliit na koponan ng mga developer ng laro sa computer, ang pangunahing problema ay kadalasan ang makina. Medyo mahirap magsulat mula sa simula para sa nag-iisang programmer sa koponan. Ang isang ganap na libreng makina ay kinakailangan, at ito ay kinakailangan kaagad; ang programmer ay nagsimulang maghanap ng mga libreng solusyon (Ogre, Irrlicht). Ang mga makinang ito ay hindi gaanong masama (Ang Torchlight ay nakasulat sa Ogre), ngunit ang mga ito ay mahirap matutunan at nangangailangan ng hindi lamang isang programmer, ngunit isang buong koponan. Siyempre, maaari kang bumaling sa mga kit tulad ng GameMaker, ngunit mahirap mag-assemble ng seryosong laro sa tulong nito.

Tulad ng para sa Unity, sa kaso nito ay mayroong nakumpletong pipeline, isang handa na renderer, nakolektang pisika, audio at networking, maraming wika.
Hitsura:

Talagang IDE:


Maaari mong subukan ang kasalukuyang eksena nang direkta sa IDE sa pamamagitan ng pag-click sa Play button.


Pinoproseso ng built-in na inspektor ng klase ang huli para sa mga variable at pinapayagan kang baguhin ang mga ito sa mabilisang, na makabuluhang nakakatipid sa oras ng trabaho.


Sa kanan ay mga inspektor ng mga prefab (mga blangkong bagay), sa kaliwa ay mga entity (mga bagay na matatagpuan sa kasalukuyang scheme). Habang tinitingnan ang isang antas, maaari mo itong ihinto at tingnan kasalukuyang estado mga bagay. Makakatipid ito ng oras; hindi mo kailangang magbasa ng mga log nang madalas o maghanap ng isang maliit na variable sa kanila.


Ang mga developer ng isang AAA-class na proyekto ay malamang na magsusulat ng kanilang sariling makina o bumili ng isang bagay tulad ng UnrealEngine3. Ngunit kung ang bilang ng mga programmer ay maliit, pagkatapos ay magsulat sariling makina maaaring lumabas na napakamahal. Ang bilis at pagiging kumplikado ng pagbuo ng kaswal na laro na nakabatay sa browser sa Unity ay mas mataas kaysa sa Flash, at kitang-kita ang graphical superiority.

Posible rin na magsulat ng mga website, presentasyon, at mailarawan ang mga siyentipikong proyekto gamit ang Unity engine.

Sulit na bigyan ng pagkakataon ang Unity - binibigyang-pansin ng makinang ito ang bagitong user sa kaginhawahan, flexibility, kakayahan at bilis ng pag-unlad nito.

Sabay-sabay nating alamin: ano ang Unity Web Player kung paano gumagana ang programa at kung ano ang layunin nito.

Karaniwan, ang mga tanong tungkol sa programa ay lilitaw sa mga sandaling iyon kapag na-download ito ng gumagamit sa kanyang computer, ngunit halos walang nakikitang mga bakas ng presensya nito.

Ibig sabihin, walang mga shortcut sa Start menu, hindi mo rin makikita ang mga ito sa desktop, minsan kahit sa tumatakbong mga proseso walang bagong lilitaw kaagad pagkatapos ng pag-install.

Samakatuwid ito ay magiging kawili-wiling malaman kasama ng ano software karamihan sa atin ay nagtatrabaho.

Nilalaman:

Kahulugan

Ang konseptong pinag-uusapan ay tumutukoy sa isang espesyal na manlalaro para sa mga laro. Ang pangalan nito binubuo ng dalawang bahagi:

    Pagkakaisa. Ito ay isang napaka sikat na makina kung saan . Bukod dito, ang karamihan modernong mga aplikasyon, kung saan mayroong kahit ilang graphics at interaktibidad, ay nakasulat dito. Marahil ay may sasabihin sa iyo ang mga salitang tulad ng OpenGl. Kaya, ang lahat ng mga konseptong ito ay kahit papaano ay nauugnay sa mga graphic. Mas partikular, ito ang tatlong teknolohiyang ipinapakita graphic na nilalaman at i-optimize at pagbutihin ito. Ngunit sa una, sa karamihan ng mga kaso, gumagana ang lahat sa Unity.

    Web Player. Ang terminong ito ay karaniwang tumutukoy sa isang program na nagpapatakbo ng ilang nilalaman sa browser. Maaaring ito ang may pananagutan sa paglalaro ng mga video o sa player na aming isinasaalang-alang.

Kaya mayroon tayong kumbinasyon ng dalawang napakakaraniwang konseptong ito.

Kung pagsasamahin mo ang mga ito, makakakuha ka ng (add-on) na nagpapatakbo ng mga larong nakasulat sa Unity engine. Ang susunod na lohikal na tanong ay kung bakit ito kinakailangan.

Layunin

Kaya, ang program na ito ay tumatakbo na nakasulat sa kaukulang engine. Ngayon ito ang pangunahing, dahil ang pagtatrabaho dito ay medyo madali at simple.

Kahit na ang isang baguhan sa mundo ng 3D modeling at programming ay magagawang makayanan ang makinang ito at gumawa ng kanyang sarili simpleng laro.

Para sa mga may karanasang developer, salamat sa player na maaari nilang iakma ang kanilang . Nag-aalok din ang pagkakataong ito ng maraming benepisyo.

Halimbawa, tatakbo ang mga application sa halos lahat ng device.

Sa pamamagitan ng kahit man lang, mga kinakailangan para sa mga parameter ng system ang mga computer ay magiging mas mababa kaysa sa isang naka-install, iyon ay buong bersyon.

Sa kabilang banda, para sa normal gameplay kailangan mataas na bilis ng internet, lalo na para sa mga kumplikadong sample. Ang lahat ay nangyayari sa real time at ang data ay dapat na mabilis na mailipat sa server. Ngunit ito ay isang maliit na disbentaha, dahil sa lahat ng mga pakinabang ng engine at browser player mula dito.

Kung saan magda-download

Ang pinakamahusay at halos tanging pagpipilian ay ang opisyal na website. Walang ibang mga mapagkukunan sa sa kasong ito hindi katanggap-tanggap. Narito ang isang link sa pangunahing mapagkukunan ng makinang ito.

Ang proseso ng pag-download mismo ay medyo simple.

Sa kasamaang palad, walang mga bersyon ng player para sa anumang iba pang mga operating system, tanging ang Windows at Mac.

Bukod dito, para sa una, ang pinakabagong bersyon ay magagamit lamang para sa XP, 7, 8 at 10.

Pagkatapos mag-download, kakailanganin mong mag-click sa resultang file. Ito ay magiging sanhi ng pagsisimula ng pag-install.

Ang isa pang pagpipilian sa pag-download ay ang pag-click sa pindutan "i-install ngayon" sa anumang laro na nangangailangan ng manlalarong ito.

Ang pag-download ay medyo simple - pumunta ka sa pahina sa Unity, subukang ilunsad ito, ngunit walang gumagana, dahil ang kinakailangang plugin Hindi.

Ang pindutan sa itaas ay lilitaw sa halip na ang laro. Kalmado mong pinindot ito. yun lang!

Paano maiwasan ang pagkakaroon ng virus

Kapag nagda-download, may panganib na kunin, kabilang ang mga lihim.

Ang katotohanan ay madalas, sa pagkukunwari ng manlalarong ito, ang mga umaatake ay nagpo-post ng ilang uri ng kakaibang mga file at ipasa sila bilang kanya.

Samakatuwid ito ay mas mahusay kapag nagda-download sundin ang ilang rekomendasyon:

  • I-download lamang ang plugin mula sa opisyal na website. Mas mabuti pang hindi na lang pumasok sa laro. Nangyayari na ang isang umaatake ay nag-upload ng isang di-umano'y laro sa kanyang website, na hindi nagsisimula, at palaging lumalabas ang isang pindutan tulad ng nasa Figure 4 Ngunit hindi ito maaaring magsimula, dahil walang laro doon. Sa halip ay mayroong . Kaya mas mabuting pumunta sa .
  • Huwag i-download ang player mula sa mga mapagkukunan ng third party, lalo na mula sa mga forum. Kadalasan ang mga gumagamit, napaka-friendly na mga tao, ay nagbibigay ng isang link sa diumano pinakabagong bersyon manlalaro. Muli, wala ito, ngunit ang virus lamang.
  • Regular na suriin ang iyong computer para sa mga virus.

At huwag matakot kung ang programa ay hindi nagpapakita mismo sa anumang paraan kaagad pagkatapos ng pag-install. Ito ay normal sa kasong ito!

Kaya, ngayon nais kong sabihin sa iyo ang tungkol sa Unity (mga hindi pa pamilyar dito, hindi bababa sa). Siyempre, may mga tao sa Habré na nakakaalam kung ano ito, ngunit ang paghahanap ay gumagawa ng napakaliit na bilang ng mga paksa na nagbabanggit sa paksa - dalawa sa kanila ay nag-uulat lamang ng mga bagong bersyon, ang isa ay maikli ang naglalahad nito, at ang isa ay nakatuon sa paggamit nito. "Hindi mapapatawad, kailangan nating ayusin ito!" Naisip ko, at nagpasya na magsulat ng isang maikling pagtatanghal upang gawing popular ang teknolohiya. Kung nasa paksa ka na, hindi mo na kailangang magbasa pa.

Sa totoo lang, noong nabasa ko sa Wikipedia ang tungkol sa isang libre (kahit na may ganap na normal na lisensyang walang pag-andar) 3D engine na may normal na IDE, built-in normal physics, audio engine at direktang pagpapatupad ng network multiplayer kung saan maaari kang gumawa ng mga application para sa lahat, maliban, marahil, nixes (Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3, Xbox 360 ay suportado at gumagana nang normal), Nakaramdam na ako ng catch.

Nang malaman ko na ang anumang application ng Unity ay maaaring i-compile sa isang espesyal na bersyon para sa isang plugin na binuo sa browser, at maaari mong makita ang isang tapat, ganap na tride sa window ng Firefox, halos hindi binabawasan ang kalidad ng mga modelo at resolution ng texture - I was almost sure na ganito palagi sa mga ganitong pagkakataon, kumpletong kalokohan.

At nang likhain ko ang himalang ito para sa aking sarili at kumbinsido sa katotohanan ng lahat ng nabanggit, muntik na akong umibig.

Maraming beses na nagkaroon ng mga teknolohiya na nagtakda sa kanilang sarili ng layunin na dalhin ang tapat na kalakalan sa Internet. Alalahanin natin ang nabigong VRML, ang bahagyang hindi nabigong ActiveWorlds... Ngayon halos walang nakakaalala sa kanila. Sa lalong madaling panahon ang buong mundo ay mapupuno ng HTML5, isang bagong flash na may 3D acceleration ay ilalabas... Ngunit hanggang sa mangyari ito, ang mundo ng multimedia na nilalaman sa web ay pinasiyahan ng kasalukuyang bersyon ng flash, kasama ng Java at Silverlight Marahil kahit na ang mga Developer lang ay gumagamit ng iba pang mga teknolohiya nang may kahirapan, at ito ay naiintindihan - mahirap pilitin ang isang user na mag-install ng isa pang third-party na plugin para lamang maglaro ng isang laro/tingnan ang isang site.

Gayunpaman, sa paglabas ng bago, ikatlong bersyon ng nabanggit na engine, maaari mong isipin ang tungkol sa muling pagsasaalang-alang sa iyong mga view sa iyong paboritong flash. Sa huli, kung ang mga higante ng flash toys tulad ng Kongregate ay nagbigay-pansin sa teknolohiyang ito (lalo na, nag-anunsyo sila ng kumpetisyon para sa pinakamahusay na laro sa Unity) - ito ay nagkakahalaga ng hindi bababa sa pagtingin dito.

Maaari kang tumingin sa maraming lugar, ngunit bilang isang halimbawa ay magbibigay ako ng ilang mga link. Kasunod ng mga link, sasabihan kang i-install ang plugin - tumitimbang ito ng kilobytes at gumagana nang hindi na-restart ang browser (sa kasamaang-palad, hindi makalkula ang laki ng mga demo, kaya mag-ingat - ang mga sukat ay maaaring humigit-kumulang 30-50 metro):

  • Ang Bootcamp ay isang demo para sa ikatlong bersyon, isang third-person shooter, maaaring sabihin ng isa ang mukha ng buong engine sa sandaling ito. Gayundin sa ibaba doon maaari kang mag-click sa iba pang mga demo - karamihan ay tumutukoy sa mga mas lumang bersyon, ngunit maaari ka pa ring manood
  • Unity section sa Kongregate.com - dito ang mga laro ay iniangkop na para sa web, hindi hihigit sa mga regular na flash drive
  • Ang listahan ng mga laro sa offsite - maaari mo ring makita
Subukan nating alamin kung anong uri ng hayop ito, at kung ito ay talagang kasing ganda ng ipininta sa opisyal na site.

Pro at Kontra

Upang magsimula, tukuyin natin ang mga termino. Ang Unity ay isang ganap na engine ng laro, na idinisenyo upang ang buong proseso ng pag-unlad (mabuti, maliban sa paghahanda ng mga mapagkukunan at scripting) ay magaganap sa kasamang Everything Editor. Karaniwan, ang ganitong pormulasyon ng tanong ay nangangahulugang isang hindi mabubuhay na halimaw, na tinutubuan ng mabagal na GUI, huwag makipaglaro dito, na idinisenyo upang madama ang mga tinedyer mula sa kategorya ng "gamedev-wannabis" na kasangkot sa gamedev. Ngunit hindi mo pa dapat isara ang tab sa paksang ito - Ang Unity ay hindi mula sa pagsubok na ito. Kaya, ano ang magandang tungkol sa Unity? Tingnan natin, at sabay ihambing ito sa UDK - SDK para sa UnrealEngine 3, na ginawang libre kamakailan ng Epic Games para sa mga independiyenteng developer.

Magandang Pagkakaisa:

  • Sa IDE nito, pinagsasama nito ang isang editor ng eksena (isang editor din para sa lahat ng nakalista sa ibaba), isang editor ng object ng laro, at kahit simpleng editor kasama ang mga script. Bilang karagdagan, sa kasama generator ng mga puno a la SpeedTree (hindi masama) at mga terrain (karaniwan, maginhawa);
  • Mga kakayahan sa pag-script - hindi tulad ng UDK, kung saan maaari ka lamang magsulat sa built-in na self-written na wika, ang Unity ay mayroong hanggang tatlong wika na magagamit: JavaScript, C#, at isang Python dialect na tinatawag na Boo. Hindi ko pa ito personal na nasuri, ngunit sa komunidad ng Russia ay may mga parirala na ang bilis ng pagpapatupad ng script sa UDK ay ilang beses na mas mababa (ito ay naiintindihan - sa Unity, pagkatapos ng lahat, ang mga script ay pinagsama-sama sa katutubong code);
  • Cross-platform - tulad ng nabanggit sa itaas, sinusuportahan ang Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3 at XBox 360 At, siyempre, hindi mo dapat kalimutan ang web plugin. Hindi lahat ng mga ito ay magagamit sa ilalim ng isang libreng lisensya (sa katunayan, ang mga build ay magagamit lamang para sa Win, Mac at Web), ngunit ito ay lubos na nauunawaan. Sa ilalim ng Windows at Mac, ang lahat ay nag-compile nang walang anumang pagbabago sa code para sa web, siyempre, kakailanganin mong i-cut up ang mga mapagkukunan - ang pag-download ng 400 metro upang buksan ang isang antas sa browser ay hindi masyadong maginhawa. Ilalarawan ko ang pagpapatakbo ng bersyon ng web sa ibaba;
  • Ang antas ng mga graphics ay medyo moderno - bukod pa, ang UDK ay, siyempre, mas mababa sa Unity sa mga tuntunin ng bilang ng mga ipinatupad na tampok - pagkatapos ng lahat, ang UnrealEngine ay maaaring tawaging isa sa mga punong barko sa lugar na ito, at mahirap lampasan ito . Ngunit ipinagpaliban ng Unity ang pag-iilaw, isang built-in na shader editor, isang karaniwang hanay ng mga post-processing effect (isang kumpletong listahan, maaari mong isulat ang iyong sarili siyempre), ang ngayon ay naka-istilong SSAO - sa madaling salita, ang buong hanay ng mga tool para sa paglikha may AAA project. Sa pamamagitan ng paraan, ito ay gumagawa ng mga lightmap nang higit sa sapat at mabilis;
  • Physics engine - mayroong lahat ng bagay na dapat magawa ng physics engine. Gumawa ng sarili mong Half-Life 2 with you-know-what? Madali lang!
  • Pagganap at scalability - binibigyan namin ito ng "mahusay" nang walang pag-aalinlangan. Dahil ang makina ang humahawak sa karamihan ng nakagawiang gawain sa bagay na ito sa sarili nitong, at gumagawa ng mahusay na trabaho;
  • Paglulunsad ng anumang application sa isang web plugin - napag-usapan na natin ito, ngunit hindi kasalanan na banggitin itong muli.
  • Mababang presyo para sa isang lisensya - $1500 lang. At ang libreng bersyon, nang walang ilang mga goodies;
Well, isang bagay tulad nito. Ngayon talakayin natin kung bakit ito masama:
  • Nakasara na. Yung. Hindi ka nila bibigyan ng source code kahit na may lisensya. Sa UDK, kung naunawaan ko nang tama ang lahat, ang larawan ay pareho - ang mga source code ay hiwalay na lisensyado, para sa mas maraming pera. Gayunpaman, sa Unity maaari kang gumamit ng mga script upang gawin ang eksaktong parehong bagay na gagawin namin sa source code - maaari mong modd ang halos lahat ng bagay... Ngunit gayon pa man, ang source code ay mas mahusay sa lahat ng paraan, kaya ito ay isang minus - sa hindi bababa sa para sa mga gustong magdagdag ng third-party na pisika o ang parehong SpeedTree;
  • KITA.
Upang maging matapat, wala pa akong nakikitang anumang mga tunay na kawalan. Ang makina ay matatag, produktibo, madaling gamitin - ano pa ang kailangan mo? Tiyak na may ilang mga disadvantages. Kaya, madalas akong nakatagpo ng mga ulat tungkol sa kakaibang gumaganang additive blending ng mga animation. Ang ilang mga tao ay nagrereklamo tungkol sa kakulangan ng pagtatalaga ng maraming materyales sa mga terrain - Hindi ko alam, hindi ko pa ito nasubukan. Ngunit ito ba ay talagang makabuluhan sa liwanag ng mga pakinabang sa itaas? Para sa akin, hindi.

Ang katotohanan ay para sa karamihan ng maliliit na koponan ang pangunahing problema ay palaging ang makina (well, ang kakulangan ng mga ideya at magandang sining siyempre, ngunit hindi natin ito pinag-uusapan ngayon). Ang pagsusulat mula sa simula ay mahirap para sa nag-iisang programmer sa koponan, kung isasaalang-alang na ang makina ay hindi lamang isang 3D renderer, ito rin ay isang grupo ng mga pipeline tool - mga importer, editor, manonood... Isang imposibleng gawain, maliban kung sumunod ka sa minimalism . Ang minimalism ay hindi masamang bagay, napakaraming magagandang laro na ginawa sa minamahal na 8-bit na istilo na hindi na natin mabilang... Ngunit karamihan sa mga ito ay isang araw na proyekto (Hindi binibilang ang Minecraft, oo. At sa pamamagitan ng paraan, ito ay nakasulat din hindi mula sa simula, ngunit sa LWJGL). Pagdating sa isang laro na lalaruin nang higit sa isang araw, kailangan mo ng isang ganap na makina, at pagkatapos ay magsisimula kaming maghanap libreng solusyon. Si Ogre, Irrlicht at ilang iba pang katulad nila ay magaling, siyempre, ngunit a) sila ay luma na sa moral at b) walang oras upang pag-aralan ang mga ito at tapusin ang mga ito hanggang kondisyon sa pagtatrabaho nangangailangan ng maraming oras at isang malaking teoretikal na base sa likod ng mga ito. Siyempre, maaari kang magsulat ng isang cool, mabibiling proyekto gamit ang mga ito (Torchlight on Ogre ay isang halimbawa nito), ngunit kailangan mo pa rin ng higit sa isang programmer. Mayroon ding mga set a la "mga laro na walang kaalaman sa mga programming language," tulad ng GameMaker, ngunit ito ay mga laruan, sa totoo lang.

Sa kaso ng Unity, mayroon kaming yari na pipeline, isang handa na renderer, yari na pisika, audio at library ng network, maaari kang mag-code sa isang pamilyar na wika - sa katunayan, mula sa coding side, kailangan lang nating malaman ang mga pangunahing kaalaman ng, halimbawa, Javascript, at gumugol ng isang linggo sa pag-aaral sa opisyal na tulong upang lumikha ng isang FPS. Minus one obstacle on the way to release. Kung ang sinuman ay hindi naniniwala sa kalidad ng code na isinulat ng ibang tao na hindi maaaring itama, tingnan ito, hindi ito masama sa lahat.

Ano ang hitsura nito

Ang mga larawan ay naki-click.

Talagang IDE:

Sa mismong IDE maaari mong i-click ang button na "I-play" at subukan ang kasalukuyang realtime na eksena:

Ang built-in na class inspector probes, patawarin ang tautolohiya, mga klase para sa mga variable at pinapayagan kang baguhin ang mga variable sa mga script sa mabilisang, nang hindi tumitingin sa code. At hindi lamang mga ints, kundi pati na rin ang mga materyales, mga texture, mga modelo... Ito ay nakakatipid ng maraming oras. gumawa ng isang walang laman na pag-aari ng kaukulang uri bilang isang pag-aari ng klase, at piliin sa inspektor na kailangan mo:

Mga inspektor ng prefab (kanan) at mga entity (kaliwa). Sa halos pagsasalita, sa kanan ay mga blangko na bagay, sa kaliwa ay ang mga bagay na umiiral sa kasalukuyang eksena. Maginhawa na habang nagpapatakbo ng isang antas sa editor (ang "play" na buton), maaari mong i-pause ang pagtakbo at makita ang kasalukuyang estado ng mga bagay - mas madalas na kailangan mong magbasa ng mga log o magpakita ng debug line sa HUD upang makita ang pag-uugali ng isang maliit na variable:

At sa wakas sasabihin ko...

Upang ibuod ang lahat ng pandiwang basura hanggang sa puntong ito, kung gumagawa ka ng isang proyektong AAA, malamang na ikaw ay magsusulat ng iyong sariling makina. O mayroon ka nang makina mula sa isang nakaraang proyekto. O bibili ka ng isang bagay sa antas ng kilalang UnrealEngine 3 na may mga mapagkukunan. Ngunit ito ay kung gumagawa ka ng isang proyekto ng AAA na may isang dosenang tao lamang sa coding.

Kung mayroon ka lamang sampung tao sa studio (pabayaan ang dalawa), ang pagsulat ng iyong sariling makina ay kadalasang masyadong mahal. Ang tuksong tumalon sa mga ganap na larong 3D na nakabatay sa browser (ang Java wrapper para sa Ogre ay hindi binibilang. Talaga) ay sulit na subukan ang Unity sa pagsasanay. Ang bilis at pagiging kumplikado ng pagbuo ng isang regular na kaswal na laro na nakabatay sa browser dito ay hindi mas mataas kaysa sa Flash, ngunit kitang-kita ang graphical superiority. At wala pang nagkansela ng wow effect.

Sa huli, maaari kang gumawa ng mga website sa Unity (debatable, ngunit posible), mga pagtatanghal, ilarawan sa isip ang mga proyektong pang-agham... Ang lahat ng ito ay maaaring isulat nang manu-mano, sa purong OpenGL, ngunit pagkatapos ihambing ang oras at kalidad ng pagpapatupad, ako ay hilig pa rin gamitin ang Unity . Flash sa ngayon Hindi rin namin ito isinasaalang-alang - hihintayin namin ang paglabas ng hardware 3D acceleration.

Ang ganitong mga salita ay magdudulot ng isang bagyo ng emosyon sa mga tagasunod ng iba pang mga makina. “Oo, lahat ng ito ay nasa %enginename%”, “%gamename% at %gamename% ay ginawa sa %enginename%, at lahat ng ito ay walang karumal-dumal na drag"n"drop"…

Ipinapayo ko sa iyo na bigyan lamang ng pagkakataon ang Unity - nakakaakit ito sa kanyang kaginhawahan, kakayahan, flexibility at bilis ng pag-unlad (kahit na ito ay nakabihag sa akin). At bukod pa... Uy, ito ay isang buong thread sa browser! :)

Unity 3D- ito ay libre at nakakakuha ng katanyagan malakas na makina para sa paglikha at pagbuo ng mga laro at iba't ibang mga aplikasyon. Gamit ito maaari kang lumikha ng mga laro para sa iba't ibang Mga platform ng Windows, iOS, Blackberry, OSX, Wii, Android, Playstation 3, Xbox at Flash. Ang bawat application na nilikha sa Unity 3D ay may kakayahang suportahan ang OpenGL at DirectX.

Pagsusuri ng Unity 3D game engine:

Resource Browser at Listahan ng Mga Bagay sa Laro (Proyekto, Hierarchy)

Ang mapagkukunang browser ay lubos na maginhawa dahil ang lahat ng kinakailangang mapagkukunan ay maaaring gawin doon mismo, nang hindi kinakailangang buksan ang Explorer operating system. Ang lahat ng nilikha na mapagkukunan ay pinagsunod-sunod ayon sa pangalan. Kapag nag-double click ka sa anumang file, magbubukas ang program para sa pagtingin sa file na ito na nauugnay dito sa iyong system, o magbubukas ang file sa editor kung ito ay isang eksena. Pagkatapos magdagdag ng object ng laro (modelo ng 3D, prefab, particle effect, camera) sa eksena, lalabas ito sa listahan ng mga object ng laro.

Ang isang listahan ng mga bagay sa laro o isang hierarchy ay isang tiyak na istraktura ng mga bagay. Dito maaari kang magtalaga ng isang bagay bilang anak ng isa pa sa pamamagitan ng pag-drag sa bagay na ito patungo sa isa pa, at maaari ka ring pumili ng isang bagay upang i-edit ito sa inspektor.

Inspektor

Kapag pumili ka ng object ng laro sa browser, listahan ng object, o eksena, lalabas ang mga katangian nito sa inspector, pati na rin ang listahan ng mga variable sa script na itinalaga dito. Ang lahat ng mga sangkap na inilapat sa object ng laro ay ipinapakita din sa inspektor. Pangunahing tampok inspector ay ang lahat ng mga variable maliban sa mga numero at string ay itinalaga mula sa mapagkukunang browser, o mula sa listahan ng mga bagay ng laro sa pamamagitan ng pag-drag ang tamang uri mapagkukunan, o object ng laro sa isang linya na may variable sa inspector. Sa inspektor, maaari mong baguhin ang posisyon at pag-ikot ng isang object ng laro sa eksena, magtalaga ng mga tag at layer, i-activate at i-deactivate ang object.

Nangungunang panel

Ang laro ay maaaring masuri sa editor nang hindi na kailangang i-compile ito. Upang gawin ito, kailangan mo lamang mag-click sa naaangkop na pindutan sa tuktok na panel. Maaari mo ring i-pause ang laro upang gumawa ng anumang mga pagsasaayos. Sa kaliwang bahagi ng tuktok na panel ay may mga pindutan para sa pagbabago ng paggalaw sa paligid ng eksena, pag-ikot at pag-scale ng mga bagay sa laro. Sa kanang bahagi, maaari mong piliin ang layer na ipapakita sa editor at ang window arrangement mode.

Editor ng eksena

Sa editor ng eksena sila ay binuo mga antas ng laro. Ang mga antas ay binubuo ng mga bagay sa laro na ang pag-uugali ay naka-program sa alinman sa tatlong wika programming - javascript, C# at Boo. Anumang bagay, maging ito ay isang 3D na modelo, isang particle effect, isang prefab, o isang camera, ay itinuturing na isang bagay ng laro at ipinapakita sa listahan ng mga bagay ng laro. Upang magtalaga ng script sa isang object ng laro na matatagpuan sa eksena, kailangan mo lang itong i-drag papunta sa object na ito, na napaka-convenient. Ang posisyon ng mga bagay sa eksena ay madaling mabago. Upang gawin ito, kailangan mo lamang i-drag ang mga ito kasama ang tatlong coordinate axes sa lugar kung saan mo gusto. Ang mga materyal ay itinalaga sa mga bagay mula sa mapagkukunang browser, na dina-drag din papunta sa bagay. Sa itaas ng window ng eksena, maaari mong baguhin ang display mode ng content ng eksena. Listahan ng mga mode: naka-texture, wireframe, tex – wire, render path, at light map resolution. Ang paglipat sa paligid ng entablado ay isinasagawa gamit ang W, A, S, D key habang nakapindot i-right click mga daga.

Console

Natatanggap ng console ang lahat ng mensahe mula sa larong iyong nilikha. Ang lahat ng mga error, babala at notification ay ipinapakita sa console. Kung may naganap na error, ang dahilan nito at ang linya kung saan ito nangyari ay ipinahiwatig.

Pangkalahatang menu

Sa menu ng File maaari kang lumikha, magbukas at mag-save ng isang eksena o proyekto, pati na rin i-compile ang laro. Ang Edit menu ay mas mayaman kaysa sa lahat ng iba pa. Ang mga pangunahing punto nito ay mga setting para sa mga kontrol, graphics, pisika, tunog at marami pang iba. Binibigyang-daan ka ng menu ng Game Object na lumikha iba't ibang uri mga bagay sa laro at pamahalaan ang mga ito. Binibigyang-daan ka ng Component menu na magdagdag ng mga bahagi sa isang object ng laro, gaya ng mga script o sound source. Binibigyang-daan ka ng menu ng Terrain na lumikha at pamahalaan ang iyong terrain. Binibigyang-daan ka ng Window menu na pamahalaan ang lahat ng editor window. Ang Help menu ay naglalaman ng isang reference na libro sa mga script, isang manual at iba't ibang uri ng tulong.

Pag-compile ng laro (bumuo ng mga setting)

Ang pag-compile ng laro ay medyo simple, mula sa File->Build settings menu item. Sa mga setting ng compilation, tutukuyin mo kung para saang platform ang proyekto ay dapat itayo, kung aling mga eksena ang isasama, at pangkalahatang mga setting ng proyekto. SA pangkalahatang mga setting Maaari mong baguhin ang icon ng proyekto tapos na laro, ang pangalan nito, ang may-akda ng proyekto at marami pang iba.

Mga graphic

Ang mga graphic sa Unity3D ay medyo mataas, modernong antas. Medyo mataas na kalidad na mga anino at shader. Salamat sa ganap na nako-customize na mga graphics, ang mga larong nilikha gamit ang Unity3D ay tumatakbo kahit sa mga mas lumang computer. Gayunpaman, kakailanganin ng mga developer na magtrabaho nang husto sa pag-optimize, dahil malaking bilang Ang mga high polygonal na modelo at malalaking landscape na puno ng mga halaman ay lubos na nakakaapekto sa pagganap.

Medyo sikat. Kung ang mga naunang laro sa computer ay libangan lamang para sa isang makitid na bilog ng mga tagahanga, ngayon lugar na ito ganap na napupunta bagong antas. Parami nang parami ang mga taong interesado sa mga laro sa kompyuter, ang mga proyekto ay patuloy na inilalabas na angkop para sa ilang mga edad at target na grupo(halimbawa, mga laro ng pamilya).

Naturally, may isang tao sa likod nito - sa karamihan ng mga kaso ito ay ang buong kumpanya, na binubuo ng ilang mga departamento, na ang bawat isa ay nakikibahagi sa sarili nitong mga aktibidad. Magkasama silang lumikha ng pinakanamumukod-tangi at kaakit-akit na mga laro sa computer sa ating panahon. Gayunpaman, nararapat na tandaan na sa kani-kanina lang Ang isang malaking bilang ng mga indie na laro ay lumitaw - mga proyekto mula sa mga independiyenteng developer. Maaari itong maging isang tao, o isang maliit na grupo ng mga taong katulad ng pag-iisip, ngunit ang pinakamahalagang bagay ay wala silang malaking badyet, daan-daang manggagawa na may mataas na espesyal na edukasyon. At ngayon ang lahat ay maaaring magsulat ng kanilang sariling laro, dahil mayroong parehong mga espesyal na kapaligiran sa pagtatrabaho at handa na mga kernel, halimbawa ng paglalaro Unity engine. Sa artikulong ito matututunan mo kung ano ito at kung bakit ito kinakailangan.

Core ng laro

Ito ay nagkakahalaga ng pagsisimula hindi sa kung ano ang partikular na engine ng laro ng Unity, ngunit sa kung ano ang prinsipyo ng makina. Isipin ang pagsusulat laro sa kompyuter- kailangan mong isulat ang lahat ng code mula sa simula, ganap na lahat ng pinakamaliit na paggalaw ng mga character, paggalaw ng mga kalaban, pakikipag-ugnayan sa kapaligiran at libu-libo pang iba't ibang bahagi. Hindi kapani-paniwalang mahirap, hindi ba? Ang makina ay maaaring gawing mas madali ang proseso ng paglikha para sa iyo.

Ito ang core ng proyekto, na naglalaman ng lahat ng pangunahing script. Iyon ay, sa halip na lumikha ng isang laro mula sa simula, maaari ka nang kumuha tapos na kernel at magdagdag ng maraming layer ng iyong nilalaman dito hangga't gusto mo. Hindi na kailangang mag-alala tungkol sa pagiging ilegal nito - hindi mo ninanakaw ang kernel, ginagamit lang ito tulad ng ginagawa ng milyun-milyong iba. Ang paggamit ng mga game engine na nilikha ng iba ay isang napaka-karaniwang pamamaraan, ang pinaka-karaniwan malalaking kumpanya may mga paraan at kakayahan upang lumikha ng kanilang sariling malakihang makina ng laro. Kung wala kang badyet para dito, mas mabuting gamitin ang Unity game engine. Pero bakit siya?

Bakit Unity?

Mayroong isang malaking bilang ng iba't ibang mga makina na magagamit online alinman sa bahagyang libre o ganap na bayad. Papayagan ka nilang lumikha ng mga proyekto sa parehong 2D at 3D, bibigyan ka ng access sa iba't ibang mga tampok, at iba pa. Ngunit bakit sa kanila dapat mong piliin ang Unity game engine at hindi ang iba pa?

Sa katunayan, walang pumipilit sa iyo na gumawa ng ganoong pagpipilian - halimbawa, napakarami magandang core UDK, na ginagamit din ng marami upang lumikha ng mga 3D na laro. Kung hindi ka interesado sa isang 3D na imahe, madali kang makakagawa ng isang 2D na proyekto gamit ang naaangkop na makina. Ngunit ang Unity ang pinakasikat at de-kalidad na 3D engine na available ngayon, kaya dapat mong isaalang-alang ang paggamit nito. Ang Unity 3D game engine ay may ilang seryosong bentahe sa iba, na tatalakayin sa ibaba.

Mga Benepisyo sa Pagkakaisa

Pagkakaisa- bagong makina para sa paglikha ng mga 3D na laro. Maraming tao ang nagtataka kung bakit dapat nila itong piliin. Gaya ng nabanggit kanina, walang pumipilit sa iyo na piliin ito. Gayunpaman, ngayon ay malalaman mo kung bakit ito namumukod-tangi sa iba.

Una, ito ay isang development environment - binibigyan ka ng isang lubos na maginhawa at functional na IDE, na sabay na naglalaman ng isang editor ng eksena, isang editor ng bagay, at kahit isang maliit na editor ng script. Tungkol sa huli, ang plus na ito ay lalong kapansin-pansin kumpara sa iba, dahil ang karamihan sa mga engine ay mayroon nang sariling scripting language, na kailangan mong gamitin sa anumang kaso. Sa kaso ng Unity, maaari mong gamitin ang alinman sa lokal na wika o anumang iba pa.

Hiwalay, ito ay nagkakahalaga ng pagbanggit sa antas ng mga graphics na maaaring malikha sa laro - ito ay medyo mataas kumpara sa karamihan ng iba pang mga engine. At, siyempre, ito ay nagkakahalaga ng pagpuna pinakamataas na antas physics - maaari kang lumikha ng isang proyekto na hindi mas masahol pa kaysa sa anumang modernong obra maestra, natural, na may wastong kasanayan.

Sa konklusyon, ito ay nagkakahalaga ng pagbanggit sa gastos - ito ang kinakaharap ng maraming nagsisimulang developer. Sa kasong ito, hindi ito masyadong mataas - isa at kalahating libong dolyar lamang. Kung gusto mo, maaari mong gamitin libreng bersyon- ito ay ganap na gumagana, ngunit walang tiyak na dami kapaki-pakinabang na mga function. Gayundin, ang natapos na proyekto ay patuloy na magpapakita ng logo ng Unity sa panahon ng laro. Ngayon naiintindihan mo na kung bakit ang Unity 3D ay isang sikat na engine ng laro. Ngunit hindi ba ito ay talagang may anumang downsides? Ngayon pag-usapan natin ito.

Kahinaan ng Pagkakaisa

Marami ang sumubok na makahanap ng mga pagkukulang sa makina na ito, ngunit sa kahirapan, ang mga reklamo ay naipon lamang para sa isang bagay - pagsasara source code. Sa isang kahulugan, ito ay talagang mga kawalan - maaari mo lamang gamitin ang kernel na inaalok sa iyo ng developer, hindi ka makakagawa ng anumang mga pagbabago dito, kahit na alam mo kung paano ito gagawin. At kahit na isinasaalang-alang ang katotohanan na nagbayad ka ng isa at kalahating libong dolyar, ang lisensya ay hindi pa rin nagbibigay sa iyo ng access sa kernel mismo. Ngunit kung titingnan mo mula sa kabilang panig, halos walang modernong makina ang nagbibigay sa iyo ng access sa kernel code, kaya ang minus na ito ay maaaring ituring na isang seryosong disbentaha na may kahabaan. At wala kaming mahahanap na iba pang mga pagkukulang sa kahanga-hangang makinang ito.

Gamit ang Unity

Ang paggamit ng makina na ito ay nabanggit na nang mas maaga - ang IDE para dito ay napakahusay. Ito ay bihirang makahanap ng tulad ng isang functional na kapaligiran sa pag-unlad na hindi na-overload ng mga hindi kinakailangang detalye, at hindi ganap na hubad at hindi maginhawa. Sa Unity, ang lahat ay ganap na ginagawa - maaari mong agad na ma-access ang editor ng eksena ng laro, mga bagay sa laro, at maging ang mga script na inilapat sa kanila. Makakakita ka ng real-time na snippet ng kung ano ang iyong pinaghirapan sa mismong IDE. Ang Unity ay walang mga kakumpitensya dito - ang makina na ito ay mahusay.

Pagkakaisa ng Russia

Kung hindi mo alam wikang Ingles, huwag mag-alala, magagamit mo pa rin ang Unity. Ang engine ng laro sa Russian ay umiiral at aktibong sinusuportahan, kaya madali kang makakagawa ng mga obra maestra ng laro sa isinaling bersyon. Bukod dito, mayroong isang malaking online na komunidad na nagsasalita ng Ruso na nakatuon sa ang makinang ito- doon mo malalaman pinakabagong balita, basahin ang opinyon makaranasang mga gumagamit at magtanong ng mga tanong na interesado ka. Ang Unity3D sa Russian ay lubos na posible.

Pagdaragdag ng mga script

Sinabi na sa itaas na hindi mo mababago ang kernel code. Ngunit sa parehong oras, maaari kang magdagdag ng iyong sariling mga script, pati na rin i-download ang mga nilikha ng ibang mga gumagamit.