რა გჭირდებათ თქვენს კომპიუტერში თამაშის შესაქმნელად. თამაშის შესაქმნელად პროგრამის არჩევა

ყოველწლიურად იზრდება იმ ადამიანების რიცხვი, ვინც თამაშობს კომპიუტერულ ან მობილურ თამაშებს. ხალხი მათ მოთამაშეებს უწოდებს, რომლებიც ვერ წარმოიდგენენ თავიანთ ცხოვრებას სათამაშოების გარეშე. ბევრი მიიჩნევს მათ ავადმყოფ ადამიანებად, რომლებსაც მკურნალობა სჭირდებათ. მაგრამ ამავე დროს, არიან ადამიანები, რომლებმაც ისწავლეს გეიმერებისგან ფულის გამომუშავება ახალი თამაშების შექმნით. ამ შემთხვევაში ბევრი მოთამაშე ფიქრობს თამაშის შექმნაზე.


დღეს თამაშების შექმნას ნაკლები დრო და ძალისხმევა სჭირდება, ვიდრე 5-10 წლის წინ. ამ მიზნით შემუშავებულია სამგანზომილებიანი გრაფიკის მოდელირებისა და თამაშების შექმნის ძრავების სხვადასხვა პროგრამები. თქვენ უბრალოდ უნდა იყოთ მოთმინება.

თუ გსურთ შექმნათ თქვენი საკუთარი თამაში, უნდა გქონდეთ გარკვეული სათამაშო გამოცდილება. თუ მომხმარებელი ძალიან იშვიათად თამაშობს, საკმაოდ რთული იქნება მაღალი ხარისხის პროდუქტის დამზადება. სწორი თამაშის შესაქმნელად, თქვენ უნდა მიჰყვეთ თამაშის ლოგიკას და იცოდეთ თამაშის სამყაროს ყველა ასპექტი.

საკმარისად კარგი თამაშის შესაქმნელად, თქვენ უნდა წარმოიდგინოთ გეიმპლეი და მოიფიქროთ ახალი იდეები. თუ თქვენ შექმნით უნიკალურ თამაშს, უფრო ადვილი იქნება მოთამაშეების პოვნა. უნდა გვახსოვდეს, რომ თამაშის შესაქმნელად თქვენ უნდა გქონდეთ გარკვეული ცოდნა ამ სფეროში. თქვენ უნდა ისწავლოთ პროგრამირების ენები და ისწავლოთ სამგანზომილებიანი რედაქტორების გამოყენება. ამისათვის თქვენ შეგიძლიათ იპოვოთ ბევრი სხვადასხვა სტატია და პროგრამა ინტერნეტში.

თამაშის შექმნა

თავდაპირველად, თქვენ უნდა აირჩიოთ ჟანრი, რომელშიც შეიქმნება თამაში. მთავარი იდეა ყველა თამაშის მნიშვნელოვანი კომპონენტია. ყველაზე გავრცელებული თამაშები დაფუძნებულია პირველი პირის შუტერის ჟანრზე. რბოლა ასევე ძალიან პოპულარულია. კონკრეტული თამაშის პოპულარობის გასარკვევად, უბრალოდ დათვალეთ მათი რაოდენობა გარკვეულ კატეგორიაში.

მოქმედებითი და მსროლელი თამაშები არის სროლა, რომელშიც თქვენ უნდა მოკლათ ყველა მტერი. ასევე განსაკუთრებით პოპულარულია სტრატეგიული და RTS თამაშები. გარდა ამისა, ჯერ კიდევ არსებობს უამრავი ჟანრი, რომლებსაც ასევე აქვთ სიცოცხლის უფლება.

ჟანრის არჩევის შემდეგ, თქვენ უნდა დაიწყოთ სცენარის შექმნა. ეს ძალიან მნიშვნელოვანი კომპონენტია თამაშის შექმნისას. სცენარს უნდა ჰქონდეს დასაწყისი, მთავარი გმირი, მტრები ან კონკურენტები და დასასრული. ასევე ღირს თამაშის ინტერფეისზე და გრაფიკაზე მუშაობა.

თუ დამწყები თამაშის შექმნას დაიწყებს, ეს მისთვის საკმაოდ რთული პროცესი იქნება, ვინაიდან ის მოითხოვს ძრავას, რომელსაც დამწყები მომხმარებელი ვერ ამზადებს. ამისათვის თქვენ უნდა გამოიყენოთ სპეციალური თამაშის დიზაინერი. შეგიძლიათ სცადოთ პროგრამირების ენების სწავლა და თავად დაწეროთ ძრავა ან გამოიყენოთ მზა.

დამწყებთათვის რეკომენდებულია კონსტრუქტორების გამოყენება. ეს არის სპეციალური პროგრამა, რომელსაც აქვს მომავალი თამაშის სტრუქტურა. თქვენ უნდა მოათავსოთ ელემენტები და ობიექტები და ჩართოთ სკრიპტები. ასეთი დიზაინერები მუდმივად აფართოებენ თავიანთი ფუნქციების რაოდენობას, ხოლო პროგრამის ფასი იზრდება. თუ არ გსურთ ფულის დახარჯვა თამაშის კონსტრუქტორზე, მაშინ შეგიძლიათ გამოიყენოთ უფასო კომუნალური საშუალებები.

თუ იყენებთ თამაშის ძრავებს, უნდა გქონდეთ გარკვეული პროგრამირების ცოდნა. ვინაიდან ძრავა არის ფუნქციებისა და ობიექტების კოლექცია, დეველოპერს არ სჭირდება რაიმე მოქმედებების შექმნა. ყველაფერი რაც თქვენ გჭირდებათ უკვე ძრავშია. თქვენ მოგიწევთ სპეციალური რედაქტორების გამოყენება გრაფიკის შესაქმნელად და სკრიპტებთან დასაკავშირებლად.

საკუთარი თამაშის შექმნა ძალიან რთული და ხანგრძლივი პროცესია. არ არის რეკომენდებული ახალბედა მომხმარებლისთვის ამის აღება, მაგრამ თუ დამატებითი ფული გაქვთ, შეგიძლიათ შეუკვეთოთ თამაში სპეციალიზებული სტუდიებიდან. ამ შემთხვევაში, პროგრამისტები გაითვალისწინებენ ყველა სურვილს.

ეს გზამკვლევი დეტალურად განმარტავს, თუ როგორ უნდა შექმნათ თამაში: განავითარეთ იდეა, შეარჩიეთ ინსტრუმენტები და მოაწყეთ განვითარების პროცესი ისე, რომ ის ადვილად მიედინება და მიგვიყვანს შედეგებამდე.

Გამარჯობა ბიჭებო. ამ სტატიაში მე ვიქნები სრულიად გულწრფელი თქვენთან და გეტყვით როგორ შექმნათ თამაში თავად. წინასწარ გაფრთხილებთ, რომ ვიდეო თამაშის გაკეთება რთული და ძალიან შრომატევადია. და თუ თქვენი მიზანი არ არის გველის, ტეტრისის ან სხვა თამაშის კლონი ნაბიჯ-ნაბიჯ გაკვეთილიდან, დიდი ძალისხმევა მოგიწევთ ამაში.

ძალიან ბევრი ადამიანი, რომელიც ცდილობს თავისი პირველი თამაშის გაკეთებას, თავდავიწყებით ჩაყვინთა ძრავში და მიატოვებს იდეას, რადგან ეს არის „ძალიან რთული“, „დაღლილი ვარ“, „არავითარ პროგრესს ვერ ვხედავ“. სინამდვილეში, ეს მხოლოდ სულელური საბაბების ერთობლიობაა, რომლებიც ჩნდება „არასწორი მიზნის“ გამო, ანუ დიდი კალიბრის თამაშების დაუყონებლივ მიღების სურვილი, როგორიცაა The Witcher ან Final Fantasy.

ეს ის პროექტებია, რომლებზეც სპეციალისტების მთელი გუნდი, ასობით კაციანი გუნდები მუშაობდნენ რამდენიმე წლის განმავლობაში, ასე რომ, თუნდაც ძალიან გინდოდეს და მთელი ცხოვრება გაატარო, ასეთ მასშტაბურ პროდუქტს ვერ გააკეთებ.

თქვენი პირველი თამაში არის ვარჯიში, უხეში მონახაზი, მაგრამ არა შედევრი. უმარტივესი პიქსელების თამაშის ერთი დონის შექმნაც კი შეიძლება თავიდანვე დაუღალავი ამოცანა იყოს და თუ რაიმე დიდს აირჩევთ, უბრალოდ წარმოდგენა არ გექნებათ საიდან დაიწყოთ, ასე რომ თქვენ დიდ დროს დახარჯავთ დეტალებზე, რომლებიც არა საერთოდ არ აქვს მნიშვნელობა.

მთავარი მიზანია შექმნათ პროდუქტი, რომლის თამაში თავადაც შეგეძლებათ. არ მაინტერესებს ეს არის თუ არა ხაზოვანი პლატფორმერი ორი ფერის მქონე და 7 წუთი სჭირდება. შენ ეს გააკეთე, გული არ დაგწყდა, არ გადაგიწყვეტია ყველაფრის დათმობა, რაც უკვე უკეთესს გხდის, შენ არ ხარ იმათგანი, ვინც იმედგაცრუებულია და ნებდება!

მიეცით ის თქვენს დედას, ძმას, მეგობრებს, ნებისმიერ სხვას, რომ ითამაშოთ. ისინი გააკრიტიკებენ, რადგან მიჩვეული არიან თამაშების მასიურ პროექტებად აღქმას. ყურადღებას ნუ მიაქცევთ, რადგან, ჯერ ერთი: თქვენ თვითონ შექმენით თქვენი პირველი თამაში, მეორე: შემდეგ ჯერზე თქვენ გახდებით მას უფრო სწრაფად და უკეთესად და მესამე, მალე მიაღწევთ უნარების იმ დონეს, რომელსაც ყველა მოგთხოვთ, რომ ნება მიეცით ითამაშოთ.

თქვენი თამაში უნდა ასახავდეს თქვენს უნარებს. ყველაფერი თანმიმდევრულად უნდა გაკეთდეს: ჩნდება იდეა - თქვენ ამოწმებთ მისი განხორციელების შესაძლებლობას - თუ არ გაქვთ შესაძლებლობა, შეეცადეთ ისწავლოთ - უნარი რომ შეიძინეთ, ახორციელებთ იდეას. და ეს უნდა გაკეთდეს ყოველ ჯერზე. დროთა განმავლობაში, გადახედეთ Asset Store-ს, ალბათ იქ უკვე არის ფრაგმენტი, რომელსაც რამდენიმე დღეა აყუდებდით.

დაბოლოს, ცოტა განშორების სიტყვა: სავარაუდოდ, თქვენ ცდილობთ განვითარებას სწავლის ან მუშაობის დროს. ხანდახან გადის კვირები, სანამ დროს გამონახავთ, მაგრამ თუ ნამდვილად გსურთ გახდეთ წარმატებული ამ სფეროში, იპოვეთ ეს საათები და გაზარდეთ თქვენი უნარების რაოდენობა. დაიმახსოვრე, ყველას შეუძლია დანებება, მაგრამ ყველას არ შეუძლია ბოლომდე მიაღწიოს.

დღეს ინტერნეტი სავსეა სხვადასხვა გაკვეთილებით, სასწავლო ვიდეოებით და უფასო პროგრამული უზრუნველყოფით. ეს ყველაფერი საშუალებას აძლევს ყველას, ვისაც აქვს ბევრი თავისუფალი დრო და იდეა, შექმნას საკუთარი კომპიუტერული თამაში. თუმცა, ასევე აუცილებელია თავად პროცესის და მისი თანმიმდევრობის მკაფიო გაგება.

რა თამაში გავაკეთო?

სავარაუდოდ, ადამიანი დაინტერესებულია "როგორ გავაკეთოთ თამაში საკუთარ თავს?" მე უკვე მაქვს იდეა. ყველაზე ხშირად ეს არის ერთ-ერთი მოდიფიკაცია, რომელიც მან ითამაშა. შესაძლოა თქვენს საყვარელ თამაშს რაღაც აკლია და თქვენ გადაწყვიტეთ მისი დამატება (იფიქრეთ, აქვს თუ არა თქვენს თამაშს მოდიფიკაციის შესაძლებლობები: ჩაშენებული რედაქტორი თუ MOD-ინსტრუმენტი).

მაგალითად, MOBA თამაშების ჟანრი შეიქმნა WarCraft 3 რედაქტორში (ახლა პოპულარული Dota გამოჩნდა ზუსტად რედაქტორის ფართო შესაძლებლობების წყალობით).

ნებისმიერ შემთხვევაში, ამოსავალი წერტილი იქნება იდეა. აქედან უნდა დაიწყო.

იდეა

მაგრამ მხოლოდ იმ შემთხვევაში, თუ გაინტერესებთ, "რომელი თამაში უნდა გავაკეთო?" — სტატია დაგეხმარებათ იდეის პოვნაში.

თქვენი თამაშის იდეის გეიმპლეი კომპონენტი განსაზღვრავს თამაშის ჟანრს და პლატფორმას.

მომავალი თამაშის ჟანრი და პლატფორმა

ჟანრის არჩევისას გაითვალისწინეთ, რომ რაღაც მოკლე და მარტივიდან უნდა დაიწყოთ. პირველი ბლინი ყველაზე ხშირად მუწუკია, მაგრამ თუ შეძლებთ ამ ბლინის გამოცხობას, თქვენი განვითარების კუნთები გაძლიერდება და შემდეგ ჯერზე მეტის გაკეთებას შეძლებთ.

შემდეგ გადაწყვიტეთ პლატფორმა. ეს წარმოუდგენლად მნიშვნელოვანია, რადგან თამაშის შესაძლებლობები დამოკიდებულია პლატფორმაზე. მაგალითად, დინამიური მსროლელის გაკეთება, სადაც გასროლის სიზუსტე დამოკიდებულია რეაქციაზე და სენსორული ეკრანის მქონე მობილურ მოწყობილობებზე ფოკუსირება არ არის კარგი იდეა.

Შინაარსი

როგორც კი აზრები გექნებათ, დაჯექით და აღწერეთ თამაშის კონცეფცია. თავდაპირველად ეს შეიძლება იყოს მხოლოდ თეზისები, რომლებიც შემდეგ გადაიქცევა ლოგიკურად წარმოდგენილ აზრებად. თუ ამას ვერ ახერხებთ, გადახედეთ თქვენს იდეას და მოიშორეთ წინააღმდეგობები.

განსაზღვრეთ რა უნდა მიიზიდოს პოტენციურ მოთამაშეებს, ანუ თავად მისმა ფილოსოფიამ. მაგალითად, შესთავაზეთ გახდეთ პატარა კუნძულოვანი ქვეყნის ერთადერთი მმართველი, ან მართოთ მოიერიშე თვითმფრინავი პირდაპირ კაბინიდან, სასწრაფოდ შეცვალოთ საჭირო გადამრთველი.

ახლა თქვენი თამაშის მახასიათებლებზე. სავარაუდოდ, უამრავმა ექსპერიმენტატორმა უკვე სცადა საკუთარი თავი თქვენს ჟანრში, მაგრამ თქვენ მაინც უნდა მოიფიქროთ რაიმე საკუთარი, წინააღმდეგ შემთხვევაში პროექტის მიმართ ინტერესი არ იქნება. აი პატარა მაგალითი:

მაგალითი

Შინაარსი: პატარა მაღაზიის სიმულატორი.
თავისებურება: თქვენ პირადად აწარმოებთ მოლაპარაკებებს მომწოდებლებთან, იზიდავთ ახალ კლიენტებს და უიმედოდ ცდილობთ გადარჩეს მძიმე რეალობაში.
ახსენით რა ფაქტორები ახდენს გავლენას წარმატებაზე და ასევე ისაუბრეთ თამაშის მექანიკის ძირითად მახასიათებლებზე.
ნუ ეცდებით ისეთი ელემენტების დამატებას, რომელთა განხორციელებაც არ გსურთ. თქვენი თამაში უნდა იყოს ის, რისთვისაც გსურთ გადაიხადოთ.
ბოლო ნაბიჯი არის ყველა მონახაზის ჩადება საქაღალდეში, შემდეგ კი მაგიდის უჯრაში. ორიოდე კვირის შემდეგ დაუბრუნდით მათ, რადგან შესაძლოა დაკარგოთ სურვილიც და ვნებაც და უმჯობესია ამ ეტაპის გავლა პროექტის დაწყებამდე, ვიდრე ყველაფერი ნახევრად დასრულებულ მდგომარეობაში დატოვოთ.

Განვითარების გეგმა


მკაფიო განვითარების გეგმა არის მყარი საფუძველი თქვენი პროექტისთვის და მყარი საფუძველი თქვენი, როგორც თამაშის შემქმნელის ზრდისთვის

ეს გეგმა იქნება თქვენი თამაშის ჩონჩხი, ამიტომ აქ თქვენ უნდა ახსენოთ ყველა დეტალი, ყოველი მიკრო მომენტი, ყველაფერი, რასაც თვლით მნიშვნელოვნად. ვინც თამაშებს მარტო აკეთებს, შეუძლია გეგმების გარეშე (იმ პირობით, რომ დიდი გამოცდილება აქვს), მაგრამ თუ გუნდი ან გამოცდილება გყავთ თქვენი ხელმძღვანელობით, მაშინ ყველაფერი უნდა ჩაიწეროს.

მკაფიო განრიგი, თუ როდის უნდა დაიწყოთ თქვენი პირველი ნამუშევრის პროგრამირება ან დახატვა, მთლიანად თქვენზეა დამოკიდებული, ამიტომ მე გაგიზიარებთ რამდენიმე ზოგად პუნქტს, რომელთა დარღვევამ შეიძლება რამდენიმე კვირით უკან დაგიბრუნოთ ან თუნდაც აიძულოთ უარი თქვათ. მთლიანად თქვენი პირველი თამაშის შექმნის იდეა.

  1. თქვენი გეგმა უნდა იყოს ერთი თვის განმავლობაში, არა მეტი. ასე რომ, ენდეთ თქვენს ინტუიციას და დაიწყეთ მარტივი. სჯობს ადრე დაასრულო, ვიდრე ვადის გამოტოვება.
  2. როგორც კი მიხვდები, რომ მოცემული პროდუქტი ვერაფერს გასწავლის, დადე თაროზე და დაივიწყე. თქვენ შეგიძლიათ შეამოწმოთ თქვენი უნარები მსგავსი პროექტის ნულიდან დაწყებით.
  3. საუკეთესო დეველოპერებიც კი ცდილობენ გახდნენ უკეთესები, ამიტომ ყოველი ახალი თამაში უნდა დაიწყოს ფიქრით "მე უკეთესად გავაკეთებ, ვიდრე წინა ჯერზე".
  4. ნუ უგულებელყოფთ დაგეგმვას. ნებისმიერი პროექტის შემუშავებისას ხდება მცირე „ფორსმაჟორული“ მოვლენები და მათი პროგნოზირება თითქმის შეუძლებელია, ამიტომ უფრო ადვილია განრიგში მათი აღმოფხვრაზე დახარჯული დროის გათვალისწინება. დაგეგმე 8 საათი? თავისუფლად გადააქციეთ ისინი 12-ად.
  5. დიზაინი არის ერთ-ერთი ბოლო რამ, რაზეც ახალი თამაშის შემქმნელმა უნდა იფიქროს. თქვენი მიზანია „გააკეთოთ საქმეები“, ამიტომ შაბათ-კვირას გაატარეთ რამდენიმე ახალი მექანიკის (მათთვის უცნობი) დანერგვა, ვიდრე ხატვა.
  6. დაყავით თქვენი გეგმა რამდენიმე ნაწილად. ამ „გამშვები პუნქტების“ მიღწევა საკმაოდ კარგად ზრდის მოტივაციას. თუ არ გაქვთ დრო თქვენი ყოველკვირეული მოთხოვნების შესასრულებლად, გაამარტივეთ თქვენი საერთო გეგმა.
  7. ნუ დაუსვით საკუთარ თავს ძალიან აბსტრაქტული ამოცანები. იმის ნაცვლად, რომ „განავითარე შენი პერსონაჟი“, შეიყვანეთ „დანერგეთ ახალი სროლის მექანიკა“ ან „შეცვალეთ გარეგნობა დარტყმის დროს“ - ბევრად უფრო ადვილია მკაფიო მიზნების მიღწევა.
  8. გაუგზავნეთ საკუთარ თავს წერილები და არა ელფოსტა ყოველ ორშაბათს. ისინი უნდა შეიცავდეს გასული კვირის განმავლობაში შესრულებულ ყველა მოქმედებას. თვის ყველა ასოს შედარებით, ნათლად ხედავთ პროგრესს.
  9. კვირაში მინიმუმ ერთი საათი დაუთმეთ თქვენი პროდუქტის თამაშს. საბოლოო ჯამში, არავინ გახდის თქვენს თამაშს თქვენზე უკეთესს.
  10. პროექტზე მუშაობის გარეშე ორი კვირის გატარება დაბნეულობისა და დაკარგვის შეგრძნებას გაგიჩენთ, რაც გაიძულებთ, ყველაფერი თავიდან დაიწყოთ. სწორედ ამ დროს ადამიანების უმეტესობა უარს ამბობს და უარს ამბობს საკუთარი თამაშის შექმნის იდეაზე.
  11. ხმაზე დროის მოკვლა და ატმოსფეროს შექმნა თქვენს პირველ თამაშში წარმოუდგენლად უაზროა. მთავარია გეიმპლეის განვითარება, რადგან არის ჩვეულებრივი მოძრავი პიქსელებისგან შემდგარი შედევრები.
  12. თუ რამეს ერთ საათზე მეტ ხანს აკეთებთ და მაინც ვერ ახერხებთ, დახმარება სთხოვეთ. რატომ დგახართ ერთი კვირა, რადგან ძალიან მორცხვი იყო ფორუმზე თემის შექმნა?
  13. მიეცით სხვებმა სცადონ თქვენი თამაში. დიახ, კრიტიკა მაშინვე შემოვა, მაგრამ ამას ყურადღება არ უნდა მიაქციოთ. წამყვანი სტუდიების პროექტებსაც კი ხშირად ცილისწამებენ, მაგრამ ეს ხელს არ უშლის მათ განაგრძონ შედევრების გაკეთება, არა?
  14. თქვენ არ გაქვთ შეუზღუდავი რესურსები, ამიტომ უნდა დაისახოთ რეალისტური, მიღწევადი მიზნები.
  15. როგორც კი გააუმჯობესებთ თქვენს პირველ თამაშს, დაუყოვნებლივ იპოვნეთ ახალი იდეები და განახორციელეთ ახალი პროექტი. გახსოვდეთ, გამოიყენეთ ის, რაც ადრე ისწავლეთ.
  16. შეამოწმეთ.

მოდით გადავიდეთ სარჩევის შექმნაზე. უცნაურად საკმარისია, რომ შეთქმულება აქ თითქმის მთლიანად იგნორირებულია. მთავარია თამაშის მექანიკის ყველა ასპექტის აღწერა და მათი მოქმედების პრინციპის ახსნა. ძირითადად, ეს არის სარჩევი, რომელიც ქმნის თამაშის სახელმძღვანელოს საფუძველს.

ახლა ჩვენ ვავსებთ სარჩევის თითოეულ თეზისს ყოველი პატარა დეტალის დეტალური აღწერით და ამას ვაკეთებთ რაც შეიძლება ნათლად, წინააღმდეგ შემთხვევაში შეიძლება წარმოიშვას პრობლემები განხორციელებასთან დაკავშირებით.

და ბოლოს, თქვენ უნდა აჩვენოთ თქვენი გეგმა ყველას, ვისაც გეგმავთ განვითარებაში ჩართვას. შესაძლოა, ზოგიერთი იდეა არ განხორციელდეს, ან უფრო კომფორტული ალტერნატივები შემოგთავაზოთ. სამუშაოს მისი ნაწილის მკაფიო გაგების შემდეგ, გამოცდილი სპეციალისტი დაუყოვნებლივ გააკეთებს რამდენიმე კომენტარს.

განვითარების ინსტრუმენტების შერჩევა



ძრავა არის თქვენი თამაშის გული, აირჩიეთ პასუხისმგებლობით, წაიკითხეთ სტატია

დამწყებთათვის უფრო ადვილი იქნება მზა ძრავის აღება, ვიდრე საკუთარის განვითარება.
თითოეულ ძრავას აქვს საკუთარი მახასიათებლები. ზოგი გაიძულებთ ისწავლოთ პროგრამირება, ზოგი კი არ მოგთხოვთ განასხვავოთ პროცედურა და ფუნქცია; მათ აქვთ ვიზუალური პროგრამირების ხელსაწყოები.

თუ მივცემთ უკიდურესად ფართო კლასიფიკაციას, მაშინ ძრავები შეიძლება დაიყოს ორ ტიპად: ორგანზომილებიანი პროექტებისთვის (GameMaker: Studio, RPG Maker XV) და სამგანზომილებიანი თამაშებისთვის (Unity, Unreal Development Kit და Source)

ნახეთ რამდენიმე ოფიციალური ვიდეო გაკვეთილი და შეეცადეთ თავად გააკეთოთ რამე ძრავში. თუ ეს ამოცანა რთულად მოგეჩვენებათ, სცადეთ ითანამშრომლოთ პროგრამისტთან; ზოგიერთი ბიჭი შეიძლება შთაგონებული იყოს თქვენი იდეით და დაგეხმაროთ მის დახვეწაში.

Პროტოტიპი

შემდეგი ეტაპი არის სატესტო ვერსია. ხმას და გრაფიკას აქ მნიშვნელობა არ აქვს, მთავარია ყველა ფუნქცია ზუსტად ისე მუშაობდეს, როგორც შენ გინდოდა. სხვათა შორის, იყავით მომთმენი, რადგან მოგიწევთ ცვლილებების შეტანა, სანამ არ დაიწყებთ გეიმპლეიით სიამოვნებას.

ასევე, მოემზადეთ მზა პროტოტიპის ნულიდან შექმნის აუცილებლობისთვის. აქ თქვენ დაკალიბრებთ კონტროლს: ის უნდა იყოს რაც შეიძლება მოსახერხებელი და ინტუიციური. წინააღმდეგ შემთხვევაში, მოთამაშე იმედგაცრუებული წავა გასასვლელი ღილაკის მოსაძებნად.

ეს ფაზა არის თქვენი თამაშის დიზაინის გაპრიალება. სხვადასხვა ვარიანტების ძიების და ცდის ეტაპი.

გრაფიკა და ხმა

დაუყოვნებლივ გადაწყვიტეთ ფერების რა დიაპაზონი გჭირდებათ. თუ ეს არის უბრალო 2D პლატფორმერი, სადაც ყველაფერი პიქსელებითაა სავსე, მაშინ ორკესტრის და გრაფიკული დიზაინერების მთელი გუნდის დაქირავება დროისა და ფულის კარგვაა. ამავდროულად, არ უნდა დაზოგოთ რესურსები, თუ ისინი ნამდვილად აუცილებელია თქვენი იდეის სრულად გამოხატვისთვის. თავისუფლად გააერთიანეთ სხვა ადამიანების იდეები. ერთადერთი აკრძალვა არის საავტორო უფლებების დარღვევა.

ეს არის სადაც თქვენ უნდა დახაზოთ უხეში ხელოვნება. სხვათა შორის, სულაც არ არის აუცილებელი ხატვა, რადგან ინდი პროექტების უმეტესობა იყენებს პიქსელ ხელოვნებას მისი სიმარტივისა და პოპულარობის გამო. თუ მაინც გადაწყვეტთ სამგანზომილებიან პროექტს, მაშინ მოგიწევთ პროფესიონალების დაქირავება რთული პერსონაჟების მოდელების შესაქმნელად.

და ბოლოს, შექმენით თამაშის სამყაროს რამდენიმე ფრაგმენტი. ეს არის ცნებები იმის შესახებ, თუ როგორ გამოიყურება დონე, ან როგორ ურთიერთობენ პერსონაჟები თამაშის გარეთ. დროა განახორციელოთ თქვენი იდეები!

Blender არის მარტივი და უფასო რედაქტორი 3D მოდელების შესაქმნელად.
Photoshop შესანიშნავია 2D სურათების დასამუშავებლად და ასევე შესანიშნავად ასრულებს ტექსტურებს.
net საშუალებას გაძლევთ სწრაფად შექმნათ პიქსელ ხელოვნება.
ხმები, გრაფიკასთან ერთად, ქმნის ატმოსფეროს გრძნობას თქვენს თამაშში. უფასო პროგრამებისთვის მზა ხმის ბიბლიოთეკების უზარმაზარი ნაკრები თქვენს სამსახურშია და დაკარგული მელოდიების ჩაწერა შესაძლებელია სახლში, მთავარია მიიღოთ მიკროფონი.

დასრულება

ითამაშეთ რაც შექმენით და რაც შეიძლება ხშირად დაუკარით. ამ გზით თქვენ შეამჩნევთ ყველა უხეშობას. ისწავლეთ ერთი წესი - ან შეცვალეთ ელემენტი იდეალურ მდგომარეობაში, ან წაშალეთ იგი. მაგალითად, თუ დონის გეიმპლეი ძალიან მონოტონურად მოგეჩვენებათ, შეეცადეთ უფრო მრავალფეროვანი გახადოთ.
მუდმივად შეამოწმეთ თამაშის ფილოსოფია, რათა თავიდან აიცილოთ ის წერტილი, სადაც პროექტი გადაიქცევა დაშლილი დონისა და პერსონაჟების გროვად.
გააპრიალეთ გრაფიკა და ხმა - პროცესი ძალიან შრომატევადია, მაგრამ ატმოსფერო მასზეა დამოკიდებული.

ტესტირების ეტაპი

თამაშის წინასწარი ვერსიის მიღების შემდეგ (არ აურიოთ იგი პროტოტიპთან), გააგრძელეთ შეცდომების და შეცდომების ძებნა. უკეთესი იქნება, თუ მათ იპოვით და არა პოტენციურ მოთამაშეებს გამოშვებიდან პირველ დღეს.

ფოკუსირება მომენტებზე, რომლებიც უჩვეულოა თქვენი სათამაშო სტილისთვის. მაგალითად, გადადით რუკის ნაწილებზე, რომლებიც არ გამოიყენება ძირითადი თამაშის დროს. ტესტირებას ზოგჯერ უფრო მეტი დრო სჭირდება, ვიდრე თავად განვითარება და მისი სიჩქარე დამოკიდებულია ტესტერების რაოდენობასა და პროფესიონალიზმზე.

თუ შეცდომების წარმოუდგენელი რაოდენობაა, ჯერ გაასწორეთ ყველაზე დიდი. ამიტომ, რაც შეიძლება ადრე დაიწყეთ მათი ძებნა – ეს მეტ დროს მოგცემთ ცვლილებების განსახორციელებლად. გარდა ამისა, მოიწვიე შენი მეგობრები და ნაცნობები სათამაშოდ. გარედან შეხედვა საშუალებას მოგცემთ შეამჩნიოთ ბევრი ნიუანსი, რომელსაც თქვენ თვითონ ვერასდროს გამოიცნობდით. გარდა ამისა, ის აბსოლუტურად უფასოა.

გათავისუფლება

მოაწყეთ სარეკლამო კამპანია: გააღვიძეთ ინტერესი სოციალურ ქსელებში, შეუკვეთეთ თამაშის ბლოგერების მიმოხილვები, ნუ დაივიწყებთ ვებსაიტს ფორუმით, რადგან ფანებს დასჭირდებათ სადმე შეკრება!
აირჩიეთ სადისტრიბუციო პლატფორმა. ნაკლებად სავარაუდოა, რომ თქვენ მოგინდებათ დაუყოვნებლივ ინვესტირება ჰოსტინგში ან სპეციალურ სერვერებში, ამიტომ ყურადღება მიაქციეთ პოპულარულ პლატფორმებს, როგორიცაა Steam, GOG, Humble, Play Market და მსგავსი. გახსოვდეთ, რომ მფლობელები ანაზღაურებენ ღირებულების გარკვეულ პროცენტს, ამიტომ ეს საკითხი დეტალურ შესწავლას მოითხოვს.
არ დაგავიწყდეთ თამაშის მხარდაჭერა გამოშვების შემდეგაც კი. გააგრძელეთ შეცდომების გამოსწორება, დამატებითი შინაარსის გამოშვება ან პირდაპირ გაგრძელებაში გადასვლა!

სტატიაში მოცემულია ყველაფერი ძალიან მოკლედ, მაგრამ ამავე დროს იძლევა ზოგად წარმოდგენას თამაშის სრული გამოშვების ციკლის შესახებ. დაუყოვნებლივ არ უნდა გქონდეთ იმედი მილიონობით დოლარის გამომუშავებაზე, რადგან თამაშები, უპირველეს ყოვლისა, კრეატიულობაა.

ბევრმა შეიძლება არ დაიჯეროს თქვენი. რა არის იქ: ალბათ რამდენიმე საღამო იქნება, როცა ყველაფრის დათმობა გინდა, მაგრამ არ უნდა დანებდე. გახსოვდეთ: ნამდვილად კარგი პროდუქტი მოითხოვს დიდ დროს, ფულს და თქვენს ნერვებს.

P.S.

თუ თქვენ გაქვთ რაიმე შეკითხვა ან გჭირდებათ დახმარება, მოგვწერეთ ფორუმის განყოფილებაში, მე ვიღებ შეტყობინებებს - ყოველთვის გიპასუხებთ და დაგეხმარებით, როგორც შემიძლია.

რა თქმა უნდა, თანამედროვე დიდი სათამაშო პროექტები, როგორიცაა WoW ან StarCraft, გამოცდილი პროგრამისტების მრავალწლიანი მუშაობის შედეგია, რაც ასევე მოითხოვს მნიშვნელოვან ფინანსურ ინვესტიციებს. ასეთი პროექტის ასაღებად საჭიროა მინიმუმ დიპლომი, გარკვეული გამოცდილება და ორგანიზაციული ნიჭი. თუმცა, პროექტის სირთულე ყოველთვის არ არის მისი წარმატების საზომი და არ იძლევა მოთამაშეების ინტერესის გარანტიას. და ყველას შეუძლია სცადოს საკუთარი ძალები თამაშების შექმნაში, თუნდაც ისინი ტექნიკურად ნაკლებად რთული იყოს, მაგრამ მაინც შეუძლიათ გამოიწვიონ როგორც მომხმარებლების, ასევე, შესაძლოა, თამაშების მწარმოებელი დიდი კომპანიების ინტერესი. ამისათვის თქვენ არც კი გჭირდებათ პროგრამირების ენების ცოდნა.

პირველ რიგში, თანამედროვე თამაშების უმეტესობა აღჭურვილია ინსტრუმენტებით, რომლებიც საშუალებას გაძლევთ შეცვალოთ თამაშის სამყარო: დახატოთ ახალი ლაბირინთები, შეცვალოთ პერსონაჟების და თამაშის ობიექტების გარეგნობა, თუნდაც ახალი მისიების და ამოცანების შემუშავება. ეს საშუალებას იძლევა, იგივე StarCraft-ის ან 3D მსროლელის საფუძველზე, თქვენივე დიზაინის კომპიუტერული თამაში, რომელშიც ორიგინალური თამაში ძალიან რთული იქნება. არსებობს სათამაშო ძრავები, რომლებიც სპეციალურად შექმნილია თამაშების შესაქმნელად.

3D Game Maker არის ერთ-ერთი ყველაზე პოპულარული ძრავა, რომელიც საშუალებას გაძლევთ შექმნათ თქვენი საკუთარი 3D თამაში. ინტერფეისის არაჩვეულებრივი სიმარტივის წყალობით, მისი დახმარებით შესაძლებელია სრულფასოვანი 3D თამაშის შექმნა სულ რაღაც 10 წუთში. ვირჩევთ თამაშის ჟანრს, რომელიც უნდა შეიქმნას, განვსაზღვრავთ საჭირო დონეების რაოდენობას (სისტემა საშუალებას გაძლევთ შექმნათ 20-მდე სხვადასხვა დონე) და მზა მოდელებიდან ვირჩევთ მთავარ გმირს. თამაშის გაშვება და ტესტირება უკვე შესაძლებელია, თუმცა მასზე მუშაობა, რა თქმა უნდა, ახლახან დაიწყო. ყოველივე ამის შემდეგ, თამაში ჯერ კიდევ მოკლებულია ყველაზე მნიშვნელოვანს, ნივთს, რომელიც იპყრობს მომხმარებლის ყურადღებას და ინტერესს - სიუჟეტი. ამიტომ, ასევე აუცილებელია მოწინააღმდეგეების შერჩევა და სხვა საჭირო დეტალების გააზრება. ამ თამაშის განვითარების ღირებულებაა $35 - თანხა საკმაოდ ხელმისაწვდომია თამაშის შემქმნელებისთვის.

3D Game Studio არის ძლიერი ინსტრუმენტი როგორც 3D, ასევე 2D თამაშების შესაქმნელად და პრაქტიკულად არ არის საჭირო პროგრამირება. ყველა სახის შაბლონის სიტუაციების, მაგალითებისა და ეფექტების ნაკრები აძლევს თამაშის დიზაინერს ხელსაწყოების საკმაოდ ფართო პალიტრას თავისი ფანტაზიების რეალიზებისთვის. ბუნებრივი ეფექტები, სარკის ზედაპირები, ჩრდილები, გამჭვირვალე ზედაპირები - ყველა ამ ატრიბუტის სრულად გამოყენება შესაძლებელია სათამაშო ინტერიერის შემუშავებისას. მზა თამაშის ინტერფეისის ელემენტები ასევე მიეწოდება დეველოპერს, რაც მომხმარებელს საშუალებას აძლევს დაუკავშირდეს თამაშს ელეგანტური და მოსახერხებელი გზით. ამ ძრავის პროფესიონალური ვერსია ეღირება $900, მაგრამ დამწყები ვერსია გაცილებით იაფია - მხოლოდ $70.

თუ 3D სამყარო არ მოგხიბლავთ, ყურადღება მიაქციეთ Game Maker-ს - ის წარმოსახვის უსაზღვრო არეალს გაძლევთ, რაც საშუალებას გაძლევთ შექმნათ კომპიუტერული თამაში 2D ფორმატში. ჩვენ ვირჩევთ ობიექტებს და ვფიქრობთ მათი ურთიერთქმედებით. სურათების დახატვა შესაძლებელია ნებისმიერ გრაფიკულ რედაქტორში და იმპორტირებული სისტემაში. თამაში შეიძლება აღჭურვილი იყოს ხმოვანი ეფექტებითა და სიგნალებით. ინტერფეისი ძალიან მარტივი და ლოგიკურია, იდეალურია დამწყებთათვის.

პროგრამა შექმნილია ორგანზომილებიანი თამაშების შესაქმნელად პროგრამირების ენების გამოყენების გარეშე. კოდის ხაზების ნაცვლად, თამაშის პერსონაჟების მზა მოქმედებები იცვლება. მომხმარებელს შეუძლია შექმნას მხოლოდ თამაშის ობიექტები, მიაწოდოს მათ ორგანზომილებიანი სპრაიტები ან ანიმაცია, შექმნას ობიექტებს შორის ურთიერთქმედების წესები და ობიექტების განლაგება დონეზე. შეგიძლიათ დახატოთ გრაფიკა და ანიმაცია პირდაპირ Game Maker-ში მესამე მხარის პროგრამების გამოყენების გარეშე.

ეს პროგრამა აჯობებს ზემოდან ქვემოთ თამაშებს და გვერდითი ხედვის პლატფორმებს.

„Game Maker“ ასევე დაინტერესდება მოწინავე პროგრამისტებისთვის, ასევე არის შესაძლებლობა დაამატონ საკუთარი პროგრამის კოდი.

პროგრამის უფასო ვერსია არანაირად არ ზღუდავს ჩვეულებრივ მომხმარებლებს Game Maker Pro-ს ფასიან ვერსიასთან შედარებით. ფასიანი ვერსია უზრუნველყოფს წვდომას კომპლექსურ პროგრამულ მოდულებზე, რომლებიც საინტერესოა მხოლოდ რეალური პროფესიონალი პროგრამისტებისთვის.


ძალიან მარტივი 2D თამაშის დიზაინერი. პროგრამირების ენების ცოდნა არ არის საჭირო.

Game Maker-ისგან განსხვავებით, Construct 2-ს შეუძლია შექმნას თამაშები iOS, Android, Facebook, Chrome Web Store, Desktop Windows, Windows 8 Apps, Web (HTML5), Kongregate და მრავალი სხვა პლატფორმისთვის.

ეს არის უფრო მაღალი ხარისხის პროგრამა, მაგრამ ასევე უფრო გაუმაძღარი ფულისთვის. პროგრამა უფასოა, სანამ არ გსურთ თქვენი თამაშის გაყიდვა. ამ შემთხვევაში, თქვენ უნდა შეიძინოთ ლიცენზირებული ვერსია. დეველოპერების ვებსაიტზე ასევე არის სპეციალური მაღაზია, სადაც შეგიძლიათ შეიძინოთ სამშენებლო რესურსები თქვენი თამაშისთვის: ხმის ნაკრები, მუსიკა, დეტალური ინსტრუქციები.

ჩვენ გირჩევთ ტრენინგ კურსს „TDS A-დან Z-მდე“ (თამაშის შექმნა ჟანრში „Top-down shooter“).


პროგრამები 3D თამაშების შესაქმნელად (საიტი)

"3D Rad" არის ყველაზე იაფი ვარიანტი 3D თამაშის ძრავებს შორის. პროგრამის გამოყენება შესაძლებელია სრულიად უფასოდ, ხოლო 5 დოლარის გადახდით თქვენ იღებთ უახლეს განახლებებს მათი გამოშვების დღეს (უფასო ვერსიაში განახლებები გამოჩნდება მხოლოდ სამი თვის შემდეგ). ყველაზე ხშირად, ეს ძრავა გამოიყენება სარბოლო თამაშების შესაქმნელად.

პროგრამას აქვს მარტივი და მკაფიო ინტერფეისი, არ არის დატვირთული წვრილმანებით.

„3D Rad“ მხარს უჭერს ინდივიდუალური დანამატების ინსტალაციას, აქვს წინასწარ დაინსტალირებული AI მოდელები, ჩრდილოვანი და ტექსტურის რუქები. შესაძლებელია ონლაინ თამაშების შექმნა.


NeoAxis Game Engine SDK

შესანიშნავი თამაშის ძრავა მარტივი ინტერფეისით და მაღალი ხარისხის გრაფიკით. შექმნილია თითქმის ნებისმიერი ჟანრის თამაშების შესაქმნელად.

შექმნილია Ogre3D ძრავის საფუძველზე. გამოყენებული პროგრამირების ენაა C# და C++ და .NET პლატფორმა, მაგრამ ამის გაკეთება შესაძლებელია პროგრამირების გარეშე მზა მოქმედებების სპეციალური ბიბლიოთეკების წყალობით. ძრავას აქვს სხვადასხვა დანამატები და გაფართოებები, რომლებიც შემუშავებულია მესამე მხარის მომხმარებლების მიერ. შესაძლებელია ექსპორტი 3dsMax და Maya, Autodesk Softimage და Blender-ისთვის. PSSM (Parallel-Split Shadow Map) შადერები, განათება და ჩრდილები მხარდაჭერილია.

NeoAxis Engine განაწილებულია 4 ტიპის ლიცენზიით: არაკომერციული – უფასო არაკომერციული პროექტებისთვის; ინდი ლიცენზია – $95/$295 (ერთი/გუნდი); კომერციული – $395/995 (ერთჯერადი/გუნდური); წყაროს ლიცენზია - $9,800-დან.

ამ თამაშის ძრავის მთავარი უპირატესობა არის მაქსიმალური მოხერხებულობა და სიმარტივე. გარდა ამისა, ძრავა შეიმუშავეს შიდა პროგრამისტებმა, რის გამოც მას ნაგულისხმევი ენა აქვს რუსული. როდესაც ყიდულობთ ლიცენზირებულ ვერსიას, იღებთ მაღალხარისხიან ტექნიკურ მხარდაჭერას თქვენს მშობლიურ ენაზე.


ყოვლისმომცველი ინსტრუმენტი, რომელიც შეიცავს ყველაფერს, რაც შეიძლება დაგჭირდეთ თამაშის შესაქმნელად. Unity 3D პაკეტი მოიცავს გრაფიკულ ძრავას, რომელიც სრულად იყენებს DirectX-ისა და OpenGL-ის შესაძლებლობებს, ჩაშენებული 3D მოდელის რედაქტორს, ცალკეულ პროგრამებს ჩრდილების, ჩრდილების, პეიზაჟების, ფიზიკისა და ბგერების შესაქმნელად და დასამუშავებლად, ასევე მდიდარ სკრიპტ ბიბლიოთეკებს. Unity 3D-ით შეგიძლიათ მთლიანად დაივიწყოთ მესამე მხარის პროგრამები, ან შეამციროთ მათი გამოყენება მინიმუმამდე.

Unity 3D შესაფერისია ნებისმიერი ჟანრის თამაშების შესაქმნელად. მხარდაჭერილი პლატფორმებია ჩვეულებრივი კომპიუტერები (Windows XP/Vista/7, OSX), მობილური მოწყობილობები (Android, iOS, Blackberry), სათამაშო კონსოლები (Wii, Playstation 3, Xbox), ინტერნეტ ბრაუზერები (Flash, Web Player).

არსებობს სპეციალური თანამშრომლობითი განვითარების სისტემა - Asset Server, რომელიც საშუალებას გაძლევთ განავითაროთ თამაში, როგორც მთელი გუნდის ნაწილი პირდაპირ ინტერნეტის საშუალებით.

ერთადერთი უარყოფითი ის არის, რომ Unity 3D-ის გამოსაყენებლად, თქვენ უნდა იცოდეთ კომპიუტერული პროგრამირება მინიმუმ საშუალო დონეზე. მიუხედავად მზა პრაქტიკული პროგრამული გადაწყვეტილებების მდიდარი ბიბლიოთეკისა და მყისიერი სკრიპტირების ძრავის მყისიერი შედგენით, ზოგიერთი კოდი დამოუკიდებლად უნდა დაიწეროს JavaScript-ში ან C#-ში.


არარეალური განვითარების ნაკრები (UDK)

ერთ-ერთი ყველაზე პოპულარული თამაშის ძრავა პროფესიონალ დეველოპერებს შორის. თამაშები, როგორიცაა Unreal Tournament სერია, Mass Effect სერია, XCOM, Borderlands 2, DmC: Devil May Cry და ათობით და ასობით პატარა თამაში შეიქმნა Unreal Engine-ზე.

"UDK" მხარს უჭერს შემდეგ პლატფორმებს: PC, Xbox 360, PlayStation 3, Wii, Android.

ეს ძრავა თავდაპირველად შექმნილი იყო 3D მსროლელების შესაქმნელად, მაგრამ მას ასევე აქვს უნარი შექმნას დაკავშირებული ჟანრის თამაშები: slashers, adventures, MMO თამაშები.

თამაშის ძრავა შესანიშნავად ქმნის სახის ანიმაციებს, შენობების კომპლექსურ არქიტექტურას და ამუშავებს რთულ ფიზიკურ ობიექტებს. UDK შეიცავს ყველა საჭირო ინსტრუმენტს ანიმაციების, ტექსტურების, ბგერების, დონეების, მოდელების და პროგრამული სკრიპტების შესაქმნელად. აქ არის ჩაშენებული ბიბლიოთეკა, რომელიც შეიცავს 1000-ზე მეტ სტრუქტურას, სხვა 3D მოდელებს, სტანდარტულ ტექსტურებსა და ხმებს. შესაძლებელია პროგრამირება სპეციალურ ენაზე „არარეალური სკრიპტი“ (შექმნილია C++-ზე დაყრდნობით).

თქვენ შეგიძლიათ გამოიყენოთ UDK სრულიად უფასოდ, სანამ არ გადაწყვეტთ ოფიციალურად გამოაქვეყნოთ თქვენი თამაში ამ ძრავზე შექმნილი. ამ შემთხვევაში, თქვენ მოგიწევთ ძვირადღირებული ლიცენზიის მიღება.


CryENGINE 3 უფასო SDK

"CryENGINE 3" არის თანამედროვე სათამაშო ძრავების მწვერვალი, რომელიც უზრუნველყოფს ფოტორეალისტურ გრაფიკას DirectX 11-ისა და მესამე თაობის ჩრდილების მხარდაჭერით. ძრავის მესამე ვერსია შეიქმნა 2009 წელს. ამ ძრავზე შეიქმნა თამაშების Far Cry და Crysis სერიები, ონლაინ თამაში Aion, ასევე ათობით ნაკლებად ცნობილი კომპიუტერული თამაში.

კომპანია Crytek-მა გადაწყვიტა ამ უკვე პოპულარული თამაშის ძრავის უფასოდ გავრცელება. მაგრამ უფასო ვერსია გრძელდება მხოლოდ მანამ, სანამ არ გსურთ ამ ძრავზე შექმნილი თამაშის ოფიციალურად გამოშვება. ლიცენზირებული ვერსია უფრო ძვირია, ვიდრე ყველა მსგავსი პროგრამა, მაგრამ ღირს ფული.

"CryENGINE 3"-ზე შეგიძლიათ შექმნათ თამაშები პლატფორმებისთვის: PC, PlayStation 3 და Xbox 360.

ტექსტურების იმპორტი შეგიძლიათ გრაფიკული პროგრამებიდან "3ds max", "Maya", ასევე ძრავის წინა ვერსიებიდან.

CryENGINE 3 ძრავა ძალიან პოპულარული აღმოჩნდა, მას აქვს მთელი რუსულენოვანი საზოგადოება, ამის წყალობით შეგიძლიათ მარტივად იპოვოთ ყველა სახის სასწავლო მასალა, ასევე პასუხები კონკრეტულ კითხვებზე.


როგორ განვავითაროთ RPG თამაში ერთ კვირაში ნულიდან და ბიუჯეტის გარეშე. ნაწილი I

RPG ერთ კვირაში? Ნულიდან? შესაძლებელია კი?
გამოვიყენე შანსი და გავაკეთე.

ინტერნეტი სავსეა საინფორმაციო რესურსებით, რომლებიც ხელმისაწვდომია მცირე, დამოუკიდებელი (ინდი) თამაშების შემქმნელებისთვის. ერთ-ერთ ასეთ საჯარო ფორუმზე, კამათის დროს, გამბედაობა გამიჩნდა გამომეთქვა, რომ თუ მომეცემა ერთი კვირა დრო, კომპიუტერი ახლად დაინსტალირებული ვინდოუსით და კარგი ინტერნეტ კავშირი, შემეძლო შემექმნა ღირსეული თამაში ერთი კუბის დახარჯვის გარეშე. მასზე. არა, რათქმაუნდა ვერ გაუწევს კონკურენციას Halo 2-ს ან მსგავსი დონის სხვა რამეებს (ასეთი თამაშის შექმნა რომ შემეძლო ერთ კვირაში, დიდი ხნის წინ დავტოვებდი სამსახურს), მაგრამ საკმაოდ საინტერესო იქნება. და სათამაშოდ.

ტომ ბემპტონმა, დღის თამაშის ყოველთვიურმა მიმომხილველმა (www.gameinaday.com), თქვა: "წადი!" შემდეგ მან დაამატა დამატებითი პირობა - ეს უნდა გავაკეთო არსებული თამაშის ძრავების გამოყენების გარეშე. მე შემიძლია მხოლოდ ძირითადი ბიბლიოთეკების/API-ების გამოყენება.

თავიდან ამ აზრზე უარი ვთქვი. მე არ მქონდა დამატებითი დრო, რომ ერთი კვირა დამესვენებინა სამსახურში მიმდინარე თამაშის პროექტის შემუშავებისგან. მაგრამ შემდეგ ვიფიქრე: ჯანდაბა, რა არის კვირა? ტიპიურ კომპანიაში, როგორიცაა E.A., სამუშაო კვირა 40 საათია. რატომ არ უნდა გააკეთოთ თამაში არა კალენდარულ კვირაში, არამედ 40 სუფთა საათში? ეს უკვე უფრო რეალურია, მაგრამ მე არ მინდოდა სხვა ტეტრისის ან არკანოიდის შექმნა. რაც შეეხება როლურ თამაშებს - ერთ-ერთი ყველაზე რთული სათამაშო ჟანრის? ეს შესაძლებელია?

ვიცოდი, რომ ძალიან რთული იქნებოდა. მაგრამ მე მივიღე გამოწვევა.

გარდა ამისა, დეტალურად დავწერე რას ვაკეთებდი და როგორ ვაკეთებდი და აღვწერე განვითარების პროგრესი. ვფიქრობდი, რომ ეს შეიძლება საინტერესო ყოფილიყო თამაშის დეველოპერებისთვის - ან სულაც ეს იქნებოდა გასართობი ჩანაწერი იმის შესახებ, თუ როგორ დავეცი სახეზე, თუ წარმატებას არ მივაღწიე. ყველაფერი რაც მე მივიღე იყო ჩემი საათობრივი აქტივობების გრძელი, უაზრო ჩანაწერი. ვცდილობდი შემეცვალა, რომ კითხვა მოსაწყენი არ ყოფილიყო. როგორ გამოვიდა, თავად განსაჯეთ.

ასე რომ, მე შევქმენი თამაში ერთ კვირაში ნულიდან და ბიუჯეტის გარეშე. თუ ძალიან გეზარებათ კითხვა და გსურთ სწრაფად გადახედოთ ისტორიის ბოლოს, რათა გაიგოთ, როგორ გამოიყურება საბოლოო პროდუქტი და ნახოთ მისი ყველა ხარვეზი, შეგიძლიათ ჩამოტვირთოთ თამაშის Windows ვერსია აქ: http://www. rampantgames.com/hackenslash.html

დაგეგმვა
სამიზნე
შექმენით ძველი სკოლის RPG 80-იანი წლების დასაწყისის ძველი თამაშების სტილში, ზემოდან ქვევით ხედით, როგორიცაა აფშაის ტაძარი, Ultima III და Telengard. მოთამაშე გადავა ოთახებში ტიპიურ დუნდულში, ებრძვის სხვადასხვა მონსტრებს "ხმლისა და ჯადოქრობის" გამოყენებით. თანდათანობით, ის გააუმჯობესებს თავის შესაძლებლობებს გამოცდილების შეძენით, დონის ამაღლებით და ჯადოსნური აღჭურვილობის შეძენით.

თუმცა, თამაში არ შედგება მხოლოდ ფაქტობრივი ბრძოლისგან. მოთამაშეს ასევე ექნება შესაძლებლობა გაპაროს მონსტრები, ან დადოს მოლაპარაკებები მათთან. იქნება ჩაკეტილი კარები და ზარდახშები და უნიკალური დუნდულის მახასიათებლები, რომლებსაც ექნებათ მოულოდნელი ეფექტი. თამაშს არ ექნება გრძელი აღწერილობები ან დიალოგები - ეს ძირითადად იქნება ტიპიური hack & slash. თქვენ წინ მიიწევთ გზაზე მანამ, სანამ არ გახდებით საკმარისად ძლიერი, რომ შეხვდეთ საბოლოო ბოსს, დაასრულოთ ქვესტი და უსაფრთხოდ დაბრუნდეთ სახლში (საწყის ოთახში).

განვითარების წესები

წესი #1: განვითარების დრო შემოიფარგლება ერთი კვირით (მოიცავს 40 საათს)
თამაშის განვითარებაზე სულ არაუმეტეს 40 საათისა უნდა დაიხარჯოს. ეს მოიცავს თამაშზე რეალურად დახარჯულ დროს და ფიქრს. ათ წუთზე მეტხანს განვითარებაში შესვენებები არ იქნება გათვალისწინებული. ეს იქნება "იდეალური" სამუშაო კვირა 40 მაღალპროდუქტიული საათით.

სრულად ფუნქციონალური ალფა ვერსია დამზადდება 40 საათში. შემდგომი დასრულება, როგორიცაა თამაშის საბოლოო გამართვა, დისტრიბუციისთვის ინსტალერის შექმნა არ იქნება გათვალისწინებული მთლიან დროში, ამ ეტაპზე ახალი ფუნქციონალობა არ დაემატება. განვითარების პროცესის დოკუმენტირება ასევე არ არის გათვალისწინებული.

წესი #2: გამოიყენეთ მხოლოდ უფასო ხელსაწყოები
Windows-ის ინსტალაციასთან დაკავშირებული პროგრამული უზრუნველყოფის გარდა, გამოიყენება მხოლოდ უფასო პროგრამული უზრუნველყოფა, სადაც შესაძლებელია ღია წყარო. ამის მიზანია იმის ჩვენება, რომ თქვენ არ გჭირდებათ ძვირადღირებული (ან თუნდაც იაფი) ინსტრუმენტები თამაშის შესაქმნელად. ეს წესი არ ვრცელდება ისეთ მოწყობილობებზე, როგორიცაა სკანერი, მიკროფონი და ციფრული კამერა - თუ ისინი არ გაქვთ, ჩვენ ვივარაუდებთ, რომ შეგიძლიათ ვინმესგან ისესხოთ.

წესი #3: არ არის ძრავები, მხოლოდ სტანდარტული ბიბლიოთეკები/API
თამაში უნდა შეიქმნას ნულიდან არსებული თამაშის ძრავების გამოყენების გარეშე. არავითარი მოტყუება, თამაშის ან მისი რომელიმე ნაწილის შექმნა თამაშის დიზაინერების ან მსგავსი პროგრამული უზრუნველყოფის გამოყენებით.

ხელსაწყოები
კოდი:

Python 2.3 (http://www.python.org/)
PythonWin
PyGame (http://www.pygame.org/)
Py2exe - შეადგინოს რა ხდება შესრულებად ფაილში განაწილებისთვის. (http://starship.python.net/crew/theller/py2exe/)

Gimp 2.0 (http://gimp-win.sourceforge.net/)
MS Paint (ის, რომელიც მოყვება Windows-ს) - PrintScreen კლავიშით გადაღებული ეკრანის ანაბეჭდების ჩასართავად (GIMP რატომღაც უარი თქვა ამაზე)
უფასო ტექსტურები აღებულია (http://www.textureartist.net/textures/index.htm) და (http://www.mayang.com/textures/)

Audacity (http://audacity.sourceforge.net/) პლუს ჩემი მიკროფონი ან უფასო.

სამუშაოს განრიგი (გეგმა).
განრიგი შედგენილია იმისათვის, რომ დაარღვიოს, მაგრამ ისინი მაინც საჭიროა პროგრესისა და ხაზების მონიტორინგისთვის და საჭიროების შემთხვევაში კორექტირების შესასრულებლად.

საათი 1-10: ძირითადი არქიტექტურა
ძრავის და ძირითადი კომპონენტების დიზაინი. აჩვენეთ სამყარო ეკრანზე. მე უნდა განვახორციელო საცდელი მოთამაშის გადაადგილების უნარი მთელს მსოფლიოში და შევხედო საგნებს და შემდეგ ვაქციო ეს თამაშის რედაქტორად.

საათი 11-20: მოთამაშის პარამეტრები
მოთამაშისთვის ყველა ძირითადი შესაძლებლობის განხორციელება - გადაადგილება, თავდასხმა, კარების გაღება, სიკვდილი, ნივთების აღება და ინვენტარის გამოყენება. შექმენით გარემოში არსებული ყველა ობიექტის ჩონჩხის წარმოდგენა, რათა შეამოწმოთ მოთამაშის შესაძლებლობები სამყაროსთან ურთიერთობისას.

საათი 21-30: სამყაროს გაცოცხლება
დაამატეთ ხელოვნური ინტელექტი, თამაშის მოვლენები, ხაფანგები, სპეციალური ეფექტები. ამ პერიოდის ბოლოს მე უნდა მქონდეს საკმაოდ სრული ტექნიკური დემო ვერსია, რომელშიც შედის თამაშის ყველა ძირითადი ფუნქცია.

საათი 31-40: შინაარსის და წესების დამატება
მიიღეთ სრული თამაში ტექნიკური დემოდან. დაამატეთ ყველა დამატებითი შინაარსი. მიაღწიეთ თამაშის მექანიკის სისრულეს და ბალანსს. გააპრიალეთ ყველაფერი, რისთვისაც დრო გაქვთ, დაამატეთ სპეციალური ეფექტები, ანიმაცია და ა.შ.

40 საათის შემდეგ: თამაშის ტესტირება და გამოშვება
შეამოწმეთ და აღმოფხვრა აღმოჩენილი შეცდომები (ახალი ფუნქციების დამატების გარეშე!) შეაგროვეთ ყველაფერი გროვად და განათავსეთ ინტერნეტში. სრული დოკუმენტაცია.

Hackenslash დეველოპერის დღიური: კვირის თამაში

საათი 1 – ველური დიზაინი და ძირითადი კლასები
ეს საათი დაიხარჯა თამაშის რამდენიმე ძირითადი გაკვეთილის შესაქმნელად - და მათი შემდგომი დიზაინის გამოყენებაში. სამყარო წარმოდგენილი იქნება პორტალთან დაკავშირებული ოთახების თანმიმდევრობით. მსოფლიოში ყველაფერი დაფუძნებულია ოთახებზე, ისევე როგორც ძველ სათავგადასავლო თამაშებში ან MUD-ებში. თამაშში ობიექტების უმეტესობა წარმოდგენილია როგორც "GameObject", რომელსაც აქვს პოზიცია და შინაარსი (და შეიძლება შეიცავდეს სხვა ობიექტებს - რუკა შეიძლება შეიცავდეს ოთახებს, ოთახი შეიძლება შეიცავდეს ზარდახშას, ზარდახშა შეიძლება შეიცავდეს ხმალს... და მე ვფიქრობ, რომ ხმალი შეიძლება შეიცავდეს რამდენიმე ოთახს, მაგრამ ჩვენ ამას არ გავაკეთებთ.)

მე ვქმნი არსებებსა და მოთამაშის ობიექტებს
მე ვქმნი ატრიბუტების ერთობლიობას არსებებისთვის და ვახორციელებ მათ კლასში. როგორც ჩანს, მე ნერდი ვარ, რომელიც ძალიან ბევრ RPG თამაშს თამაშობს. ჯერ ზუსტად არ ვიცი, როგორ გამოიყურება და იმუშავებს თამაშის მექანიკა.
მე ვაკეთებ ოთახის ობიექტს, რომელიც მემკვიდრეობით იღებს GameObject-ს. ოთახს აქვს სიგანე, სიმაღლე და კედლები - და ამ დროისთვის სხვა არაფერი.

ნელ-ნელა ვიწყებ იმის გააზრებას, თუ როგორ იმუშავებს ყველაფერი და ვაკეთებ საჭირო შესწორებებს. მე არც კი ვცდილობ PyGame-ის გამოყენებას ამ ეტაპზე და პროგრამა კონსოლის გარდა არაფერს აჩვენებს. მაგრამ ვგრძნობ, რომ ყველაფერი, რაც გაკეთდა, დიდი პროგრესია!

საათი 2 - PyGame 101
ამ საათის მიზანია PyGame-ის ინიციალიზაცია და მინიმუმ რაღაცის დახატვა ეკრანზე. სინამდვილეში, დროის უმეტეს ნაწილს PyGame-ის დოკუმენტაციის კითხვას ვატარებ, ვცდილობ გავარკვიო, რა არის იქ და როგორ გავაკეთო ეს, რადგან PyGame-ის ან SDL-ის გამოყენების გამოცდილება თითქმის არ მაქვს.

საათი მთავრდება პროგრამით, რომელიც აჩვენებს ცარიელ ეკრანს, რომელიც სავსეა შავით. არა შთამბეჭდავი. სინამდვილეში, ამ ფანჯრის მიღმა ბევრი რამ დგას. არის თამაშის მარყუჟი, კადრების გადართვა, რამდენიმე კლასის გამოძახება და ბევრი უსაქმური პერსონალი. მაგრამ ეს არ ხდის შავ ეკრანს უფრო შთამბეჭდავს.

საათი 3 - კედლებს ყურები რომ ჰქონოდა, სასტიკად გავლანძღავდი.
ამ საათის მიზანია კედლებით ოთახის კონტურის განსაზღვრა და ამის ჩვენება ჯერ კიდევ შავ ეკრანზე. ამისათვის მე მჭირდება ოთახი და მჭირდება გრაფიკა. GIMP-ში ბევრი მიწევს ჯდომა, ინტერნეტიდან გადმოწერილი ტექსტურების რედაქტირება, რათა ისინი შესაფერის ფილებად იქცეს. მე ვქმნი ტექსტურის მენეჯერის კლასს. და ვავსებ სანიმუშო ოთახის სტრუქტურას. მე ასევე ცოტა მეტი დრო გავატარე PyGame-ის დოკუმენტაციის მოძიებაში, რათა მეპოვა სხვა რამ, რისი გამოყენებაც შემეძლო სამუშაოს გასაადვილებლად.

ერთი საათი გავიდა. მაგრამ მე ისევ იგივე შავი ეკრანი მაქვს. კედლები ჯერ კიდევ არ იყო.

4 საათი – სასტუმროში არის უფასო ნომერი
სინტაქსის შეცდომებთან ბრძოლის შემდეგ, საბოლოოდ შევძელი კედლების ეკრანზე გამოჩენა. მართალია, ისინი არასწორად არის ნაჩვენები, ისინი არ არიან მითითებულ ადგილას და სეგმენტებს შორის ხარვეზებითაც კი. საშინელებაა. მაგრამ მცირე შესწორებითა და რედაქტირებით, მე მივიღე ის, რაც ეკრანზე 10 x 10 კვადრატულ ოთახს ჰგავდა.

დეტალური პროექტის გეგმის გარეშე, რეალურად საკმაოდ ადვილია დაბნეულობა, როდესაც დაასრულებ სამუშაოს და გაინტერესებს, "რა არის შემდეგი?" მე გადავწყვიტე, რომ თუ ერთი ოთახის დახატვა კარგი იყო, მაშინ ორის დახატვა ორჯერ უკეთესი იქნებოდა.

შექმნილი ოთახების შესანახად შევქმენი ფაილი "minidungeon".
დავიწყებ "პორტალებისთვის" ლოგიკის დამატებას - კედლებში ხვრელებს, რომლებიც მიდიან სხვა ოთახებში (და უზრუნველყოფენ ყველა ოფსეტურ ინფორმაციას, რომელიც საჭიროა მიმდებარე ოთახების სწორად ჩვენებისთვის).

საათი 5 - Hackenslash იღებს მეტ ოთახს

ფანჯრის სათაური შევცვალე "Hackenslash!". მხოლოდ იმიტომ, რომ მაგარია.
მე შევქმენი ფუნქციების რუკა ოთახების შესანახად და MapMaster კლასი, რომელიც შეიცავს რამდენიმე რუკას.
მეორე ოთახი დავამატე და პირველს პორტალის საშუალებით დავუკავშირე.
მეზობელი ოთახები დაკავშირებულია მიმდინარე პორტალებთან და ახლა ნაჩვენებია ეკრანზე.
მე დავაფიქსირე ამოკვეთის რამდენიმე შეცდომა ისე, რომ ფანჯრის გარეთ ნაწილობრივ გაშლილი კედლები სწორად გამოჩნდეს.

საათი 6 - რომლის დროსაც ვაუმჯობესებთ ხატვის უნარს

დამატებულია კარის კლასი და ასევე კონფიგურირებული რუქები კარის განთავსებისთვის (კარი უნდა იყოს საერთო ორი ოთახისთვის). (რედაქტირება: ვისურვებდი, რომ ეს არასოდეს გამომეყენებინა!)
მე შევქმენი კიდევ 3 კედლის ფილა და გავაერთიანე ისინი ერთ სურათად.
კედლების გრაფიკული გარეგნობა განსხვავდება ტიპის მიხედვით.
მე ვაკეთებ მარტივ გრაფიკას ზემოდან ქვემოდან.

საათი 7-8 – ტრიალები და ძახილები!

მე მივხვდი, როგორ მოვატრიალო ბიტმაპი PyGame-ში.
მე მივიღე ტესტის მოთამაშე შეუფერხებლად. ბრუნვის კუთხის გამოსასწორებლად საჭიროა მრავალი კორექტირება.
მე ვისწავლე როგორ გამოვიყენო შრიფტები PyGame-ში და ვქმნი რამდენიმე კლასს ტექსტის ჩვენებისა და ანიმაციისთვის.
დაემატა კლასი ტექსტის ავტომატური დამუშავებისთვის, რადგან ეს ფუნქცია ხშირად იქნება გამოყენებული მომავალში.

საათი 9-11 – ელემენტები - ბრრრრ!

და ისევ აქ, მე უნდა გადავწყვიტო კითხვა "რა არის შემდეგი?"

ოთახებს უფრო საინტერესო ელემენტები სჭირდებათ, ამიტომ მათი სია უნდა შეადგინოთ. არ ვიცი მათი სისტემატიზაცია, ამიტომ გადავწყვიტე ზოგადიდან დამეწყო. მე წარმოვადგინე სამი სტატიკური ელემენტი, რომლებიც შეგიძლიათ იპოვოთ ტიპიური დუნდულის ოთახში: ხალიჩა, სვეტი (ბლოკი იგივე ფუნქციონირებით, როგორც კედლები) და კიბე (შეგიძლიათ გადაიტანოთ იგი ახალ ადგილას)

მე გადავწყვიტე, რომ ელემენტებს შეეძლოთ დაეკავებინათ ერთზე მეტი კრამიტი და შეიძლებოდათ გადატრიალებულიყვნენ ნებისმიერი ხარისხით. (რედაქტირება: რეტროსპექტივაში, ძალიან სულელური გამოსავალი - ძალიან დიდი დრო დავხარჯე მის განხორციელებაზე, მაგრამ აღმოჩნდა, რომ თითქმის უსარგებლო იყო.)

მთლიანობაში, დაახლოებით სამი საათი გავატარე ელემენტებზე მუშაობა, გრაფიკის შექმნასა და კოდის წერას შორის მოწყვეტილი.

საათი 12 - 13 - ჩვენ გვჭირდება ნაძარცვი!

მე ვქმნი გრაფიკას და კოდს ნივთებისთვის. გასაოცარია, რამდენი დრო სჭირდება ხატვას. განსაკუთრებით შემაშფოთებელია, როცა გამოსახულება ჰგავს ქათმის მიერ დახატული თათით, რაც არ უნდა დიდი ძალისხმევა დახარჯო მასში.

მე დავამატე ბევრი მახასიათებელი ნივთებს, მათ შორის მათი ღირებულება, ზომა, აღჭურვილობის სლოტები და მრავალი სხვა. მათთან ურთიერთობა ჯერ არ შეიძლება, მაგრამ მაინც ჩნდებიან ოთახში სწორ ადგილებში.

საათი 14 - ხალიჩები

გრაფიკს ჩამოვრჩები, რა ვქნა?
შავი ფონი ზედმეტად მახინჯი ჩანს, ამიტომ ოთახის შიგნით იატაკი ხალიჩებით დავფარე - ცალკე ფილებით.

ამის შემდეგ უცებ აღმოჩნდა, რომ დამავიწყდა გამჭვირვალე ფონის დამატება მოთამაშის სპრაიტებსა და ნივთებზე. ამ უგულებელყოფის გამოსასწორებლად დიდი დრო მომიწია.

მაგრამ დონე ახლა მაგარია. ისე, სულ ცოტა უფრო მაგარი ვიდრე შავი.

საათი 15-16 - დააწკაპუნეთ! დააწკაპუნეთ!

ავიღე მაუსის კონტროლი და ღონისძიებების დამუშავება.
დამატებულია პერსონაჟის კონტროლი მაუსით. მოძრაობა ჯერ კიდევ მკვეთრია, დონის გლუვი გადახვევა არ ხდება.
მოთამაშეს შეუძლია ოთახის გარეთ გასვლა, შეჯახების შემოწმება არ არის.
მე გამოვასწორე რამდენიმე ხარვეზი.
მე ვაწამე GIMP და შევქმენი ლამაზი კიბეები.
.
განვითარებაზე უკვე თითქმის 17 საათი დავხარჯე, ამიტომ ცოტა ნერვიულობას ვიწყებ. თამაშის შექმნის გზაზე 2/5 ვარ – დასრულდა განვითარების მეორე „სამუშაო დღე“. რაც უკვე გავაკეთე შთამბეჭდავია, მაგრამ მესმის, რომ გასაკეთებელი კიდევ ბევრია. კიდევ ოთხი საათი მაქვს მოთამაშის ძირითადი მახასიათებლების დასასრულებლად და განრიგში მორგებისთვის. რთული იქნება... მაგრამ მაინც არ ვნანობ ზედმეტი დროის დახარჯვას გრაფიკის დახატვაში!

საათი 17 – ჩვენ შეუფერხებლად ვმოძრაობთ, სანამ შუბლს კედელს არ მივაჭერთ

დროის უმეტესი ნაწილი დახარჯული იყო გრაფიკის დახვეწაზე და შეცდომების გამოსწორებაზე.
დაემატა შეჯახების ამოცნობა და გლუვი გადახვევა მოთამაშის მოძრაობისას.
მოთამაშეს ახლა შეუძლია გადადგას რამდენიმე ნაბიჯი (მონაცვლეობა) მაუსის მოქმედების საპასუხოდ.

საათი 18 - ზღურბლების გადალახვა

მოთამაშეს ახლა შეუძლია პორტალების გავლით სხვა ოთახებში გადასვლა.
ეს იწვევს კოსმეტიკურ ხარვეზს მიმდებარე ოთახებს შორის კედლებისა და იატაკის გადახურვით.
გამოსწორდა როტაციასთან დაკავშირებული მრავალი ხარვეზი, რამაც პორტალები გაუვალი გახადა.

საათი 19 - კიბე სამოთხეში, ჯოჯოხეთის მენიუ

ჩემი ძმა მოხალისედ გამოვიდა, რომ მუსიკის შექმნა თამაშისთვის. მან შეასრულა მუსიკა Void War-ისთვის და საკმაოდ კარგი გამოვიდა. ამან გამახსენა, რომ აუდიო (და მუსიკის) დაკვრა მჭირდება. როგორც ჩანს, ამის გაკეთება საკმაოდ მარტივია PyGame-ში, ამიტომ ამას დიდი დრო არ უნდა დასჭირდეს. (რედაქტირება: მე არასოდეს ვიპოვე დრო ამისთვის, სამწუხაროდ თქვენ არ მოისმენთ არცერთ ხმას Hackenslash-ში.)

ჩემი შემდეგი მიზანი არის არსებებთან და ობიექტებთან ურთიერთობის გამკლავება. მე ძალიან მომწონს, როგორ აკეთებენ ამას The Sims და Neverwinter Nights, როცა თამაშის ობიექტთან ურთიერთობა გინდა, კონტექსტური მენიუ ჩნდება. მსგავსი რამის განხორციელებას ვგეგმავ.

მე ვასწავლი კიბეებს მოთამაშის ახალ ოთახში გადაყვანას.
ცოტათი დავათვალიერე ინტერნეტი და PyGame-ის დოკუმენტაცია, რომ გამეგო, იყო თუ არა რაიმე ღია კოდი მსგავსი PyGame მენიუსთვის. და ვერაფერი ვიპოვე.
დავიწყე საკუთარი მენიუს მომზადება.

საათი 20 - 21 - რა შუაშია მენიუ?

მე ისევ მენიუზე ვმუშაობ. მენიუ ადვილად შეიძლება დაუკავშირდეს ობიექტს, უფრო სწორად, ობიექტი, როგორც ჩანს, ქმნის მენიუს, რამაც გააადვილა უკუკავშირის განხორციელება მოთამაშის არჩევანის დასამუშავებლად.
დავიწყე ნივთების მენიუზე მუშაობა. ის უკვე სწორ ადგილას ჩნდება და საშუალებას გაძლევთ აირჩიოთ ელემენტი, მაგრამ დაჭერისას ჯერ არაფერს აკეთებს, მხოლოდ მენიუს დახურვის ღილაკი მუშაობს.

საათი 22 - ამ პროცესში დაიძინეთ

მე ვაგრძელებ საკითხებზე მუშაობას - ვცდილობ განვახორციელო მათი ფუნქციონირება და ვასწავლო მენიუს ბრძანებებზე პასუხის გაცემა, მათ შორის კონტექსტური ინფორმაციის დამატების შესაძლებლობა. ახლა მას აქვს მცირე ფუნქციონირება, მაგრამ ის მაინც მუშაობს, აჩვენებს ინფორმაციას გაშვებული ბრძანების შესახებ
გავაუმჯობესე მოძრაობის გაანგარიშება სხვადასხვა მოქმედებების შესრულებისას, უფრო დიდი მობილურობის მოპოვება.

ვამჩნევ, რომ უკვე გვიანია და ამ სამუშაოსთვის გამოყოფილ საათს შორს გავცდი. საერთო განვითარების დროს რომ არ მივაქციო ყურადღება, ალბათ დილამდე იქ ვიჯდებოდი. მაგრამ იმის გამო, რომ დროში შეზღუდული ვარ, ერთი საათი, რომელიც პრაქტიკულად იკარგება, ნამდვილად ცუდი ამბავია. საინტერესოა, როგორ იცვლება პრიორიტეტები, როდესაც დრო შეზღუდულია. მაინც წავალ დასაძინებლად.

საათი 23 - საბრძოლო პარამეტრები!

მე ვცვლი (კარგად, უბრალოდ ვიწყებ) კლასის ზოგიერთ ატრიბუტს, რომელიც შეიქმნა პირველ საათში.
ზედა მარჯვენა კუთხეში ვქმნი პანელს, რომელიც აჩვენებს მოთამაშის ვარიანტებს.
მე ამ ფანჯრის ოპტიმიზაცია მოვახდინე და გადავაქციე ის სურათად, რომელიც უფრო სწრაფად ხატავს, ვიდრე შრიფტები. ეს სურათი განახლდება მხოლოდ მაშინ, როდესაც იცვლება მასთან დაკავშირებული სიმბოლოების პარამეტრები.

საათი 24 - მოთამაშის მენიუ

მე დავასრულე ოპტიმიზაცია პარამეტრების ფანჯრისთვის.
შეიქმნა ამომხტარი მენიუ, რომელიც გამოჩნდება, როდესაც მოთამაშე დააჭერს პერსონაჟს.
შევქმენი სწრაფი მენიუ წამლების გამოყენების, შელოცვების და ა.შ.
მენიუში რამდენიმე ხარვეზი გამოვასწორე.

საათი 25 – იატაკისა და კედლების (ხელახალი) ხერხამდე

ამ დილით ჩემს ტვინში გაჩნდა იდეა (მართლა ჩემი ტვინი იმდენად დიდია, რომ ამდენ იდეას იტევს?) როგორ მოვაგვარო მეზობელ ოთახებში კედლების გადახურვის პრობლემა (იხ. მეთვრამეტე საათის აღწერა). რა მოხდება, თუ მხოლოდ კედლების ნახევარს დავხატავ? ამ გზით საერთოდ არ იქნება გადახურვა და არ არის საჭირო კომპლექსური ლოგიკის დამატება გადახურვების აღმოსაჩენად და გამოსასწორებლად.

ამ იდეის განხორციელებაზე ვიწყებ მუშაობას. სამწუხაროდ, ფაქტობრივად, გამოგონილი გამარტივება კიდევ უფრო ართულებს ოთახის (კერძოდ სართულების) გაფორმებას და ის ვერ განხორციელდება ისე სწრაფად, როგორც ველოდი. ამ სისტემის შექმნას და გამართვას დაახლოებით ერთი საათი დასჭირდა. მაგრამ ღირდა.

კოდის გამართვისას აღმოვაჩინე კიდევ რამდენიმე შეცდომა, რომელიც დაკავშირებულია ოთახებს შორის გადასვლასთან.

შესვენება - კრიზისი!

ახლახან მივხვდი, რომ განვითარების გამოყოფილი დროის 3/5-ზე მეტი გავიდა და რომ თამაშის დასრულებამდე თხუთმეტ საათზე ნაკლები დარჩა. თამაშის საჭირო ფუნქციების განრიგს რომ გადავხედე და შევაფასე, რომ თითოეულს საშუალოდ ერთი საათი სჭირდებოდა განსახორციელებლად, მივხვდი, რომ ყველაფრის განსახორციელებლად დაახლოებით ოცდახუთი საათი მჭირდებოდა. ათი საათით მეტი ვიდრე არის. პროექტი ოფიციალურად საფრთხეშია.

დროის ლიმიტს ვერ გავდივარ. ასევე შეუძლებელია ასისტენტის მოზიდვა ან კოდის/რესურსების ყიდვა, რადგან გათვალისწინებულია, რომ თამაშს მარტო გავაკეთებ 40 საათში. მე უნდა გავარკვიო, როგორ ვიმუშაო კიდევ უფრო ეფექტურად - მაგრამ მე უკვე ბევრს ვმუშაობ მაქსიმალური პროდუქტიულობისთვის. როგორც ჩანს, სხვა გზა არ მაქვს, მომიწევს გადახედო ფუნქციონალურობას და გადავწყვიტო რომელი ფუნქციები გავაგდო თამაშიდან.

კარები: გაჭრა! მე ძალიან მინდა თამაშში კარების გაკეთება. სირცხვილია ამ ფუნქციის განშორება – მით უმეტეს, რომ მასზე გარკვეული პერიოდი ვმუშაობ. მაგრამ ჯერ კიდევ ძალიან ბევრი სამუშაოა გასაკეთებელი, როგორიცაა ხელოვნური ინტელექტი. და ალბათ 2-3 საათი დასჭირდებოდა მათ მუშაობას, რაც მე არ მაქვს.
ინვენტარი: გამარტივება! დაივიწყეთ დამატებითი ინვენტარი და იარაღის სურვილისამებრ შეცვლის შესაძლებლობა. ყველაფერი, რაც აიღეს და არ გახდა აქტუალური მოწყობილობა, დაუყოვნებლივ გადაიქცევა ფულად.
ხაფანგები: გაამარტივეთ! მე მინდა მქონდეს მრავალფეროვანი ხაფანგები საინტერესო და მრავალფეროვანი შედეგებით მათი გააქტიურებისთვის. ეს არ არის გამიზნული. ხაფანგებს ექნება მარტივი ვიზუალური ეფექტი, ზიანს აყენებს და დროებით გაზრდის შემთხვევით ურჩხულთან შეჯახების შანსს
მშვილდი (მცირე იარაღი): გაჭრა! თამაშს ექნება მხოლოდ საბრძოლო იარაღი; შეგიძლიათ შორიდან შეტევა შელოცვებით.
თამაშის შენახვა/ჩატვირთვა: გამარტივება! თქვენ შეგიძლიათ გადაარჩინოთ მხოლოდ თქვენი ხასიათი და არა სამყაროს მდგომარეობა. (რედაქტირება: არც მე გავაკეთე ეს!)
ნაწილაკების სისტემა: განზე! ნაწილაკების სისტემის შექმნა გადატანილია პრიორიტეტული სიის ბოლოში. ეჭვი მაქვს, რომ მომიწევს მათი გაკეთება. მე სიამოვნებით გავაკეთებდი შთამბეჭდავ ვიზუალურ ეფექტებს ნაწილაკების გამოყენებით შელოცვებისთვის... მაგრამ ეს ალბათ არასდროს მოხდება.
შელოცვები: გაამარტივეთ! მე მქონდა სერიოზული კონცეფცია შელოცვების შესახებ: ისინი შეიძლება მოიძებნოს გრაგნილების სახით და იყო ათზე მეტი რაოდენობა. სამწუხაროა, მაგრამ მხოლოდ რამდენიმე შელოცვა იქნება: განკურნება, დაზიანება, დასუსტება, გაძლიერება და აღდგენა. დონის ამაღლებისას შესაძლებელია მოთამაშეს მიეცეთ საშუალება გააძლიეროს შელოცვები ჯადოსნური ქულების რაოდენობის გაზრდით.
მონსტრის და მოთამაშის ანიმაციები: გაჭრა! მე არ ვარ კარგი მხატვარი, რომ ეს საკმარისად სწრაფად გავაკეთო.

როდესაც გადავწყვიტე, რას არ გავაკეთებ (ან რას გადავდებ მოგვიანებით), თანაბრად მნიშვნელოვანია გადაწყვიტო, რა უნდა გაკეთდეს პირველ რიგში.

თამაშში ბევრი რამ არის დაგეგმილი, რაც, ვფიქრობ, ძალიან მნიშვნელოვანია - ხაფანგების, საიდუმლო კარების (ახლა უკვე საიდუმლო გადასასვლელების) პოვნა და ზარდახშების გატეხვა. მაგრამ თამაშის ბირთვი არის ბრძოლა. ამიტომ გადავწყვიტე მასზე გავამახვილო ყურადღება და ჩემი მთავარი პრიორიტეტი გავხადო. ჩემს თავს დავსახე მიზანი: საათნახევარში ჩემი მონსტრები ისე გაცოცხლდებიან, რომ მათი მოკვლა შეიძლება.

კარგია, ჩვენ მოვაგვარეთ პრიორიტეტები, განვაგრძოთ განვითარება.

საათი 26 - დავყაროთ კამათელი

მე ვმუშაობ "კამათლის" მექანიკაზე, მექანიზმზე, რომლითაც თამაშში შემთხვევითობის ელემენტი დაინერგება. ვინაიდან ჩვენ არ გვაქვს რეალური კამათლების შეზღუდვა, ჩვენ შეგვიძლია მივიღოთ შემთხვევითი რიცხვი ნებისმიერ დიაპაზონში, რომელიც ჩვენ გვინდა. მაგალითად, 1-დან 33-მდე, ან 6-დან 17-მდე. ასე რომ, მე შემიძლია გავაგორო კამათელი, შევადარო რა გამოვიდა ჩემს თავდასხმასთან და მტრის თავდაცვასთან. თუ გაშვებული რიცხვი აღემატება დაცვას, შეტევა წარმატებულია.

მაგალითად, ვთქვათ, მაქვს თავდასხმის ჯამური ღირებულება 15. მე თავს დაესხმება მონსტრს, რომელსაც აქვს 10 დაცვა. ჩემი შანსები არის 15 25-დან (25 =15 +10), ან 3 5-დან. ასე რომ, თამაში წარმოქმნის შემთხვევით რიცხვს 1-დან 25-მდე და თუ ის ათზე მეტია, მე ვიგებ.

მიყენებული ზიანის გამოსათვლელად გამოიყენება ოდნავ განსხვავებული მეთოდი. დამცველს დავამატე პარამეტრი "ჯავშანი", ხოლო თავდამსხმელს "დაზიანება". მე ვქმნი შემთხვევით რიცხვს 1-დან მათ ჯამამდე და შემდეგ ვაკლებ ჯავშანს. თუ შედეგი ერთზე ნაკლებია, ზიანი არ მიყენდება. წინააღმდეგ შემთხვევაში, იგი უდრის მიღებულ შედეგს. ამრიგად, თუ 10 დაზიანებული ურჩხული თავს დაესხმება მოთამაშეს 5 ჯავშნით, თამაში წარმოქმნის რიცხვს 1-დან 15-მდე, რომელსაც გამოაკლებს 5, რაც არის მიყენებული ზიანი.

ამ ახსნას და აღწერას უფრო მეტი დრო დასჭირდა, ვიდრე მისი განხორციელება.

საათის ბოლოს, მე შევამცირე დუნდონის ჩვენების არეალის ზომა, ახლა ფანჯრის მარჯვენა ნაწილი მთლიანად ეძღვნება მომხმარებლის ინტერფეისს, ამ ცვლილებამ ოდნავ გაზარდა შესრულება. მე ასევე დავრწმუნდი, რომ მოთამაშის მოძრაობაზე გავლენას არ მოახდენს კადრების სიჩქარე.