Hammaga salom. Ko’pchilik meni OMUC Android guruhida moderator yoki shu hamjamiyat saytida administrator sifatida biladi. Shu bilan birgalikda men aslida Unity dasturchisiman. Avval C++ ni oliy o’quv yurtida o’rgangandim, shu bilan birgalikda Java ni Android Studio bilan birga o’rganganman va 2 yil mobil ilova dasturchisi bo’lib ishladim. 2019-yilda esa yo’nalishimni butkul o’zgartirib Unity 3D dasturida ishlab C# ni o’rgana boshladim. Boshqa dasturlash tillarida tajribam borligi va umuman olganda dasturlash mantig’ini tushunganim uchun C# ni o’zlashtirish qiyinchilik tug’dirmadi. Lekin 2015-yili ham Unity 3D da bir necha oy shug’ullanganim ham foyda berdi. Kitoblar, videodarslar va stackoverflow menga Unity 3D dasturchisi bo’lishimga katta yordam berdi. 

InVeins o'yinining logotipi
InVeins o'yinining logotipi

Hammasi qanday boshlandi?

O’zimga o’xshagan, aniqrog’i mendan aqlliroq insonlar bilan shu yilning yanvar oyida jamoa tuzdik. Jamoa nomi va logotipini o’yinda ko’rishingiz mumkin. Biz jamoa bilan bajara olishimiz uchun juda ko’p g’oyalarimiz tayyor edi. Lekin qaysi ishlanma bilan boshlashga boshimiz qotdi. 1-fevral kungi suhbatimizda dastlab o’yin qilish rejasini o’yladik. O’sha paytda koronavirus hali dunyoni zabt etmagan, Xitoydagina avjida chiqayotgan payt edi. Biz o’yinga g’oyalarni ilgari surgan paytimiz qisman koronavirus haqida ham aytdik, lekin bu juda g’alati va kulguli tuyuldi. Fevral oyida umuman o’yin ustida ishlamadik. Shundog’am ishimiz ko’p edi. Qolaversa, tayinli bir g’oyaga to’xtalmagandik ham. Lekin 27-fevral kuni Angry Birds o’yinining muallifi Toshkentga kelib INHA universitetida o’tkazgan seminariga borib qatnashganim tufayli o’yinni tuzishga motivatsiyam birdaniga oshib ketdi. Uning motivatsiyani kuchaytirishga qaratilgan gaplari va haqiqiy ma’noda muvaffaqiyat keltirgan o’yini tarixi menga qiziq tuyuldi, albatta. Seminardan chiqishim bilanoq jamoamizdagilarga bu haqida aytdim va tezroq o’yinni boshlash kerakligini o’ylardim.

Dastlabki g’oya qanday edi?

O’yindagi dastlabki g’oyada koronavirus umuman yo’q edi, bu g’oya butunlay yangi va noodatiy g’oya edi. Ushbu dastlabki g’oyani jamoamiz a’zosi o’ylab topgandi. Biz mart oyining 9-10- kunlaridan boshlab ushbu dastlabki g’oya asosida o’yinni tuzishni boshlab yubordik. Jamoamizdagi ikkita inson bilan o’yinni tuzishni boshladik. 9-16-mart kunlari o’yin ustida ishlar jadal boshlandi. Lekin shu kunlari bilsangiz dunyoda pandemiya e’lon qilinib bo’lgan, 15-mart kuni esa Toshkentda birinchi koronavirusdan kasallangan bemor qayd etilgan edi. Bu esa o’z navbatida o’yinda joriy holatdagi mavzuni ko’rsatish kerakligiga undadi. 17-mart kuni men jamoamizning telegram guruhiga o’yinni koronavirusga bog’lash haqida gap yozdim. Buni ular qo’llab-quvvatladilar va g’oyalar ustida ishlay boshladilar. Shu bilan bir necha kun ichida g’oyalar dastlabki holatga kelib qoldi. Endi asosiy ish dasturlash qoldi.

Unity 3D da dastur tuzish

O’yinni tuzish uchun Unity 3D IDE dan foydalandim. Kodlar C# tilida yozildi. Asosan https://docs.unity3d.com/ rasmiy hujjatlar sahifasidan bilmagan sintaksis qoidalarimni, funksiyalar yozilishini parallel tarzda o’rganib bordim. Kodlar yozish murakkablik tug’dirmadi, asosan mobil telefonda ham optimalroq va qotmasdan ishlashini ta’minlash biroz qiynadi. Shuning uchun ham minimal darajada yuklama tushirib, kodlarni optimalroq yozdim. Klasslar bilan ishladim, juda ko’p funksiyalar tuzdim. Veb dasturchi do’stim chiqarib bergan API orqali Global Score, ya’ni o’yinni o’ynagan dunyo bo’yicha barcha foydalanuvchilarning yagona ko’rsatkichlarini ko’rsatuvchi jadval ishlab chiqdim. 

Original 3D modellar qanday yasaldi?

3D model qiluvchi jamoamiz a’zolari esa original 3D modellar yasab berdilar. Asosan masofadan ishladik, chunki butun O’zbekiston bo’ylab karantin qoidalari qattiqlashtirilgan edi. 3D modellarni yuborishlari bilan ularni ko’rib, o’yinga to’g’ri kelish-kelmasligini aytardim. Shu bilan yetarlicha ishlar aprel oyida qilindi. Bu orqali o’yinning dastlabki qoralama versiyasini o’zimiz uchun tuzib oldik.

O’yindagi qiziqarli bonuslar tarixi

Bu ham jamoamiz a’zolarining g’oyalaridir. Suv ichish va suv ichilgandagi muvozanat saqlangan holat, tabletka orqali isitmani tushirish, masofadan turib viruslarni nishonga oluvchi kapsulalar, niqobli himoya vositasi hamma-hammasi jamoamiz a’zolarining original g’oyalaridan hosil bo’ldi. Men esa faqat ushbu g’oyalarni kodlar orqali amalga oshirdim, o’zim ham bir muncha o’zgartirishlar kiritdim, o’yinga mosladim. Bonuslarning ko’rinishlari o’zimga juda ham yoqdi. Ha, tan olish kerak, cheksiz yuguruvchi mukammal o’yinlardan ba’zi bir g’oyalar, yo’nalishlar olingan. Lekin bularni aynan inson organizmiga moslash o’zimizning tasavvurimizdan kelib chiqdi. Hattoki keragidan ortiq fikrlar keldi. Lekin biz hammasini ham 1-versiyaning o’zidayoq chiqarishimizni imkoni bo’lmadi. O’yin omadli chiqsa uning keyingi versiyalari uchun g’oyalar va ularning amalga oshirishni rejalashtirib qo’yganmiz.

O’yinni yakunlash va Play Marketga yuklash

May oyida o’yinning eng asosiy muhim qismlarini bajarib tugatdik. Yangi turdagi viruslar, dorining ko’rinishini chizib joyladik. Umuman olganda o’yinni tom ma’noda boyitdik. May oyining oxirlarida esa o’yinni tugatib, yaqin tanishlarimizga yuborib dastlabki test sinovlarini o’tkazdik.

Iyun oyida bir necha muammolar kelib chiqdi. O’yinning nomini koronavirusga bog’lagandik, lekin Google buni qabul qilmadi. Bu hol ikki marta takrorlandi, shuning uchun iyun oyi kutish bilan o’tdi. O'yindagi koronavirus so'zlarini o'chirib tashladik. 28-iyun kuni o’yinning nomini InVeins deb o’zgartirib yana yubordim. 

Play Marketdan o’yinni yuklab olish uchun yo’llanma: https://play.google.com/store/apps/details?id=com.Intecnico.Inveins

InVeins o'yinining banneri
InVeins o'yinining banneri

Yakuniy xulosa

Bu maqolada sizlarga shaxsiy tajribam bilan bo’lishdim. Sizlar bir million o’zbek dasturchilari loyihasida ta’lim olayotganingizdan xursandman. Yaqin kelajakda mukammal dasturchilar ko’plab yetishib chiqishini tilab qolaman.

Ha aytgancha, ayni paytda ikkinchi o'yin ustida ish olib borayapman. Tez kunda chiqarib qolsam, xabar beraman.