🔔 با توجه به بهبود نسبی اینترنت، آمادهسازی دورهها آغاز شده است. به دلیل تداوم برخی اختلالات، بارگذاری دورهها ممکن است با کمی تأخیر انجام شود. مدت اشتراکهای تهیهشده محفوظ است.
لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش راهنمای جامع ساخت بازی مترویدوانیا با گودوت C#
- آخرین آپدیت
دانلود Godot C# The Ultimate Metroidvania Developer’s Guide
نکته:
ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:
آموزش ساخت بازی مترویدوانیا (Metroidvania) رویایی با گودو (Godot)
یاد بگیرید چطور هر آنچه را که برای ساخت یک بازی مترویدوانیا (Metroidvania) نیاز دارید، ایجاد کنید.
ساخت یک بازی اسکرولینگ جانبی دو بعدی مترویدوانیا (Metroidvania) در گودو (Godot) با استفاده از سی شارپ (C#)
تنظیم Tilemap ها در گودو (Godot) نسخه 3.x برای Autotiling و ساخت مراحل
تاب خوردن با طناب
حرکت با طناب
اسکرولینگ پس زمینه پارالاکس دو بعدی
تنظیم کنترلر کاراکتر با استفاده از الگوی حالت کلاس (Class State Pattern)
تنظیم موجودی و تجهیزات (Inventory and Equipment)
راه اندازی فروشگاه - خرید و فروش آیتم ها
تجهیز و جداسازی آیتم ها
شخصی سازی کنترل های گیم پد و کیبورد
بافر کردن پرش (Jump buffering)
زمان کایوت (Coyote time)
تصحیح پرش در گوشه ها (Corner correcting jumps)
سکوی یک طرفه (One-way platforms)
نقشه کوچک اتوماتیک (Automatic Minimap)
نوار سلامتی پیشرفته (Advanced lifebar)
انتقال صحنه (Scene transition)
منوی توقف بازی (Pause game menu)
منوی تنظیمات (Settings menu)
باز کردن صندوقچه ها (Opening chests)
کمان و تیر (Bow and arrow)
هوش مصنوعی خزنده دیوار (Wall crawler AI)
تنظیم دوربین (Camera setup)
و خیلی بیشتر...
پیش نیازها:
گودو (Godot) نسخه 3.x .NET version
یک کامپیوتر شخصی یا مک
آیا مشتاقید بازی مترویدوانیای خود را بسازید اما نمی دانید از کجا شروع کنید؟
این دوره راهنمای گام به گام شما برای تسلط بر هر آنچه برای ساخت بازی رویایی خود نیاز دارید است. ما از موتور بازی سازی گودو (Godot) و زبان برنامه نویسی سی شارپ (C#) استفاده خواهیم کرد، بنابراین حتی اگر از یونیتی (Unity) تغییر مسیر داده باشید، احساس راحتی خواهید کرد.
چرا این دوره؟
اگر یک برنامه نویس مشتاق هستید که می خواهید وارد دنیای توسعه بازی شوید، این دوره نقطه شروع عالی برای شماست. این دوره یک مسیر یادگیری ساختاریافته ارائه می دهد که شما را از اصول راه اندازی گودو (Godot) تا ویژگی های پیشرفته، مانند تاب خوردن با طناب و یک نقشه کوچک پویا (Dynamic Mini-Map) که نشان می دهد بازیکن در کجای بازی قرار دارد، راهنمایی می کند. شما یک پایه محکم در مورد موتور بازی سازی گودو (Godot) خواهید ساخت، با سخنرانی های گام به گام در مورد توسعه هر ویژگی و مکانیکی که برای ایجاد یک بازی کامل مترویدوانیا (Metroidvania) نیاز دارید، به سرعت پیشرفت خواهید کرد، که درک شما از نحوه ساخت بازی ها با موتور بازی سازی گودو (Godot) را عمیق تر می کند.
این دوره برای چه کسانی است؟
این دوره برای مبتدیان کامل نیست، بلکه بیشتر برای برنامه نویسان "مبتدی+" و متوسط هدف گذاری شده است، بنابراین اگر کمی تجربه یا تجربه ای با موتور بازی سازی گودو (Godot) دارید و با زبان برنامه نویسی سی شارپ (C#) آشنا هستید، این دوره عالی است برای شما.
سرفصل ها و درس ها
مقدمه
Introduction
مقدمه
Introduction
ساختار دوره
Course structure
چرا هنوز از نسخه Godot 3.5 .NET به جای نسخه Godot 4.x .NET استفاده کنیم؟
Why still use Godot 3.5 .NET version instead of the Godot 4.x .NET version?
استاندارد کد دزدان دریایی
The Pirate Code Standard
لینک دیسکورد انجمن
Community Discord Link
راه اندازی Godot 3.5 .NET با vscode و .NET8، ویندوز
Setting Up Godot 3.5 .NET with vscode and .NET8, Windows
راه اندازی Godot 3.5 .NET برای توسعه با vscode و .NET8 (2024)
Setting Up Godot 3.5 .NET for development with vscode and .NET8 (2024)
راه اندازی Godot 3.x .NET با vscode، ویندوز (فیلم قدیمی تر، ممکن است کمک کننده باشد)
Setting up Godot 3.x .NET with vscode, Windows (Older video, might be of help)
راه اندازی Godot 3.x Mono + vscode برای توسعه در ویندوز
Setup Godot 3.x Mono + vscode for development in Windows
راه اندازی Godot 3.x .NET با vscode برای اوبونتو (فیلم قدیمی تر، ممکن است به برخی کمک کند)
Setting up Godot 3.x .NET with vscode for Ubuntu (Older video, might help some)
دانلود و نصب Mono
Download and Install Mono
تایید نصب Mono
Verify Mono installation
از حالت فشرده خارج کردن Godot Engine
Unzip Godot Engine
اضافه کردن Godot به منو و نوار اجرا
Add Godot To Menu And Launchbar
نصب vscode
Install vscode
ایجاد پروژه جدید Godot و تنظیم ویرایشگر کد پیش فرض.
Create new Godot project and set default code editor.
راه اندازی .NET SDK و Omnisharp
Setup .NET SDK & Omnisharp
راه اندازی اشکال زدایی پروژه در vscode
Setup project debugging in vscode
دارایی های بازی
Game Assets
دانلود دارایی های بازی
Downloading game assets
راه اندازی پس زمینه پیمایشی پارالاکس
Setting up parallax scrolling background
راه اندازی یک پس زمینه پیمایشی پارالاکس
Setting up a Parallax Scrolling Background
راه اندازی خودکار Tilemap با شیب
Setting up Tilemap autotiling with slopes
راه اندازی خودکار Tilemap با شیب
Setup Tilemap autotiling with slopes
راه اندازی اشکال برخورد Tilemap
Setup Tilemap collision shapes
اضافه کردن قهرمان به بازی
Adding the Hero to the game
وارد کردن قهرمان به بازی
Importing the Hero to the game
ایجاد یک Tilemap برای حرکت در آن
Creating a Tilemap to move around in
ایجاد یک اتاق ساده
Creating a simple room
اضافه کردن حرکت به قهرمان با استفاده از الگوی حالت کلاس
Adding movement to the hero using the class state pattern
الگوی حالت چیست؟
What is the state pattern?
راه اندازی ماشین حالت + حالت بیکار
State machine setup + the idle state
اضافه کردن حالت های Run و Fall به ماشین حالت
Adding the Run and Fall State to the state machine
حالت های پرش
The jump states
جلوگیری از حرکت متناقض
Preventing contradictory movement
اضافه کردن دوربین و پس زمینه پارالاکس به بازی
Adding Camera and the parallax background to the game
اضافه کردن دوربین و پس زمینه پارالاکس
Adding camera and the parallax background
کنترل ارتفاع پرش و حالت لغزش
Jump height control and the slide state
کنترل ارتفاع پرش
Controlling the jump height
حالت لغزش قسمت 1/5 - ورودی، انیمیشن ها و ویرایش نقشه
Slide state part 1/5 - Input, animations and map editing
حالت لغزش قسمت 2/5 - تایمرهای لغزش
Slide state part 2/5 - Slide Timers
حالت لغزش قسمت 3/5 - رسیدگی به برخورد
Slide state part 3/5 - Collision Handling
حالت لغزش قسمت 4/5 - اضافه کردن حالت های لغزش به ماشین حالت
Slide state part 4/5 - Adding the slide states to the state machine
حالت لغزش قسمت 5/5 - اضافه کردن حالت ایستادن لغزش به ماشین حالت
Slide state part 5/5 - Adding the slide stand up state to the state machine
حالت های گرفتن لبه و بالا رفتن از لبه
Ledge Grab & Ledge Climb states
حالت گرفتن لبه قسمت 1 / 2
Ledge grab state part 1 / 2
حالت گرفتن لبه قسمت 2 / 2
Ledge grab state part 2 / 2
حالت بالا رفتن از لبه
Ledge climb state
حالت سر خوردن
The Glide state
حالت سر خوردن قسمت 1 / 2
Glide state part 1 / 2
حالت سر خوردن قسمت 2 / 2
Glide state part 2 / 2
پرش دوتایی/سه تایی/چندگانه و پرش از دیوار
Double/triple/multiple jumping & wall jumping
پرش دوتایی، سه تایی و چندگانه
Double, triple and multiple jumping
پرش از دیوار
Wall jumping
حالت حمله
The Attack state
اضافه کردن حالت حمله
Adding the Attack State
مکانیک های بازی بخشنده
Forgiving game mechanics
زمان کایوت
Coyote time
بافر پرش
Jump buffering
اصلاح پرش گوشه
Corner jump correction
سکوی عبور
Pass through platforms
راه اندازی سکوی عبور
Setup pass through platform
بازسازی کد حالت قهرمان
Hero state code refactoring
بازسازی کد ماشین حالت قهرمان
Refactoring the hero state machine code
تاب خوردن طناب و عبور از طناب
Rope swinging and rope traversal
ایجاد طناب
Creating the rope
اضافه کردن Area2D برای گرفتن طناب
Adding Area2Ds for grabbing the rope
به روز رسانی منطق حرکت، آغاز پرش و اضافه کردن کلید تعامل با اشیاء
Updating Move logic, initiate jump and adding interact with objects key
گرفتن طناب
Grabbing the rope
بازسازی کد + غیرفعال کردن گرانش و حرکت افقی
Code refactoring + Disabling gravity and horizontal movement
اضافه کردن انیمیشن های قهرمان + تراز کردن قهرمان با طناب.
Add hero animations + aligning the hero to the rope.
بالا و پایین رفتن از طناب
Climbing up and down the rope
تاب خوردن طناب
Rope swinging
پریدن از طناب
Jumping off the rope
عبور افقی از طناب
Horizontal rope traversal
ایجاد نقشه کوچک
Creating the Minimap
مقدمه ای بر نقشه کوچک
Minimap introduction
اصلاح پروژه قبل از پیاده سازی نقشه کوچک.
Project modification before implementing the minimap.
ایجاد صحنه نقشه کوچک
Creating the minimap scene
دسترسی به گره های LevelArea و LevelRoom
Accessing the LevelArea and LevelRoom nodes
دسترسی به: نام لایه های فیزیک 2 بعدی، گره TileMap و وضوح پنجره
Accessing: 2D Physics layer names, TileMap node and Window Resolution
اسکن مرزهای اتاق قسمت 1 / 2
Scanning room borders part 1 / 2
اسکن مرزهای اتاق قسمت 2 / 2
Scanning room borders part 2 / 2
اضافه کردن گرافیک اتاق نقشه کوچک
Adding the minimap room graphics
محدودیت های دوربین و حرکت نقشه کوچک
Camera limits and minimap movement
اضافه کردن مکان آیتم ها به نقشه کوچک
Adding item locations to the minimap
صحنه کره برداشت آیتم و محل آیتم در نقشه کوچک
Item Pickup sphere scene, and minimap item location
کره برداشت آیتم قسمت 4 / 6 - تک آهنگ لایه ها و ماسک ها
Item pickup sphere part 4 / 6 - layers and masks singleton
کره برداشت آیتم قسمت 5 / 6 - جعبه ضربه و جعبه آسیب
Item pickup sphere part 5 / 6 - Hit box and Hurt box
کره برداشت آیتم قسمت 6/ 6 - اضافه کردن انیمیشن های نهایی کره برداشت آیتم
Item pickup sphere part 6/ 6 - Adding the final item pickup sphere animations
اثر ذرات گرد و غبار
Dust particle effect
اثر ذرات گرد و غبار قسمت 1 /2 - راه اندازی صحنه
Dust Particle effect part 1 /2 - Scene setup
اثر ذرات گرد و غبار قسمت 2 /2 - کدنویسی اسکریپت
Dust Particle effect part 2 /2 - Coding the script
اضافه کردن موسیقی و جلوه های صوتی
Adding music and sound effects
اضافه کردن موسیقی
Adding music
اضافه کردن جلوه های صوتی به قهرمان قسمت 1 / 2
Adding sound effects to the hero part 1 / 2
اضافه کردن جلوه های صوتی به قهرمان قسمت 2 / 2
Adding sound effects to the hero part 2 / 2
اضافه کردن جلوه های صوتی به گلایدر
Adding sound effects to the glider
اضافه کردن جلوه های صوتی به طناب
Adding sound effects to the rope
اضافه کردن جلوه های صوتی به کره برداشت آیتم
Adding sound effects to the item pickup sphere
متعادل کردن سطوح جلوه صوتی
Balancing sound effect levels
شلیک تیر با کمان
Firing arrows with a bow
ایجاد صحنه تیر
Creating the arrow scene
اضافه کردن انیمیشن های کمان به قهرمان
Adding bow animations to the hero
کشیدن کمان و هدف گیری کمان
Bow draw & bow aim
ایجاد صحنه کمان
Creating the bow scene
شلیک کمان
Firing the bow
دشمن خزنده دیواری
WallCrawler enemy
اصلاح محیط و راه اندازی صحنه خزنده
Modifying the environment and setting up the crawler scene
ساختن خزنده دیواری برای دنبال کردن دیوارها.
Making the WallCrawler follow the walls.
ایجاد امکان کشتن خزنده دیواری
Making it possible to kill he WallCrawler
اثر انفجار ابر
Cloud explosion effect
از بین بردن چند باگ
Smashing a few bugs
رفع باگ
Bugfixing
آسیب دیدن قهرمان
Making the hero take damage
به روز رسانی صحنه قهرمان
Updating the hero scene
ایجاد تک آهنگ قهرمان برای ذخیره متغیرهای قابل دسترسی جهانی
Creating the hero singleton to store globally accessible variables
به روز رسانی صحنه های HurtBox و HitBox
Updating the HurtBox and HitBox scenes
اضافه کردن حالت آسیب دیدن
Adding the take damage state
نهایی کردن حالت آسیب دیدن
Finalizing the take damage state
نوار زندگی پیشرفته
Advanced life bar
اضافه کردن یک نوار زندگی پیشرفته برای بازیکن
Adding an advanced life bar for the player
حالت مرگ قهرمان
The hero die state
به روز رسانی صحنه قهرمان
Updating the hero scene
اضافه کردن حالت مرگ به ماشین حالت قهرمان
Adding the die state to the hero state machine
سایه زن اثر انتقال دایره ای
Circle transition effect shader
ایجاد صحنه انتقال دایره ای
Creating the circle transition scene
اضافه کردن اسکریپت
Adding the sript
اعمال انتقال دایره ای هنگام مرگ قهرمان
Applying the circle transition when the hero dies
تنظیم دقیق انتقال و تبدیل آن به یک تک آهنگ
Finietuning the transition and making it as a singleton
به روز رسانی اسکریپت ها
Updating scripts
منوی اصلی
Main menu
منوی اصلی 1 / 6 - ایجاد صحنه حلقه انتخاب
Main menu 1 / 6 - Creating the selection ring scene
منوی اصلی قسمت 2 / 6 - متحرک سازی حلقه انتخاب
Main menu part 2 / 6 - Animating the selection ring
منوی اصلی 3 / 6 - اسکریپت نویسی حلقه انتخاب
Main menu 3 / 6 - Scripting the selection ring
منوی اصلی قسمت 4 / 6 - نمایش گزینه انتخاب شده
Main menu part 4 / 6 - Show the selected option
منوی اصلی 5 / 6 - نهایی کردن حلقه انتخاب
Main menu 5 / 6 - Finalizing the selection ring
منوی اصلی 6/ 6 - اضافه کردن پس زمینه پیمایشی، عنوان، قهرمان در حال دویدن و موسیقی.
Main menu 6/ 6 - Adding scrolling background, title, running hero and music.
انتقال بین منوی اصلی و بازی
Transitioning between main menu and game
انتقال بین صحنه ها با استفاده از تک آهنگ انتقال دایره ای.
Transitioning between scenes using the circle transition singleton.
منوی مکث
Pause menu
اضافه کردن منوی مکث به بازی
Adding the pause menu to the game
منوی تنظیمات
Settings menu
ایجاد صحنه منوی تنظیمات
Creating the settings menu scene
طرح بندی تب کنترل ها
The Controls tab layout
صحنه MappedAction
MappedAction scene
صحنه XBoxInputGfx
XBoxInputGfx scene
نمایش دکمه Xbox اختصاص داده شده
Show assigned xbox button
نمایش محور Xbox اختصاص داده شده
Show assigned xbox axis
صحنه KeyboarInputKey
KeyboarInputKey scene
نمایش کلید صفحه کلید اختصاص داده شده
Show assigned keyboard key
صحنه PopUpMessage
PopUpMessage scene
اختصاص یک کلید صفحه کلید به یک عمل ورودی
Assigning a keyboard key to an input action
اختصاص دکمه و محور گیم پد
Assigning gamepad button and axis
اضافه کردن عملکردهای نگاشت شده به کانتینر پیمایشی
Adding mapped actions to the scroll container
تمرکز MappedAction
MappedAction focus
تمرکز دکمه های منو
Menu buttons focus
طرح بندی تب صدا
The Audio tab layout
ایجاد صحنه VolumeBar
Creating the VolumeBar scene
اسکریپت نویسی تب صدا
Scripting the Audio tab
طرح بندی تب ویدئو
The Video tab layout
اسکریپت نویسی تب ویدئو قسمت 1 / 2 - راه اندازی + به روز رسانی اسکریپت تنظیمات
Scripting the Video tab part 1 / 2 - Setup + updating the settings script
اسکریپت نویسی تب ویدئو قسمت 2 / 2
Scripting the Video tab part 2 / 2
راه اندازی سیگنال ها برای دکمه های پایین (کنترل ها، صدا، ویدئو)
Setting up signals for the bottom buttons (Controls, Audio, Video)
ذخیره فایل پیکربندی کنترل ها
Saving the controls config file
بارگیری فایل پیکربندی کنترل ها
Loading the controls config file
رفع باگ تمرکز انتخاب
Fixing the selection focus bug
ذخیره فایل پیکربندی صدا و ویدئو
Saving the Audio & Video configurations file
بارگیری فایل پیکربندی صدا و ویدئو
Loading the Audio and Video configurations file
باز کردن منوی تنظیمات در داخل بازی
Opening the settings menu inside of the game
اضافه کردن جلوه های صوتی به منوی مکث
Adding sound effects to the pause menu
اضافه کردن جلوه های صوتی منوی مکث
Adding pause menu sound effects
از بین بردن چند باگ خزنده دیواری
Smashing a couple of WallCrawler bugs
استفاده از مهارت های کدنویسی اسپری باگ خود برای از بین بردن باگ های خزنده دیواری
Using your bug-spray coding skills to exterminate the WallCrawler bugs
نحوه بازیابی تم رابط کاربری Metroidvania پس از وارد کردن مجدد پروژه.
How to restore the Metroidvania GUI Theme after re-importing the project.
بازیابی تم رابط کاربری Metroidvania
Restoring the Metroidvania GUI Theme
راه اندازی Inventory
Setting up Inventory!
ایجاد صحنه ItemTemplate
Creating the ItemTemplate scene
راه اندازی طرح بندی صحنه Inventory
Setting up the inventory scene layout
The ItemSlotScene
The ItemSlotScene
The ItemSlotScript
The ItemSlotScript
اضافه کردن ItemSlots و اسکریپت به صحنه inventory
Adding ItemSlots and script to the inventory scene
ایجاد یک سیب و قرار دادن آن در Inventory
Creating an apple and putting it in the inventory
راه اندازی تجهیزات!
Setting up Equipment!
ایجاد صحنه تجهیزات
Creating the equipment scene
انتخاب اسلات تجهیزات با صفحه کلید و گیم پد
Selecting equipment slot with keyboard and gamepad
باز کردن / بستن Inventory و تجهیزات در بازی
Opening / closing inventory & equipment in the game
Inventory ادامه دارد
Inventory continued
انتخاب اسلات inventory با صفحه کلید و گیم پد
Selecting inventory slot with keyboard and gamepad
ایجاد صحنه MappedInput
Creating the MappedInput scene
اسکریپت نویسی MappedInput
Scripting the MappedInput
بررسی اینکه آخرین بار از کدام دستگاه ورودی استفاده شده است
Checking which input device that was last used
اضافه کردن صحنه MappedInput به Inventory و تجهیزات
Adding the MappedInput scene to inventory and equipment
فعال کردن برداشت آیتم ویژه (آیتم های داخل کره های برداشت آیتم)
Enabling special item pickup (items inside of the item pickup speheres)
برداشت آیتم های ویژه قسمت 1 / 3
Picking up special items part 1 / 3
برداشت آیتم های ویژه قسمت 2 / 3
Picking up special items part 2 / 3
برداشت آیتم های ویژه قسمت 3 / 3
Picking up special items part 3 / 3
راه اندازی فروشگاه!
Set up shop!
راه اندازی صحنه فروشگاه و طرح بندی ShopUI
Setup shop scene and ShopUI layout
اسکریپت نویسی ShopUI
Scripting the ShopUI
اضافه کردن NPC فروشگاه و اتاق فروشگاه به نقشه.
Adding shop NPC and shop room to the map.
رفع مشکل باز کردن / بستن فروشگاه و تمرکز پانل ماوس.
Fixing open / close shop, and mouse panel focus problem.
خرید از فروشگاه
Buying from the shop
رفع مشکل تمرکز ماوس SlotItem
Fixing the SlotItem mouse focus problem
فروش به فروشگاه
Selling to the shop
اضافه کردن پول به بازی
Adding money to the game
اضافه کردن صندوقچه به بازی
Adding chests to the game
راه اندازی صحنه صندوقچه
Setting up chest scene
کدنویسی اسکریپت صندوقچه
Coding the chest script
اضافه کردن انواع تجهیزات آیتم
Adding item equip types
به روز رسانی اسکریپت تجهیزات و اسلات های تجهیزات
Updating equipment script and Equipment slots
اضافه کردن یک آیتم جدید: کمان معمولی
Adding a new item: common bow
تجهیز و خارج کردن یک آیتم
Equipping and unequipping an item
اعمال اثر مصرفی
Applying the consumable effect
اضافه کردن اثر ضربه به عقب به قهرمان هنگام آسیب دیدن
Adding knock-back effect to the hero when he is taking damage
ضربه زدن به عقب قهرمان
Knocking back the hero
رفع باگ
Bugfixing
رفع آسیب تیر غیرفعال به دشمنان
Fixing passive arrow damage on enemies
جلوگیری از برخورد قهرمان با تیر خود هنگام شلیک
Preventing hero to collide with his own arrow when firing
رفع باگ در منوی تنظیمات
Fixing bugs in the settings menu
تغییر روش به روز رسانی تیر
Changing arrow update method
رفع باگ مقیاس نقشه کوچک
Fixing the minimap scale bug
محدود کردن شلیک تیرها به زمانی که کمان مجهز شده باشد
Limiting firing arrows to when a bow is equipped
شلیک تیرها، فقط زمانی که کمان مجهز شده باشد
Firing arrows, only when a bow is equipped
پروژه کامل - آن را از اینجا بگیرید!
Full project - grab it here!
دانلود کد منبع کامل
Download complete source code
خلاصه دوره
Course summary
تبریک می گویم برای اتمام دوره!
Congratulations on completing the course!
نمایش نظرات