Unity Web Player: Bu program nedir ve neden gereklidir - gelin birlikte çözelim. Güçlü oyun motoru Unity: açıklama

  • 21.07.2019

Çoğu arkadaşım ne yaptığımı öğrenince “Ne üzerine oyun yapıyorsun?” diye soruyor. "Unity'de" cevabını verdikten sonra, yüzlerinde bir çok soru belirir, örneğin:

Neden Unity'de?
Cryengine'de neden olmasın?

Bütün bu sorular oldukça can sıkıcı, ama yine de onlara cevap vermem gerekiyor. Bu nedenle, neden her zaman Unity oyun motorunu kullandığımı ve başka bir oyun motorunu kullanmadığımı açıklamak istiyorum. Öyleyse, Unity'nin ne olduğunu ve neden bu kadar iyi olduğunu anlayalım?
Dünyanın bilgi kaynağı olan İnternet'e dönerseniz, bu programın tanımını kolayca bulabilirsiniz.

Birlik en popüler platformlar için oyunlar oluşturmanıza izin veren bir oyun motorudur. Bu motorun yardımıyla, kişisel bilgisayarlarda (Windows, MacOS, Linux altında çalışan), akıllı telefonlarda ve tabletlerde (iOS, Android, Windows Phone), oyun konsollarında (PS, Xbox, Wii) çalışan oyunlar geliştirilir.

Aslında, ana avantajı şu tanımdan gelir: bu motor, platformlar arası oyunlar ve uygulamalar oluşturmanıza olanak tanır. Bu, farklı platformlar için geliştirmeyi büyük ölçüde basitleştirir. Ayrıca bu program diğer motorlardan çok daha hafif ve daha verimlidir, bu da kesin bir artıdır. Ayrıca, aşağıdakiler gibi birçok ücretsiz özelliğe sahiptir:

  • aynı anda birkaç bilgisayarda bir oyunun geliştirilmesi;
  • reklam bağlantısı;
  • bitmiş projede dinamik yükleme kullanımı;
  • çok oyunculu oluşturmak için birçok platform ve diğerleri.


Neden kendim için bu programı seçtim?

Mesele şu ki, 2013'te çok gerilerdeyken, grafikleri üç boyutlu bir görüntüde oldukça iyi işleyebilen oyun motorlarından seçim yapmaya gerek yoktu. Cryengine ve Unreal Engine gibi motorları hiç duymamıştım ve seçim şüphesiz Unity3D sürüm 4.3'e düştü. O zamandan beri oyun yaratmak için çok uğraştım ve bugüne kadar onları yarattım. Bu süre zarfında, kitlelerle iyi giden birkaç proje yayınladı.

Unity'ye gelince, bu süre zarfında çok gelişti ve rakiplerimi birkaç adım önde geçtiğime inanıyorum. Bunun dışında program beni asla yarı yolda bırakmadı ve ondan istediğim her şeyi aldım. Gerçek zamanlı bir strateji yapmak istedim - yaptım; atıcı - lütfen; arcade - genellikle kolay. Unity, platformlar arası bir katil olsa da, onunla her şeyi yapabilirsiniz. Ana şey fikir sahibi olmaktır ve “Elleriniz” sitemizin uygulanmasında size yardımcı olacaktır.

Şunu da belirtmekte fayda var Unity3Dçeşitli tarife planları vardır. En yaygın olanı, elbette, ücretsiz "kişisel". Şirketiniz veya diğer bir deyişle tüm oyunlarınız kazanmaya başlayana kadar kullanılabilir. 100 000$ yıl içinde. Bağımsız bir geliştirici için bence bu harika bir teklif ve ücretli sürüm ucuz. Artı sürüm maliyetleri ayda 35 dolar ve Pro sürüm maliyetleri 125 $ aylık.

Buna ek olarak, hazır projeler, varlıklar, komut dosyaları, modeller, dokular, sesler ve istediğiniz diğer her şeyden oluşan ve genellikle ücretsiz olan büyük bir veritabanı vardır.

Unity3D'nin yeni sürümüne genel bakış

O yüzden bugün sizlere Unity'den bahsetmek istiyorum (en azından bilmeyenler için). Tabii ki, Habré'de bunun ne olduğunu bilen insanlar var, ancak arama, konudan bahseden feci şekilde az sayıda konu döndürüyor - ikisi sadece yeni sürümleri bildiriyor, biri kısaca sunuyor ve diğeri hala kullanımına ayrılmış. “Affedilmez, bunu düzeltmemiz lazım!” diye düşündüm ve teknolojiyi yaygınlaştırmak için kısa bir sunum yazmaya karar verdim. Zaten konunun içindeyseniz, daha fazlasını okuyamazsınız.

Dürüst olmak gerekirse, Wikipedia'da ücretsiz (en azından işlevsellik açısından tamamen normal bir ücretsiz lisansa sahip) bir 3d motor hakkında normal bir IDE, yerleşik olarak okuduğumda normal fizik, bir ses motoru ve belki de nix "s (Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3, XBox 360 desteklenir) dışında her şey için uygulamalar yapabileceğiniz bir ağ çok oyunculu doğrudan uygulaması ve iyi çalışıyor), zaten numarayı kokladım.

Herhangi bir Unity uygulamasının tarayıcıya gömülü bir eklenti için özel bir sürümde derlenebileceğini öğrendiğimde ve Firefox penceresinde pratik olarak modellerin ve dokuların kalitesini düşürmeden dürüst, tam teşekküllü bir deneme görebilirsiniz. çözüm - Bu gibi durumlarda her zaman böyle olduğundan neredeyse emindim, tam bir saçmalık.

Ve bu mucizeyi kendime koyduğumda ve yukarıdakilerin doğruluğuna ikna olduğumda neredeyse aşık oluyordum.

Pek çok kez, kendilerini dürüst bir şekilde internete aktarma hedefini belirleyen teknolojiler ortaya çıktı. Başarısız olan VRML'yi, biraz daha az başarısız olan ActiveWorlds'ü hatırlayalım... Bugün onları neredeyse hiç kimse hatırlamıyor. Yakında tüm dünya HTML5 ile dolup taşacak, 3d hızlandırmalı yeni bir flaş piyasaya sürülecek ... Ancak bu gerçekleşene kadar, web'deki multimedya içeriği dünyası, Java ve Silverlight ile birlikte Flash'ın mevcut sürümü tarafından yönetiliyor. Belki de sadece Flash.Geliştiriciler diğer teknolojileri zorlukla kullanırlar, bu anlaşılabilir - bir kullanıcıyı sadece bir oyun oynamak / bir siteyi görüntülemek için başka bir üçüncü taraf eklenti kurmaya zorlamak zordur.

Bununla birlikte, yukarıda bahsedilen motorun yeni, üçüncü bir sürümünün piyasaya sürülmesiyle, en sevdiğiniz flaş hakkındaki görüşlerinizi yeniden gözden geçirmeyi düşünebilirsiniz. Sonuçta Kongregate gibi flash oyuncak devleri bu teknolojiye dikkat ediyorsa (özellikle Unity'deki en iyi oyun için bir yarışma ilan ettiler), en azından buna bakmakta fayda var.

Bir çok yere bakabilirsin ama mesela ben bir kaç link vereyim. Bağlantıları takiben, eklentiyi yüklemeniz istenecektir - kilobayt ağırlığındadır ve tarayıcıyı yeniden yüklemeden çalışır (ne yazık ki, demoların boyutu hesaplanamadı, bu yüzden dikkatli olun - boyutlar yaklaşık 30-50 metre olabilir):

  • Bootcamp - üçüncü versiyon için bir demo, üçüncü şahıs nişancı, şu anda tüm motorun yüzü diyebilirsiniz. Ayrıca en altta diğer demolara tıklayabilirsiniz - çoğu eski sürümlere atıfta bulunur, ancak yine de izleyebilirsiniz
  • Kongregate.com'daki Unity bölümü - burada oyunlar zaten web için uyarlanmıştır, normal flash sürücülerden daha ağır değildirler
  • Site dışındaki oyunların listesi - ayrıca görebilirsiniz
Bunun ne tür bir hayvan olduğunu ve gerçekten saha dışında boyandığı kadar iyi olup olmadığını anlamaya çalışalım.

Pro ve Contra

Önce terimleri tanımlayalım. Unity, tüm geliştirme sürecinin (kaynak hazırlama ve komut dosyası oluşturma dışında) birlikte verilen Total Editor'da gerçekleşmesini sağlamak için tasarlanmış tam teşekküllü bir oyun motorudur. Genellikle, soruyu bu şekilde sormanın yolu, yavaş bir GUI ile büyümüş, "gamedev-vannabi" kategorisindeki gençleri gamedev'e dahil hissettirmek için hesaplanan, etrafta oynamadığı, sürdürülemez bir canavar anlamına gelir. Ancak bu konuyla ilgili sekmeyi henüz kapatmayın - Unity bu testten değil. Peki Unity hakkında bu kadar harika olan ne? Bakalım ve aynı zamanda Epic Games'in yakın zamanda bağımsız geliştiriciler için ücretsiz hale getirdiği UnrealEngine 3 için UDK - SDK ile karşılaştıralım.

Güzel Birlik:

  • IDE'si ile bir sahne düzenleyiciyi (diğer bir deyişle aşağıdakilerin tümünün düzenleyicisi), bir oyun nesnesi düzenleyicisini ve hatta basit bir komut dosyası düzenleyicisini birleştirir. Ek olarak, kit, bir SpeedTree ağacı (fena değil) ve arazi (standart, uygun) jeneratörü ile birlikte gelir;
  • Komut dosyası oluşturma yetenekleri - yalnızca yerleşik kendi kendine yazılan dilde yazabileceğiniz UDK'nın aksine, Unity'de üç adede kadar dil mevcuttur: JavaScript, C # ve Boo adlı bir python lehçesi. Kişisel olarak test etmedim, ancak Rus topluluğunda, UDK'daki komut dosyalarının yürütme hızının birkaç kat daha düşük olduğu ifadeleri vardı (bu anlaşılabilir - Unity'de, sonuçta, komut dosyaları yerel kodda derlenir);
  • Çapraz platform - yukarıda belirtildiği gibi, Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3 ve XBox 360 desteklenmektedir.Eh, elbette, web eklentisini unutmamalısınız. Hepsi ücretsiz bir lisans altında mevcut değildir (aslında yalnızca Win, Mac ve Web yapıları mevcuttur), ancak bu anlaşılabilir bir durumdur. Win ve Mac altında, her şey kodda herhangi bir değişiklik olmadan derlenir, web altında elbette kaynakları kesmeniz gerekecek - tarayıcıda bir seviye açmak için 400 metre indirmek çok uygun değil. Aşağıda web versiyonunun çalışmasını anlatacağım;
  • Oldukça modern bir grafik seviyesi - Unity'nin elbette kaybettiği özelliklerin sayısı açısından aynı UDK - sonuçta, UnrealEngine bu alandaki amiral gemilerinden biri olarak adlandırılabilir ve onu aşmak zordur. Ancak Unity, aydınlatmayı, yerleşik bir gölgelendirici düzenleyiciyi, standart bir işlem sonrası efekt setini (tam liste, elbette kendinizinkini yazabilirsiniz), şimdi moda olan SSAO'yu - kısacası, bir dizi araç var. bir AAA projesi oluşturmak için. Bu arada Lightmaps, değerli ve akıllıdan daha fazlasını yapar;
  • Fiziksel motor - fiziksel bir motorun yapabilmesi gereken her şey var. Half-Life 2'nizi ne biliyor musunuz? Kolayca!
  • Performans ve ölçeklenebilirlik - tereddüt etmeden "mükemmel" koyduk. Çünkü bu konudaki rutin işlerin çoğu, motor kendi kendini idare ediyor ve dikkat çekici derecede iyi idare ediyor;
  • Herhangi bir uygulamayı bir web eklentisinde başlatmak - bunun hakkında zaten konuştuk, ancak tekrar not etmek günah değil.
  • Lisans için düşük fiyat - sadece 1500$. Ve bazı güzellikler olmadan ücretsiz sürüm;
Bunun gibi bir şey. Şimdi neden kötü olduğunu tartışalım:
  • Kapalı. Şunlar. kaynak kodları size lisans altında dahi verilmeyecektir. UDK ile, her şeyi doğru anlarsam, aynı resim - kaynak kodu daha fazla para için ayrı olarak lisanslanır. Bununla birlikte, Unity'de betikler kaynak koduyla yaptığımızın aynısını yapabilirler - hemen hemen her şeyi modifiye edebilirsiniz ... Ama yine de kaynak kodu her yönden daha iyidir, yani bu bir eksi - en azından onlar için üçüncü taraf fiziği veya aynı hız ağacını mahvetmek isteyenler;
  • KÂR.
Dürüst olmak gerekirse, henüz gerçek bir eksilerini görmüyorum. Motor kararlı, üretken, kullanımı kolay - başka neye ihtiyacınız var? Kesinlikle dezavantajları vardır. Bu nedenle, garip bir şekilde çalışan katkılı animasyon harmanlama hakkında sık sık raporlarla karşılaştım. Bazıları arazilere birden fazla malzeme atamamaktan şikayet ediyor - bilmiyorum, denemedim. Ancak yukarıdaki artıların ışığında bu kadar önemli mi? Benim için öyle değil.

Gerçek şu ki, çoğu küçük takım için motor her zaman ana sorun haline geldi (peki, bir fikir ve iyi sanat eksikliği elbette, ama şimdi bundan bahsetmiyoruz). Motorun yalnızca bir 3d render olmadığı, aynı zamanda bir dizi boru hattı aracı olduğu göz önüne alındığında, ekipteki tek programcı için sıfırdan yazmak zordur - ithalatçılar, editörler, izleyiciler ... Yapışmadığınız sürece imkansız bir görev minimalizme. Minimalizm fena değil, en sevdiğimiz 8-bit tarzında yapılmış o kadar çok harika oyun var ki sayamazsınız... Ama bunların çoğu bir günlük oyunlar (Minecraft sayılmaz evet. Ve bu arada , ayrıca sıfırdan değil, LWJGL'de yazılmıştır). Bir günden fazla oynanacak bir oyun söz konusu olduğunda, tam teşekküllü bir motora ihtiyacınız var ve ardından ücretsiz çözümler aramaya başlıyoruz. Ogre, Irrlicht ve onlar gibi birkaç kişi elbette iyidir, ancak a) ahlaki açıdan yaşlıdırlar ve b) onları çalışmak ve çalışır duruma getirmek için çok fazla zaman ve teorik temel alırlar. Elbette, üzerlerine harika bir satış projesi yazabilirsiniz (Torchlight on Ogre buna bir örnektir), ancak burada yine de birden fazla programcıya ihtiyacınız var. GameMaker gibi “programlama dilleri bilgisi olmayan oyunlar” da var, ancak bunlar oyuncaklar, doğru kelime.

Unity durumunda, hazır bir boru hattımız, hazır bir oluşturucumuz, hazır bir fizik, ses ve ağ kitaplıklarımız var, tanıdık bir dilde kod yazabilirsiniz - aslında, kodlama açısından, yalnızca ihtiyacımız var Javascript gibi temel bilgileri bilmek ve FPS'yi perçinlemek için bir hafta boyunca resmi yardıma dalmak. Serbest bırakma yolunda eksi bir engel. Birisi, başkaları tarafından yazılan ve düzeltilemeyen kodun kalitesine inanmıyorsa - kontrol edin, her şey o kadar da kötü değil.

Nasıl görünüyor

Resimler tıklanabilir.

Aslında IDE:

IDE'de, "Oynat" düğmesine tıklayabilir ve mevcut gerçek zamanlı sahneyi test edebilirsiniz:

Yerleşik sınıf denetçisi, totolojiyi affedin, değişkenler için sınıfları araştırır ve koda bakmadan komut dosyalarındaki değişkenleri anında değiştirmenize olanak tanır. Ve sadece ints değil, aynı zamanda malzemeler, dokular, modeller ... Çok zaman kazandırır.API belgeleri, örneğin doğrudan komut dosyasına doku yolunu yazmamak için iyi bir tonda gösterir, ancak sadece class özelliğini ilgili türün boş bir özelliği yapın ve ihtiyacınız olan denetçiyi seçin:

Prefabrik (sağda) ve varlık (solda) denetçiler. Kabaca söylemek gerekirse, sağda - nesnelerin boşlukları, solda - mevcut sahnede bulunan nesneler. Düzey düzenleyicide ("oynat" düğmesi) çalışırken, çalışmayı duraklatabilir ve nesnelerin mevcut durumunu görebilirsiniz - çok daha az sıklıkla günlükleri okumanız veya HUD'da bir hata ayıklama satırı görüntülemeniz gerekir. küçük bir değişkenin davranışını görmek için:

Ve sonunda söyleyeceğim...

Bu noktaya kadar olan tüm sözlü zırvaları özetlersek, eğer bir AAA projesi yapıyorsanız, büyük ihtimalle kendi motorunuzu yazacaksınız. Veya zaten bir önceki projeden bir motorunuz var. Veya kaynak koduyla kötü üne sahip UnrealEngine 3 gibi bir şey satın alabilirsiniz. Ancak bu, sadece kodlama için bir düzine insanla bir AAA projesi yapıyorsanız.

Stüdyoda yalnızca on kişi varsa (ve hatta iki kişi daha fazlaysa), kendi motorunuzu yazmak genellikle çok pahalıdır. Tam teşekküllü 3D tarayıcı oyunlarının dalgasında olmak için bir cazibe (Ogre için java sarmalayıcı sayılmaz. Gerçekten), Unity'yi pratikte denemeye değer. Üzerinde sıradan bir tarayıcı tabanlı gündelik oyun geliştirmenin hızı ve karmaşıklığı, Flash'tan daha yüksek değildir ve grafik üstünlüğü açıktır. Ve henüz hiç kimse vay etkisini iptal etmedi.

Sonunda Unity (tartışmalı ama mümkün), sunumlar yapabilir, bilimsel projeleri görselleştirebilirsiniz ... Bütün bunlar elle, saf OpenGL'de yazılabilirdi, ancak zaman ve uygulama kalitesini karşılaştırırken hala eğilimim var. Unity'deki seçenek. flaş şimdilik Bunu da hesaba katmıyoruz - hadi donanım 3d hızlandırmasının yayınlanmasını bekleyelim.

Bu tür sözler, diğer motorların taraftarları arasında bir duygu fırtınasına neden olacaktır. "Evet, bunların hepsi %enginename%'de", "%enginename%, %gamename% ve %gamename% içeriyor ve tüm bunlar, her şeyi tüketen kötü sürükle"n"drop"a" olmadan ...

Unity'ye bir şans vermenizi tavsiye ederim - rahatlığı, özellikleri, esnekliği ve geliştirme hızı ile büyülüyor (en azından beni büyüledi). Ve ayrıca… Hey, bu tarayıcıda tam teşekküllü bir deneme! :)

İyi günler. Bu makale, çoklu platform aracı Unity3d hakkındadır. Makale, bence, motorla çalışmanın en iyi yollarını tartışıyor, çalıştırma hakkında pratik tavsiyeler ve ek (genel) bilgiler veriyor; Unity3d'nin gelişimi için beklentiler göz önünde bulundurulur.

  • Bölüm 1 Giriş
    • Birlik nedir?
    • Unity3d'nin Özellikleri
    • Ek bilgi sorunu
  • 2. Bölüm: Başlarken
    • destekleyici literatür
      • sahneler
      • hata ayıklama
    • yapılandırma
  • Bölüm 3. Pratik tavsiye
    • Senaryo yazmak
    • video dersleri
    • Sorun giderme
  • Bölüm 4. İşin tamamlanması
    • sonuçlar
    • oyun yayınlama
    • * Optimizasyon
    • grafik teorisi
    • kullanışlı bağlantılar
    • Fikir
      • Gelecekte ne görmek istersiniz?
  • Bilgi kaynakları

Bölüm 1 Giriş

Unity3d nedir?
Unity3d, Unity Technologies tarafından geliştirilen modern bir platformlar arası oyun ve uygulama motorudur. Bu motoru kullanarak yalnızca bilgisayarlar için değil, mobil cihazlar (örneğin, Android tabanlı), oyun konsolları ve diğer cihazlar için de uygulamalar geliştirebilirsiniz.
Biraz da motorun özelliklerinden bahsedelim. Öncelikle oyun motorunun Unity geliştirme ortamına entegre edildiğini belirtmekte fayda var yani editörden çıkmadan oyununuzu test edebilirsiniz. İkincisi, Unity, oyun geliştiricisinin modelleri daha uygun bir uygulamada tasarlamasına ve Unity'yi amaçlanan amacı - ürün geliştirme için kullanmasına olanak tanıyan çok sayıda farklı biçimin içe aktarılmasını destekler. Üçüncüsü, komut dosyaları (komut dosyaları) yazmak, en popüler programlama dilleri olan C# ve JavaScript'te gerçekleştirilir.
Böylece Unity3d, kendi uygulamalarınızı oluşturabileceğiniz ve bunları ister cep telefonu ister Nintendo Wii olsun çeşitli cihazlara aktarabileceğiniz güncel bir platformdur.
Kendi oyununuzu oluşturmak için en azından mevcut programlama dillerinden birini (Unity'de) bilmeniz gerekir: C#, JavaScript veya Boo.

Örneğin 3Ds max "ohm'a sahipseniz harika olur, bu size oyun oluştururken çok yardımcı olacaktır. Bana gelince, ev modelini bulamadığım için 3Ds max'a temel düzeyde hakim olmam gerekti. Her halükarda, hazır 3D modelleri içe aktaracaksanız, bilgisayarınızda 3Ds max kurulu olması gerekir, çünkü çoğu zaman, gerekli modellerin bir proje formatı vardır, yani. bunları Unity3d için uygun biçimde, örneğin * .3DS'de işleyin ve yalnızca bundan sonra Unity'ye içe aktarma yapın, aksi takdirde ikincisi bir hata verecektir.

2. Bölüm: Başlarken

destekleyici literatür
Unity3d'yi, yani Unity 3.x Game Development Essentials'ı öğrenmemize yardımcı olacak literatüre dönelim. Ücretsiz içeriği tercih ederseniz, ücretsiz kitap Google'da bulunabilir.
bu kitap ne hakkında? Belki de tam teşekküllü bir oyun yaratmak için ihtiyacınız olan her şey hakkında. Bu kitabı satın almanızı ve kendiniz incelemenizi şiddetle tavsiye ederim.
Oyun ve kitabın içeriği hakkında birkaç söz. Oyuncunuz kendini ıssız bir adada buluyor, kaçması gerekiyor, bunun için çeşitli görevleri yerine getiriyor ve umarız kurtulur. Oyun birkaç dakika içinde tamamlanabilir, ancak oyunun oluşturulması birkaç dakikadan çok, hatta belki birkaç saat bile sürmez.
Kitap, sıfırdan bir oyun oluşturmak için çok ayrıntılı bir kılavuz içeriyor. Oyununuzu oluşturmak için muhtemelen ihtiyaç duyacağınız birçok şeyi kapsar.

Kitap İngilizce yazılmıştır; İngilizce bilmeyenler için neyin tehlikede olduğunu sezgisel olarak tahmin etmek zor olmayacaktır, çünkü kitap çok fazla bilgelik olmadan yazılmıştır.

Dikkat etmeye değer
Dikkat!
Unity3d'de oyun oluşturmak için bazı ipuçları.

º Çarpıştırıcılar
çarpıştırıcı nedir? Çarpıştırıcı, belirli komut dosyalarının ve eylemlerin gerçekleştirildiği etkileşim sırasında bir alan alanıdır. Ne olduğunu daha iyi anlamak için bir mağazanın otomatik olarak açılan kapılarına yaklaştığınızı hayal edin. Kapılardan birkaç metre uzakta, sensör tetiklenir ve kapılar önünüzde açılır, ancak üç metre yürürseniz hiçbir şey olmaz. Sadece kapıların açılmasından sorumlu olan hareket sensörünün çalıştığı bölge çarpıştırıcıdır. Bölgeye girersiniz - kapılar açılır, bölgeden çıkarsınız - ve sensör artık varlığınıza tepki vermez. Oyunda da aynı.
Yani, çarpıştırıcılar hakkında. Projemize bir araba ithal ettiğimizi ve bunun için bir çarpıştırıcı oluşturmak istediğimizi varsayalım. Tüm araba için otomatik olarak bir çarpıştırıcı oluşturabilirsiniz, ancak daha sonra her biri araba detayları - farlar, contalar, aynalar, lastikler - kendi çarpıştırıcınız oluşturulacaktır.

Bu kesinlikle optimal değil. Elbette bu kadar çok sayıda çarpıştırıcı üretmemize gerek yok, kendimizi bir tane ile sınırlamamız yeterli!

Lütfen unutmayın ki bu olumsuzluk incelik. Her yerde hafızayı kurtarmaya çalışmanız gerekir. Oyunda oyuncunun gidemediği bir yer var mı? Bu konum için herhangi bir çarpıştırıcı oluşturmayın. 3Ds max'dan projeye aktardığınız bir kapınız var mı?Muhtemelen çok iyi çizilmiştir (kapıdaki vidaların bile ayrı bir nesne olarak çekildiği gerçeğiyle kendim karşılaştım), bu yüzden bir kutu çarpıştırıcı oluşturun tüm kapı - çok fazla hafıza kazanacaksınız! İnanın bana, bu kayıtlı hafıza sizin için hala çok, çok faydalı.

º Optimum sahne kullanımı
Sahnelerin optimizasyonu hakkında konuşalım, sahnelerin kendileri daha fazla tartışılacak.
Şu durumu hayal edin: Bir "ev" sahnemiz var - oyuncu bir binadayken ve bir "sokak" sahnesi - oyuncu binayı sokağa bıraktığında. Doğal olarak, ikinci sahneden evi görebiliriz, yani. ilk sahnenin bir kısmı ve tam tersi (tabii ki binanın pencereleri yoksa). Bu durumda, aşağıdaki sahne yapımı en uygunudur. İlk sahnede sokağı ilgilendiren her şey (yani başka bir sahneye geçmeden gidemeyeceğimiz yer) olabildiğince sadeleştirilmelidir. Başka bir deyişle, sadece pencereden görünümün görünümünü bırakmamız ve tüm dolguyu boşaltmamız gerekiyor. Şunlar. tüm çarpıştırıcıları, çözünürlüğü vb. kaldırın. küçültmek. Gerçekten de işlemci, ziyaret edemeyeceğimiz alanın işlenmesiyle neden zorlansın? Aynı şeyi ikinci sahne ("sokak") için de yapıyoruz. Bu durumda, genellikle evden her şeyi kaldırabilir ve sadece “kutusunu” bırakabiliriz.
Bir mini harita oluşturmak ister misiniz? Lütfen, tüm çarpıştırıcılardan kurtulun ve çözünürlüğü düşürün, bu durumda oyununuz optimal olacaktır.
Sahnelerle çalışma bu şekilde optimal hale gelir. Bir kez daha belirtmek isterim ki bunlar incelik değil, yaratıcının dikkatini gerektiren ciddi şeylerdir.

sahneler
Bitmiş bir oyun, birbirine bağlı bir dizi sahnedir (tıpkı hayatın bir dizi gün olması gibi). Şimdi oyunun optimal tasarımı hakkında konuşacağız.
Projenizi oluşturmadan önce - neyi içermesi gerektiğini (hangi sahneleri) düşünün. Sahnelerin bir listesini yapın (bir kağıt parçası üzerinde), her sahnenin ne içereceğini düşünün. Şimdi her sahneyi alt sahnelere ayırmaya çalışın, ne kadar çok olursa, CPU'nuz için o kadar kolay olacaktır. Tabii ki, sahne sayısı ile aşırıya kaçmamalısınız. Oyuncunuzun bir binada olduğunu ve onu asla terk etmediğini varsayalım, binada örneğin birkaç kat, bir çatı ve her katta üç oda var. Bu durumda, bence, binayı iki sahneye - iki kat ve bir çatıya - "kırmak" en uygun olacaktır. Her katı odalı sahnelere bölmek optimal değildir. Bu, odaların her biri hafif yüklüyse gerekli değildir. Yani işlemci hafızasını akıllıca kullanmak gerekiyor ancak oyundan keyif almayı da unutmamak gerekiyor.
hata ayıklama
İyi bir içerik oluşturucunun, oyunlarının veya uygulamalarının farklı bilgisayarlarda kullanılacağının farkında olması gerektiğini unutmayın; bu, içeriklerinin farklı cihazlarda kullanılabilmesi için hatalarının ayıklanması gerektiği anlamına gelir. Hata ayıklamanın en belirgin ve önemli noktası, uygulamanın farklı ekran çözünürlükleri için optimize edilmesidir. Bu önemli bir noktadır ve oyunun yaratıcısı buna kesinlikle dikkat etmelidir, aksi takdirde çalışmasının sonucundan yalnızca kendisi tatmin olabilir.
yapılandırma
Bir oyun tasarlarken, önemli bir husus olan veri yapılandırmasını hatırlamak önemlidir. Demek ki her şey yerli yerinde olmalı. Senaryolar oluşturuyor musunuz? - komut dosyaları için bir klasör oluşturun ve bunları orada saklayın, yüksek olasılıkla birden fazla komut dosyanız olacak, bunları proje boyunca dağıtmak iyi değil, o zaman kendiniz acı çekeceksiniz. Kendi deneyimlerime göre, kesinlikle komut dosyaları, ses dosyaları, GUI dokuları, malzemeler, animasyonlar, belki prefabrikler ve kendi modellerinizle (3Ds max'tan içe aktarılan) klasörler oluşturmanız gerektiğini söyleyebilirim ve nesneleri depolamak daha iyidir. tüm modelleri kaotik bir şekilde proje etrafına dağıtmamak için son klasör). Şu veya bu betiği oluşturduğunuzda, değişkenlerin, sınıfların vb. adlarının açıklayıcı olması gerektiğini unutmayın. Oluşturmak istiyorsanız bir envanter komut dosyası (bir öğeyi alın, bir öğe kullanın), o zaman monoton eylemlerin (örneğin, yükseltme) tüm komut dosyalarını bir anahtar kelimeyle başlatmak daha iyidir, örneğin: Yakala<имя предмета>; kullanmak<имя предмета>, bu durumda projede gezinmeniz daha kolay olacak ve bu şekilde çok daha güzel görünüyor. Altın kuralı hatırlayın: iyi bir program bir hatayla yazılmış ve sınırlarına kadar hata ayıklanmış bir program değildir, iyi bir program hemen doğru yazılmış ve minimum hata ayıklama "maliyeti" gerektiren programdır. Bu kuralı kullanırsanız, her şey sizin için bu kuralı kullanmayanlardan çok daha iyi olacaktır.
Senaryo yazmak
Ne yazık ki bu bölüm oldukça kısa olacak. Önce ne uygulamak istediğinizi hayal etmeye çalışın, ardından algoritmayı kelimelerle açıklamaya çalışın ve ardından kelimeleri çalışma koduna dönüştürün. Yukarıda tartışılan kitabı kullanarak, kodların ve diğer şeylerin geliştirilmesi için çok fazla terlemeniz gerekmeyecek, kitabın ihtiyaç duyabileceğiniz hemen hemen her şeyi açıkladığını ve açıklanmayan her şeyin sizin için düşünmek kolay olduğunu tekrar ediyorum. sahip olmak.
video dersleri
İnceleme için aşağıdaki youtube kanallarını öneriyorum:

Neyse ki, Unity yazılım ürünü sürekli olarak güncellenir, ancak ne yazık ki video eğitimleri bunu kendi başlarına yapamaz. Bir yıl önce alakalı olan çok sayıda videonun alaka düzeyini kaybettiği ve basitçe işe yaramaz hale geldiği ortaya çıktı.
1 - burada her zaman güncel video eğitimlerini, net bir açıklamayı, komut dosyalarının ayrıntılı bir analizini ve tüm eylemleri bulacaksınız. Bu kanaldan daha iyisini bulamadım. Oyun oluşturma hakkında hiçbir fikriniz yoksa kesinlikle bu kanala bakmalısınız. 2 - Ciddi bir ekip, sadece, maalesef, 1'den daha az video ders var. 3 - Yararlı şeyler var, ne yazık ki video dersleri neredeyse alakasız hale geldi.

Sorun giderme
Unity3d öyle bir motor ki script yazarken hata yaparsanız oyununuz başlamaz. Belirgin bir hata yoksa, oyun başlar, bir şeyler ters giderse, konsol size kesinlikle bunu söyleyecektir.
Bunlar uyarılardır, size sadece olası eksiklikleri, eksiklikleri anlatırlar:

Bunlar hatalardır, varsa oyun başlamaz:

Bölüm 4. İşin tamamlanması

sonuçlar
Unity3d, kullanıcıya çok fazla özgürlük veren çok esnek bir motordur. Geliştirici ve tüketici için hayatı kolaylaştırmak için projenizi optimize etmek için atabileceğiniz bazı adımlar vardır.
Şimdi, ortaya konan bilgi tabanıyla, ultra popüler uygulamamızı güvenle oluşturmaya başlayabiliriz!
oyun yayınlama
Biten oyununuzu oyun hizmetlerinden birinde, örneğin www.kongregate.com adresinde yayınlayabilirsiniz.
* Optimizasyon
Bu alt bölümü okuyorsanız, ya burada ne yazdığını merak ediyorsunuz ya da NB okumadınız! 2. bölümden. Umarız ilk kategoriye girersiniz. Bu alt bölümde, oyunu hemen en iyi şekilde yazmanız ve en azından bir şekilde yazmamanız ve ancak o zaman hata ayıklamanız gerektiğini bir kez daha belirtmek isterim - bu feci bir yoldur ve bunu yapmamalısınız. Optimizasyon ile ilgili olarak - bir kez daha ikinci bölüme değinin.

Bölüm 5 Ek Bilgiler

grafik teorisi
Teori olmadan pratik yapmak çok ilginç değil, bu yüzden bilgisayar grafikleri teorisini tanımanızı tavsiye ederim. www.intuit.ru/department/graphics/graphalg/lit.html
Teorik bilginizi burada test edebilirsiniz.
  • Tür odağı: herhangi bir 3D/2D oyunlar, çevrimiçi oyunlar, mobil oyunlar;
  • Editör platformu: Windows veya Mac OS X;
  • Oyun platformu: iOS, Android, Windows Phone 8, BlackBerry 10, Tizen, Windows ve Windows Store Uygulamaları, Mac, Linux/Steam OS, Web Player, WebGL, PlayStation 3, PlayStation 4 ve Morpheus, PlayStation Vita, Xbox 360, Xbox One, Wii U , Android TV, Samsung SMART TV, Oculus Rift, Gear VR, vb.
  • Lisans: ticari kullanım için ücretsiz bir sürümün yanı sıra aylık abonelik, tam lisans, ücretli destek var;
  • Oyun programlama dilleri: C#, JavaScript, Boo
  • Motor SP'de yazılmıştır: C++;
  • Açık kaynak: kısmen sağlanmadı;
  • Çok oyunculu: mümkünse, modüller ve sunucu tarafı şablonları vardır;
  • Fizik: yerleşik motorlar Box2D ve NVIDIA PhysX 3.3;
  • Grafik API'sı: DirectX ve OpenGL
  • Önceki versiyon: Unity3D4
  • Avantajlar: bağımsız geliştiriciler için ücretsiz, platformlar arası, öğrenmesi kolay.
  • Kusurlar: oluşturucunun şikayetleri var, belirli özelliklerin ve özelliklerin olmaması gibi farklı platformlar için dezavantajlar var.
  • Motor geliştiricisi: Birlik Teknolojileri.

    Unity 5, Unity Technologies'in yalnızca 3D oyunlar değil, 2D oyunlar da geliştirmenize olanak sağlayan gelişmiş bir oyun motorudur. Çoğu bağımsız oyun geliştiricisine göre, bu şu anda en iyi oyun geliştirme platformudur.

    Bu motor, 21 popüler platform için AAA oyunlarını tam olarak geliştirmek için gerekli tüm araçlara sahiptir: iOS, Android, Windows Phone 8, BlackBerry 10, Tizen, Windows ve Windows Store Uygulamaları, Mac, Linux/Steam OS, Web Player, WebGL, PlayStation 3 , PlayStation 4 ve Morpheus, PlayStation Vita, Xbox 360, Xbox One, Wii U, Android TV, Samsung SMART TV, Oculus Rift, Gear VR ve daha fazlası. Bir proje yapın ve tek bir tıklamayla herhangi bir projede birleştirin. Mobil ve masaüstü sistemlerde, konsollarda ve web platformlarında. Oyunları sosyal ağınıza kolayca entegre etmek için resmi Facebook SDK for Unity'yi kullanın, Oculus Rift VR başlığıyla denemeler yapın ve daha fazlasını yapın.

    Unity Technologies, Microsoft, Sony, Qualcomm, Intel, Samsung, Oculus VR, Nintendo ve daha fazlası gibi platform ve donanım üreticileriyle iş ortaklığı yapıyor. Bu bağlantılar aracılığıyla platform desteği en iyi durumda olduğundan içeriğiniz herkes için iyi çalışır.

    Unity, 2014 ve 2015 yıllarında en popüler mobil oyun motoruydu. Bağımsız raporlar, Unity'nin diğer mobil oyun motorlarından çok daha ileride olduğunu gösteriyor. Neden bu kadar popüler? Bir çok neden var. Android, iOS, Windows Phone ve BlackBerry'de tıkla ve dağıt. Occlusion Culling ve Asset Bundling gibi özellikler sayesinde tonlarca optimizasyon. Mobil cihazlarda oyuncuların para kazanma ve elde tutma açısından birinci sınıf hizmetler. Özel, kullanımı kolay 3B ve 2B araçlar ve iş akışları.

    Bu motoru her türden oyun geliştirmek için kullanabilirsiniz: strateji, bulmaca, aksiyon, sandbox ve ne istersen. Enlighten destekli Realtime Global Illumination ve Unity'nin fizik gölgelendiricisi ile Unity ile güzel, çekici ve eğlenceli masaüstü oyunları oluşturmak için daha iyi bir zaman olamaz.

    Unity 5'te web yayıncılığı için seçenekler oluşturmak için ücretsiz erişim elde edin. Yüklendikten sonra, son derece popüler Unity Web Player Eklentisi otomatik olarak güncellenir. Internet Explorer, Safari, Mozilla Firefox ve diğer tarayıcılara dağıtmak için kullanın. Duruma bağlı olarak, Unity'nin yüksek düzeyde optimize edilmiş yeni WebGL oluşturma seçeneği, yerel çalıştırma düzeyinde performans sağlayabilir. Halihazırda bir dizi başarılı ticari projede kullanılmıştır.

    Bağımsız geliştiricilerin oyunlarını konsol platformlarında yayınlamaları artık her zamankinden daha kolay. Ancak onay süreci platform sahibine bağlıdır, daha fazla bilgi için doğrudan onlarla iletişime geçin.

    Oyun sektöründe hedef kitlesi ile etkileşim kurarak bir iş kurmayı hedefleyen herkes için eksiksiz bir ekosistemdir. Anlaşılır ve özelleştirilebilir, pratik kullanıma hazır yüksek kaliteli araçlar elde edersiniz. Yol boyunca zorluklarla dikkatinizin dağılmasına gerek kalmadan oyun geliştirmeye devam etmenizi sağlarlar. Tam konfor ve üretkenlik için kendi araçlarınızı Unity'ye bağlayabilirsiniz. Platformlar arası araçlarla performansı verimli bir şekilde optimize edin.

    Doğrudan Unity düzenleyicisinden veya web tarayıcısından Asset Store ile zaman kazanın. 10.000'den fazla hazır ücretsiz veya ücretli geliştirme kaynağı ve aracıyla, sizin için doğru olanı bulacağınızdan emin olabilirsiniz. Çok çeşitli düzenleyici uzantıları, eklentileri, ortamları, modelleri ve daha fazlasını seçin.

    Unity motoru, derinlik ve optimizasyon kalitesinin yanı sıra Unity kullanıcılarının hızlı bir şekilde yüksek kaliteli içerik oluşturmasını sağlayan iş akışlarının hızı ve verimliliği nedeniyle oyun endüstrisinde sevilir. İhtiyacınız olan her şey dahildir: fiziksel gölgeleme, ayrıntılı bellek profili oluşturma, sezgisel kullanıcı arabirimi araçları, güçlü animasyon teknolojisi, yüz animasyonu için Blend Shapes ve daha fazlası.

    İnanılmaz görsel doğruluk, işleme gücü ve ortamlar, oyunu hayal ettiğiniz gibi yapacak. Aydınlık bir günden geceleri neon tabelaların parlak ışıltısına; Farklı ışık huzmelerinden loş ışıklı gece sokaklarına ve karanlık tünellere kadar her platformda oyuncuları büyüleyen unutulmaz, dinamik bir oyun yaratın.

    Oynat düğmesine basın ve kendinizi hemen oyununuzun içinde bulun: oynayın ve hedef platformdaki son yapıda her şeyin nasıl görüneceğini görün. Oyunu duraklatın, parametreleri, kaynakları, komut dosyalarını ve diğer özellikleri değiştirin ve sonucu anında görün. Hata ayıklamayı kolaylaştırmak için kare kare görüntüleme kullanılabilir.

    Aşağıdaki resim biçimleri desteklenir: psd, jpg, png, gif, bmp, tga, tiff, iff, pict, dds. Bu tür ses formatları: mp3, ogg, aiff, wav, mod, it, sm3. Video formatları: mov, avi, asf, mpg, mpeg, mp4. Metin biçimleri: txt, htm, html, xml, bayt. Tüm popüler 3D model formatları.

    Kapsamlı efektörler, eklemler ve çarpıştırıcılar içeren Box2D'nin yanı sıra gelişmiş otomatikleştirilmiş yol bulma ve gezinme ağlarına sahip AI açısından zengin 3D sahneler için NVIDIA PhysX 3 fizik motorları olarak bağlı. Sahneler C#, JavaScript, Boo kullanılarak yazılır. Sürüm takibi için Performance ve Plastic SCM ile entegrasyon için tam destek vardır.

    Unity ayrıca oyuncu edinme, elde tutma ve para kazanma için büyüyen bir dizi entegre hizmet sunar. Unity 5 döngüsü sırasında, oyun oluşturma ve yönetimini olabildiğince sorunsuz, basit ve karlı hale getirmek için bu hizmetlerin daha fazlası motora entegre edilecek.

    Unity Ads ile hedef kitlenizi ve gelirinizi artırın. Unity Everyplay aracılığıyla elde tutma oranınızı artırın ve yeni oyuncular çekin. Unity Analytics ile oyuncuları oyuna geri dönmeye nasıl teşvik edeceğinizi öğrenin. Unity Cloud Build aracılığıyla derlemelerinizi kolayca edinin.

    Toplamda 2 tür Unity 5 yapısı vardır: ücretsiz bir Kişisel Sürüm ve aylık 75 ABD Doları veya tüm zaman için 1.500 ABD Doları karşılığında ticari bir Profesyonel Sürüm. Personal Edition, bir dizi ek özellik ve araca sahiptir. Bazı platformlar için dışa aktarma, uygun modüllerin satın alınmasını gerektirir.

    10 adet lisanstan alımda %10 indirim uygulanmaktadır. İndirimli Unity Professional Edition lisansları okullar, enstitüler, öğrenciler ve eğitimciler için mevcuttur. Unity motoru, çok çeşitli kullanıcılar tarafından benimsenmek üzere tasarlanmıştır ve Unity, öğretmenlerin kullanması için çok sayıda öğrenme materyali ve kurs sağlar.

    Motorun resmi web sitesinde ücretsiz eğitimler, projeler, çevrimiçi eğitim ve belgeler bulunur. Motorun çok geniş bir kullanıcı topluluğu vardır, bu nedenle site gibi resmi ve resmi olmayan forumlardan cevaplar, tavsiyeler ve ilham alabilirsiniz.

    Ücretsiz destekten Premium desteğe ve kurumsal kullanıcılar için özel desteğe kadar farklı seviyelerde Unity kullanıcıları için farklı destek seviyeleri vardır.

    Sistem gereksinimleri: İşletim Sistemi: Windows XP SP2+, 7 SP1+, 8; Mac OS X 10.6+. DX9 destekli ekran kartı (gölgelendirici modeli 2.0).

    Resmi site: http://unity3d.com

  • Forumumuzda tartışın...


    Unity, çok platformlu 3D ve 2D oyunlar ve etkileşimli deneyimler oluşturmak için esnek ve güçlü bir geliştirme platformudur. Üst düzey içerik oluşturma ve en sadık ve hevesli oyuncuları ve müşterileriyle bağlantı kurma konusunda bir iş kurmayı hedefleyen herkes için eksiksiz bir ekosistemdir.

    Parlak, uçtan uca çoklu platform geliştirme deneyimini yaşayın. WebGL ve Oculus Rift gibi yeni gelenler de dahil olmak üzere en popüler platformları güvenle hedefleyin. Platformlar arası araçlarla performansı verimli bir şekilde optimize edin ve neredeyse tek tıklamayla dağıtın.

    Unity ile her iki dünyanın da en iyisini elde edin: kullanımı kolay ve derinlemesine özelleştirilebilir hazır bir çözümde üst düzey araçlar. Şaşırtıcı bir hızla tam üretime geçin. Üstün konfor ve üretkenlik için Unity'ye kendi araçlarınızı ekleyin. Süper hızlı derleme süreleriyle komut dosyası oluşturmaya dalın.

    Varlık Mağazasında doğrudan Unity Editor veya web tarayıcınızdan alışveriş yapın. Binlerce hazır ücretsiz veya satın alınabilir varlık ve üretim aracıyla, özel ihtiyaçlarınıza göre uyarlanmış bir şey bulacağınızdan emin olabilirsiniz. Çok çeşitli Düzenleyici uzantıları, eklentiler, ortamlar, modeller ve çok daha fazlası arasından seçim yapın.