Tank Amerika diyagramlarında ustalaşıyor. Tank Masters - tanklarla ilgili mobil bulmaca oyunu

  • Mobil uygulama geliştirme
  • Hikaye, Berserk Online'ın yaratıcılarının tanklara nasıl geçmeye karar verdikleri ve bunun sonucunda ne olduğuyla ilgili.

    Bildiğiniz gibi kendine saygısı olan her oyun şirketi Tanklarla ilgili bir oyun yapmalıyım. Biz Bytex olarak bir istisna değildik.

    Tank Masters oyunu eski temanın bir çeşididir klasik oyun DOS "Alchemy" için, ancak tank inşasının gelişim tarihinin ayarını kullanır. Oyun çok basit, kurallar basit, bu nedenle oyundaki asıl önemli olan unsurların ve "tariflerin" listesi, düşünceli oynanışın yanı sıra grafikler ve sestir.

    Fikir

    Genel fikir çok hızlı bir şekilde oluşturuldu ancak yapım öncesi aşamada ayrıntılar birkaç kez değiştirildi. Başlangıçta, tüm büyük tank uluslarının karıştığı büyük bir şube planlandı. Arayüzde çok sayıda öğenin görüntülenmesi ihtiyacının farkına varılarak bu fikirden hızla vazgeçildi ve başka bir seçeneğe karar verildi: bir ulus = oyunda bir kampanya. Sonuç olarak, birçok arayüz taslağını "kürekleyerek", arayüz rahatlığı açısından bir değerlendirme aldık - her biri 10 öğeden oluşan maksimum 12 grup.

    Ana oyun ekranı seçenekleri:

    Daha sonra oyuna dahil edilmesi planlanan unsurların seçimi geldi.

    Bytex bir Rus oyun şirketi olduğundan, en yakın ve en tanıdık olanı olarak SSCB tank inşa okuluyla başlamaya karar verildi. Tanklar da dahil olmak üzere ana grupları seçmek zor olmadı. Bu, pek çok kişinin tanıdığı arabaları da içeriyordu. çevrimiçi oyun Tankların dünyası. Efsanevi "otuz dörtlü" ve IS'lerle başlayıp üretime girmeyen A-20, A-44 ve KV-13 prototipleriyle sona eriyor. Daha sonra, tanklar için daha az belirgin olan "yedek parçalar" eklenmedi: şasinin çeşitli elemanları, motor bölmesi, silahlar vb.




    Tarihsel çeşitliliği artırmak için, şu ya da bu şekilde tank inşasıyla bağlantılı ünlü tasarımcılar ve ünlü etkinlikler eklendi:


    Başlangıç

    Elbette en zor ve ilginç olanı tepki oluşturma süreciydi. Daha mantıksal bağlantılar kurmak için önceden planlanmış bazı öğelerin kaldırılması ve başkalarıyla değiştirilmesi gerekiyordu. Ayrıca görünüşte tuhaf ama oldukça mantıklı bazı tepkiler de vardı.

    Tepkilerin listesini oluştururken oyunun bağımlılık yapıcılığını, oyuncunun katılımını ve ipuçlarını kullanma motivasyonunu da unutmadık. Oyunun başlangıcındaki mevcut tepkilerin sayısı sürekli artıyor, bu nedenle oyuncunun sürece kendini kaptırması için yalnızca ilk 10-15 öğeyi toplaması gerekiyor. Bu, World of Tanks kurallarına göre MS-1 olan ilk tankın oluşturulmasına kadar devam ediyor. Daha sonra numara olası reaksiyonlar Yeni bir anahtar unsurun keşfedilmesinden sonra tekrar artmak için kademeli olarak azalır ve oyuncuyu çabaları karşılığında oyunda hızla ilerleme fırsatıyla ödüllendirir. Az sayıda bilinmeyen unsur kaldığında kabul edilebilir kombinasyonları bulmak çok zorlaşır.

    Öğelerin listesi başlangıçta bir kutudaki bir kağıt parçası üzerinde derlendi; bu, değiştirilmesi ve kontrol edilmesi çok sakıncalıydı. Bu nedenle setlerin ve reaksiyonların görsel olarak düzenlenmesine yönelik bir araç neredeyse anında uygulamaya konuldu.

    Basit bir görev için Grails gibi büyük bir biçerdöveri aldığımızdan, çerçevenin yeteneklerinin büyük ölçüde kullanıldığını tahmin etmek kolaydır. Oyun tasarımcısının rahatlığı için öğeleri AJAX kullanarak düzenleyebilirsiniz:

    Doğrulama mekanizmalarını kullanarak arka uçta gelecekteki hatalarla ilgilenmeye başladık. Ayrıca gelecekte sorun yaşamamak için, bulmaya yardımcı olan filtreler yazılmıştır. olası hatalar(kırık resimler, unutulmuş açıklamalar); veya herhangi bir gruba ait olmayan öğeleri görüntüleyen bir filtre.

    Prensip olarak elde edilemeyen unsurları aramak için komut dosyaları yazmanın faydalı olduğu ortaya çıktı. Bu tür unsurların varlığı çok büyük bir hatadır. Başlangıç ​​öğeleri (başkalarından da elde edilemeyenler) "temel" bayrağıyla işaretlenmiştir.

    Mobil uygulama

    Uygulama Unity3D kullanılarak C# dilinde uygulandı. Unity, 3D ekine rağmen 2D oyunlar geliştirmeye de oldukça uygundur. En önemli şey: Unity çerçevesinde bazı işlevler eksikse Unity Asset Store'da bir eklenti bulabilirsiniz. Eklentilerin çoğu ücretsizdir.

    Bir oyun mimarisi seçmek, geliştirme başlamadan önce verilen en önemli kararlardan biridir. Benzer temalı birçok oyunu inceledik ve farklı sahnelerde farklı ekranlar oluşturma seçeneğinin bize uygun olmadığına karar verdik. Bu, ekranlar arasında geçişin gereken düzgünlüğüne izin vermez ve geçişler değiştiğinde eklemeyi çok zorlaştırır.

    Sahneye benzer bir şeyi kendi imkanlarımızla uyguladık. Ekranlar arasında geçiş yapabilen kendi durum makinesine sahip bir ekran yöneticimiz var. Her ekran, Gizle ve Göster yöntemleriyle bir arayüz uygular ve şu türden birkaç olaya sahiptir: OnShow, OnHide. Bu bize Mecanim'i kullanarak ekran geçiş animasyonları oluşturma olanağı verdi ve bunlarla çalışmayı kolaylaştırdı.

    Geliştirmenin başlangıcında zor bir seçimle karşı karşıya kaldık: 2D geliştirmeyi basitleştiren iyi bilinen kitaplıkları kullanın (örneğin, ngui) veya risk alın ve her şeyi yeni ortaya çıkan Unity UI sistemini kullanarak uygulamaya çalışın. İkincisini seçtik ve neredeyse pişman olmadık, ancak sonunda oyun bir sprite karışımıyla sonuçlandı (en çok kullanılan) Oynanış) ve tuval (menülerde, başlıklarda, araç ipuçlarında kullanılır).

    Uygulama son derece basittir. Toplamda 7 denetleyiciye karşılık gelen 7 oyun ekranı vardır - MonoBehaviour. Bir yandan görünmez nesnelerden gelen olaylara, örneğin olaylara abone olurlar. Oyun mağazası. Öte yandan gerekirse açılır pencereler ve diyaloglar oluşturur, sesleri ve müziği kontrol ederler.

    Kullanılan kütüphaneler hakkında biraz. Eklentileri aşağıdaki özelliklere göre seçtik:

    ● eklenti gelişiyor, bir topluluk var - Unity yerinde durmuyor, uyumsuzluk sorunuyla karşılaşmak istemiyorum eski versiyon yeni Unity içeren eklenti ve geliştiricilerin eklentiyi yükseltme arzusunun olmaması;

    ● eklenti ücretsizdir veya test etmek için "ücretsiz" (paylaşılan) bir sürüm vardır - bir eklentiyi yalnızca uygun olmadığını anlamak için satın almak bize uygun değildi;

    ● açık kaynak - değil gerekli koşul, ancak son derece arzu edilir. Bazen bulunan bazı hataları acilen düzeltmeniz gerekir ve geliştiricilerin değişiklik yapmasını bekleyerek bir hafta harcamak her zaman mümkün olmayabilir.

    Verileri depolamak için, gözlerinizle kolayca görüntülenebilen ve reaksiyon düzenleyiciden kolayca dışa aktarılabilen JSON'u kullanıyoruz. Unity'de JSON ile çalışmak için seçimimiz JSONObject'e düştü - ihtiyacınız olan her şeye sahip ve oldukça yüksek bir çalışma hızına sahip; 2-3 bin öğeden oluşan reaksiyon geçmişini içeren bir listeyi bir saniyeden daha kısa sürede otomatik olarak işler. .

    Android Sürükleyici Mod- Bu, oyuncunun oyuna olan ilgisini artıran çok küçük ama çok önemli bir eklentidir; Buna bağlı olarak oyunda geçirilen süre de artıyor. Bu, Android için gerekli bir eklentidir, bu yüzden kaynakları biraz araştırmam ve "#if UNITY_ANDROID" eklemem gerekti: onlar olmadan eklenti, iOS için projenin oluşturulmasına müdahale etti. Sürükleyici mod, programınızın kullanıcıya tam ekranda gösterildiği ve gezinme çubuğu da dahil olmak üzere hiçbir sistem panelinin görünmediği bir moddur.

    Facebook evrensel bir çözüm olarak kullanılabilir. Bir oyuncuyu bir Facebook hesabına bağlamak, başarıları Graph API aracılığıyla yayınlamanıza olanak tanır. Ayrıca, sosyal medya Oyuncuyla iletişim kurmak için kullanılabilir. Bir oyuncunun birden fazla cihazı olması durumunda (örneğin, bir Windows dizüstü bilgisayar, bir Android tablet ve bir iOS telefon), sosyal ağlar aracılığıyla yetkilendirme yapmak en uygunudur. FB ekibi, Unity için bir eklenti yayınlayarak geliştiricilerin hayatını çok daha kolaylaştırdı. Yetkilendirme/paylaşım - her şey kutudan çıktığı gibi çalışır.

    DOTween– uygulama içindeki tüm animasyonlar standart Unity, Mecanim ve ara sıra eski animasyonlar kullanılarak yapılmıştır, ancak reaksiyonlar sırasında öğelerin spiral içindeki hareketinin üçüncü taraf eklentilerle yapılmasının daha kolay olduğu ortaya çıktı; bunun için, hareket başlamadan önce birkaç tane DOTween'in nesnenin hareket etmesi için bir yol oluşturduğu noktalar oluşturulur.

    Soomla- Programı aynı anda birkaç "pazara" bağlamanıza olanak tanıyan "vitrin": Google Oyun Market, iTunes Uygulama mağazası, Amazon Appstore, Windows Phone Mağazası. Bize göre bu, pek çok mağazanın desteğini birleştiren, iyi bir topluluğa sahip, hızla gelişen ve aynı zamanda ücretsiz olan tek eklentidir.

    Kütüphane uygulamayı tercüme etmek için kullanıldı Akıllı Yerelleştirme. Github'da pek çok kaynak var olumlu geribildirim varlık deposunda. CSV'ye dışa/içe aktarma var, neredeyse hiç yorum yapmadan çalışıyor. Başlangıçta öğelerin çevirisi öğe düzenleyicide gerçekleştirildi, ancak daha sonra SmartLocaliztion için anlaşılır bir şekilde XML'e hızlı bir şekilde dışa aktarma yazıldı.

    Response.addHeader("Content-Type", "text/xml; charset=utf-8") def xml = new MarkupBuilder(response.writer) xml.root() ( for (def o: nesneler) ( data([" name": o.key, "xml:space": "preserve"]) ( value(o.value)) ) ) answer.writer.flush()
    Daha sonra çeviriler Unity ortamına aktarıldı ve yerinde düzenlendi. Bu sayede çevrilen metnin bir yerlerde sınırların dışına çıkıp çıkmadığını ve sonunda her şeyin nasıl görüneceğini görmek mümkün oldu.

    Sanat tarzı

    Oyun öğelerinin listesi belli olduktan sonra iki sanatçımız grafik tasarım üzerinde çalışmaya başladı.

    İlk adım, karar vermek için oyun pencerelerinin birkaç taslağını çizmekti. dış görünüş oyunlar. Sonuç olarak, oyunun tasarımındaki ana renkler açık gri tonlar ve hakiydi, böylece küçük metinlerin okunması kolaydı, açık renkli arka plandaki resimler açıkça görülebiliyordu ve yeşilin tonları oyuncuda tankla çağrışımlar uyandırıyordu. tema.

    Doğru olanı seçmek Görsel stil, kalan arayüz pencerelerini çizmeye ve aynı zamanda nesnelerin illüstrasyonları üzerinde çalışmaya başladık. Oyunun basit mekaniğine ve genel havasına uyacak şekilde tankların ve diğer nesnelerin çizgi roman tarzında tasvir edilmesine karar verildi. İçin ton geçişleri Degradeler yerine konturlar kullanıldı (bu tekniği eski teknik literatürdeki illüstrasyonlardan ödünç aldık). İle küçük parçalar tanklar telefon ekranında görünüyordu, resimlerde biraz büyüttük, seçilen stil bununla çelişmiyordu.







    Grafiksel içerik hazır olduğunda programcılara aktarıldı ve mucizevi bir şekilde oyunda belirdi. Gün geçtikçe oyundaki öğelerin sayısı arttı. Daha sonra her tank, oyun grafiklerini çeşitlendiren bir kamuflaj deseni kazandı.

    Oyundaki tüm animasyonlar, hem programcılara hem de sanatçılara uygun olan Unity'de yapıldı. Sanatçılar, Adobe AfterEffects veya Photoshop CS6'dakine benzer bir zaman çizelgesi penceresiyle çalışmanın rahatlığını beğendiler ve programcılar, animasyonu Unity'ye aktarmanın yollarını aramaya gerek kalmamasını beğendiler.

    Seslendirme

    Geliştirmenin başında seslendirme ve müziği diğer projemizden aldık. Son sürüm Bunu bir serbest çalışandan sipariş ettik. İlk seslendirme seçeneklerini sunduğunda seslerin sürelerinin farklı olduğu ortaya çıktı. En kötüsü de süreleri bizim kullandığımız seslerden farklıydı ve bu nedenle animasyona yakışmıyordu. Bu aşamada freelance çalışana verilen ses setini içeren bir uygulama verdik. Daha sonra tüm sesler süre ve ses seviyesi açısından normalleştirildi ve birkaç yeni seslendirme fikri önerildi.

    1 numaralı hazırlık ve sürüm

    Sonuç olarak tüm bu parçaları birleştirerek oyunumuzu elde ettik. Daha sonra, bir araya getirilen uygulama, ateş ve sudan geçme testi için gönderildi. Testler 30'dan fazla farklı cihazda gerçekleştirildi. Sonuç olarak, bazı resimleri sıkıştırmak zorunda kaldık, çünkü farkı zaten yalnızca sanatçı gözle fark edebilirdi - bu bize yaklaşık 40 MB tasarruf sağladı rasgele erişim belleği. Daha sonra öğe resimlerini model sayfalarıyla birleştirdik, bu da çizim çağrılarının sayısını ~430'dan ~80'e düşürdü. Görünür olmasalar da sahnenin dışında bulunan nesnelerin kaldırılması eklendi, her birine ek çekiliş çağrıları eklendi. Oyun şu anda iPhone 4'te iyi çalışıyor ve 512 MB RAM'e sahip Android'de çalışıyor.

    Artık dikkatli ve titiz testçiler her şeyden memnun olduğuna göre, geriye sadece uygulamayı çeşitli sitelere yüklemek kalıyor. ticaret platformları ve heyecan verici lansman anını bekleyin.

    Tankların devasa canavarlardan gerçek savaş kahramanlarına dönüştüğü yirminci yüzyılın ilk yarısının muhteşem dönemine kendinizi kaptırmaya çalışın.

    Kullanıcı yorumları

    Andrucha Kanalı
    13.01.2018 — 10:57

    İnanmayacaksınız ama 14 yaşındayım)))

    Tanklar hakkında her şey
    14.01.2018 — 18:50

    Valerdos Drey
    17.01.2018 — 17:31

    İki MTO açın

    Minecraft Clash Royale
    19.01.2018 — 18:50

    Q1+Q2=kış savaşı

    Oyun Kanalı
    21.01.2018 — 11:14

    BT 2 ve BT 5'i bağlayın

    KÖYDE KEDİ MARKUS COTOFEY
    24.01.2018 — 09:14

    Oyun Kanalı
    23.01.2018 — 12:42

    BT 2 ve BT 5'i bağlayın

    Boris Lyakhov
    26.01.2018 — 04:42

    BT5 + BT 7 = Maskva'ya Şarap

    Nadka Kisya kanalı Ala Gubchak
    27.01.2018 — 08:27

    Vasya Sohumsky
    28.01.2018 — 16:10

    Mecazi olarak

    Andrucha Kanalı
    30.01.2018 — 10:53

    Max Bilinoviç
    31.01.2018 — 23:15

    Marsilya akışı
    03.02.2018 — 00:19

    Bana SSCB'den nasıl geçeceğimi söyle

    alvamar.ru

    Tank ustaları SSCB tarifleri - Tüm tarifler

    Kullanıcı yorumları

    Andrucha Kanalı
    28.09.2018 — 07:11

    İnanmayacaksınız ama 14 yaşındayım)))

    Tanklar hakkında her şey
    29.09.2018 — 20:03

    Kaç yaşındasın lütfen söyle bana 8.5

    Valerdos Drey
    01.10.2018 — 16:33

    İki MTO açın

    Minecraft Clash Royale
    04.10.2018 — 15:42

    Q1+Q2=kış savaşı

    Oyun Kanalı
    05.10.2018 — 16:07

    BT 2 ve BT 5'i bağlayın

    KÖYDE KEDİ MARKUS COTOFEY
    07.10.2018 — 10:44

    Games Channel'da Aya borcu sayesinde harita olacak diye düşündüm

    Oyun Kanalı
    07.10.2018 — 21:32

    BT 2 ve BT 5'i bağlayın

    Boris Lyakhov
    10.10.2018 — 20:27

    BT5 + BT 7 = Maskva'ya Şarap

    Nadka Kisya kanalı Ala Gubchak
    13.10.2018 — 10:55

    Boris Lyakhov yazmayı öğreniyor ve sonra yazıyor

    Vasya Sohumsky
    12.10.2018 — 01:38

    Mecazi olarak

    Andrucha Kanalı
    13.10.2018 — 23:00

    Ludmila Bilinoviç
    15.10.2018 — 12:33

    ve zaten Almanya'dayım ve SSCB'den mezun oldum

    Marsilya akışı
    18.10.2018 — 06:14

    Bana SSCB'den nasıl geçeceğimi söyle

    alena-suveniry.ru

    Tank Ustaları - tanklarla simya

    Günümüzde tanklar oyun sektörünün gerçekten önemli bir parçası haline geldi. Onların yardımıyla, dünya çapında milyonlarca insanın kalbini kazanmış olan büyük savaşlara katılabilirsiniz. Şunu da söylemekte yarar var Son zamanlarda Açık mobil cihazlar Kesinlikle dikkate değer olan bu türden giderek daha fazla orijinal gelişme ortaya çıkıyor.

    İÇİNDE bu durumda Timelines: Assault on America gibi zorlu savaşlara katılmanız gereken bir oyundan değil, tamamen farklı oyun dünyalarından bahsediyoruz.

    Oyun sürecinin özellikleri

    Bir oyun Tank Ustaları Oldukça yakın zamanda çıktı, ancak şimdiden önemli sayıda hayran kazanmayı başardı. Bu geliştirmede modern ve klasik tankların bazı detaylarını sunuyoruz. Onların yardımıyla, yetenekleri yalnızca oyundaki taktiklerimize bağlı olan kesinlikle inanılmaz ekipmanlar toplamak mümkün hale geliyor. Oyun mükemmel grafiklerin yanı sıra hiçbir simya oyununda bulunmayan çok sayıda özelliğe sahiptir.

    Oyun süreci videosu

    Google Play'den indirin | Siteden indirin

    samsung-galaxy.mobi



    Hikaye, Berserk Online'ın yaratıcılarının tanklara nasıl geçmeye karar verdikleri ve bunun sonucunda ne olduğuyla ilgili.

    Bildiğiniz gibi kendine saygısı olan her oyun şirketi tanklarla ilgili bir oyun yapmalıdır. Biz Bytex olarak bir istisna değildik.

    Tank Masters, eski klasik DOS oyunu Alchemy'nin bir çeşididir, ancak tank inşasının gelişim tarihinin ortamını kullanır. Oyun çok basit, kurallar basit, bu nedenle oyundaki asıl önemli olan unsurların ve "tariflerin" listesi, düşünceli oynanışın yanı sıra grafikler ve sestir.

    Fikir

    Genel fikir çok hızlı bir şekilde oluşturuldu ancak yapım öncesi aşamada ayrıntılar birkaç kez değiştirildi. Başlangıçta, tüm büyük tank uluslarının karıştığı büyük bir şube planlandı. Arayüzde çok sayıda öğenin görüntülenmesi ihtiyacının farkına varılarak bu fikirden hızla vazgeçildi ve başka bir seçeneğe karar verildi: bir ulus = oyunda bir kampanya. Sonuç olarak, birçok arayüz taslağını "kürekleyerek", arayüz rahatlığı açısından bir değerlendirme aldık - her biri 10 öğeden oluşan maksimum 12 grup.

    Ana oyun ekranı seçenekleri:

    Daha sonra oyuna dahil edilmesi planlanan unsurların seçimi geldi.

    Bytex bir Rus oyun şirketi olduğundan, en yakın ve en tanıdık olanı olarak SSCB tank inşa okuluyla başlamaya karar verildi. Tanklar da dahil olmak üzere ana grupları seçmek zor olmadı. Bu, çoğu kişinin çevrimiçi ortamdan tanıdığı arabaları da içeriyordu. oyun Dünyası Tankların. Efsanevi "otuz dörtlü" ve IS'lerle başlayıp üretime girmeyen A-20, A-44 ve KV-13 prototipleriyle sona eriyor. Daha sonra, tanklar için daha az belirgin olan "yedek parçalar" eklenmedi: şasinin çeşitli elemanları, motor bölmesi, silahlar vb.




    Tarihsel çeşitliliği artırmak için, şu ya da bu şekilde tank inşasıyla bağlantılı ünlü tasarımcılar ve ünlü etkinlikler eklendi:


    Başlangıç

    Elbette en zor ve ilginç olanı tepki oluşturma süreciydi. Daha mantıksal bağlantılar kurmak için önceden planlanmış bazı öğelerin kaldırılması ve başkalarıyla değiştirilmesi gerekiyordu. Ayrıca görünüşte tuhaf ama oldukça mantıklı bazı tepkiler de vardı.

    Tepkilerin listesini oluştururken oyunun bağımlılık yapıcılığını, oyuncunun katılımını ve ipuçlarını kullanma motivasyonunu da unutmadık. Oyunun başlangıcındaki mevcut tepkilerin sayısı sürekli artıyor, bu nedenle oyuncunun sürece kendini kaptırması için yalnızca ilk 10-15 öğeyi toplaması gerekiyor. Bu, World of Tanks kurallarına göre MS-1 olan ilk tankın oluşturulmasına kadar devam ediyor. Yeni bir temel unsurun keşfedilmesinden sonra olası reaksiyonların sayısı kademeli olarak azaltılarak tekrar artırılır ve oyuncu, çabaları karşılığında oyunda hızla ilerleme fırsatıyla ödüllendirilir. Az sayıda bilinmeyen unsur kaldığında kabul edilebilir kombinasyonları bulmak çok zorlaşır.

    Öğelerin listesi başlangıçta bir kutudaki bir kağıt parçası üzerinde derlendi; bu, değiştirilmesi ve kontrol edilmesi çok sakıncalıydı. Bu nedenle setlerin ve reaksiyonların görsel olarak düzenlenmesine yönelik bir araç neredeyse anında uygulamaya konuldu.

    Basit bir görev için Grails gibi büyük bir biçerdöveri aldığımızdan, çerçevenin yeteneklerinin büyük ölçüde kullanıldığını tahmin etmek kolaydır. Oyun tasarımcısının rahatlığı için öğeleri AJAX kullanarak düzenleyebilirsiniz:

    Doğrulama mekanizmalarını kullanarak arka uçta gelecekteki hatalarla ilgilenmeye başladık. Ayrıca gelecekte sorun yaşamamak için olası hataları (bozuk resimler, unutulmuş açıklamalar) bulmaya yardımcı olan filtreler yazıldı; veya herhangi bir gruba ait olmayan öğeleri görüntüleyen bir filtre.

    Prensip olarak elde edilemeyen unsurları aramak için komut dosyaları yazmanın faydalı olduğu ortaya çıktı. Bu tür unsurların varlığı çok büyük bir hatadır. Başlangıç ​​öğeleri (başkalarından da elde edilemeyenler) "temel" bayrağıyla işaretlenmiştir.

    Mobil uygulama

    Uygulama Unity3D kullanılarak C# dilinde uygulandı. Unity, 3D ekine rağmen 2D oyunlar geliştirmeye de oldukça uygundur. En önemli şey: Unity çerçevesinde bazı işlevler eksikse Unity Asset Store'da bir eklenti bulabilirsiniz. Eklentilerin çoğu ücretsizdir.

    Bir oyun mimarisi seçmek, geliştirme başlamadan önce verilen en önemli kararlardan biridir. Benzer temalı birçok oyunu inceledik ve farklı sahnelerde farklı ekranlar oluşturma seçeneğinin bize uygun olmadığına karar verdik. Bu, ekranlar arasında geçişin gereken düzgünlüğüne izin vermez ve geçişler değiştiğinde eklemeyi çok zorlaştırır.

    Sahneye benzer bir şeyi kendi imkanlarımızla uyguladık. Ekranlar arasında geçiş yapabilen kendi durum makinesine sahip bir ekran yöneticimiz var. Her ekran, Gizle ve Göster yöntemleriyle bir arayüz uygular ve şu türden birkaç olaya sahiptir: OnShow, OnHide. Bu bize Mecanim'i kullanarak ekran geçiş animasyonları oluşturma olanağı verdi ve bunlarla çalışmayı kolaylaştırdı.

    Geliştirmenin başlangıcında zor bir seçimle karşı karşıya kaldık: 2D geliştirmeyi basitleştiren iyi bilinen kitaplıkları kullanın (örneğin, ngui) veya risk alın ve her şeyi yeni ortaya çıkan Unity UI sistemini kullanarak uygulamaya çalışın. İkincisini seçtik ve neredeyse pişman olmadık, ancak sonunda oyunun bir sprite (oyunun kendisinde kullanılan) ve tuval (menüde, başlıkta, araç ipuçlarında kullanılan) karışımı olduğu ortaya çıktı.

    Uygulama son derece basittir. Toplamda 7 denetleyiciye karşılık gelen 7 oyun ekranı vardır - MonoBehaviour. Bir yandan, oyun mağazası etkinlikleri gibi görünmez nesnelerden gelen etkinliklere abone oluyorlar. Öte yandan gerekirse açılır pencereler ve diyaloglar oluşturur, sesleri ve müziği kontrol ederler.

    Kullanılan kütüphaneler hakkında biraz. Eklentileri aşağıdaki özelliklere göre seçtik:

    ● eklenti gelişiyor, bir topluluk var - Unity yerinde durmuyor, eklentinin eski sürümünün yeni Unity ile uyumsuzluğu ve geliştiricilerin eklentiyi yükseltme arzusunun olmaması sorunuyla yüzleşmek istemiyorsunuz ;

    ● eklenti ücretsizdir veya test etmek için "ücretsiz" (paylaşılan) bir sürüm vardır - bir eklentiyi yalnızca uygun olmadığını anlamak için satın almak bize uygun değildi;

    ● açık kaynak - bir önkoşul değildir ancak son derece arzu edilir. Bazen bulunan bazı hataları acilen düzeltmeniz gerekir ve geliştiricilerin değişiklik yapmasını bekleyerek bir hafta harcamak her zaman mümkün olmayabilir.

    Verileri depolamak için, gözlerinizle kolayca görüntülenebilen ve reaksiyon düzenleyiciden kolayca dışa aktarılabilen JSON'u kullanıyoruz. Unity'de JSON ile çalışmak için seçimimiz JSONObject'e düştü - ihtiyacınız olan her şeye sahip ve oldukça yüksek bir çalışma hızına sahip; 2-3 bin öğeden oluşan reaksiyon geçmişini içeren bir listeyi bir saniyeden daha kısa sürede otomatik olarak işler. .

    Android Sürükleyici Mod- Bu, oyuncunun oyuna olan ilgisini artıran çok küçük ama çok önemli bir eklentidir; Buna bağlı olarak oyunda geçirilen süre de artıyor. Bu, Android için gerekli bir eklentidir, bu yüzden kaynakları biraz araştırmam ve "#if UNITY_ANDROID" eklemem gerekti: onlar olmadan eklenti, iOS için projenin oluşturulmasına müdahale etti. Sürükleyici mod, programınızın kullanıcıya tam ekranda gösterildiği ve gezinme çubuğu da dahil olmak üzere hiçbir sistem panelinin görünmediği bir moddur.

    Facebook evrensel bir çözüm olarak kullanılabilir. Bir oyuncuyu bir Facebook hesabına bağlamak, başarıları Graph API aracılığıyla yayınlamanıza olanak tanır. Ayrıca oyuncuyla bağlantı kurmak için sosyal medya da kullanılabilir. Bir oyuncunun birden fazla cihazı olması durumunda (örneğin, bir Windows dizüstü bilgisayar, bir Android tablet ve bir iOS telefon), sosyal ağlar aracılığıyla yetkilendirme yapmak en uygunudur. FB ekibi, Unity için bir eklenti yayınlayarak geliştiricilerin hayatını çok daha kolaylaştırdı. Yetkilendirme/paylaşım - her şey kutudan çıktığı gibi çalışır.

    DOTween– uygulama içindeki tüm animasyonlar standart Unity, Mecanim ve ara sıra eski animasyonlar kullanılarak yapılmıştır, ancak reaksiyonlar sırasında öğelerin spiral içindeki hareketinin üçüncü taraf eklentilerle yapılmasının daha kolay olduğu ortaya çıktı; bunun için, hareket başlamadan önce birkaç tane DOTween'in nesnenin hareket etmesi için bir yol oluşturduğu noktalar oluşturulur.

    Soomla- Programı aynı anda birden fazla "pazara" bağlamanıza olanak tanıyan "vitrin": Google Oyun marketi, iTunes App Store, Amazon Appstore, Windows Phone Mağazası. Bize göre bu, pek çok mağazanın desteğini birleştiren, iyi bir topluluğa sahip, hızla gelişen ve aynı zamanda ücretsiz olan tek eklentidir.

    Kütüphane uygulamayı tercüme etmek için kullanıldı Akıllı Yerelleştirme. Github'da kaynaklar var, varlık mağazasında pek çok olumlu yorum var. CSV'ye dışa/içe aktarma var, neredeyse hiç yorum yapmadan çalışıyor. Başlangıçta öğelerin çevirisi öğe düzenleyicide gerçekleştirildi, ancak daha sonra SmartLocaliztion için anlaşılır bir şekilde XML'e hızlı bir şekilde dışa aktarma yazıldı.

    Response.addHeader("Content-Type", "text/xml; charset=utf-8") def xml = new MarkupBuilder(response.writer) xml.root() ( for (def o: nesneler) ( data([" name": o.key, "xml:space": "preserve"]) ( value(o.value)) ) ) answer.writer.flush()
    Daha sonra çeviriler Unity ortamına aktarıldı ve yerinde düzenlendi. Bu sayede çevrilen metnin bir yerlerde sınırların dışına çıkıp çıkmadığını ve sonunda her şeyin nasıl görüneceğini görmek mümkün oldu.

    Sanat tarzı

    Oyun öğelerinin listesi belli olduktan sonra iki sanatçımız grafik tasarım üzerinde çalışmaya başladı.

    İlk adım, oyunun görünümüne karar vermek için oyun pencerelerinin birkaç taslağını çizmekti. Sonuç olarak, oyunun tasarımındaki ana renkler açık gri tonlar ve hakiydi, böylece küçük metinlerin okunması kolaydı, açık renkli arka plandaki resimler açıkça görülebiliyordu ve yeşilin tonları oyuncuda tankla çağrışımlar uyandırıyordu. tema.

    Uygun bir görsel stil seçtikten sonra kalan arayüz pencerelerini çizmeye ve aynı zamanda nesnelerin illüstrasyonları üzerinde çalışmaya başladık. Oyunun basit mekaniğine ve genel havasına uyacak şekilde tankların ve diğer nesnelerin çizgi roman tarzında tasvir edilmesine karar verildi. Ton geçişleri için degradeler yerine vuruşlar kullanıldı (bu tekniği eski teknik literatürdeki illüstrasyonlardan ödünç aldık). Tankın küçük detaylarının telefon ekranında görünmesi için resimlerde biraz büyüttük, seçilen stil bununla çelişmedi.







    Grafiksel içerik hazır olduğunda programcılara aktarıldı ve mucizevi bir şekilde oyunda belirdi. Gün geçtikçe oyundaki öğelerin sayısı arttı. Daha sonra her tank, oyun grafiklerini çeşitlendiren bir kamuflaj deseni kazandı.

    Oyundaki tüm animasyonlar, hem programcılara hem de sanatçılara uygun olan Unity'de yapıldı. Sanatçılar, Adobe AfterEffects veya Photoshop CS6'dakine benzer bir zaman çizelgesi penceresiyle çalışmanın rahatlığını beğendiler ve programcılar, animasyonu Unity'ye aktarmanın yollarını aramaya gerek kalmamasını beğendiler.

    Seslendirme

    Geliştirmenin başında seslendirme ve müziği diğer projemizden aldık. Son sürümü bir serbest çalışandan sipariş ettik. İlk seslendirme seçeneklerini sunduğunda seslerin sürelerinin farklı olduğu ortaya çıktı. En kötüsü de süreleri bizim kullandığımız seslerden farklıydı ve bu nedenle animasyona yakışmıyordu. Bu aşamada freelance çalışana verilen ses setini içeren bir uygulama verdik. Daha sonra tüm sesler süre ve ses seviyesi açısından normalleştirildi ve birkaç yeni seslendirme fikri önerildi.

    1 numaralı hazırlık ve sürüm

    Sonuç olarak tüm bu parçaları birleştirerek oyunumuzu elde ettik. Daha sonra, bir araya getirilen uygulama, ateş ve sudan geçme testi için gönderildi. Testler 30'dan fazla farklı cihazda gerçekleştirildi. Sonuç olarak, bazı resimleri sıkıştırmak zorunda kaldık, çünkü farkı zaten yalnızca sanatçı gözle fark edebilirdi - bu bize yaklaşık 40 MB RAM tasarrufu sağladı. Daha sonra öğe resimlerini model sayfalarıyla birleştirdik, bu da çizim çağrılarının sayısını ~430'dan ~80'e düşürdü. Görünür olmasalar da sahnenin dışında bulunan nesnelerin kaldırılması eklendi, her birine ek çekiliş çağrıları eklendi. Oyun şu anda iPhone 4'te iyi çalışıyor ve 512 MB RAM'e sahip Android'de çalışıyor.

    Artık dikkatli ve titiz test uzmanları her şeyden memnun olduğuna göre, geriye kalan tek şey uygulamayı çeşitli ticaret platformlarına yüklemek ve heyecan verici lansman anını beklemek.

    Tankların devasa canavarlardan gerçek savaş kahramanlarına dönüştüğü yirminci yüzyılın ilk yarısının muhteşem dönemine kendinizi kaptırmaya çalışın.



     

    Okumak faydalı olabilir: