Kompyuteringizda o'yin yaratish uchun nima kerak. O'yin yaratish uchun dastur tanlash

Har yili kompyuter yoki mobil o'yinlarni o'ynaydigan odamlar soni ortib bormoqda. Odamlar ularni o'yinchoqlarsiz hayotlarini tasavvur qila olmaydigan geymerlar deb atashadi. Ko'pchilik ularni davolanishi kerak bo'lgan kasal deb hisoblaydi. Biroq, shu bilan birga, yangi o'yinlar yaratish orqali geymerlardan pul ishlashni o'rgangan odamlar bor. Bunday holda, ko'plab o'yinchilar o'yinni o'zlari yaratish haqida o'ylashadi.


Bugungi kunda o'yinlarni yaratish 5-10 yil oldingiga qaraganda kamroq vaqt va kuch talab qiladi. Shu maqsadda uch o'lchamli grafiklarni modellashtirish uchun turli dasturlar va o'yinlar yaratish uchun dvigatellar ishlab chiqilgan. Siz faqat sabr-toqatli bo'lishingiz kerak.

Agar siz o'z o'yiningizni yaratmoqchi bo'lsangiz, o'yin tajribasiga ega bo'lishingiz kerak. Agar foydalanuvchi juda kamdan-kam o'ynasa, yuqori sifatli mahsulotni yaratish juda qiyin bo'ladi. To'g'ri o'yinni yaratish uchun siz o'yin mantig'iga amal qilishingiz va o'yin dunyosining barcha jihatlaridan xabardor bo'lishingiz kerak.

Etarli darajada yaxshi o'yin qilish uchun siz o'yin jarayonini tasavvur qilishingiz va yangi g'oyalarni o'ylab topishingiz kerak. Agar siz noyob o'yin yaratsangiz, o'yinchilarni topish osonroq bo'ladi. Shuni esda tutish kerakki, o'yin yaratish uchun siz ushbu sohada ma'lum bilimlarga ega bo'lishingiz kerak. Siz dasturlash tillarini o'rganishingiz va uch o'lchovli muharrirlardan qanday foydalanishni o'rganishingiz kerak. Buning uchun Internetda juda ko'p turli xil maqolalar va dasturlarni topishingiz mumkin.

O'yin yaratish

Dastlab, siz o'yin yaratiladigan janrni tanlashingiz kerak. Asosiy g'oya har bir o'yinning muhim tarkibiy qismidir. Eng keng tarqalgan o'yinlar birinchi shaxs otishma janriga asoslangan. Poyga ham juda mashhur. Muayyan o'yinning mashhurligini bilish uchun ma'lum bir toifadagi ularning sonini hisoblash kifoya.

Harakat va otishma o'yinlari - bu barcha dushmanlarni o'ldirishingiz kerak bo'lgan otishma o'yinlari. Strategiya va RTS o'yinlari ham ayniqsa mashhur. Bundan tashqari, hali ham yashash huquqiga ega bo'lgan juda ko'p janrlar mavjud.

Janrni tanlagandan so'ng, siz skript yaratishni boshlashingiz kerak. O'yinni yaratishda bu juda muhim komponent. Ssenariyning boshlanishi, bosh qahramoni, dushmanlari yoki raqiblari va oxiri bo'lishi kerak. Bundan tashqari, o'yinning interfeysi va grafikasi ustida ishlashga arziydi.

Agar yangi boshlovchi o'yin yaratishni boshlasa, bu uning uchun juda qiyin jarayon bo'ladi, chunki bu yangi foydalanuvchi qila olmaydigan dvigatelni talab qiladi. Buning uchun siz maxsus o'yin dizayneridan foydalanishingiz kerak. Siz dasturlash tillarini o'rganishga harakat qilishingiz va dvigatelni o'zingiz yozishingiz yoki tayyor vositadan foydalanishingiz mumkin.

Yangi boshlanuvchilarga konstruktorlardan foydalanish tavsiya etiladi. Bu kelajakdagi o'yinning tuzilishiga ega bo'lgan maxsus dastur. Elementlar va ob'ektlarni joylashtirishingiz va skriptlarni yoqishingiz kerak. Bunday dizaynerlar o'zlarining funktsiyalari sonini doimiy ravishda kengaytirmoqdalar, shu bilan birga dasturning narxi oshib bormoqda. Agar siz o'yin konstruktoriga pul sarflashni xohlamasangiz, unda siz bepul yordamchi dasturlardan foydalanishingiz mumkin.

Agar siz o'yin dvigatellaridan foydalansangiz, siz ba'zi dasturlash bilimlariga ega bo'lishingiz kerak. Dvigatel funksiyalar va ob'ektlar to'plami bo'lganligi sababli, ishlab chiquvchi hech qanday harakatlar yaratishi shart emas. Sizga kerak bo'lgan hamma narsa allaqachon dvigatelda. Grafika yaratish va ularni skriptlarga ulash uchun maxsus muharrirlardan foydalanishingiz kerak bo'ladi.

O'z o'yiningizni yaratish juda murakkab va uzoq jarayon. Ajam foydalanuvchiga buni qabul qilish tavsiya etilmaydi, ammo qo'shimcha pulingiz bo'lsa, o'yinni ixtisoslashgan studiyalarda buyurtma qilishingiz mumkin. Bunday holda, dasturchilar barcha istaklarni inobatga oladi.

Ushbu qo'llanma o'yinni qanday yaratishni batafsil tushuntiradi: g'oyani ishlab chiqish, vositalarni tanlash va ishlab chiqish jarayonini osonlikcha oqishi va natijalarga olib kelishi uchun tashkil qiling.

Salom bolalar. Ushbu maqolada men siz bilan to'liq halol bo'laman va o'zingiz qanday qilib o'yin yaratishni aytaman. Men sizni oldindan ogohlantiramanki, video o'yinni yaratish qiyin va juda ko'p vaqt talab qiladi. Va agar sizning maqsadingiz bosqichma-bosqich qo'llanmadagi Snake, Tetris yoki boshqa o'yinlarning boshqa kloni bo'lmasa, siz bunga ko'p kuch sarflashingiz kerak bo'ladi.

Birinchi o'yinni o'tkazishga urinayotgan juda ko'p odamlar dvigatelga sho'ng'ishadi va g'oyadan voz kechishadi, chunki bu "juda qiyin", "charchadim", "men hech qanday taraqqiyotni ko'rmayapman". Aslida, bu shunchaki "noto'g'ri maqsad" tufayli paydo bo'ladigan ahmoqona bahonalar to'plami, ya'ni Witcher yoki Final Fantasy kabi darhol katta kalibrli o'yinlarni o'tkazish istagi.

Bular butun mutaxassislar jamoalari, yuzlab odamlardan iborat jamoalar bir necha yillar davomida ishlagan loyihalardir, shuning uchun siz haqiqatan ham xohlasangiz va butun umringizni sarflasangiz ham, bunday keng ko'lamli mahsulotni yarata olmaysiz.

Sizning birinchi o'yiningiz mashg'ulot, qo'pol qoralama, lekin asar emas. Hatto eng oddiy pikselli o'yinning bir darajasini yaratish dastlab juda qiyin vazifa bo'lishi mumkin va agar siz katta narsani tanlasangiz, qaerdan boshlashni hech qanday tasavvurga ega bo'lmaysiz, shuning uchun siz ko'p vaqtni talab qilmaydigan tafsilotlarga sarflaysiz. umuman ahamiyati yo'q.

Asosiy maqsad - o'zingiz o'ynashingiz mumkin bo'lgan mahsulotni yaratish. Bu ikki rangga ega chiziqli platforma bo'lishi va bajarish uchun 7 daqiqa davom etishi menga ahamiyat bermaydi. Siz buni qildingiz, qalbingizni yo'qotmadingiz, hamma narsadan voz kechishga qaror qilmadingiz, bu sizni allaqachon yaxshiroq qiladi, siz umidsizlikka tushib, taslim bo'lganlardan emassiz!

Uni onangizga, ukangizga, do'stlaringizga va boshqalarga bering. Ular tanqid qilishadi, chunki ular o'yinlarni katta loyihalar sifatida ko'rishga odatlangan. E'tibor bermang, chunki, birinchidan: siz birinchi o'yiningizni o'zingiz yaratgansiz, ikkinchidan: keyingi safar siz uni tezroq va yaxshiroq qilasiz, uchinchidan, tez orada siz ular o'ynashga ruxsat berishingizni so'raydigan mahorat darajasiga erishasiz.

Sizning o'yiningiz mahoratingizni aks ettirishi kerak. Har bir narsani ketma-ket bajarish kerak: g'oya paydo bo'ladi - siz uni amalga oshirish imkoniyatini tekshirasiz - agar imkon bo'lmasa, o'rganishga harakat qiling - ko'nikmaga ega bo'lgach, g'oyani amalga oshirasiz. Va buni har safar qilish kerak. Vaqt o'tishi bilan, Asset Store-ga qarang, ehtimol u erda siz bir necha kundan beri ovora bo'lgan parcha bordir.

Va nihoyat, bir oz xayrlashuvchi so'z: ehtimol siz o'qish yoki ishlash paytida rivojlanishga harakat qilyapsiz. Ba'zan siz vaqt topa olguningizcha haftalar o'tadi, lekin agar siz haqiqatan ham bu sohada muvaffaqiyat qozonishni istasangiz, o'sha soatlarni toping va ega bo'lgan ko'nikmalaringizni ko'paytiring. Esingizda bo'lsin, hamma taslim bo'lishi mumkin, ammo hamma ham oxiriga yeta olmaydi.

Bugungi kunda Internet turli darsliklar, o'quv videolari va bepul dasturlar bilan to'ldirilgan. Bularning barchasi bo'sh vaqti va g'oyasi ko'p bo'lgan har bir kishiga o'z kompyuter o'yinini yaratish imkonini beradi. Shu bilan birga, jarayonning o'zi va uning ketma-ketligi haqida aniq tushunchaga ega bo'lish ham kerak.

Qanday o'yin qilishim kerak?

Ehtimol, odam "Qanday qilib o'yinni o'zingiz qilish kerak?" Menda allaqachon bir fikr bor. Ko'pincha bu u o'ynagan o'yinlardan birining qandaydir modifikatsiyasi. Ehtimol, sizning sevimli o'yiningizda biror narsa etishmayapti va siz uni qo'shishga qaror qildingiz (o'yiningiz modifikatsiya qilish qobiliyatiga egami yoki yo'qligini o'ylab ko'ring: o'rnatilgan muharrir yoki MOD-vosita).

Masalan, MOBA o'yinlari janri WarCraft 3 muharririda yaratilgan (hozirgi mashhur Dota aynan muharrirning keng imkoniyatlari tufayli paydo bo'ldi).

Har holda, boshlang'ich nuqtasi g'oya bo'ladi. Bu erda siz boshlashingiz kerak.

Fikr

Ammo “Qaysi o‘yinni qilishim kerak?” degan savol tug‘ilishi mumkin. - maqola sizga g'oyani topishga yordam beradi.

O'yin g'oyangizning o'yin komponenti o'yin janri va platformasini aniqlaydi.

Kelajakdagi o'yinning janri va platformasi

Janrni tanlayotganda, qisqa va oddiy narsadan boshlash kerakligini yodda tuting. Birinchi krep ko'pincha bo'lakli bo'ladi, lekin agar siz bu krepni pishira olsangiz, rivojlanish mushaklaringiz kuchayadi va keyingi safar ko'proq narsani qila olasiz.

Keyin platforma haqida qaror qabul qiling. Bu juda muhim, chunki o'yin imkoniyatlari platformaga bog'liq. Misol uchun, tortishishning aniqligi reaktsiyaga bog'liq bo'lgan dinamik otishni o'rganish va sensorli ekranli mobil qurilmalarga e'tibor qaratish yaxshi fikr emas.

Kontseptsiya

Biroz fikr yuritganingizdan so'ng, o'tiring va o'yin tushunchasini tasvirlab bering. Avvaliga bu faqat tezislar bo'lishi mumkin, keyinchalik ular mantiqiy ravishda taqdim etilgan fikrlarga aylanadi. Agar buni qila olmasangiz, fikringizni qayta ko'rib chiqing va qarama-qarshiliklardan xalos bo'ling.

Potentsial o'yinchilarni nima jalb qilishi kerakligini, ya'ni uning falsafasini aniqlang. Masalan, kichik orol mamlakatining yagona hukmdori bo'lishni taklif qiling yoki qiruvchi samolyotni to'g'ridan-to'g'ri kokpitdan boshqaring, kerakli o'tish tugmachalarini zudlik bilan almashtiring.

Endi o'yiningizning xususiyatlariga. Ehtimol, ko'plab eksperimentchilar allaqachon o'zlarini sizning janringizda sinab ko'rishgan, ammo siz hali ham o'zingizning biror narsangizni o'ylab topishingiz kerak, aks holda loyihaga qiziqish bo'lmaydi. Mana kichik bir misol:

Misol

Kontseptsiya: kichik do'kon simulyatori.
O'ziga xoslik: Siz shaxsan yetkazib beruvchilar bilan muzokaralar olib borasiz, yangi mijozlarni jalb qilasiz va qattiq haqiqatda omon qolishga harakat qilasiz.
Muvaffaqiyatga qanday omillar ta'sir qilishini tushuntiring, shuningdek, o'yin mexanikasining asosiy xususiyatlari haqida gapiring.
Amalga oshirishni istamagan narsalarni qo'shishga urinmang. Sizning o'yiningiz pul to'lamoqchi bo'lgan narsa bo'lishi kerak.
Oxirgi qadam barcha qoralamalarni papkaga, keyin esa stol tortmasiga qo'yishdir. Bir necha hafta o'tgach, ularga qayting, chunki siz ham xohish va ishtiyoqni yo'qotasiz va hamma narsani yarim tayyor holatda qoldirgandan ko'ra, loyihani boshlashdan oldin ushbu bosqichdan o'tganingiz ma'qul.

Rivojlanish rejasi


Aniq rivojlanish rejasi sizning loyihangiz uchun mustahkam poydevor va o'yin ishlab chiqaruvchisi sifatida o'sishingiz uchun mustahkam asosdir

Ushbu reja sizning o'yiningizning skeleti bo'ladi, shuning uchun bu erda siz har bir tafsilot, har bir mikro lahza, muhim deb hisoblagan hamma narsani eslatib o'tishingiz kerak. O'yinlarni yolg'iz o'tkazadiganlar rejalarsiz amalga oshirishlari mumkin (agar ular katta tajribaga ega bo'lsa), lekin sizning rahbarligingiz ostida jamoa yoki tajribangiz bo'lsa, unda hamma narsa qayd etilishi kerak.

Dastlabki san'atingizni qachon dasturlashni yoki chizishni boshlashingizning aniq jadvali butunlay sizga bog'liq, shuning uchun men siz bilan ba'zi umumiy fikrlarni baham ko'raman, ularning buzilishi sizni bir necha hafta orqaga qaytarishi yoki hatto sizni tark etishga majbur qilishi mumkin. birinchi o'yiningizni yaratish g'oyasi.

  1. Sizning rejangiz bir oy bo'lishi kerak, ortiq emas. Shunday ekan, sezgiingizga ishoning va oddiy boshlang. Belgilangan muddatni o'tkazib yuborgandan ko'ra, erta tugatgan ma'qul.
  2. Berilgan mahsulot sizga hech narsa o'rgata olmasligini tushunganingizdan so'ng, uni javonga qo'ying va bu haqda unuting. Shu kabi loyihani noldan boshlab, o'z mahoratingizni sinab ko'rishingiz mumkin.
  3. Hatto eng yaxshi ishlab chiquvchilar ham yaxshiroq bo'lishga intilishadi, shuning uchun har bir yangi o'yin "men o'tgan safargidan yaxshiroq ishlayman" degan fikr bilan boshlanishi kerak.
  4. Rejalashtirishni e'tiborsiz qoldirmang. Har qanday loyihani ishlab chiqishda kichik "fors-major" hodisalari sodir bo'ladi va ularni oldindan aytish deyarli mumkin emas, shuning uchun ularni jadvalda yo'q qilishga sarflangan vaqtni hisobga olish osonroq. 8 soatni rejalashtirganmisiz? Ularni 12 ga aylantiring.
  5. Dizayn - bu yangi o'yin ishlab chiqaruvchisi haqida o'ylashi kerak bo'lgan oxirgi narsalardan biri. Maqsadingiz "narsalarni o'zlashtirib olish"dir, shuning uchun dam olish kunlarini rasm chizishdan ko'ra bir nechta yangi mexanikani (ular bilan tanish bo'lmagan) amalga oshirish bilan o'tkazing.
  6. Rejangizni bir necha qismlarga ajrating. Ushbu "nazorat punktlari" ga erishish motivatsiyani yaxshilaydi. Agar haftalik talablaringizni bajarishga vaqtingiz bo'lmasa, umumiy rejangizni soddalashtiring.
  7. O'zingizga juda mavhum vazifalarni qo'ymang. "Xarakteringizni rivojlantiring" o'rniga "yangi tortishish mexanikasini amalga oshiring" yoki "zarba paytida tashqi ko'rinishni o'zgartiring" ni kiriting - aniq maqsadlarga erishish osonroq.
  8. Har dushanba kuni elektron pochta emas, balki o'zingizga xat yuboring. Ular o'tgan haftada bajarilgan barcha harakatlarni o'z ichiga olishi kerak. Oy uchun barcha harflarni taqqoslab, siz taraqqiyotni aniq ko'rishingiz mumkin.
  9. Mahsulotingizni o'ynashga haftada kamida bir soat vaqt ajrating. Oxir oqibat, hech kim sizning o'yiningizni sizdan yaxshiroq qilmaydi.
  10. Ikki haftani loyiha ustida ishlamasdan o‘tkazish sizni sarosimaga solib, adashib, hammasini boshidan boshlashga majbur qiladi. Aynan shu vaqtda ko'pchilik odamlar o'z o'yinlarini yaratish g'oyasidan voz kechishadi.
  11. Ovoz bilan vaqt o'ldirish va birinchi o'yiningizda atmosferani yaratish juda ma'nosiz. Asosiysi, o'yinni rivojlantirish, chunki oddiy harakatlanuvchi piksellardan tashkil topgan asarlar mavjud.
  12. Agar siz bir soatdan ko'proq vaqt davomida biror narsa qilsangiz va hali ham qila olmasangiz, yordam so'rang. Nega forumda mavzu yaratishga juda uyatchan bo'lganingiz uchun bir hafta turasiz?
  13. O'yiningizni boshqalarga sinab ko'rishga imkon bering. Ha, tanqid darhol kirib boradi, lekin siz bunga e'tibor bermasligingiz kerak. Hatto etakchi studiyalarning loyihalari ham tez-tez tuhmat qilinadi, lekin bu ularning durdona asarlar yaratishda davom etishiga to'sqinlik qilmaydi, to'g'rimi?
  14. Sizda cheksiz resurslar yo'q, shuning uchun siz aniq, erishish mumkin bo'lgan maqsadlarni qo'yishingiz kerak.
  15. Birinchi o'yiningizni sayqallaganingizdan so'ng, darhol yangi g'oyalarni toping va yangi loyihani boshlang. Ilgari o'rganganlaringizni amalda qo'llashni unutmang.
  16. Ro'yxatdan o'chirilish.

Keling, tarkib jadvalini yaratishga o'tamiz. G'alati, bu erda syujet deyarli e'tiborga olinmaydi. Asosiysi, o'yin mexanikasining barcha jihatlarini tavsiflash va ularning ishlash tamoyilini tushuntirish. Asosan, bu o'yin qo'llanmasining asosini tashkil etuvchi tarkibdir.

Endi biz mundarijadagi har bir tezisni har bir kichik tafsilotning batafsil tavsifi bilan to'ldiramiz va buni iloji boricha aniq bajaramiz, aks holda amalga oshirish bilan bog'liq muammolar paydo bo'lishi mumkin.

Nihoyat, siz rivojlanishga jalb qilishni rejalashtirgan har bir kishiga rejangizni ko'rsatishingiz kerak. Ehtimol, ba'zi g'oyalar amalga oshirilmasligi yoki sizga qulayroq alternativalar taklif qilinishi mumkin. Ishning o'z qismi haqida aniq tushunchaga ega bo'lgan tajribali mutaxassis darhol bir nechta sharhlarni beradi.

Rivojlanish vositalarini tanlash



Dvigatel o'yiningizning yuragi, mas'uliyat bilan tanlang, maqolani o'qing

Yangi boshlanuvchilar uchun o'z dvigatelini ishlab chiqishdan ko'ra tayyor dvigatelni olish osonroq bo'ladi.
Har bir dvigatel o'ziga xos xususiyatlarga ega. Ba'zilar sizni dasturlashni o'rganishga majbur qiladi, ba'zilari esa protsedura va funktsiyani farqlashni talab qilmaydi; ularda vizual dasturlash vositalari mavjud.

Agar biz juda keng tasnifni beradigan bo'lsak, dvigatellarni ikki turga bo'lish mumkin: ikki o'lchovli loyihalar uchun (GameMaker: Studio, RPG Maker XV) va uch o'lchovli o'yinlar uchun (Unity, Unreal Development Kit va Source)

Bir nechta rasmiy video darslarini tomosha qiling va dvigatelda o'zingiz biror narsa qilishga harakat qiling. Agar bu vazifa sizga qiyin bo'lib tuyulsa, dasturchi bilan hamkorlik qilishga harakat qiling; ba'zi bolalar sizning fikringizdan ilhomlanib, uni takomillashtirishga yordam berishlari mumkin.

Prototip

Keyingi bosqich - sinov versiyasi. Bu yerda tovush va grafika muhim emas, asosiysi barcha funksiyalar aynan siz ko‘zlagandek ishlaydi. Aytgancha, sabrli bo'ling, chunki siz o'yindan zavqlanishni boshlamaguningizcha o'zgartirishlar kiritishingiz kerak bo'ladi.

Bundan tashqari, noldan tayyor prototipni yaratish zarurligiga tayyor bo'ling. Bu erda siz boshqaruv elementlarini kalibrlaysiz: u imkon qadar qulay va intuitiv bo'lishi kerak. Aks holda, o'yinchi umidsizlikda chiqish tugmachasini qidiradi.

Ushbu bosqich sizning o'yin dizayningizning jilosidir. Turli xil variantlarni izlash va sinab ko'rish bosqichi.

Grafika va ovoz

Sizga qanday ranglar oralig'i kerakligini darhol hal qiling. Agar bu oddiy 2D-platformer bo'lsa, unda hamma narsa piksellar bilan to'lib-toshgan bo'lsa, unda orkestr va butun grafik dizaynerlar jamoasini yollash vaqt va pulni behuda sarflashdir. Shu bilan birga, agar ular sizning fikringizni to'liq ifodalash uchun haqiqatan ham zarur bo'lsa, resurslarni tejamaslik kerak. Boshqa odamlarning fikrlarini birlashtiring. Yagona taqiq mualliflik huquqining buzilishidir.

Bu erda siz qo'pol san'atning eskizini chizishingiz kerak. Aytgancha, chizish imkoniyatiga ega bo'lish shart emas, chunki ko'pchilik indie loyihalari soddaligi va mashhurligi tufayli pikselli san'atdan foydalanadi. Agar siz hali ham uch o'lchamli loyihaga qaror qilsangiz, unda murakkab belgilar modellarini yaratish uchun mutaxassislarni yollashingiz kerak bo'ladi.

Va nihoyat, o'yin olamining bir nechta qismlarini yarating. Bular daraja qanday ko'rinishi yoki o'yindan tashqari belgilarning o'zaro ta'siri haqidagi tushunchalardir. O'z g'oyalaringizni hayotga tatbiq etish vaqti keldi!

Blender - bu 3D modellarni yaratish uchun oddiy va bepul muharrir.
Photoshop 2D tasvirlarni qayta ishlash uchun juda yaxshi, shuningdek, teksturalar bilan ham ajoyib ish qiladi.
net sizga pikselli tasvirni tezda yaratishga imkon beradi.
Tovushlar, grafikalar bilan bir qatorda, o'yiningizda atmosfera hissi yaratadi. Bepul dasturlar uchun tayyor ovozli kutubxonalarning katta to'plami sizning xizmatingizda va etishmayotgan ohanglarni uyda yozib olish mumkin, asosiysi mikrofonni olishdir.

Yakunlash

O'zingiz yaratgan narsani o'ynang va iloji boricha tez-tez o'ynang. Shu tarzda siz barcha qo'pollikni sezishingiz mumkin. Bitta qoidani o'rganing - elementni ideal holatga o'zgartiring yoki uni olib tashlang. Misol uchun, agar o'yin darajasidagi o'yin sizga juda monoton bo'lib tuyulsa, uni yanada xilma-xil qilishga harakat qiling.
Loyiha bir-biridan ajralib turadigan darajalar va belgilar to'plamiga aylanadigan nuqtadan qochish uchun o'yin falsafasini doimiy ravishda tekshirib turing.
Grafika va ovozni jilolang - jarayon juda ko'p mehnat talab qiladi, ammo atmosfera bunga bog'liq.

Sinov bosqichi

O'yinning dastlabki versiyasini olganingizdan so'ng (uni prototip bilan aralashtirmang), xato va xatolarni qidirishni davom eting. Chiqarilgandan keyingi birinchi kuni potentsial o'yinchilarni emas, balki ularni topsangiz yaxshi bo'ladi.

O'yin uslubingiz uchun odatiy bo'lmagan daqiqalarga e'tibor qarating. Misol uchun, xaritaning asosiy o'yin davomida ishlatilmaydigan qismlariga o'ting. Sinov ba'zan rivojlanishning o'zidan ko'proq vaqt talab etadi va uning tezligi testerlarning soni va professionalligiga bog'liq.

Agar aql bovar qilmaydigan miqdordagi xatolar mavjud bo'lsa, birinchi navbatda eng kattasini tuzating. Shuning uchun, ularni iloji boricha tezroq qidirishni boshlang - bu sizga o'zgartirishlar kiritish uchun ko'proq vaqt beradi. Bundan tashqari, do'stlaringiz va tanishlaringizni o'ynashga taklif qiling. Tashqaridan qarash sizga o'zingiz hech qachon taxmin qilmagan ko'plab nuanslarni ko'rishga imkon beradi. Bundan tashqari, u mutlaqo bepul.

Chiqarish

Reklama kampaniyasini tashkil qiling: ijtimoiy tarmoqlarga qiziqish uyg'oting, o'yin bloggerlarining sharhlariga buyurtma bering, forumga ega veb-sayt haqida unutmang, chunki muxlislar to'planish uchun joy kerak bo'ladi!
Tarqatish platformasini tanlang. Siz darhol xosting yoki maxsus serverlarga sarmoya kiritishni xohlamasligingiz dargumon, shuning uchun Steam, GOG, Humble, Play Market va shunga o'xshash mashhur platformalarga e'tibor bering. Esda tutingki, egalari xarajatlarning ma'lum foizini oladilar, shuning uchun bu masala batafsil o'rganishni talab qiladi.
Chiqarilgandan keyin ham o'yinni qo'llab-quvvatlashni unutmang. Xatolarni tuzatishda davom eting, qo'shimcha kontent chiqaring yoki to'g'ridan-to'g'ri davomiga o'ting!

Maqolada hamma narsa juda qisqacha bayon etilgan, ammo shu bilan birga o'yinning to'liq chiqarilish tsikli haqida umumiy fikr berilgan. Siz darhol millionlab dollarlarni topishga ishonmasligingiz kerak, chunki o'yinlar, birinchi navbatda, ijodkorlikdir.

Ko'pchilik sizga ishonmasligi mumkin. U erda nima bor: ehtimol siz hamma narsadan voz kechmoqchi bo'lgan bir necha oqshom bo'ladi, lekin siz taslim bo'lmasligingiz kerak. Esingizda bo'lsin: haqiqatan ham yaxshi mahsulot ko'p vaqt, pul va asablarni talab qiladi.

P.S.

Agar sizda biron bir savol bo'lsa yoki yordam kerak bo'lsa, forum bo'limiga yozing, men bildirishnomalarni olaman - men har doim javob beraman va qo'limdan kelganicha yordam beraman.

Albatta, WoW yoki StarCraft kabi zamonaviy yirik o'yin loyihalari tajribali dasturchilarning ko'p yillik mehnatlari natijasi bo'lib, ular ham katta moliyaviy investitsiyalarni talab qiladi. Bunday loyihani amalga oshirish uchun sizga kamida diplom, ba'zi tajriba va tashkilotchilik qobiliyatlari kerak. Biroq, loyihaning murakkabligi har doim ham uning muvaffaqiyatining o'lchovi emas va o'yinchilarning qiziqishini kafolatlamaydi. Va har kim o'yinlarni yaratishda o'z kuchini sinab ko'rishi mumkin, garchi ular kamroq texnik jihatdan murakkab bo'lsa ham, lekin baribir foydalanuvchilarning va, ehtimol, yirik o'yin ishlab chiqaruvchi kompaniyalarning qiziqishini uyg'otishga qodir. Buning uchun dasturlash tillarini bilishingiz shart emas.

Birinchidan, ko'pgina zamonaviy o'yinlar o'yin dunyosini o'zgartirishga imkon beruvchi vositalar bilan jihozlangan: yangi labirintlar chizish, belgilar va o'yin ob'ektlarining ko'rinishini o'zgartirish, hatto yangi vazifalar va vazifalarni loyihalash. Bu xuddi shu StarCraft yoki 3D shooter asosida o'zingizning dizayningizdagi kompyuter o'yinini yaratishga imkon beradi, unda asl o'yin juda qiyin bo'ladi. O'yinlarni yaratish uchun maxsus mo'ljallangan o'yin motorlari mavjud.

3D Game Maker - o'zingizning 3D o'yiningizni yaratishga imkon beruvchi eng mashhur dvigatellardan biri. Interfeysning g'ayrioddiy soddaligi tufayli uning yordami bilan atigi 10 daqiqada to'liq huquqli 3D o'yinni yaratish mumkin. Biz yaratiladigan o'yin janrini tanlaymiz, kerakli darajalar sonini aniqlaymiz (tizim 20 tagacha turli darajalarni loyihalash imkonini beradi) va tayyor modellar orasidan bosh qahramonni tanlaymiz. O'yin allaqachon ishga tushirilishi va sinovdan o'tkazilishi mumkin, garchi u ustida ishlash, albatta, endigina boshlangan. Oxir oqibat, o'yin hali ham eng muhim narsadan mahrum, foydalanuvchining e'tiborini va qiziqishini tortadigan narsa - syujet. Shuning uchun, shuningdek, raqiblarni tanlash va boshqa kerakli tafsilotlarni o'ylab ko'rish kerak. Ushbu o'yinni ishlab chiqish narxi 35 dollarni tashkil etadi - bu o'yin yaratuvchilar uchun juda qulay miqdor.

3D Game Studio ham 3D, ham 2D ​​oʻyinlarni yaratish uchun kuchli vosita boʻlib, amalda hech qanday dasturlash talab etilmaydi. Har qanday shablon holatlari, misollar va effektlar to'plami o'yin dizayneriga o'z fantaziyalarini amalga oshirish uchun juda keng vositalar palitrasini beradi. Tabiiy effektlar, oyna yuzalari, soyalar, shaffof yuzalar - bularning barchasi o'yin interyerlarini ishlab chiqishda to'liq ishlatilishi mumkin. O'yin interfeysining tayyor elementlari ham ishlab chiquvchiga taqdim etiladi, bu esa foydalanuvchiga o'yin bilan zamonaviy va qulay tarzda muloqot qilish imkonini beradi. Ushbu dvigatelning professional versiyasi 900 dollar turadi, ammo boshlang'ich versiyasi ancha arzon - atigi 70 dollar.

Agar 3D olamlari sizga yoqmasa, Game Maker-ga e'tibor bering - bu sizga 2D formatida kompyuter o'yinini yaratish imkonini beruvchi tasavvur uchun cheksiz imkoniyatlarni beradi. Biz ob'ektlarni tanlaymiz va ularning o'zaro ta'sirini o'ylaymiz. Tasvirlarni istalgan grafik muharrirda chizish va tizimga import qilish mumkin. O'yin ovoz effektlari va signallari bilan jihozlanishi mumkin. Interfeys juda sodda va mantiqiy, yangi boshlanuvchilar uchun ideal.

Dastur dasturlash tillaridan foydalanmasdan ikki o'lchovli o'yinlar yaratish uchun mo'ljallangan. Kod satrlari o'rniga o'yin qahramonlarining tayyor harakatlari almashtiriladi. Foydalanuvchi faqat o'yin ob'ektlarini yaratishi, ularni ikki o'lchovli spritlar yoki animatsiya bilan ta'minlashi, ob'ektlar o'rtasidagi o'zaro ta'sir qoidalarini yaratishi va ob'ektlarni darajalarda tartibga solishlari mumkin. Siz uchinchi tomon dasturlarini ishlatmasdan to'g'ridan-to'g'ri Game Maker-da grafik va animatsiyani chizishingiz mumkin.

Ushbu dastur yuqoridan pastga o'yinlar va yon ko'rinishdagi platformalarda ustunlik qiladi.

"Game Maker" ilg'or dasturchilarni ham qiziqtiradi, shuningdek, o'z dastur kodingizni qo'shish imkoniyati mavjud.

Dasturning bepul versiyasi Game Maker Pro-ning pullik versiyasiga nisbatan oddiy foydalanuvchilarni hech qanday tarzda cheklamaydi. Pullik versiya faqat haqiqiy professional dasturchilarni qiziqtiradigan murakkab dasturiy modullarga kirish imkonini beradi.


Juda oddiy 2D o'yin dizayneri. Dasturlash tillarini bilish shart emas.

Game Maker-dan farqli o'laroq, Construct 2 iOS, Android, Facebook, Chrome internet-do'koni, ish stoli Windows, Windows 8 ilovalari, Web (HTML5), Kongregate va boshqa ko'plab platformalar uchun o'yinlar yaratishi mumkin.

Bu yuqori sifatli dastur, lekin ayni paytda pulga ochko'z. O'yiningizni sotmoqchi bo'lguningizcha dastur bepul. Bunday holda siz litsenziyalangan versiyani sotib olishingiz kerak bo'ladi. Shuningdek, ishlab chiquvchilarning veb-saytida o'yiningiz uchun qurilish resurslarini sotib olishingiz mumkin bo'lgan maxsus do'kon mavjud: ovoz to'plamlari, musiqa, batafsil ko'rsatmalar.

Biz "TDS A dan Zgacha" o'quv kursini tavsiya qilamiz ("Topdan pastga otishma" janrida o'yin yaratish).


3D o'yinlar yaratish uchun dasturlar (veb-sayt)

"3D Rad" - 3D o'yin dvigatellari orasida eng arzon variant. Dasturdan butunlay bepul foydalanish mumkin va $5 to'lash orqali siz eng so'nggi yangilanishlarni ular chiqarilgan kunida olasiz (bepul versiyada yangilanishlar faqat uch oydan keyin paydo bo'ladi). Ko'pincha, bu vosita poyga o'yinlarini yaratish uchun ishlatiladi.

Dastur oddiy va tushunarli interfeysga ega, arzimas narsalar bilan og'ir emas.

"3D Rad" individual plaginlarni o'rnatishni qo'llab-quvvatlaydi, oldindan o'rnatilgan AI modellari, soya va tekstura xaritalariga ega. Onlayn o'yinlar yaratish mumkin.


NeoAxis Game Engine SDK

Oddiy interfeys va yuqori sifatli grafikaga ega ajoyib o'yin mexanizmi. Deyarli har qanday janrda o'yinlar yaratish uchun mo'ljallangan.

Ogre3D dvigateli asosida yaratilgan. Amaldagi dasturlash tili - C# va C++ va .NET platformasi, ammo tayyor harakatlar maxsus kutubxonalari tufayli dasturlashsiz amalga oshirish mumkin. Dvigatelda uchinchi tomon foydalanuvchilari tomonidan ishlab chiqilgan turli xil qo'shimchalar va kengaytmalar mavjud. 3dsMax va Maya, Autodesk Softimage va Blender uchun eksport qilish mumkin. PSSM (Parallel-Split Shadow Map) shaderlari, yorug'lik va soyalar qo'llab-quvvatlanadi.

NeoAxis Engine 4 litsenziya turi bo'yicha tarqatiladi: notijorat - notijorat loyihalar uchun bepul; Indie litsenziyasi - $95/$295 (yakka/jamoa); Tijorat – $395/995 (yakka/jamoa); Manba litsenziyasi - 9800 dollardan.

Ushbu o'yin mexanizmining asosiy afzalligi maksimal qulaylik va soddalikdir. Bundan tashqari, dvigatel mahalliy dasturchilar tomonidan ishlab chiqilgan, shuning uchun u standart til sifatida rus tiliga ega. Litsenziyalangan versiyani sotib olganingizda, siz ona tilingizda yuqori sifatli texnik yordam olasiz.


O'yin yaratish uchun kerak bo'lishi mumkin bo'lgan hamma narsani o'z ichiga olgan keng qamrovli vosita. Unity 3D to'plami DirectX va OpenGL imkoniyatlaridan to'liq foydalanadigan grafik dvigatelni, o'rnatilgan 3D model muharririni, shaderlarni, soyalarni, landshaftlarni, fizika va tovushlarni yaratish va qayta ishlash uchun alohida dasturlarni, shuningdek, boy skript kutubxonalarini o'z ichiga oladi. Unity 3D yordamida siz uchinchi tomon dasturlarini butunlay unutishingiz yoki ulardan foydalanishni minimal darajaga tushirishingiz mumkin.

Unity 3D har qanday janrdagi o'yinlarni yaratish uchun javob beradi. Qo'llab-quvvatlanadigan platformalar oddiy kompyuterlar (Windows XP/Vista/7, OSX), mobil qurilmalar (Android, iOS, Blackberry), o'yin konsollari (Wii, Playstation 3, Xbox), Internet brauzerlari (Flash, Web Player).

Maxsus hamkorlikda ishlab chiqish tizimi mavjud - Asset Server, bu sizga butun jamoaning bir qismi sifatida to'g'ridan-to'g'ri Internet orqali o'yinni ishlab chiqish imkonini beradi.

Yagona salbiy tomoni shundaki, Unity 3D-dan foydalanish uchun kompyuter dasturlashni hech bo'lmaganda o'rta darajada bilish kerak. Tayyor amaliy dasturiy yechimlarning boy kutubxonasiga va tezkor kompilyatsiyaga ega kuchli skript dvigateliga qaramay, kodning bir qismi mustaqil ravishda JavaScript yoki C# da yozilishi kerak bo'ladi.


Unreal Development Kit (UDK)

Professional o'yin ishlab chiquvchilari orasida eng mashhur o'yin dvigatellaridan biri. Unreal Tournament seriyasi, Mass Effect seriyasi, XCOM, Borderlands 2, DmC: Devil May Cry kabi o'yinlar va o'nlab va yuzlab kichik o'yinlar Unreal Engineda yaratilgan.

"UDK" quyidagi platformalarni qo'llab-quvvatlaydi: PC, Xbox 360, PlayStation 3, Wii, Android.

Ushbu dvigatel dastlab 3D otishmalarni yaratish uchun mo'ljallangan, ammo u tegishli janrlardagi o'yinlarni yaratish qobiliyatiga ega: slasherlar, sarguzashtlar, MMO o'yinlari.

O'yin mexanizmi yuz animatsiyalarini, murakkab bino arxitekturasini mukammal tarzda yaratadi va murakkab jismoniy ob'ektlarni qayta ishlaydi. UDK animatsiyalar, teksturalar, tovushlar, darajalar, modellar va dastur skriptlarini yaratish uchun barcha kerakli vositalarni o'z ichiga oladi. 1000 dan ortiq tuzilmalar, boshqa 3D modellar, standart teksturalar va tovushlarni o'z ichiga olgan o'rnatilgan kutubxona mavjud. “Unreal Script” maxsus tilida dasturlash mumkin (C++ asosida yaratilgan).

Ushbu dvigatelda yaratilgan o'yiningizni rasman nashr etishga qaror qilmaguningizcha UDK-dan butunlay bepul foydalanishingiz mumkin. Bunday holda, siz qimmat litsenziyani olishingiz kerak bo'ladi.


CryENGINE 3 bepul SDK

"CryENGINE 3" - DirectX 11 va uchinchi avlod shaderlarini qo'llab-quvvatlagan holda fotorealistik grafiklarni taqdim etuvchi zamonaviy o'yin dvigatellarining cho'qqisi. Dvigatelning uchinchi versiyasi 2009 yilda yaratilgan. Ushbu dvigatelda Far Cry va Crysis o'yinlari seriyasi, Aion onlayn o'yini, shuningdek, o'nlab unchalik mashhur bo'lmagan kompyuter o'yinlari yaratilgan.

Crytek kompaniyasi allaqachon mashhur bo'lgan ushbu o'yin mexanizmini bepul tarqatishga qaror qildi. Ammo bepul versiya faqat ushbu dvigatelda yaratilgan o'yinni rasman chiqarishni xohlamaguningizcha davom etadi. Litsenziyalangan versiya barcha shunga o'xshash dasturlardan qimmatroq, ammo bu pulga arziydi.

"CryENGINE 3" da siz platformalar uchun o'yinlar yaratishingiz mumkin: PC, PlayStation 3 va Xbox 360.

Siz teksturalarni "3ds max", "Maya" grafik dasturlaridan, shuningdek dvigatelning oldingi versiyalaridan import qilishingiz mumkin.

CryENGINE 3 dvigateli juda mashhur bo'lib chiqdi, u butun rus tilida so'zlashuvchi hamjamiyatga ega, buning yordamida siz barcha turdagi o'quv materiallarini, shuningdek, aniq savollarga javoblarni osongina topishingiz mumkin.


Bir hafta ichida noldan va byudjetsiz RPG o'yinini qanday ishlab chiqish mumkin. I qism

Bir hafta ichida RPG? Noldan? Hatto mumkinmi?
Men imkoniyatdan foydalandim va buni qildim.

Internet kichik, mustaqil (indie) o'yin ishlab chiquvchilari uchun mavjud bo'lgan axborot resurslariga to'la. Ana shunday jamoat forumlaridan birida, munozara chog‘ida, agar menga bir hafta vaqt berilsa, Windows-ning yangi o‘rnatilgan kompyuteri va yaxshi internet aloqasi bo‘lsa, bir tiyin ham sarflamasdan munosib o‘yin yaratishim mumkinligini aytishga jur’at etdim. tepasida. Yo'q, u, albatta, Halo 2 yoki bir xil darajadagi boshqa narsalar bilan raqobatlasha olmaydi (agar men bir hafta ichida bunday o'yinni yaratganimda, ishimni ancha oldin tashlagan bo'lardim), lekin bu juda qiziq bo'ladi. va o'ynash mumkin.

Tom Bampton, "Kunning o'yini"ning oylik sharhlovchisi (www.gameinaday.com) "Buning uchun boring!" Keyin u qo'shimcha shart qo'shdi - men buni mavjud o'yin dvigatellaridan foydalanmasdan qilishim kerak. Men faqat asosiy kutubxonalar/APIlardan foydalanishim mumkin.

Avvaliga men bu fikrni rad etdim. Joriy o'yin loyihasini ish joyida ishlab chiqishdan bir hafta dam olishga qo'shimcha vaqtim yo'q edi. Ammo keyin men o'yladim: jahannamga, hafta nima? Oddiy kompaniyada, masalan, E.A., ish haftasi 40 soatni tashkil qiladi. Xo'sh, nega o'yinni kalendar haftasida emas, balki 40 sof soat ichida qilmaysiz? Bu allaqachon haqiqiyroq, lekin men boshqa Tetris yoki Arkanoid yaratishni xohlamadim. Eng qiyin o'yin janrlaridan biri - rolli o'yinlar haqida nima deyish mumkin? Bu mumkin?

Bu juda qiyin bo'lishini bilardim. Ammo men taklifni qabul qildim.

Bundan tashqari, men nima bilan shug'ullanayotganimni va buni qanday amalga oshirayotganimni batafsil yozdim va rivojlanishning borishini tasvirlab berdim. Bu o‘yin ishlab chiquvchilari uchun qiziqarli bo‘lishi mumkin deb o‘yladim – yoki hech bo‘lmaganda, agar muvaffaqiyatga erisha olmasam, qanday qilib yuzimga yiqilganim haqida qiziqarli rekord bo‘lardi. Menga ega bo'lgan narsa mening soatlik faoliyatim haqida uzoq va dovdirash yozuvlar edi. O'qish zerikarli bo'lmasligi uchun uni o'zgartirishga harakat qildim. Bu qanday bo'ldi, o'zingiz baho bering.

Shunday qilib, men bir hafta ichida noldan va byudjetsiz o'yin yaratdim. Agar siz o'qishga dangasa bo'lsangiz va yakuniy mahsulot qanday ko'rinishini bilish va uning barcha xatolarini ko'rish uchun hikoyaning oxiriga tezda nazar tashlamoqchi bo'lsangiz, o'yinning Windows versiyasini bu yerdan yuklab olishingiz mumkin: http://www. rampantgames.com/hackenslash.html

REJAJATLASH
Maqsad
Apshay ibodatxonasi, Ultima III va Telengard kabi yuqoridan pastga ko'rinishi bilan 80-yillarning boshidagi eski o'yinlar uslubida eski maktab RPG-ni yarating. O'yinchi odatdagi zindondagi xonalardan o'tib, "qilich va sehr" yordamida turli xil hayvonlarga qarshi kurashadi. Asta-sekin u tajriba orttirish, darajasini ko'tarish va sehrli asbob-uskunalarni olish orqali o'z imkoniyatlarini yaxshilaydi.

Biroq, o'yin nafaqat haqiqiy jangdan iborat bo'ladi. O'yinchi shuningdek, o'tmishdagi yirtqich hayvonlarni yashirincha o'tkazib yuborish yoki ular bilan muzokaralar olib borish imkoniyatiga ega bo'ladi. Qulflangan eshiklar va sandiqlar va kutilmagan effektlarga ega bo'lgan noyob zindon xususiyatlari bo'ladi. O'yinda uzoq ta'riflar yoki dialoglar bo'lmaydi - bu asosan odatiy hack & slash bo'ladi. Yakuniy xo'jayinga duch kelguningizcha, topshiriqni bajarib, uyingizga (boshlang'ich xonangizga) eson-omon qaytguningizcha, siz yo'lda oldinga siljiysiz.

Rivojlanish qoidalari

1-qoida: Ishlab chiqish vaqti bir hafta bilan cheklangan (40 soatdan iborat)
O'yinni rivojlantirish uchun jami 40 soatdan ko'p bo'lmagan vaqt sarflanishi kerak. Bu o'yin ustida ishlash va bu haqda o'ylash uchun sarflangan vaqtni o'z ichiga oladi. Rivojlanishdagi o'n daqiqadan ortiq tanaffuslar hisobga olinmaydi. Bu 40 yuqori samarali soatlik "ideal" ish haftasi bo'ladi.

To'liq ishlaydigan alfa versiyasi 40 soat ichida tayyorlanadi. Keyinchalik tugatish, masalan, o'yinni yakuniy disk raskadrovka qilish, tarqatish uchun o'rnatuvchini yaratish umumiy vaqt ichida hisobga olinmaydi, bu bosqichda hech qanday yangi funksiya qo'shilmaydi. Rivojlanish jarayonini hujjatlashtirish ham hisobga olinmaydi.

2-qoida: Faqat bepul vositalardan foydalaning
Windows o'rnatilishi bilan birga kelgan dasturiy ta'minot bundan mustasno, iloji bo'lsa, ochiq manbadan faqat bepul dasturiy ta'minot ishlatiladi. Buning maqsadi o'yinni ishlab chiqish uchun sizga qimmat (hatto arzon) vositalar kerak emasligini ko'rsatishdir. Ushbu qoida skaner, mikrofon va raqamli kamera kabi uskunalarga taalluqli emas - agar ular sizda bo'lmasa, biz ularni kimdandir qarzga olishingiz mumkin deb taxmin qilamiz.

3-qoida: Dvigatellar yo'q, faqat standart kutubxonalar/APIlar
O'yin mavjud o'yin dvigatellaridan foydalanmasdan noldan yaratilishi kerak. O'yin dizaynerlari yoki shunga o'xshash dasturlardan foydalangan holda o'yin yoki uning qismlarini aldash yoki yaratish yo'q.

Asboblar
Kod:

Python 2.3 (http://www.python.org/)
PythonWin
PyGame (http://www.pygame.org/)
Py2exe - tarqatish uchun bajariladigan faylga nima sodir bo'lishini kompilyatsiya qilish. (http://starship.python.net/crew/theller/py2exe/)

Gimp 2.0 (http://gimp-win.sourceforge.net/)
MS Paint (Windows bilan birga keladi) - PrintScreen tugmachasi yordamida olingan skrinshotlarni kiritish uchun (GIMP ba'zi sabablarga ko'ra buni rad etdi)
Bepul teksturalar (http://www.textureartist.net/textures/index.htm) va (http://www.mayang.com/textures/) dan olingan.

Audacity (http://audacity.sourceforge.net/) va mening mikrofonim yoki bepul.

Ish jadvali (rejasi).
Jadvallar buzish uchun tuzilgan, ammo ular hali ham taraqqiyot va chiziqlarni kuzatish va kerak bo'lganda tuzatishlar kiritish uchun kerak.

1-10 soat: Asosiy arxitektura
Dvigatel va asosiy komponentlarning dizayni. Ekranda dunyoni ko'rsating. Men sinov o'yinchisini butun dunyo bo'ylab harakatlantirish va narsalarga qarash va keyin uni o'yin muharririga aylantirish qobiliyatini amalga oshirishim kerak.

11-20 soat: O'yinchi variantlari
O'yinchi uchun barcha asosiy imkoniyatlarni amalga oshirish - harakat qilish, hujum qilish, eshiklarni ochish, o'lish, narsalarni yig'ish va inventardan foydalanish. O'yinchining dunyo bilan o'zaro aloqada bo'lish imkoniyatlarini sinab ko'rish uchun atrof-muhitdagi barcha ob'ektlarning skeleti tasvirini yarating.

21-30 soat: Dunyoni jonlantirish
Sun'iy intellekt, o'yin voqealari, tuzoqlar, maxsus effektlarni qo'shing. Ushbu davrning oxiriga kelib men o'yinning barcha asosiy xususiyatlarini o'z ichiga olgan juda to'liq texnologik demoga ega bo'lishim kerak.

31-40 soat: Tarkib va ​​qoidalarni qo'shish
Texnik demodan toʻliq oʻyinni oling. Barcha qo'shimcha tarkibni qo'shing. O'yin mexanikasining to'liqligi va muvozanatiga erishing. Vaqtingiz bor hamma narsani jilolang, maxsus effektlar, animatsiya va hokazolarni qo'shing.

40 soatdan keyin: O'yinni sinovdan o'tkazish va chiqarish
Topilgan xatolarni sinab ko'ring va yo'q qiling (yangi xususiyatlarni qo'shmasdan!) Hamma narsani yig'ib oling va Internetga joylashtiring. To'liq hujjatlar.

Hackenslash dasturchi kundaligi: Haftaning o'yini

1-soat - Yovvoyi dizayn va asosiy darslar
Bu soat o'yin uchun bir nechta asosiy sinflarni yaratishga va ularni keyingi dizaynda ishlatishga sarflandi. Dunyo portal orqali bog'langan xonalar ketma-ketligi sifatida taqdim etiladi. Dunyodagi hamma narsa eski sarguzasht o'yinlarida yoki MUDlarda bo'lgani kabi xonalarga asoslangan. O'yindagi aksariyat ob'ektlar o'z o'rni va mazmuniga ega (va boshqa ob'ektlarni o'z ichiga olishi mumkin - xaritada xonalar, xonada sandiq, sandiqda qilich bo'lishi mumkin) "GameObject" sifatida taqdim etiladi ... va O'ylaymanki, qilichda bir nechta xona bo'lishi mumkin, lekin biz buni qilmaymiz.)

Men jonzot va o'yinchi ob'ektlarini yarataman
Men mavjudotlar uchun atributlar to'plamini yarataman va ularni sinfda amalga oshiraman. Ko'rinishidan, men juda ko'p RPG o'yinlarini o'ynaydigan ahmoqman. O'yin mexanikasi qanday ko'rinishi va ishlashini hali aniq bilmayman.
Men GameObject-dan meros bo'lgan xona ob'ektini yaratyapman. Xonaning kengligi, balandligi va devorlari bor - va hozircha boshqa hech narsa yo'q.

Sekin-asta men hamma narsa qanday ishlashini tushuna boshlayman va kerakli tuzatishlar kiritaman. Men hozirda PyGame-dan foydalanishga harakat qilmayapman va dastur konsoldan boshqa hech narsani ko'rsatmayapti. Lekin men barcha amalga oshirilgan ishlar katta taraqqiyot ekanligini his qilaman!

2-soat - PyGame 101
Ushbu soatning maqsadi PyGame-ni ishga tushirish va hech bo'lmaganda ekranda biror narsa chizishni boshlashdir. Darhaqiqat, men ko'p vaqtimni PyGame hujjatlarini o'qishga sarflayman, u erda nima borligini va buni qanday qilishni tushunishga harakat qilaman, chunki PyGame yoki SDL-dan foydalanish tajribam deyarli yo'q.

Soat qora rang bilan to'ldirilgan bo'sh ekranni ko'rsatadigan dastur bilan tugaydi. Ta'sirli emas. Darhaqiqat, bu deraza ortida ko'p narsa bor. O'yin tsikli, kadrlarni almashtirish, bir nechta sinflarni chaqirish va juda ko'p bo'sh narsalar mavjud. Ammo bu qora ekranni yanada ta'sirli qilmaydi.

3-soat - Agar devorlarning quloqlari bo'lsa, men ularni qattiq qoralagan bo'lardim.
Ushbu soatning maqsadi xonaning konturini devorlar bilan belgilash va uni qora ekranda ko'rsatishdir. Buni amalga oshirish uchun menga xona kerak va menga grafikalar kerak. Men GIMPda ko'p o'tirishim kerak, Internetdan yuklab olingan teksturalarni mos plitkalarga aylantirish uchun tahrirlashim kerak. Men tekstura menejeri sinfini yaratyapman. Va men namunaviy xonaning tuzilishini to'ldiraman. Men ishni osonlashtirish uchun foydalanishim mumkin bo'lgan boshqa narsalarni topish uchun PyGame hujjatlarini ko'rib chiqish uchun biroz ko'proq vaqt sarfladim.

Bir soat o'tdi. Lekin menda hali ham bir xil qora ekran bor. Hali ham devorlar yo'q edi.

4 soat - mehmonxonada bepul xona mavjud
Ba'zi sintaksis xatolari bilan kurashganimdan so'ng, men nihoyat devorlarni ekranda ko'rsatishga muvaffaq bo'ldim. To'g'ri, ular noto'g'ri ko'rsatilgan, ular ko'rsatilgan joyda emas, hatto segmentlar orasidagi bo'shliqlar bilan ham. Bu dahshatli. Ammo biroz sozlash va tahrirlash bilan men ekranda 10 dan 10 kvadratgacha bo'lgan xonaga o'xshab qoldim.

Batafsil loyiha rejasi bo'lmasa, ba'zi ishni tugatgandan so'ng, "Keyingi nima bo'ladi?" deb hayron bo'lish juda oson. Agar bitta xonani chizish yaxshi bo'lsa, ikkitasini chizish ikki barobar yaxshi bo'ladi, deb qaror qildim.

Yaratilgan xonalarni saqlash uchun men "minidungeon" faylini yaratdim.
Men "portallar" uchun mantiqni qo'shishni boshlayman - boshqa xonalarga olib boradigan devorlardagi teshiklar (va qo'shni xonalarni to'g'ri ko'rsatish uchun zarur bo'lgan barcha ofset ma'lumotlarini taqdim eting).

5-soat - Hackenslash ko'proq xonalarga ega bo'ladi

Men oyna sarlavhasini "Hackenslash!" ga o'zgartirdim. Faqat salqin bo'lgani uchun.
Men xonalarni saqlash uchun xususiyat xaritasini va bir nechta xaritalarni o'z ichiga olgan MapMaster sinfini yaratdim.
Men ikkinchi xonani qo'shib, uni portal orqali birinchisiga uladim.
Qo'shni xonalar joriy xonaga portallar orqali ulanadi va endi ekranda ko'rsatiladi.
Deraza tashqarisida qisman cho'zilgan devorlar to'g'ri ko'rsatilishi uchun men kesishdagi ba'zi xatolarni tuzatdim.

6-soat - bu vaqt davomida biz chizish ko'nikmalarimizni oshiramiz

Eshik sinfi qo'shildi va shuningdek, eshiklarni joylashtirish uchun tuzilgan xaritalar (eshik ikkita xona uchun umumiy bo'lishi kerak). (Tartibga solish: Men buni hech qachon ishlatmagan bo'lardim!)
Men yana 3 ta devor plitkalarini yaratdim va ularni bitta rasmga birlashtirdim.
Devorlarning grafik ko'rinishi turga qarab o'zgaradi.
Yuqoridan pastga qarash uchun oddiy grafik yaratyapman.

7-8 soat - aylanishlar va undovlar!

Men PyGame-da bitmaplarni qanday aylantirishni tushundim.
Men sinov o'yinchisini muammosiz aylanishga majbur qildim. Burilish burchagini to'g'rilash uchun ko'plab sozlashlar kerak.
Men PyGame-da shriftlardan qanday foydalanishni o'rgandim va matnni ko'rsatish va jonlantirish uchun ba'zi sinflar yaratyapman.
Avtomatik matnni qayta ishlash uchun sinf qo'shildi, chunki bu funksiya kelajakda tez-tez ishlatiladi.

9-11 soat - Elementlar - brrrr!

Va bu erda yana "Keyingi nima?" Degan savolni hal qilishim kerak.

Xonalar ko'proq qiziqarli elementlarga muhtoj, shuning uchun siz ularning ro'yxatini tuzishingiz kerak. Men ularni qanday tizimlashtirishni bilmayman, shuning uchun men umumiylaridan boshlashga qaror qildim. Men odatiy zindon xonasida topilishi mumkin bo'lgan uchta statik elementni taqdim etdim: gilam, ustun (devorlar bilan bir xil funktsiyaga ega blok) va narvon (uni yangi joyga ko'chirishga imkon beradi)

Men elementlarning bir nechta kafelni egallashi va har qanday darajaga aylanishi mumkinligiga qaror qildim. (Tartibga solish: Orqaga qarab, juda ahmoqona yechim - men uni amalga oshirish uchun juda ko'p vaqt sarfladim, lekin bu deyarli foydasiz bo'lib chiqdi.)

Umuman olganda, men elementlar ustida ishlash uchun taxminan uch soat vaqt sarfladim, grafik yaratish va kod yozish o'rtasida yirtilgan.

12-13 soat - Bizga o'lja kerak!

Men narsalar uchun grafik va kod yarataman. Chizish qancha vaqt olishi ajablanarli. Tasvirni tovuq panjasi bilan chizganga o'xshab ko'rinsa, bu, ayniqsa, zerikarli.

Men elementlarga juda ko'p xususiyatlarni qo'shdim, jumladan ularning narxi, o'lchami, jihozlar uchun joy va boshqalar. Ular bilan hali muloqot qilish mumkin emas, lekin hech bo'lmaganda ular xonaning to'g'ri joylarida paydo bo'ladi.

14-soat - Gilamlar

Men jadvaldan ancha orqada qoldim, nima qilishim kerak?
Qora fon juda xunuk ko'rinadi, shuning uchun xona ichidagi pollarni gilam bilan qopladim - alohida plitkalar.

Shundan so'ng, to'satdan men o'yinchining spritlariga va narsalarga shaffof fon qo'shishni unutganim ma'lum bo'ldi. Men bu nazoratsizlikni tuzatish uchun ko'p vaqt sarflashim kerak edi.

Ammo daraja hozir ajoyib ko'rinadi. Xo'sh, hech bo'lmaganda qora rangdan sovuqroq.

15-16 soat - bosing! Bosing!

Men sichqonchani boshqarish va hodisalarni qayta ishlashni oldim.
Sichqoncha yordamida belgilarni boshqarish qo'shildi. Harakat hali ham jirkanch, darajadagi silliq siljish yo'q.
O'yinchi xonadan tashqarida yurishi mumkin, to'qnashuvni tekshirish yo'q.
Men bir nechta xatolarni tuzatdim.
Men GIMPni qiynoqqa solib, chiroyli zinapoyalarni yaratdim.
.
Men rivojlanishga deyarli 17 soat sarfladim, shuning uchun men biroz asabiylasha boshladim. Men o'yinni yaratish yo'lining 2/5 qismini oldim - rivojlanishning ikkinchi "ish kuni" tugadi. Men allaqachon qilgan ishlarim ta'sirli, lekin men hali ko'p qilish kerakligini tushunaman. Asosiy o'yinchi xususiyatlarini tugatish va jadvalga moslashish uchun yana to'rt soatim bor. Bu qiyin bo'ladi... lekin men hali ham grafik chizish uchun qo'shimcha vaqt sarflaganimdan afsuslanmayman!

17-soat - peshonamizni devorga urmagunimizcha silliq harakat qilamiz

Ko'p vaqt grafikani nozik sozlash va xatolarni tuzatishga sarflandi.
To'qnashuvni aniqlash va o'yinchi harakatlanayotganda silliq aylantirish qo'shildi.
Endi o'yinchi sichqonchaning harakatiga javoban bir necha qadam (burilish) qilishi mumkin.

18-soat - Eshiklarni kesib o'tish

O'yinchi endi portallar orqali boshqa xonalarga o'tishi mumkin.
Bu qo'shni xonalar orasidagi devorlar va pollar bir-biriga yopishgan kosmetik xatoga olib keladi.
Portallarni o'tib bo'lmaydigan qilib aylantirish bilan bog'liq ko'plab xatolar tuzatildi.

19-soat - Jannatga narvon, do'zax menyusi

Akam ixtiyoriy ravishda o'yin uchun musiqa yasadi. U "Void War" uchun musiqa ijro etdi va bu juda yaxshi chiqdi. Bu menga audio (va musiqa) ijro etishim kerakligini eslatdi. Buni PyGame-da qilish juda oson, shuning uchun bu juda uzoq davom etmasligi kerak. (Tartibga solish: Men bunga hech qachon vaqt topa olmadim, afsuski, siz Hackenslash-da bitta ovozni eshitmaysiz.)

Mening keyingi maqsadim - mavjudotlar va narsalar bilan o'zaro munosabatlarni boshqarish. Menga The Sims va Neverwinter Nights-ning buni qilish usuli juda yoqadi, siz o'yin ob'ekti bilan o'zaro aloqada bo'lishni istasangiz, kontekst menyusi paydo bo'ladi. Men shunga o'xshash narsani amalga oshirishni rejalashtirmoqdaman.

Men zinapoyani o'yinchini yangi xonaga ko'chirishni o'rgataman.
Men shunga o'xshash PyGame menyusi uchun ochiq manba kodi bor-yo'qligini bilish uchun Internet va PyGame hujjatlarini bir oz ko'zdan kechirdim. Va men hech narsa topolmadim.
Men o'z menyumni yaratishni boshladim.

Soat 20-21 - Menyuda nima bor?

Men hali ham menyu ustida ishlayapman. Menyu ob'ektga osongina ulanishi mumkin, aniqrog'i, ob'ekt menyu hosil qilganga o'xshaydi, bu esa o'yinchining tanlovini qayta ishlash uchun fikr-mulohazalarni amalga oshirishni osonlashtirdi.
Men narsalar menyusi ustida ishlay boshladim. U allaqachon kerakli joyda paydo bo'ladi va elementni tanlash imkonini beradi, lekin bosilganda u hali hech narsa qilmaydi, faqat menyuni yopish tugmasi ishlaydi.

22 soat - jarayonda uxlab qoling

Men narsalar ustida ishlashni davom ettiraman - ularning funksiyalarini amalga oshirishga harakat qilaman va ularni menyu buyruqlariga javob berishga o'rgataman, shu jumladan kontekstli ma'lumotlarni qo'shish qobiliyati. Endi u kam funksiyaga ega, lekin u hali ham ishlaydi, ishlaydigan buyruq haqidagi ma'lumotlarni ko'rsatadi
Har xil harakatlarni bajarishda harakatni hisoblashni yaxshiladim, ko'proq harakatchanlikka erishdim.

Men kech bo'lganini va bu ish uchun belgilangan soatdan ancha oshib ketganimni sezdim. Agar men umumiy rivojlanish vaqtiga e'tibor bermaganimda, ehtimol ertalabgacha u erda o'tirgan bo'lardim. Ammo vaqtim cheklanganligi sababli, deyarli behuda ketgan bir soat haqiqatan ham yomon xabar. Vaqt tor bo'lganda ustuvorliklar qanday o'zgarishi qiziq. Qanday bo'lmasin, men yotaman.

23-soat - jangovar parametrlar!

Men birinchi soatda yaratilgan ba'zi sinf atributlarini o'zgartiryapman (yaxshi, endigina boshlayapman).
Yuqori o'ng burchakda men o'yinchining imkoniyatlarini ko'rsatadigan panelni yarataman.
Men ushbu oynani shriftlarga qaraganda tezroq chiziladigan rasmga aylantirish orqali optimallashtirdim. Ushbu rasm faqat u bilan bog'liq belgilar parametrlari o'zgarganda yangilanadi.

24 soat - O'yinchi menyusi

Variantlar oynasi uchun optimallashtirishni yakunladim.
O'yinchi belgi ustiga bosganida paydo bo'ladigan qalqib chiquvchi menyu yaratildi.
Men iksirlardan foydalanish, afsun qilish va hokazolar uchun tezkor menyu yaratdim.
Menyudagi ba'zi xatolarni tuzatdim.

25-soat - pol va devorlarni arralashdan oldin (qayta).

Bugun ertalab miyamda bir fikr paydo bo'ldi (miya haqiqatan ham shunchalik kattaki, u juda ko'p g'oyalarni o'zida mujassamlashtira oladimi?) qo'shni xonalarda devorlarning bir-birining ustiga chiqishi muammosini qanday hal qilish kerak (o'n sakkizinchi soat tavsifiga qarang). Devorning yarmini bo'yab qo'ysam-chi? Shunday qilib, hech qanday o'xshashlik bo'lmaydi va o'xshashliklarni aniqlash va tuzatish uchun murakkab mantiqni qo'shishning hojati yo'q.

Men bu g‘oyani amalga oshirish ustida ish boshlayapman. Afsuski, aslida, ixtiro qilingan soddalashtirish xonani (xususan, pollarni) ko'rsatishni yanada murakkablashtiradi va uni men kutganimdek tez amalga oshirib bo'lmaydi. Ushbu tizimni yaratish va disk raskadrovka qilish uchun taxminan bir soat vaqt ketdi. Lekin bunga arziydi.

Kodni disk raskadrovka qilishda xonalar o'rtasida o'tish bilan bog'liq yana bir nechta xatolarni topdim.

BREAK - Inqiroz!

Men hozirgina ishlab chiqish uchun ajratilgan vaqtning 3/5 qismidan ko'prog'i o'tganini va o'yin tugashiga o'n besh soatdan kamroq vaqt qolganini angladim. O'yinning kerakli funktsiyalari jadvalini ko'rib chiqdim va har birining amalga oshirilishi uchun o'rtacha bir soat kerakligini hisoblab, men hamma narsani amalga oshirish uchun yigirma besh soat vaqt kerakligini tushundim. Bundan o'n soat ko'proq. Loyiha rasman xavf ostida.

Men belgilangan muddatdan oshib ketolmayman. Yordamchini jalb qilish yoki kod/resurslarni sotib olish ham mumkin emas, chunki men o'yinni 40 soat ichida yolg'iz o'zim qilishim shart. Men qanday qilib yanada samarali ishlashni aniqlashim kerak - lekin men allaqachon maksimal mahsuldorlikka erishish uchun qattiq ishlayapman. Boshqa tanlovim yo‘qdek, funksionallikni qayta ko‘rib chiqishim va qaysi funksiyalarni o‘yindan chiqarib tashlashni hal qilishim kerak.

Eshiklar: Kes! Men o'yinda eshiklar yasashni juda xohlayman. Bu funksiyadan voz kechish juda achinarli, ayniqsa men u bilan bir muncha vaqt ishlaganim uchun. Ammo sun'iy intellekt kabi qilinadigan ishlar hali juda ko'p. Ularni ishga tushirish uchun esa 2-3 soat kerak bo‘lardi, menda yo‘q.
Inventarizatsiya: soddalashtiring! Qo'shimcha inventar va qurollarni o'z xohishiga ko'ra o'zgartirish qobiliyatini unuting. Olingan va joriy uskunaga aylanmagan barcha narsalar darhol pulga aylanadi.
Qopqonlar: soddalashtiring! Men ularni faollashtirish uchun qiziqarli va turli oqibatlarga ega bo'lgan turli xil tuzoqlarga ega bo'lishni xohlayman. Taqdir emas. Tuzoqlar oddiy vizual effektga ega bo'ladi, zarar etkazadi va tasodifiy yirtqich hayvonga duch kelish imkoniyatini vaqtincha oshiradi
Yoylar (Kichik qurollar): Kes! O'yinda faqat jangovar qurollar bo'ladi, siz afsunlar bilan masofadan hujum qilishingiz mumkin.
O'yinni saqlash/yuklash: soddalashtiring! Siz dunyoning holatini emas, balki faqat xarakteringizni saqlab qolishingiz mumkin. (EDIT: Men ham buni qilmaganman!)
Zarrachalar tizimi: chetga qo'ying! Zarrachalar tizimini yaratish ustuvorliklar ro'yxatining pastki qismiga ko'chirildi. Men ularni bajarishim kerakligiga shubha qilaman. Men afsunlar uchun zarrachalar yordamida ta'sirchan vizual effektlar yaratmoqchiman... lekin bu hech qachon sodir bo'lmaydi.
Sehrlar: soddalashtiring! Menda afsunlar haqida jiddiy tushuncha bor edi: ularni varaqlar shaklida topish mumkin edi va ularning soni o'ndan ortiq edi. Bu qayg'uli, lekin faqat bir nechta afsunlar bo'ladi: shifolash, zarar etkazish, zaiflashtirish, kuchaytirish va tiklash. Yuqori darajaga ko'tarilayotganda, o'yinchiga sehrli nuqtalar sonini ko'paytirish orqali sehrlarni kuchaytirishga ruxsat berish mumkin.
Monster va o'yinchi animatsiyalari: Kes! Men buni tez qilish uchun yaxshi rassom emasman.

Nima qilmasligimni (yoki nimani keyinroq qoldiraman) qaror qabul qilayotganda, birinchi navbatda nima qilish kerakligini hal qilish ham bir xil darajada muhimdir.

O'yinda menimcha, juda muhim bo'lgan juda ko'p narsalar rejalashtirilgan - tuzoqlarni topish, maxfiy eshiklar (hozir maxfiy o'tish joylari) va sandiqlarni yorish. Ammo o'yinning asosi - jang. Shuning uchun men bunga e'tibor qaratishga qaror qildim, buni o'zimning ustuvor vazifamga aylantirdim. Men o'z oldimga maqsad qo'ydim: bir yarim soat ichida mening yirtqich hayvonlarim shunchalik jonlanadiki, ularni o'ldirish mumkin.

Ajoyib, biz ustuvorliklarni saralab oldik, rivojlanishni davom ettiramiz.

26-soat - Keling, zarlarni tashlaymiz

Men "zarlar" mexanikasi ustida ishlayapman, bu mexanizm yordamida tasodifiylik elementi o'yinga kiritiladi. Haqiqiy zarlar uchun bizda cheklov yo'qligi sababli, biz xohlagan diapazonda tasodifiy raqamni olishimiz mumkin. Masalan, 1 dan 33 gacha yoki 6 dan 17 gacha. Shunday qilib, men zarlarni otishim mumkin, mening hujumim va dushmanning himoyasi bilan solishtiraman. Agar o'ralgan raqam himoyadan yuqori bo'lsa, hujum muvaffaqiyatli bo'ladi.

Misol uchun, mening umumiy hujum qiymatim bor deylik 15. Men 10 ta himoyaga ega bo'lgan yirtqich hayvonga hujum qilaman. Mening imkoniyatim 25 tadan 15 tasi (25 =15 +10) yoki 5 tadan 3 tasi. Shunday qilib, oʻyin 1 dan 25 gacha tasodifiy son hosil qiladi va agar u oʻndan yuqori boʻlsa, men gʻalaba qozonaman.

Etkazilgan zararni hisoblash uchun biroz boshqacha usul qo'llaniladi. Men himoyachiga "zirh" parametrini va hujumchiga "zarar" qo'shdim. Men 1 dan ularning yig'indisigacha tasodifiy son hosil qilaman va keyin zirhni ayiraman. Agar natija bittadan kam bo'lsa, hech qanday zarar ko'rilmaydi. Aks holda, u olingan natijaga teng bo'ladi. Shunday qilib, agar 10 ta zararga ega bo'lgan yirtqich hayvon 5 ta zirhli o'yinchiga hujum qilsa, o'yin 1 dan 15 gacha raqam hosil qiladi, undan 5 ni olib tashlaydi, bu etkazilgan zarardir.

Ushbu tushuntirish va tavsif uni amalga oshirishdan ko'ra ko'proq vaqt talab qildi.

Soat oxirida men zindonni ko'rsatish maydonining hajmini qisqartirdim, endi o'ngdagi oynaning qismi to'liq foydalanuvchi interfeysiga bag'ishlangan, bu o'zgarish unumdorlikni biroz oshirdi. Shuningdek, o'yinchi harakati kadrlar tezligiga ta'sir qilmasligiga ishonch hosil qildim.