فرصت مطالعه ندارید؟ چکیده این مطلب را همینجا گوش دهید:
ساخت یک بازی در سبک مترویدوانیا (Metroidvania) از صفر، چالش جذاب و پیچیدهای است که نیازمند هماهنگی دقیق میان طراحی حرکات بازیکن، سیستمهای دنیای بازی، هوش مصنوعی دشمنان و مکانیکهای پیشرفتهی مبارزه است. مجموعه Metroidvania Forge یک پکیج آموزشی و منبع دیجیتال عملی است که توسط مایکل گیمز (Michael Games) توسعه یافته و به شما کمک میکند تا با موتور بازیسازی قدرتمند گودو ۴ (Godot 4) یک شاهکار دوبعدی خلق کنید. این مجموعه در دستهبندی منابع دیجیتال کاملاً رایگان ($0.00) قرار دارد و همزمان با انتشار هر فصل از مجموعه آموزشی، فایلهای مرجع آن بهروزرسانی شدهاند.

محتویات و ساختار پکیج فایلهای رایگان
این مجموعه شامل فایلهای فشرده شدهای است که بر اساس بخشهای مختلف روند توسعهی بازی دستهبندی شدهاند. حجم فایلها بسیار بهینه است و برای دانلود سریع آماده شدهاند. در جدول زیر میتوانید مشخصات فنی کامل این پکیج منابع دیجیتال را مشاهده کنید:
| عنوان مشخصات | جزئیات فنی |
|---|---|
| وضعیت توسعه | در حال توسعه (In development) |
| دستهبندی | داراییها و منابع بازی (Assets) |
| امتیاز کاربران | ۵.۰ از ۵ ستاره (بر اساس ۱۳ ثبت نظر) |
| نویسنده / سازنده | مایکل گیمز (Michael Games) |
| ژانر بازی هدف | پلتفرمر دوبعدی (Platformer) |
| ابزارهای استفاده شده | Aseprite، Godot، Bfxr |
| مجوز کدهای برنامهنویسی | GNU General Public License v2.0 (GPL) |
| مجوز داراییها (Assets) | Creative Commons Attribution v4.0 International |
| وضعیت هوش مصنوعی | بدون استفاده از هوش مصنوعی مولد (No generative AI) |
| وضعیت دسترسی ایران | بدون محدودیت منطقهای (Accessible) |
فایلهای موجود در این پکیج شامل موارد زیر است:
- ch_01_player_foundations.zip (حجم: ۴۰ کیلوبایت): پایهریزی حرکات و فیزیک اولیه بازیکن.
- ch_02_world_building_foundations.zip (حجم: ۱۷۲ کیلوبایت): داراییها و کاشیهای گرافیکی (TileSheet) برای ساخت محیط و دنیای بازی.
- ch_03_game_systems.zip (حجم: ۲ مگابایت): سیستمهای مدیریتی و منطق داخلی بازی.
- ch_04_player_abilities.zip (حجم: ۶۵۵ کیلوبایت): تواناییها و قابلیتهای پیشرفتهی کاراکتر اصلی.
- ch_05_enemies.zip (حجم: ۵۷ کیلوبایت): طراحی و کدهای مربوط به دشمنان بازی.
- ch_06_boss_battles.zip (حجم: ۱۰ مگابایت): پکیج سنگین و جامع مربوط به نبرد با باسها و چالشهای نهایی.
بررسی مجوزها و شرایط استفاده قانونی
یکی از بزرگترین نقاط قوت این پکیج، شفافیت کامل در خصوص حقوق نشر و استفاده از فایلهاست. سازنده این پروژه را تحت دو مجوز استاندارد جهانی منتشر کرده است که به توسعهدهندگان مستقل اجازه میدهد با خیال راحت از آنها در پروژههای شخصی یا تجاری استفاده کنند:
- مجوز کدها: تمام اسکریپتها و کدهای گودو تحت مجوز عمومی همگانی گنو نسخه ۲.۰ (GNU GPL v2.0) ارائه شدهاند؛ به این معنی که میتوانید آنها را تغییر دهید، توسعه دهید و در پروژههای خود به کار ببرید.
- مجوز گرافیک و داراییها: فایلهای تصویری، پیکسلی و منابع هنری تحت مجوز کریتیو کامنز (CC BY 4.0) منتشر شدهاند. این یعنی استفاده از آنها رایگان است، به شرطی که نام پدیدآورنده (Michael Games) را در بخش اعتبارات (Credits) بازی خود ذکر کنید.
- همچنین در این پکیج از هیچگونه محتوای تولیدشده توسط هوش مصنوعی مولد (Generative AI) استفاده نشده و تمامی ارکان هنری توسط انسان طراحی شدهاند.
سناریوی واقعی و نحوه پیادهسازی کدهای حرکتی
برای اینکه بدانید این پکیج دقیقاً چطور کار میکند، بیایید نگاهی به یکی از چالشهای رایج برنامهنویسی در این پکیج بیندازیم؛ یعنی مدیریت حالت خم شدن (Crouch State) و عبور از پلتفرمهای یکطرفه (One-Way Platforms). در روند توسعه بازیهای پلتفرمر، گاهی اوقات توسعهدهندگان با این مسئله مواجه میشوند که وقتی بازیکن میخواهد با فشردن دکمهی خم شدن از یک سکوی یکطرفه پایین بیاید، انیمیشن خم شدن به دلیل تداخل با حالت سقوط (Fall State) به درستی اجرا نشده و به صورت چشمکزن سریع ظاهر و ناپدید میشود.
برای حل این مشکل ساختاری در گودو ۴، بررسی کدهای اسکریپت وضعیت بازیکن بسیار راهگشا است. نمونهای از این کد ساختاریافته را در ادامه مشاهده میکنید:
class_name PlayerStateCrouch extends PlayerState
@export var deceleretion_rate : float = 10
# در زمان مقداردهی اولیه
func init() -> void:
pass
# هنگام ورود به حالت خم شدن
func enter() -> void:
player.collision_stand.disabled = true
player.collision_crouch.disabled = false
player.sprite_2d.scale.y = 0.525
player.sprite_2d.position.y = -12.5
if player.one_way_platform_ray_cast.is_colliding():
player.set_collision_layer_value(3, false)
# هنگام خروج از حالت خم شدن
func exit() -> void:
player.collision_stand.disabled = false
player.collision_crouch.disabled = true
player.sprite_2d.scale.y = 1.0
player.sprite_2d.position.y = -23.5
player.set_collision_mask_value(3, true)
# مدیریت ورودیهای کلیدی
func handle_input(_event : InputEvent) -> PlayerState:
if _event.is_action_pressed("jump"):
return jump
return next_state
# اجرای پردازش فریم به فریم
func process(_delta: float) -> PlayerState:
if player.direction.y <= 0.5:
return idle
return next_state
# اجرای پردازش فیزیکی
func physics_process(_delta: float) -> PlayerState:
player.velocity.x -= player.velocity.x * deceleretion_rate * _delta
if player.is_on_floor() == false:
return fall
return next_state
توضیحات بخشبهبخش کد:
- متغیر
deceleretion_rateمیزان کاهش سرعت افقی بازیکن را هنگام خم شدن کنترل میکند. - تابع
enter()کالیبراسیون برخورد (Collision) را تغییر داده و مقیاس ظاهری اسپرایت دوبعدی را کوچک میکند تا کاراکتر در حالت خمیده قرار گیرد. همچنین بررسی میکند که آیا اشعهی تشخیصی (RayCast) با سکوی یکطرفه برخورد دارد یا خیر. - تابع
physics_process()بررسی میکند که اگر کاراکتر دیگر روی زمین قرار نداشت، به طور خودکار به حالت سقوط (Fall) تغییر وضعیت دهد. علت بروز خطای پرش انیمیشن این است که در فریم دوم، پلتفرم غیرفعال شده و بازیکن در وضعیت سقوط قرار میگیرد که بلافاصله انیمیشن خم شدن را قطع میکند. راه حل جامعهی توسعهدهندگان برای این موضوع، استفاده از یک تایمر کوچک (مثلاً ۰.۵ ثانیه) جهت تاخیر در غیرفعالسازی لایهی برخورد است تا انیمیشن زمان کافی برای پخش شدن داشته باشد.
پرسشهای متداول
آیا استفاده از فایلهای Metroidvania Forge در بازیهای تجاری رایگان است؟
بله. داراییهای گرافیکی تحت مجوز Creative Commons BY 4.0 و کدها تحت مجوز GNU GPL v2.0 منتشر شدهاند که اجازه استفاده تجاری را به شرط رعایت قوانین بازمتن و ذکر منبع میدهند.
این پکیج با کدام نسخه از موتور بازیسازی گودو سازگار است؟
این مجموعه به طور اختصاصی برای موتور بازیسازی Godot 4 طراحی و بهینهسازی شده است و تمامی کدهای اسکریپتنویسی با ساختار این نسخه همخوانی دارند.
آیا برای دریافت این فایلها نیاز به پرداخت هزینه یا ثبتنام خاصی است؟
خیر، تمامی فایلها به صورت ۱۰۰٪ رایگان ($0.00) قابل دانلود هستند؛ البته سازنده اشاره کرده است که حمایت مالی (Donation) اختیاری به ادامه روند تولید محتوا کمک میکند.
چگونه میتوانم مشکلات یا باگهای مربوط به کدهای پکیج را حل کنم؟
شما میتوانید از طریق بخش کامنتها و انجمنهای مرتبط با صفحه رسمی پروژه در پلتفرم میزبان، سوالات خود را با سازنده و سایر برنامهنویسان جامعه مطرح کنید.
جمعبندی
مجموعهی Metroidvania Forge یکی از بهترین و ساختاریافتهترین منابع دیجیتال رایگان برای علاقهمندان به ساخت بازیهای دوبعدی در موتور گودو ۴ است. با در اختیار داشتن فایلهای تفکیکشده از فیزیک بازیکن، سیستمهای حرکتی، طراحی مراحل و باسفایتها به همراه کدهای کاملاً متنباز، مسیر یادگیری و پیادهسازی بازیهای سبک مترویدوانیا به شکل چشمگیری هموارتر میشود. با رعایت نکات مربوط به مجوزها و اعمال اصلاحات دقیق روی اسکریپتهای حرکتی، میتوانید پایهای محکم برای پروژهی بازیسازی بعدی خود بسازید.



