لگ (بازی های ویدیویی)
در کامپیوتر ها، لَگ به معنای تأخیر ( نهفتگی ) بین کنش کاربر (ورودی) و واکنش سرور پشتیبانی از وظیفه است که باید به مشتری (client) ارسال شود. توانایی کاربران برای تحمل لَگ بستگی به نوع وظیفه در حال اجرا دارد.مثلا، یک بازی با سرعت کم ممکن است آستانه بالایی داشته باشد یا حتی تحت تأثیر لَگ زیاد قرار نگیرد. در وظیفه ای که اجرای آن سخت است، مانند باز بودن تعداد زیادی تب یا پنجره، تفاوت زیادی در فریم ریت خواهید دید.
زمان پینگ تاخیر شبکه برای یک رفت و برگشت بین بازیکن کلاینت و سِرورِ بازی است که با ابزار پینگ یا معادل آن اندازه گیری می شود. زمان پینگ، زمان میانگین است که بر حسب میلی ثانیه اندازه گیری می شود. هرچه پینگ کمتر باشد، بازیکن لَگ کمتری را تجربه خواهد کرد. "پینگ" بالا و پینگ پایین عباراتی هستند که معمولاً در بازی‌های آنلاین مورد استفاده قرار می‌گیرند، "پینگ بالا" باعث لَگ شدید می‌شود. هر مقداری از پینگ می تواند باعث لَگ شود، اما لَگ شدید به معنای پینگ بیش از 100 میلی ثانیه است. این کاربرد یک مکالمه ی عامیانه در بازی است و معمولاً در جمع های شبکه های رایانه ای حرفه ای یافت یا استفاده نمی شود. در بازی‌هایی که زمان‌بندی نقش کلیدی دارد مانند بازی‌های تیراندازی اول شخص و بازی‌های استراتژی هم زمان ،همیشه پینگ پایین مطلوب است که یعنی گیم‌پلی روان‌تر است و امکان به‌روزرسانی سریع‌ داده‌های بازی بین بازیکنان کلاینت و سرور بازی وجود دارد.
تاخیر زیاد هم می تواند باعث بروز لَگ شود. سرورهای بازی هنگام تأخیر خیلی زیاد به دلیل وارد شدن آسیب به گیم پلی بازیکنان دیگر ممکن است ارتباط کلاینت را قطع کنند. به همین صورت اگر تأخیر خیلی زیاد باشد، نرم افزار کلاینت اغلب دستور به قطع ارتباط می دهد. همچنین پینگ بالا موجب ناپایداری سرور ها و در نتیجه از کار افتادن آنها می شود.
در برخی از بازی های تیراندازی اول شخص، گاهی پینگ بالا موجب دستیابی ناخواسته ی بازیکن به منافع ناعادلانه ای می شود، مانند از یک موقعیت غیب شدن و بلافاصله در مکان دیگر ظاهر شدن، که به اشتباه اثر دوربری را شبیه سازی می کند، و برای بازیکن های دیگر، تشخیص موقعیت کاراکترشان و متعاقباً هدف گیری بازیکن سخت می شود. برای مقابله با این سؤاستفاده، بسیاری از سرور های بازی به طور خودکار بازیکنان را با پینگ بالاتر از حد متوسط را بیرون می اندازند. در مقابل این منافع، یک پینگ بالا می تواند برای بازیکن به دلیل بروز ضرر، بازی و ردیابی بازیکنان دیگر و حتی حرکت دادن کاراکتر خود بازیکن در بازی را خیلی سخت کند.
برنامه نویسان بازی های ویدیویی برای برای تعیین زمان پینگ به جای استفاده از درخواست (به شکل درخواست سنتی اکو ICMP) و پاسخ ( پاسخ به بسته های شبکه)، کشف تأخیر را در بسته های بازی موجود (معمولاً بر اساس پروتکل UDP ) برای خود می سازند.
برخی از عوامل تاثیر گذار بر پینگ عبارتند از: پروتکل ارتباطی مورد استفاده، گذرداد اینترنت (سرعت اتصال)، کیفیت رساننده ی خدمات اینترنتی کاربر و پیکربندی فایروال‌ ها. موقعیت جغرافیایی هم بر پینگ تاثیر دارد. مثلا، اگر بازیکنی در هند روی سروری در ایالات متحده بازی کند، چون فاصله بین این دو کشور بیشتر از بازیکنانی است که واقع در ایالات متحده هستند، انتقال داده ها طولانی تر می شود. هر چند غالباً مقدار سوئیچینگ بسته و سخت افزار شبکه در بین دو کامپیوتر مهم تر است. مثلاً، کارت‌ های رابط شبکه بی‌سیم باید سیگنال‌های دیجیتال را به سیگنال‌های رادیویی تعدیل کنند، که اغلب هزینه بیشتری نسبت به سیگنال الکتریکی برای عبور از یک دهانه کابل معمولی طول می‌کشد. پس پینگ پایین تر می تواند نرخ دانلود و آپلود اینترنت را سریع تر کند.
بر خلاف بازی تک نفره که حالت اصلی بازی را روی ماشین محلی حفظ می‌کند، بازی آنلاین آن را روی سرور مرکزی نگهداری می کند چون باید از ناهماهنگی بین تک کلاینت ها جلوگیری شود. بنابراین کلاینت هیچ کنترل مستقیمی بر وضعیت مرکزی بازی ندارد و شاید فقط درخواست های تغییر را به سرور بفرستد و تنها با دریافت به روز رسانی از سرور وضعیت بازی محلی را به روز کند. این نیاز به برقراری ارتباط باعث تاخیر بین کلاینت و سرور می شود و دلیل اصلی لگ همین است. دلایل اساسی متعددی که چرا یک بازیکن تاخیر را تجربه می‌کند می توان بر شمرد ولی خلاصه ی آنها عدم وجود سخت‌افزار کافی در کلاینت یا سرور، یا ارتباط ضعیف بین کلاینت و سرور است.
مشکلات سخت افزاری به دلیل ساختار پایه ای معماری بازی باعث لگ می شود. بازی ها معمولا از یک توالی حلقه ای از حالت ها یا "فریم ها" تشکیل شده اند. در طول هر فریم، بازی ورودی کاربر را می پذیرد و محاسبات لازم (هوش مصنوعی، گرافیک و غیره) را انجام می دهد. وقتی همه ی پردازش ها تمام شد، بازی وضعیت خود را به روز می کند و یک خروجی مثل نمایش تصویر جدید روی صفحه یا یک بسته برای ارسال به سرور می دهد. معمولا به فرکانس تولیدی در هر کدام از فریم ها فریم ریت گفته می شود. چون حالت مرکزی بازی روی سرور قرار دارد، پس باید کلاینت اطلاعات به روز شده را به سرور بفرستد تا اعمال شود. علاوه بر این، کلاینت باید اطلاعات لازم را از سرور دریافت کند تا وضعیت کاملا به روز شود. تولید بسته‌ها برای ارسال به سرور و پردازش بسته‌های دریافتی تنها زمانی انجام می‌شود که کلاینت بتواند وضعیت محلی خود را به‌روزرسانی کند. اگرچه بسته‌ها از نظر تئوری می‌توانند سریع‌تر از این تولید و ارسال شوند، تنها وقتی داده‌های اضافی ارسال می‌شود که وضعیت بازی بین هر بسته بروز رسانی نشود. پس فریم ریت پایین موجب پاسخ کمتر بازی به بروز رسانی ها و رد شدن از داده‌های قدیمی می شود.
در مقابل، همین اتفاق برای سرور هم می افتد. فریم ریت (یا تیک ریت) سرور تعیین می کند که هر چند وقت یکبار می تواند داده های کلاینت ها را پردازش کند و بروز رسانی ها را ارسال کند. پیش بینی این نوع مشکل و جبران آن دشوار است. جز اجرای حداقل نیازمندی های سخت افزاری و تلاش برای بهینه سازی بازی برای عملکرد بهتر، هیچ راه عملی برای مقابله با آن وجود ندارد.
شاید رایج ترین نوع لگ ناشی از مشکلات عملکرد شبکه باشد. اتلاف ، تخریب یا لرزش (یک بسته تاریخ گذشته نتیجه ی اتلاف است) ممکن است همه مشکلاتی را ایجاد کنند، اما این مشکلات در شبکه ای با پهنای باند کافی و نامتراکم یا کم تراکم نسبتا کمتر اتفاق می افتد. در عوض، تأخیر دخیل در انتقال داده بین کلاینت و سرور نقش مهمی دارد. تفاوت تأخیرها در عواملی مثل فاصله فیزیکی بین سیستم‌های انتهایی است، چون برای فاصله بیشتر امتداد مخابراتی طولانی تر و مسیریابی نیاز است که در نتیجه تاخیر بالاتر می شود. مسیریابی از طریق اینترنت ممکن است بسیار پیچیده باشد، که منجر به امتداد مخابراتی بسیار بیشتر (و در نتیجه تاخیر) نسبت به مسیر سر راست می‌شود، اگرچه سرویس بازی ابری OnLive با ایجاد روابط همتا با چندین ارائه‌دهنده خدمات اینترنت شبکه سطح 1 و انتخاب مسیر بهینه بین سرور و کاربر راه‌حلی برای این موضوع ایجاد کرده است. هم چنین، پهنای باند ناکافی و ازدحام، حتی اگر به اندازه کافی شدید نباشد که باعث اتلاف شود، ممکن است بدون توجه به مسافت باعث تاخیرهای اضافی شود. مثل مشکلات سخت افزاری، بسته هایی که آهسته می رسند یا اصلاً نمی رسند، باعث می شوند هم کلاینت و هم سرور نتوانند وضعیت بازی را به موقع بروز کنند.
بسته به معماری شبکه بی‌سیم و تداخل الکترومغناطیسی محلی که بر آن شبکه تأثیر می‌گذارد، سیستم‌های بازی آنلاین که از یک شبکه بی‌سیم استفاده می‌کنند، می توانند لگ چشمگیری داشته باشند. تداخل الکترومغناطیسی (مثلاً از ماکروفر ) می‌تواند بسته‌های ارسالی را نابود کند که برای جبران باید دوباره فرستاده شود که خود این باعث تأخیر می‌شود. انتشار رادیویی در هوا سریعتر از نور در فیبر نوری است، ولی سیستم‌های بی‌سیم اغلب بین کاربران زیادی مشترک هستند و ممکن است به دلیل شلوغی شبکه ، یا به دلیل پروتکل‌های شبکه که تأخیر را نشان می دهند، متحمل تاخیر شوند.
تأثیرات قابل توجه لگ نه تنها به علت دقیق، بلکه بر روی تمام تکنیک‌های جبران لگ که در بازی ممکن است پیاده سازی شده باشد نیز متفاوت است (در زیر توضیح داده شده است). از آنجایی که همه کلاینت ها با چندی تأخیر مواجه خواهند شد، پیاده سازی این روش‌ها برای به حداقل رساندن تأثیر روی بازیکنان برای بازی روان تر مهم است. لگ برای مسائلی مانند دادن وضعیت دقیق بازی و تشخیص ضربه مشکلات زیادی ایجاد می کند. در اکثر بازی‌ها، لگ اغلب نادیده گرفته می شود، زیرا گیم پلی عادی را مختل می‌کند. شدت لگ به نوع بازی و تحمل ذاتی آن برای لگ بستگی دارد. بعضی از بازی‌های با سرعت پایین‌تر می‌توانند لگ های قابل توجهی را بدون هیچ نیازی به جبران تحمل کنند، در حالی که برخی دیگر با تندی بیشتر حساسیت قابل توجهی دارند و برای آنکه بتوان با آنها بازی کرد باید گسترده تر از جبران بهره برد(مانند ژانر تیراندازی اول شخص). به دلیل مشکلات مختلفی که تاخیر ممکن است ایجاد کند، گاهی اوقات بازیکنانی که اتصال اینترنت سریع کافی ندارند، اجازه ی بازی ندارند، یا از بازی با سایر بازیکنان یا سرورهای میزبان سرور دور یا با تاخیر بالا نسبت به یکدیگر، منصرف می شوند. موارد شدید لگ ممکن است منجر به عدم همگام سازی گسترده حالت بازی شود.
لگ به دلیل نرخ ناکافی بروزرسانی بین کلاینت و سرور می‌تواند مشکلاتی ایجاد کند، اما این مشکلات معمولاً به خود کلاینت محدود می‌شود. سایر بازیکنان ممکن است متوجه حرکات تند و مشکلات مشابه، با بازیکن مرتبط با کلاینت آسیب دیده شوند، اما مشکل واقعی در خود کلاینت است. اگر کلاینت نتواند وضعیت بازی را با سرعت کافی بروز کند، ممکن است نسخه‌های تاریخ گذشته ی بازی به بازیکن نشان داده شود که خود موجب مشکلات مختلفی در تشخیص ضربه و برخورد می‌شود. اگر نرخ پایین بروز رسانی ناشی از فریم ریت پایین باشد (بر خلاف تنظیمات روی کلاینت که برخی بازی‌ها اجازه می‌دهند)، این مشکلات معمولاً تحت الشعاع مشکلات متعدد مربوط به پردازش سمت کلاینت قرار می‌گیرند. هم نمایشگر و هم کنترل کند و بی پاسخ خواهند بود. در حالی که این ممکن است لگ ملاحظه شده را افزایش دهد، باید توجه داشت که با تاخیرهای مرتبط با شبکه متفاوت است. برای مقایسه، همین مشکل در سرور ممکن است مشکلات قابل توجهی برای همه کلاینت های درگیر ایجاد کند. اگر سرور نتواند یا نخواهد بسته‌ها را از مشتریان با سرعت کافی بپذیرد و آنها را به موقع پردازش کند، کنش های کلاینت ممکن است هرگز ثبت نشود. هنگام ارسال بروز رسانی ها توسط سرور به کلاینت، بازی ممکن است با انجماد (بازی بدون پاسخ) و/یا بازگشت به عقب را با توجه به نوع جبران لگ مواجه شود.
در مقابل اغلب لگ ناشی از تاخیر شبکه، مشکل کمتری دارد. هرچند بیشتر اتفاق می افتد ولی اثرات واقعی کوچکتری دارد و می توان این نوع لگ ها را جبران کرد. اگر لگ جبران نشود، کلاینت ها متوجه پاسخ بازی تنها در مدت کوتاهی پس از انجام یک عمل می شوند. در تیراندازی های اول شخص ، در جایی که دشمنان احتمالاً حرکت می کنند چون بازیکن سعی می کند به آنها شلیک کند و خطا حاشیه کمی دارد، این اتفاق مشکل ساز است.
با وجود معایب بسیار و یا قابل اجرا نبودن همچنان روش‌های مختلفی برای کاهش یا پنهان کردن تأخیرها وجود دارد. اگر خود بازی امکان همگام سازی نداشته باشد، کلاینت ها می توانند روی سرورهایی که از نظر جغرافیایی نزدیک به خودشان هستند بازی کنند تا تاخیرها را کاهش دهند، یا ساده تر، سرورها تصمیم به حذف کلاینت های با تاخیر بالا بگیرند تا مجبور به مقابله با مشکلات ناشی از آن نشوند. هرچند همچنان اینها راه حل های بهینه نیستند. در عوض، بازی ها اغلب با در نظر گرفتن جبران لگ طراحی می شوند.
اگر به کلاینت ها برای پیگیری وضعیت خود اجازه داده شود و حالت های مطلق به سرور یا مستقیماً به کلاینت های دیگر فرستاده شود بسیاری از مشکلات به راحتی حل می شوند. مثلا، کلاینت دقیقا می گوید که موقعیت کاراکتر بازیکن چیست یا کاراکتر به چه کسی شلیک کرده است. این راه حل موثر است و اکثر مشکلات مربوط به لگ را حل می کند. متأسفانه، فرض بر صداقت کلاینت است. هیچ چیزی مانع بازیکنی نیست که برای اطمینان از اینکه همیشه هدف خود شلیک می کند، داده‌های ارسالی بازیکن از طریق مستقیماً به کلاینت یا غیرمستقیم از طریق یک پروکسی را اصلاح کند. در بازی‌های آنلاین، به دلیل خطر تقلب این راه‌حل اجرایی نیست و مشتریان محدود به فرستادن وضعیت‌های نسبی (یعنی کدام بردار حرکت کرده یا به آن شلیک شده است) خواهند بود.
از آنجایی که کلاینت‌ها معمولاً مجاز به تعریف وضعیت اصلی بازی نیستند و آن را از سرور دریافت می‌کنند، وظیفه اصلی جبران سمت کلاینت تحویل دقیق دنیای مجازی است. از آنجایی که بروزرسانی‌ها با تاخیر و حتی با کاستی ارائه می‌شوند، گاهی لازم است کلاینت جریان بازی را پیش‌بینی کند. از آنجایی که در مراحل گسسته وضعیت بروز می شود، کلاینت باید بر اساس نمونه های موجود بتواند حرکت را تخمین بزند.دو روش اساسی می توان برای این کار استفاده کرد. برون یابی و درون یابی .
برون یابی یک تلاش برای تخمین وضعیت آینده ی بازی است. در لحظه ی دریافت بسته از سرور، مکان یک شی به مکان جدید بروز می شود. هنگامی که منتظر به روز رسانی بعدی هستیم، مکان بعدی بر اساس مکان فعلی و حرکت در زمان به روز رسانی برون یابی می شود. اساساً کلاینت فرض می‌کند که حرکت یک جسم متحرک در جهت یکسان است. لحظه ی دریافت یک بسته جدید شاید مکان کمی اصلاح شود.
عملکرد درون یابی به صورت بافر کردن حالت بازی برای ارائه به بازیکن با تاخیری جزئی و ثابت است. هنگام ورود بسته از سرور به جای بروز رسانی فوری مکان یک شی، کلاینت درون یابی مکان را از آخرین مکان شناخته شده شروع می کند. در طول یک بازه درون یابی، جسم به آرامی بین دو مکان حرکت می کند. این بازه باید دقیقاً با تاخیر بین بسته ها مطابقت داشته باشد، اما به دلیل اتلاف و تاخیر متغیر، به ندرت چنین می شود.
هر دو روش مزایا و معایبی دارند. برای حصول گیم پلی روان، کلاینت اجازه ی اعمال تغییرات نرمی در وضعیت بازی دارد. سرور مهمات، جان، مکان و غیره را ردیابی می کند و کلاینت اجازه ی پیش بینی وضعیت بازی سمت سرور جدید را بر اساس اقدامات بازیکن دارد، مثل اجازه دادن به بازیکن برای شروع حرکت قبل از پاسخ دادن سرور. به فرمان این تغییرات به طور کلی در شرایط عادی پذیرفته می شود و تاخیر را عمدتاً شفاف می کند. مشکلات تنها در صورت تأخیر یا ضرر زیاد، زمانی که پیش‌بینی‌های مشتری به‌طور قابل توجهی توسط سرور لغو می‌شوند، به وجود می‌آیند. گاهی سرور بر اساس به‌روزرسانی‌های مشتری،ممکن است تغییرات «اشتباه» در وضعیت را مجاز کند.
سرور وضعیت فعلی بازی را برخلاف کلاینت‌ها دقیقاً می‌داند و دیگر پیش‌بینی لازم نیست. در عوض هدف اصلی جبران لگ سمت سرور ارائه دقیق اقدامات کلاینت است. دلیل اهمیت این قضیه این است که وقتی فرمان بازیکن برسد، زمان به پایان خواهد رسید و جهان دیگر در حالتی نخواهد بود که بازیکن هنگام صدور فرمان خود دیده است. مثالی واضح اینکه تشخیص ضربه برای سلاح‌هایی است که در تیراندازی اول شخص شلیک می‌شوند، جایی که حاشیه‌های آن کم است و در صورت عدم استفاده صحیح موجب بروز مشکلات مهمی می شود.
برای رسیدگی به این مشکل می توان حالت های قبلی بازی را برای مدت زمان مشخصی ذخیره کرد، سپس هنگام پردازش یک فرمان، مکان های بازیکن را به عقب برگرداند. سرور از تأخیر پخش کننده (شامل هرگونه تأخیر ذاتی ناشی از درون یابی؛توضیح در بالا) برای عقب برگرداندن مقدار مناسبی از زمان استفاده می کند تا مشخص کند مشتری تیراندازی در زمان شلیک چه چیزی دیده است. معمولاً سرور می بیند که کلاینت در موقعیت قدیمی هدف شلیک می کند و اصابت می کند. در بدترین حالت، یک بازیکن آن قدر عقب است که سرور از داده های تاریخچه مملو می شود و آنها باید هدایت هدف خود را از ابتدا شروع کنند.
این یک راه حل WYSIWYG است که بازیکنان می توانند مستقیماً آنچه را که می بینند هدف بگیرند. اما این قیمت تشدید کننده اثرات تاخیر زمانی است که یک بازیکن مورد حمله قرار می گیرد: علاوه بر تاخیر خود، مهاجم آنها نیز نقش دارد. در بسیاری از موقعیت‌ها، این قابل توجه نیست، اما بازیکنانی که به تازگی کاور شده اند، می فهمند که پیام‌های آسیب/مرگ را از سرور برای مدت طولانی‌تری از توجیه تأخیر خودشان، دریافت می‌کنند. این می‌تواند بیشتر به این تصور (کاذب) که آنها از طریق پوشش شلیک شده‌اند و تصور (نه کاملاً نادرست) از " هیت‌باکس‌های عقب مانده " منجر شود.
توقف دستورهای عقب افتاده به محض مرگ یک بازیکن مرده روی سرور یا ادامه ی اجرای آنها تا زمانی که "به زمان مرگ برسد" یکی از مسائل طراحی ناشی از عقب نشینی است. قطع خسارت آنی جلوی قربانیان را برای حمله ی پس از مرگشان به قاتلان را میگیرد، که خود برآورده شدن انتظارات را در پی دارد، اما سود حرکت بازیکنان که یک گوشه را دور می زنند، هدف را به دست می آورند و در زمان کمتری نسبت به یک رفت و برگشت به مشتری قربانی ثابت می کشند محفوظ است.
عقب کشیدن مورد انتقاد است چون به تأخیر بالای یک بازیکن اجازه می‌دهد بر تجربه بازیکنان با تأخیر کم تأثیر منفی بگذارد. سرورهایی با جبران لگ گاهی اوقات مدت تاریخچه ذخیره شده بازیکن را کم می کنند یا پینگ را برای کاهش این مشکل محدود می کنند.
کلاینت ها می توانند به سرور بگویند دارند چه می کنند و سرور به داده های دریافتی اعتماد کند. از این روش حتی الامکان استفاده نمی شود چون در معرض تقلب است: مسیریابی داده‌های شبکه از طریق کامپیوتر ثانویه که پیام‌های ضربه ساختگی را وارد می‌کند یا پیام‌های موجود را اصلاح می‌کند، مسئله ی ساده ای است، تکنیکی که با ابزارهای ضد تقلب قابل شناسایی نیست.
با این حال، مقیاس محض بعضی از بازی‌ها، راه‌حل‌های محاسباتی سنگینی مثل بازگشت به عقب را ناممکن می سازد. مثلا، در "Battlefield 3" ، از یک سیستم "تشخیص ضربه ترکیبی" استفاده می شود که در آن مشتریان به سرور می گویند که ضربه زده است و سرور قبل از تایید فقط یک آزمایش مبهم از معقول بودن انجام می دهد.
وگرنه اعتماد به نتایج کلاینت دارای مزایا و معایبی مانند عقب برگرداندن است .
راه حل دیگر برای لگ اینکه هیچ کاری روی سرور انجام ندهید و هر کلاینت را برون یابی کنید (به بالا مراجعه کنید) تا خود تاخیر خودش را پوشش دهد که البته کمتر رایج است. این کار موجب نتایج اشتباه می شود مگر اینکه بازیکنان از راه دور سرعت ثابتی داشته باشند و مزیتی است برای کسانی که به جلو و عقب طفره می روند یا راحت شروع به حرکت می کنند یا متوقف می شوند.
برون یابی گسترده مشاهده ی بازیکنان راه دور را امکان پذیر می کند (اگرچه آسیب پذیر نیستند) که نباید این طور باشد: مثلا اگر یک بازیکن از راه دور تا گوشه ای به سرعت می دود و بعد ناگهان در لبه ای می ایستد، بقیه ی کلاینت ها برای مدت زمان تأخیر خود، آنها را به سرعت به سمت جلو و در فضای باز تبدیل می کنند. از طرفی کلاینت‌ها باید به بازیکنان راه دوری که به تازگی شروع به حرکت کرده‌اند، سرعت بیشتری بدهند تا آنها را به یک مکان پیش‌بینی‌شده از لحاظ نظری دقیقا سوق دهند.
از طریق طراحی بازی می توان احساس درک لگ را کاهش داد. تکنیک‌هایی شامل پخش انیمیشن‌های سمت سرویس گیرنده، کاهش/حذف تایمرهای داخلی روی دستگاه میزبان، و استفاده از انتقال دوربین برای پنهان کردن تاب برداشتن، احساس می شود که انگار عمل بلافاصله انجام می‌شود.
بازی ابری به بازی آنلاینی گفته می شود که میزبان کل بازی سرور بازی در مرکز داده است و کاربر فقط یک تین کلاینت را به صورت محلی اجرا می کند که اقدامات کنترلر بازی را در بالادست به سرور بازی می فرستد. سپس سرور بازی فریم بعدی ویدیوی بازی را با استفاده از فشرده‌سازی ویدیوی لگ پایین، رندر می کند و به پایین‌دست می فرستد و تین کلاینت آن را از حالت فشرده خارج می کند. برای تجربه ای خوب از بازی ابری، تأخیر رفت و برگشت همه عناصر سیستم بازی ابری (تین کلاینت، اینترنت و/یا اتصال LAN سرور بازی، اجرای بازی در سرور، فشرده سازی ویدیو و صدا و رفع آن، و نمایش ویدیو در نمایشگر ) باید آن قدر کم باشد که احساس کاربر، اجرای بازی به صورت محلی باشد. طبق OnLive ، به دلیل چنین الزامات جدی برای لگ ، ملاحظات فاصله سرعت نور از طریق فیبر نوری مطرح می‌شود، و اکنون محدویت فاصله بین کاربر و سرور بازی‌های ابری تقریباً 1000 مایل است. تاخیر مرتبط با بازی‌های ابری بحث برانگیز است. در بازی‌های چند نفره با استفاده از معماری شبکه کلاینت/سرور، کامپیوتر بازیکن با ارائه ی محلی گرافیک بازی، تنها اطلاعات مربوط به اقدامات بازیکن در بازی را به سرور می فرستد. مثلا، هنگامی که بازیکن پس از فشردن دکمه عمل مربوطه توسط کاراکتر فورا انجام می شود. عواقب عمل مثل کشته شدن دشمن بعد از تاخیری کوتاه به دلیل زمان مصرفی رسیدن عمل به سرور مشاهده می شود. اگر پاسخ به ورودی بازیکن به اندازه کافی سریع باشد این مسئله قابل قبول است.
هنگامی که از بازی ابری استفاده می کنیم، ورودی‌های بازیکن تا هنگام رؤیت پاسخ، تأخیرهای کوتاهی خواهند داشت. پس از انتقال ورودی‌ها به سرور راه دور، توسط سرور، گرافیک عمل شروع به رندر شدن می کند و ویدیو را از طریق شبکه به پخش‌کننده بازمی گرداند و زمان بیشتری را صرف می کند. پس بازیکن تاخیر قابل توجهی را از فشار دادن یک دکمه تا دیدن اتفاق روی صفحه تجربه می کند. بسته به مهارت و تجربه بازیکن، این می تواند باعث سرگردانی و پریشانی مشابه بازخورد شنیداری تاخیری شود و ناوبری و هدف گیری را در دنیای بازی با مشکل مواجه کند. هنگام وارد کردن سریع یک حرکت ترکیبی طولانی، کاراکتر روی صفحه با فشار دادن دکمه همگام نمی شود. این معمولا باعث سردرگمی شدید بازیکن و در نتیجه شکست حرکت ترکیبی می شود.
لگ ورودی اضافی بازی های تک نفره را دشوار می کند.مثلا، هنگام حرکت دشمن به سوی بازیکن، بازیکن باید بلاک کند، وقتی صفحه نمایش بازیکن شروع حمله ی دشمن را نشان می‌دهد، در حالی که دشمن قبلاً به بازیکن در سرور حمله کرده و او را کشته است.