دستاوردهای بازیکن خود را پیگیری کنید و با یک سیستم امتیازدهی ساده به آنها برای نقاط عطف خاص پاداش دهید.
در هر بازی، پیادهسازی سیستم امتیازدهی فقط بهعنوان ردیابی امتیاز نیست. امتیاز دهی یک ویژگی اساسی است که به عمق، چالش و حس موفقیت می افزاید.
چه در حال ساخت یک بازی تلفن همراه معمولی یا یک ماجراجویی پر اکشن شدید، یک سیستم امتیازدهی خوب طراحی شده می تواند نیروی محرکه انگیزه و تعامل بازیکنان باشد.
راه اندازی بازی گودو
قبل از فرو رفتن در سیستم امتیازدهی، یک بازی دو بعدی اساسی را در موتور بازی گودو راه اندازی کنید. یک شخصیت بازیکن ایجاد کنید که بتواند در اطراف صفحه حرکت کند. همچنین تعدادی دشمن متحرک اضافه کنید تا بازیکن از آن اجتناب کند.
ابتدا یک صحنه جدید ایجاد کنید و یک گره CharacterBody2D را به عنوان بدنه اصلی بازیکن اضافه کنید. در داخل گره CharacterBody2D، یک CollisionShape2D با شکل مستطیلی اضافه کنید تا نشان دهنده هیت باکس بازیکن باشد. علاوه بر این، یک گره Sprite2D برای نمایش اسپرایت بازیکن اضافه کنید.
کد استفاده شده در این مقاله در این مخزن GitHub موجود است و برای استفاده شما تحت مجوز MIT رایگان است.
حالا کد GDScript را برای حرکت بازیکن بنویسید:
extends CharacterBody2D
var speed = 200
func _physics_process(delta):
var velocity = Vector2()
if Input.is_action_pressed('ui_right'):
velocity.x += 1
if Input.is_action_pressed('ui_left'):
velocity.x -= 1
if Input.is_action_pressed('ui_down'):
velocity.y += 1
if Input.is_action_pressed('ui_up'):
velocity.y -= 1
velocity = velocity.normalized() * speed
move_and_collide(velocity * delta)
این کد گره CharacterBody2D را گسترش می دهد و به بازیکن اجازه می دهد با استفاده از کلیدهای جهت دار در چهار جهت حرکت کند.
بعد، چند دشمن متحرک اضافه کنید. برای سادگی، از گره های ساده Sprite2D استفاده کنید که به صورت افقی در سراسر صفحه حرکت می کنند:
extends StaticBody2D
var speed = 100
func _physics_process(delta):
position.x -= speed * delta
if position.x < -100:
position.x = 800
این کد یک دشمن ساده ایجاد می کند که از راست به چپ حرکت می کند. هنگامی که از صفحه خارج می شود، موقعیت آن را بازنشانی کنید تا توهم یک جریان مداوم از دشمنان را ایجاد کنید.
یک سیستم امتیازدهی راه اندازی کنید
اکنون که یک تنظیمات اولیه بازی دارید، سیستم امتیازدهی را اضافه کنید. یک متغیر سراسری برای پیگیری امتیاز بازیکن ایجاد کنید. می توانید این اسکریپت را در یک گره جداگانه یا خود شخصیت پخش کننده قرار دهید:
extends CharacterBody2D
var score = 0
func _ready():
score = 0
متغیر امتیاز به عنوان یک ذخیره سازی مرکزی برای امتیاز بازیکن در طول بازی عمل می کند. همانطور که بازیکن اقداماتی را انجام می دهد که امتیاز کسب می کند، بر این اساس این متغیر امتیاز را افزایش دهید. این پیاده سازی باعث می شود که امتیاز روی صفحه نمایش داده شود، آن را در حین بازی به روز کنید و آن را برای ردیابی امتیاز بالا ذخیره کنید.
با راهاندازی سیستم امتیازدهی، میتوانید به نمایش امتیاز روی صفحه، ردیابی امتیاز بالای بازیکن و افزودن ویژگیهای مختلف برای جذابتر کردن سیستم امتیازدهی بروید.
نمایش امتیاز
برای نمایش امتیاز روی صفحه، یک گره برچسب ایجاد کنید و آن را با امتیاز فعلی در هر فریم به روز کنید. در صحنه، یک گره Label اضافه کنید و نامی به آن بدهید. سپس، کد زیر را برای به روز رسانی برچسب با امتیاز اضافه کنید:
extends CharacterBody2D
var score = 0
var score_label
func _ready():
score_label = get_parent().get_node("Label")
score = 0
func _physics_process(delta):
var velocity = Vector2()
// Player movement code...
# Update score and display
score_label.text = "Score: " + str(score)
این کد گره Label را واکشی می کند و متن آن را با امتیاز فعلی به روز می کند.
از جمله ویژگی های بیشتر
برای اینکه سیستم امتیازدهی خود را جذابتر کنید، برخی یا همه این ویژگیها را در بازیهای پلتفرمر خود پیادهسازی کنید.
پاور آپ ها و جوایز
پاور آپ ها یا کلکسیون های مختلفی ایجاد کنید که بازیکنان می توانند در طول بازی جمع آوری کنند. این قدرتها میتوانند تقویتهای موقت، امتیازات اضافی یا تواناییهای ویژه را ارائه دهند و تجربه کلی را افزایش دهند.
به عنوان مثال، افزایش دو امتیازی میتواند امتیازهای کسب شده را برای مدتی محدود دو برابر کند یا افزایش قدرت شیلد میتواند بازیکن را برای مدت کوتاهی شکستناپذیر کند.
سیستم ترکیبی
یک سیستم ترکیبی را پیاده سازی کنید که به بازیکنان برای اقدامات متوالی، مانند شکست دادن سریع دشمنان، امتیازات اضافی را پاداش می دهد. هرچه زنجیره ترکیبی طولانی تر باشد، ضریب امتیاز بالاتر است.
این سیستم بازیکنان را تشویق می کند تا حرکت خود را حفظ کنند و با مهارت دشمنان را از بین ببرند تا امتیازات خود را به حداکثر برسانند.
پاداش زمانی
یک جایزه مبتنی بر زمان اضافه کنید که به بازیکنان برای تکمیل سطوح یا اهداف در یک محدودیت زمانی خاص پاداش میدهد. هرچه سریعتر به پایان برسند، امتیاز بیشتری دریافت می کنند. این ویژگی بازیکنان را به بازی موثر تشویق می کند و یک عنصر فوریت را به گیم پلی اضافه می کند.
اهداف سطح
سطوح را با اهداف یا اهداف امتیازی خاص برای دستیابی بازیکنان طراحی کنید. به عنوان مثال، میتوانید هدفی را برای بازیکنان تعیین کنید که به آستانه امتیاز خاصی برسند یا تعداد خاصی از آیتمها را جمعآوری کنید تا به سطح بعدی بروید. دستیابی به این اهداف باعث ایجاد حس موفقیت و پیشرفت می شود.
رفتار و امتیاز دشمن
رفتار دشمن را تغییر دهید و بر اساس سختی، امتیازهای مختلفی را به آنها اختصاص دهید. دشمنان چالشبرانگیزتر میتوانند در صورت شکست امتیازهای بالاتری را دریافت کنند، در حالی که دشمنان سادهتر امتیاز کمتری را ارائه میدهند. این رویکرد به گیم پلی بازی عمق می بخشد و باعث می شود هر رویارویی با دشمن متمایز باشد.
بهترین روش ها برای سیستم امتیازدهی
بهترین روش ها برای افزایش اثربخشی سیستم امتیازدهی شما و ایجاد یک تجربه بازی همهجانبه وجود دارد. بعضی از آنها … هستند:
تعادل و انصاف
اطمینان حاصل کنید که سیستم امتیازدهی به خوبی متعادل و منصفانه برای همه بازیکنان است. از دادن امتیاز بیش از حد برای کارهای آسان یا چالش برانگیز کردن امتیاز برای بازیکنان معمولی خودداری کنید. یک سیستم امتیازدهی متعادل به بازیکنان انگیزه می دهد تا به بازی ادامه دهند و برای نتایج بهتر تلاش کنند.
پاک کردن بازخورد
بازخورد واضح و فوری در مورد رویدادهای امتیازدهی ارائه دهید. از نشانه های بصری و صوتی در بازی خود استفاده کنید تا بازیکنان را در هنگام کسب امتیاز، کسب امتیاز بالا یا راه اندازی یک ترکیب ترکیبی مطلع کنید. تقویت مثبت از طریق بازخورد تجربه بازیکن را افزایش می دهد و آنها را درگیر نگه می دارد.
مقیاس سختی
اجرای امتیازدهی پویا را بر اساس سطح مهارت بازیکن یا تنظیمات دشواری بازی در نظر بگیرید. مقیاس بندی سیستم امتیازدهی به بازیکنان در تمام سطوح اجازه می دهد تا از بازی لذت ببرند، چه مبتدی باشند و چه گیمرهای با تجربه.
قابلیت پخش مجدد
سیستم امتیازدهی را طوری طراحی کنید که قابلیت پخش مجدد را تشویق کند. چندین مسیر یا اهداف اختیاری را ارائه دهید که بازیکنان می توانند برای افزایش امتیاز خود دنبال کنند. این رویکرد به بازیکنان دلیلی برای بازگشت و کشف استراتژی های مختلف می دهد.
قابلیت مشاهده امتیاز بالا
امتیاز بالا را به طور برجسته در منوی اصلی یا رابط درون بازی نمایش دهید. مشاهده امتیاز بالا به بازیکنان انگیزه میدهد تا به مقام برتر دست یابند و رقابت سالمی را بین بازیکنان ایجاد میکنند.
جذابتر کردن بازیهای گودو با سیستم امتیازدهی
افزودن یک سیستم امتیازدهی به بازی گودو روشی موثر برای جذابتر کردن و لذت بردن آن برای بازیکنان است. این حس واضحی از پیشرفت را فراهم می کند، بازی مجدد را تشویق می کند و رقابت سالم را بین بازیکنان تقویت می کند.
با ترکیب سیستم امتیازدهی با ویژگیهای مختلف دیگر و بهترین شیوهها، میتوانید یک تجربه گیمپلی پویا و باارزش ایجاد کنید که بازیکنان را برای دستیابی به امتیازات بالاتر مشتاق و هیجانزده نگه میدارد.