Catlantean 3D არის ამბიციური პროექტი, რომლის ავტორიც უკვე ერთი წელია, 90-იანი წლების ტექნოლოგიური სტანდარტებით სრულფასოვანი პირველპირად მსროლელი თამაშის (FPS) შექმნას ცდილობს. თამაში, რომელიც მომავალ წელს Steam-ზე უნდა გამოვიდეს, მკაცრ შეზღუდვებს ეფუძნება.

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

VGA გრაფიკა და პალიტრის მნიშვნელობა

90-იანი წლების VGA Mode 13h რეჟიმი თამაშების მთელ თაობას განსაზღვრავდა. მაშინდელი პროგრამისტებისთვის ეს ნიშნავდა 320x200 გაფართოებას, სადაც თითოეული პიქსელი პალიტრის 256 ფერიდან ერთ-ერთს წარმოადგენდა. ეს შეზღუდვა დღესაც ქმნის იმ განსაკუთრებულ სიცხადეს, რაც Doom-სა და Duke Nukem-ს ახასიათებდა.

Catlantean 3D-ის პალიტრა 768 ბაიტისგან შედგება და მრავალჯერადი ცდების შედეგად ჩამოყალიბდა. ავტორმა გაითვალისწინა როგორც თამაშის გარემო (ეგვიპტური სტილის კატების ქალაქი), ისე ტექნიკური საჭიროებები — მაგალითად, სისხლის წითელი ფერები, ლითონის ნაცრისფერი ტონები და კონტრასტული ფერები კარებისა და გასაღებებისთვის.

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

განათება და კოლორმაპის ტექნიკა

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

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

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

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

ეს მიდგომა, რომელსაც Doom-იც იყენებდა, უზრუნველყოფს ოპტიმალურ მუშაობას 320x240 გარჩევადობის პირობებში.

აქტივების შექმნა

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

Blender-ის Python API-ს საშუალებით ავტორი ავტომატიზირებს პალიტრის კვანტიზაციას, რაც თითოეულ პიქსელს ყველაზე ახლო ფერს ანიჭებს პალიტრიდან.

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