من محمد جواد یاحقی هستم، برنامه نویس و تهیه کننده بازی
یک DNA دو بعدی، آواتار ساز یک بازی دو بعدی
پیشگفتار:
تمام موجودات دارای یک دستور العمل ژنتیکی هستند که اون ها رو میسازه، دستور العمل هایی از جنس اسید!
البته که من دانش زیادی در مورد زیست شناسی ندارم ولی باید بگیم شبیه کامپیوتر ها که از دستور العمل های 0 و 1 ای تابعیت میکنند
بدن ما انسان ها هم از ساختاری تشکیل شده که توسط دستور العملی مولکول های زیستی ما رو بهم میچسبونه
حالا اگر بخوایم یک بازی بسازیم چی بهتر از یک DNA مجازی برای ساختن یک آواتار پس بریم ببینیم چه خبره
یک DNA دو بعدی:
من دوست دارم رشته ای از اطلاعات متنی رو برای نگه داری ماهیت آواتار استفاده کنم پس بریم سراغ کار
یک همچین دستور العملی رو ببینید
@Input() dna: string = "1|1|cdc4d9ff|1|#000000|1|0|1|0|1|0|1|0"
عدد صفر در دستور العمل بالا به معنای غیرفعال بودن ژن مربوطه میباشد اعدادی به غیر از صفر مانند یک و یا کد های بزرگتر در مبنای 16 ژن مربوطه را هویت بندی میکند
در صورتی که یک ژن ۰ ارسال شود به معنای آن است که نیاز نیست از آن ژن استفاده شود
در فرمول بالا ژن اول که با عدد ۱ مشخص شده است نشان دهنده نژاد این اواتار میباشد که برای روح از عدد ۱ استفاده کردیم و ژن بعدی مربوط به نوع بدن آواتار میباشد
و عدد ۱۶ بیتی بعدی رنگ بدن را مشخص میکند
ژن های انتهایی ممکن است امکانات خاصی را به آواتار اضافه کنند که این ژن ها به صورت رندوم تولید میشوند
خب پس تا اینجا ما تونستیم یک DNA دو بعدی خلق کنیم که باید در توابع سازنده استفاده بشه
برای جهش پیدا کردن این ژن در اینده فکر میکنیم چون روح ها قابلیت تولید مثل ندارند پس باید فرمول دیگری برای جهش رو پیدا کنیم
بحث فنی :
برای راحت بودن تغییر رنگ اجزای سازنده آواتار باید اونها به صورت وکتور طراحی بشند که در کد نویسی با حداقل مصرف منابع بتونیم رنگ های مختلفی رو خلق بکنیم و چون خروجی SVG به راحتی در جاوا اسکریپت قابلیت دستکاری داره تصمیم بر این شد تمام آواتار ها به صورت وکتور و با خروجی SVG طراحی بشه
آواتار ساز:
برای آواتار ساز یک رابطه کاربری ساده طراحی کردم و بیخیال کمال گرایی شدم، بعد از جذب کاربر میشه این موارد رو بهبود داد پس برنامک آواتار ساز هم که تصویرش رو در بالا تر دید بخشی از این اجرا بود
سرور:
در مورد سرور با یک برنامه nodejs ای طرف هستیم که بعد از سرهم کردن تمام اجرای svg اون رو به صورت یک خروجی کامل در میاره که بتونه در انجین مورد استفاده قرار بگیره
البته مقیاس بسیار بالایی در نظر گرفته شده که بعدا بشه api برای آواتار کاربر در جا های دیگه هم ارایه بشه
سخن پایانی:
مرسی از اینکه مطلب رو خوندید و در نهایت خوشحال میشم نسخه 0.0.1 شهرک رایگان من رو ببینید
مطلبی دیگر از این انتشارات
از تاریکی تا روشنایی قسمت اول :شهرک رایگان من
مطلبی دیگر از این انتشارات
کد نویسی اولیه سرویس بازی های آنلاین دو نفره در شهرک رایگان من
مطلبی دیگر از این انتشارات
گذری به بعد دوم و متاورس های دو بعدی