توقيت دلتا

يُستخدم مصطلح " زمن دلتا" أو "توقيت دلتا" من قِبل المبرمجين فيما يتعلق باستجابة الأجهزة والشبكات. [ 1 ] في برمجة الرسومات ، يُستخدم هذا المصطلح عادةً لوصف تحديث المشهد بشكل متغير بناءً على الوقت المنقضي منذ آخر تحديث للبرنامج [ 2 ] (أي " الإطار " السابق )، والذي يختلف باختلاف سرعة الحاسوب، وحجم العمل المطلوب إنجازه في البرنامج في أي وقت. كما يسمح هذا بحساب الرسومات بشكل منفصل في حال استخدام معالجة متعددة الخيوط للرسومات.

في برمجة الشبكات ، ونظراً للطبيعة غير المتوقعة لاتصالات الإنترنت ، يُستخدم توقيت دلتا بطريقة مماثلة لتحديث معلومات الحركة المستلمة عبر شبكة الحاسوب بشكل متغير ، بغض النظر عن المدة التي استغرقتها عملية استلام حزمة البيانات التالية لمعلومات الحركة. [ 3 ]

يتم ذلك عادةً عن طريق استدعاء مؤقت كل إطار في الثانية، حيث يقيس الوقت بين الآن وآخر استدعاء. بعد ذلك، يُستخدم الرقم الناتج (فرق الوقت) لحساب المسافة التي كان من المفترض أن تقطعها شخصية لعبة فيديو خلال تلك الفترة. ينتج عن ذلك أن تستغرق الشخصية نفس الوقت الفعلي للتحرك عبر الشاشة بغض النظر عن معدل التحديث، وسواء كان التأخير ناتجًا عن نقص في قوة المعالجة أو بطء في اتصال الإنترنت.

في برمجة الرسومات، يمنع هذا تباطؤ أو تسارع اللعب تبعًا لمدى تعقيد الأحداث في أي لحظة، مما قد يُسبب تجربة غير متناسقة ومزعجة (مثل تباطؤ الوقت مع ازدياد عدد الشخصيات الظاهرة على الشاشة، أو تسارعه بشكل مفرط لوجود شخصية واحدة فقط). أما في برمجة الشبكات، فيُحافظ هذا على تزامن عالم اللعبة على جميع أجهزة الكمبيوتر، من خلال ضمان رؤية كل عميل لنفس النشاط في نفس الوقت، حتى لو مرّ وقت أطول على آخر تحديث لبعض العملاء مقارنةً بغيرهم.

ستؤثر التأخيرات الكبيرة في النهاية سلبًا على تجربة اللعب ، ولكن استخدام تقنية دلتا تايم يحافظ على اتساق اللعب طالما أن الكمبيوتر واتصال الإنترنت يلبيان الحد الأدنى من متطلبات الأجهزة للعبة.

قياس التوقيت دلتا في البرمجة

يمكن استخدام فرق الوقت لقياس المدة التي استغرقها برنامج معين للتنفيذ في الوقت الفعلي. يوضح مقتطف بايثون أدناه كيفية حساب وقت تنفيذ دالة مثال باستخدام فرق الوقت قبل التنفيذ وبعده.

بايثون

# وقت()# تُعيد عدد الثواني منذ بداية الحقبة كرقم عشريمن الوقت استورد الوقت# تعريف is_prime(x)دالة is_prime ( x ):for i in range ( 2 , x ):إذا كان ( x % i ) يساوي 0 :print ( x , "ليس عددًا أوليًا" )يعودprint ( x , "عدد أولي" )# قياس زمن دلتاt0 = الوقت () # بداية القياسis_prime ( 15 ) # استدعاء الدالةt1 = الوقت () # نهاية القياسدلتا تايم = t1 - t0print ( "is_prime(13) takes" , deltaTime , "seconds to execute!" )

وقت التغير ومعدل الإطارات

لا يرتبط معدل الإطارات دائمًا بفترة دلتا الزمنية. تُصنّف ألعاب الفيديو إلى فئتين فيما يتعلق بمعدل الإطارات: ألعاب تعتمد على معدل الإطارات وأخرى لا تعتمد عليه. تتميز الألعاب التي تعتمد على معدل الإطارات بمعدل إطارات يتغير باختلاف جهاز الكمبيوتر الذي يُشغّل البرنامج. على سبيل المثال، إذا كانت اللعبة تعمل بمعدل 300 إطار في الثانية على جهاز كمبيوتر بمعدل تحديث 120 هرتز، فستعمل بمعدل 150 إطارًا في الثانية على جهاز كمبيوتر بمعدل تحديث 60  هرتز. يمكن لمعادلة دلتا الزمنية القياسية إنشاء شاشات إيقاف مؤقت وتأثيرات حركة بطيئة مُتعمّدة في الألعاب التي تعتمد على معدل الإطارات. نادرًا ما تُستخدم معادلات دلتا الزمنية القياسية في اللعب العادي لأن فترة دلتا الزمنية بين الإطارات تختلف اختلافًا كبيرًا باختلاف معدل تحديث جهاز الكمبيوتر الذي يُشغّل اللعبة عليه.

إذا كانت اللعبة مستقلة عن معدل الإطارات، فإن معدل الإطارات يكون مُحددًا مسبقًا ويعمل بنفس الطريقة على جميع أجهزة الكمبيوتر بغض النظر عن مواصفاتها. يحدّ استقلال معدل الإطارات من الحد الأقصى لجودة الرسومات لجعل اللعبة متاحة لعدد أكبر من المستخدمين. يحظى استقلال معدل الإطارات بشعبية خاصة في ألعاب الهواتف المحمولة والألعاب المُحسّنة لأجهزة الكمبيوتر ذات المواصفات المنخفضة مثل أجهزة Chromebook. في الألعاب المستقلة عن معدل الإطارات، يكون الفرق الزمني بين الإطارات ثابتًا في جميع أنحاء اللعبة. هذا التوحيد يعني أن تعبيرًا واحدًا للفرق الزمني يُمكنه إنشاء معدل إطارات ثابت لجميع المستخدمين على جميع أنواع أجهزة الكمبيوتر. [ 4 ]

متى يُستخدم دلتا تايم

يُعدّ توقيت دلتا مثاليًا عندما يتطلب معدل الإطارات في اللعبة استقلالية تامة عن مواصفات الجهاز. ومن الأمثلة على ذلك الألعاب التي تعمل على الأجهزة المحمولة أو أجهزة الكمبيوتر ذات المواصفات المنخفضة. في بعض الحالات، يستخدم مطورو ألعاب الفيديو توقيت دلتا لتوحيد سرعة حركة العناصر على الشاشة. فعلى سبيل المثال، إذا تحركت شخصية ما عبر الشاشة بسرعة ثابتة، يضمن توقيت دلتا ثبات هذه السرعة وعدم تذبذبها. يُعدّ استخدام توقيت دلتا للحركة مفيدًا بشكل خاص للمستخدمين الذين يعانون من ضعف الاتصال بالإنترنت أو أجهزة الكمبيوتر ذات المواصفات المنخفضة. كما يُمكن لهذه الطريقة تنظيم حركة العناصر على الشاشة.

من عيوب استخدام توقيت دلتا للحركة أنه قد يكون معقدًا في الألعاب التي تتضمن مجموعة واسعة من الحركات وسرعاتها. على سبيل المثال، قد تحتوي اللعبة على سرعة مشي وسرعة ركض محددتين لجميع الشخصيات؛ ومع ذلك، قد تقود الشخصيات أيضًا سيارات وقوارب وطائرات ومركبات أخرى. إذا أراد المطور أن تكون كل سرعة من سرعات الحركة هذه مختلفة (لجعل اللعبة واقعية قدر الإمكان)، فسيحتاج إلى تعبير دلتا زمني منفصل لكل سرعة حركة (بافتراض أن هذه الحركات تحدث بمعدل ثابت). إذا لم تحدث الحركات بمعدل ثابت، فإن تعبيرات توقيت دلتا تصبح غير فعالة. [ 5 ]

انظر أيضاً

مراجع

  1. "برنامج صنع الألعاب - كونستركت 3 ★★★★★" .
  2. "الرسوم المتحركة القائمة على الوقت باستخدام HTML 5 Canvas و JavaScript | Viget" .
  3. كوك، شين (28-12-2012). برمجة CUDA: دليل المطور للحوسبة المتوازية باستخدام وحدات معالجة الرسومات . نيونس. ISBN 978-0-12-415988-4.
  4. آشلي (2017-09-26). "استقلالية دلتا-تايم ومعدل الإطارات" . Construct.net . غير معروف . تم الاسترجاع في 2022-02-05 .
  5. درو كولمان (24 يوليو 2019). "فهم توقيت دلتا" . Medium.com . غير معروف . تم الاسترجاع في 5 فبراير 2022 .