بازی های تحت وب
فهرست مطالب
آخرین به روزرسانی در 05/02/2024
در این مقاله قصد داریم در رابطه با بازی های تحت وب به صورت کاملا تخصصی صحبت کنیم.
از نحوه ی پیاده سازی این بازی ها و زبان های مخصوص آن ها تا کاربرد و محدودیت های این دسته بندی از بازی ها نیز توضیحات کاملی را ارائه خواهیم داد ، پس تا پایان این مقاله با ما همراه باشید.
آشنایی با بازی های تحت وب
همانطور که نام این سبک بازی ها مشخص است ، بازی های تحت وب بازی هایی هستند که شما
می توانید آن ها را از طریق وب و مرورگر خود تجربه کنید.
این به این معناست که شما نیاز به نصب هیچ برنامه ی اضافی نداشته و تنها کافی است آدرس مورد نظر آن بازی را در مرورگر خود سرچ کرده و به تجربه ی بازی مورد نظر بپردازید.
لازم به ذکر است بازی های تحت وب معمولا به میزان تنوع بازی های سایر پلتفرم های دیگر مانند pc و اندروید نیستند و این به دلیل محدودیت هایی است که برای بازی های وب وجود دارد که در ادامه و در بخش معایب به بررسی کامل آن ها خواهیم پرداخت.
مزایای بازی های تحت وب
عدم اشغال فضا :
مهم ترین و اصلی ترین ویژگی بازی های تحت وب عدم اشغال فضا می باشد.
این به این معناست که شما برای تجربه ی بازی های تحت وب نیازی به نصب برنامه ی
خاصی یا بازی نداشته و تنها نیازمند یک مرورگر و یک اینترنت هستید.
پس مانند بازی های مربوط به پلتفرم های دیگر عملا فضایی از شما اشغال نشده و همچنین
تایمی را برای نصب بازی از دست نخواهید داد.
دسترسی سریع :
برای استفاده از بازی های تحت وب شما تنها کافی است نام مورد نظر بازی را سرچ زده و بازی
در سریع ترین زمان استاندارد برای شما لود شده و می توانید از آن استفاده کنید.
کراس پلتفرم بودن :
زمانی که شما اقدام به سفارش بازی تحت وب می کنید در واقع در حال سفارش یک بازی کراس پلتفرم هستید.
دلیل این موضوع این است که بازی های تحت وب هیچ محدودیتی را برای نوع دیوایز وارد شده به وبسایت ندارند.
و شما چه با استفاده از PC و دسکتاپ و چه با استفاده از تلفن همراه که وارد بازی بشوید می توانید به تجربه ی بازی مورد نظر بپردازید.
به روزرسانی های سریع :
وقتی برای تجربه ی یک بازی نیاز به نصب آن نیست قطعا برای دریافت به روزرسانی های آن نیز
این موضوع صدق خواهد کرد.
شما زمانیکه از بازی های تحت وب استفاده می کنید به روزرسانی های بازی حتی بدون اینکه شما اطلاعی داشته باشید در سریع ترین زمان ممکن برای شما دریافت خواهد شد.
عدم محدودیت در محتوا :
معمولا بازی هایی که برای اندروید و یا ios یا حتی کنسول هستند باید در یک مارکتپلیسی منتشر شوند.
به عنوان مثال برای اندروید و ios در گوگل پلی و اپ استور و برای PC در استیم.
حال نکته اینجاست زمانی که شما قصد انتشار را دارید باید از قوانین و مقررات این مارکت ها پیروی کنید و بازی شما از خط قرمزهای این مارکت ها عبور نکند. ( به عنوان مثال ما در مقاله ی قوانین انتشار بازی در گوگل پلی به مهم ترین قوانین انتشار گوگل پلی پرداخته ایم.)
اما زمانیکه شما می خواهید محتوایی را خارج از قوانین این مارکت ها درون بازی خود قرار دهید ( به عنوان مثال شرط بندی) ، مجبور به استفاده از پلتفرم وب هستید.
زیراکه بستر وب ، آزاد ترین بستر می باشد و عملا مارکتی برای انتشار نداشته و کاربران از هر مرورگری می توانند به آن دسترسی پیدا کنند.
(البته این نکته را در نظر داشته باشید که در صورت داشتن محتوای غیر قانونی بازی تحت وب شما ، در اولین قدم بازی شما توسط اورگان های مربوطه فیلتر شده و در مراحل بعدی می تواند برای شما پیگردهای قانونی داشته باشد.)
معایب
محدودیت های گرافیکی
شاید مهم ترین عیبی که گیمرها از بازی های تحت وب می توانند بگیرند همین مسئله محدودیت های گرافیکی است.
همانطور که می دانید یک بازی زمانی که تحت وب باشد قائدتا باید با استفاده از دسترسی شما به اینترنت لود بشود.
در واقع اطلاعاتی بر روی سیستم شما ذخیره و نصب نشده است و تمامی اطلاعات از روی سرور خوانده می شود و در نهایت ذخیره سازی مرورگر برای شما حافظه ی کش است .(حتی در صورتیکه بازی مرحله ای باشد و شما مراحلی را از بازی سپری کرده باشید پروسه ی ذخیره سازی این مراحل و فراخوانی آن ها از روی سرور انجام خواهد پذیرفت.)
به همین علت شما تقریبا هیچ بازی تحت وب سنگینی را نمی بینید که گرافیک فوق العاده بالا یا شبیه سازی ای داشته باشد.
و دلیل این موضوع همانطور که گفته شد محدودیت های بهینه سازی و وب بوده و رعایت اصل بهینگی در بازی های وب بسیار مهم است.
چون اگر بازی شما سنگین شود توانایی پردازش آن از سمت مرورگر غیر ممکن شده و حتی در صورت امکان نیز ، سرعت لود به قدری پایین است که شما را از تجربه ی بازی کلافه می کند.
پس شما نمی توانید گرافیک سنگین و فوق العاده ای را برای بازی های تحت وب سفارش دهید.
( البته لازم به ذکر است با پیشرفت و توسعه ی روز به روز زبان های برنامه نویسی و فریمورک ها به علاوه ی پشتیبانی مرورگر ها و توسعه ی آن برای سازگاری با این پیشرفت در سمتی است که رو به نزدیک تر کردن گرافیک و گیم پلی این پلتفرم به سایر پلتفرم ها می باشد.)
محدودیت در انتخاب سبک بازی
طبق توضیحاتی که در بالا گفته شد این موارد باعث می شود که شما محدودیت هایی در انتخاب سبک بازی نیز داشته باشید.
همانطور که حتما تا به حال به بازی های تحت وب برخورده اید؛ دیده اید که اکثریت بازی های وب در سبک تخته ای، معمایی یا تفننی – سرگرمی هستند و معمولا بازی های اکشن یا ماجراجویی از وب پیروی نمی کند.
(البته استثناعاتی نیز مانند بازی زولا و بازی های مشابه آن در سبک های اکشن تا استراتژیک می باشد اما قطعا شاهد گرافیک چشمگیری در این بازی ها نخواهید بود.)
سرعت لودینگ
خب قائدتا مشکل بعدی که بدیهی است ، سرعت لودینگ می باشد.
همانطور که می دانید بازی های تحت وب به صورت کامل از روی سرور خوانده و فراخوانی می شوند و
نیازمند اینترنت با سرعت بالا می باشند.
به همین علت ممکن است در برخی از قسمت های بازی در صورت پردازش سنگین شما با مشکل لودینگ و پینگ بالا نیز رو به رو شوید.
(به همین علت برخی از مشتریان استودیو بازی سازی ماناتاز بازی وب خود را برای مارکت خارجی میخواهند نه مارکت داخلی و این به دلیل سرعت بالاتر اینترنت آن ها نسبت به داخل کشور است.)
هزینه های بالاتر
در دو دسته بندی هزینه های بازی های تحت وب بالاتر می باشد.
در دسته ی اول هزینه ی پیاده سازی است که هزینه ی پیاده سازی یک بازی مشابه در اندروید
نسبت به وب بسیار پایین تر بوده ( البته این مورد همیشه صدق نخواهد کرد و وابسته به سبک و گیم پلی بازی نیز می باشد.)
در دسته ی دوم هزینه های مربوط به سرور است که به علت خوانده شدن تمامی اطلاعات از روی سرور و نیازمندی کاربر به لود سریع اطلاعات و پینگ حداقلی شما نیازمند استفاده از سرورهای اختصاصی بسیار قدرتمند هستید.
( در ادامه قصد پرداخت به توضیحات فنی در رابطه با بازی های تحت وب را داریم)
ساختار طراحی UI پایه ی وب با استفاده از HTML5
صدا : Web Audio API :
Web Audio API یک سیستم قدرتمند و همه کاره برای کنترل صدا در وب ارائه می دهد که
به توسعه دهندگان این امکان را می دهد که منابع صوتی را انتخاب کنند، جلوه هایی را به صدا اضافه کنند،
تصاویر صوتی ایجاد کنند، جلوه های فضایی (مانند پاننگ) و موارد دیگر را اعمال کنند.
گرافیک : WebGL :
WebGL (Web Graphics Library) یک API جاوا اسکریپت برای ارائه گرافیک های تعاملی سه بعدی و دو بعدی با کارایی بالا در هر مرورگر وب سازگار بدون استفاده از افزونه است.
WebGL این کار را با معرفی یک API انجام می دهد که کاملاً مطابق با OpenGL ES 2/0 است که می تواند در عناصر canvas استفاده شود.
این انطباق این امکان را برای API فراهم می کند تا از قدرت گرافیک سخت افزاری ارائه شده توسط دستگاه کاربر استفاده کند.
ورودی (کنترلرها) Gamepad API :
API راهی برای توسعه دهندگان و طراحان برای دسترسی و استفاده از گیم پد و سایر کنترلرهای بازی است.
Gamepad API رویدادهای جدیدی را در شی Window برای خواندن گیم پد و حالت کنترلر (که در اینجا به عنوان gamepad نامیده می شود) معرفی می کند.
علاوه بر این رویدادها، API یک شی Gamepad را نیز اضافه می کند که می توانید از آن برای جست و جو کردن وضعیت یک گیم پد متصل استفاده کنید، و یک متد () navigator.getGamepads دارد که می توانید از آن برای دریافت لیستی از گیم پدهای شناخته شده در صفحه استفاده کنید.
زبان : JavaScript :
جاوا اسکریپت (JS) یک زبان برنامه نویسی سبک وزن، تفسیر شده و به موقع کامپایل شده با توابع درجه یک است.
در حالی که این زبان به عنوان زبان برنامه نویسی صفحات وب شناخته شده است، بسیاری از محیط های غیر مرورگر نیز از آن استفاده می کنند، مانند Node.js، Apache CouchDB و Adobe Acrobat.
جاوا اسکریپت یک زبان مبتنی بر چند پارادایم، تک رشته ای و پویا است که از سبک های شی گرا، امری و اعلامی (به عنوان مثال برنامه نویسی تابعی) پشتیبانی می کند.
( البته لازم به ذکر است تنها زبان مربوط به طراحی بازی های وب جاوا اسکریپ نبوده اما به جرئت از مهم ترین و اصلی ترین آنها می باشد .)
شبکه : WebRTC :
WebRTC (Web Real-Time Communication) فناوری است که به برنامههای کاربردی وب و سایتها امکان میدهد تا رسانههای صوتی یا تصویری را به صورت اختیاری پخش کنند و همچنین دادههای دلخواه را بین مرورگرها بدون نیاز به واسطه مبادله کنند.
مجموعه استانداردهایی که WebRTC را تشکیل میدهند، امکان اشتراک دادهها و انجام کنفرانس از راه دور را به صورت همتا به همتا، بدون نیاز به نصب افزونهها یا هر نرمافزار شخص ثالث دیگر توسط کاربر، ممکن میسازد.
WebRTC متشکل از چندین API و پروتکل مرتبط با یکدیگر است که برای رسیدن به این هدف با هم کار می کنند.
حافظه ی ذخیره سازی : IndexedDB :
IndexedDB یک API سطح پایین برای ذخیره سازی در سمت سرویس گیرنده مقادیر قابل توجهی از داده های ساختاریافته، از جمله فایل ها است.
این API از شاخص ها برای فعال کردن جستجوهای با کارایی بالا در این داده ها استفاده می کند.
در حالی که Web Storage برای ذخیره حجم کمتری از داده ها مفید است، اما برای ذخیره مقادیر بیشتر داده های ساختاریافته کمتر کاربردی است.
برنامه نویسی وب : HTML, CSS, SVG :
HTML زبان نشانه گذاری HyperText اساسی ترین بلوک ساختمان وب است.
معنی و ساختار محتوای وب را مشخص می کند. سایر فناوریها اضافی بر HTML معمولاً برای توصیف ظاهر ارائه صفحه وب (CSS) یا عملکرد/رفتار (جاوا اسکریپت) استفاده میشوند.
نیازمندی های کدینگ بازی سازی تحت وب ( فرانت اند)
بلوک های اساسی سازنده یک بازی برای وب عبارتند هستند:
- HTML
- CSS
- جاوا اسکریپت
- GSAP
با موارد فوق می توانید بازی های بسیار جذابی بسازید که بر روی مرورگرهای وب مدرن روی موبایل و دسکتاپ اجرا شوند، اما برخی از بازی ها ممکن است به ویژگی های بیشتری نیاز داشته باشند، بنابراین بلوک های سازنده بیشتری وجود دارد که می توانید اضافه کنید.
به عنوان مثال، ممکن است بخواهید بازی های سه بعدی بسازید.
در این صورت، WebGL نیز وجود دارد که طبق توضیحات بالا یک API جاوا اسکریپت برای ارائه گرافیک های دو بعدی و سه بعدی در مرورگر با استفاده از GPU برای عملکرد بیشتر است.
آناتومی بازی ها (ارائه، پذیرش، تفسیر، محاسبه، تکرار)
هدف هر بازی ویدیویی ارائه یک موقعیت به کاربرها، پذیرش ورودی آنها، تفسیر آن سیگنال ها
به اعمال و محاسبه موقعیت جدید ناشی از آن اعمال است.
بازیها دائماً از طریق این مراحل، بارها و بارها در حال چرخش هستند تا زمانی که شرایط پایانی (مانند برد، باخت، یا خروج ) رخ دهد.
جای تعجب نیست که این الگو با نحوه برنامه ریزی موتور بازی مطابقت دارد.
برخی از بازی ها این چرخه را با ورودی کاربر هدایت می کنند.
تصور کنید که در حال توسعه یک بازی از نوع “تفاوت بین این دو تصویر مشابه” هستید.
این بازی ها دو تصویر را به کاربر ارائه می دهند.
آنها کلیک (یا لمس) خود را می پذیرند.
آنها ورودی را به عنوان موفقیت، شکست، مکث، تعامل منو و … تفسیر می کنند.
در نهایت، آنها یک صحنه به روز شده حاصل از آن ورودی را محاسبه می کنند.
حلقه بازی با ورودی کاربر پیشرفت می کند و تا زمان مورد نظر ادامه پیدا می کند.
این بیشتر یک رویکرد مبتنی بر نوبت است که نیازی به به روزرسانی ثابت در هر فریم ندارد، مگر زمانی که بازیکن واکنش نشان میدهد.
بازیهای دیگر به کنترل هر یک از کوچکترین بازههای زمانی فردی نیاز دارند.
همان اصول فوق با کمی پیچش اعمال می شود: هر فریم از انیمیشن چرخه را پیش می برد و هر تغییری در ورودی کاربر در اولین چرخش موجود ثبت می شود.
این مدل یک بار در هر فریم در چیزی به نام حلقه اصلی پیاده سازی می شود.
اگر بازی شما بر اساس زمان لوپ می شود، این اعتبار آن خواهد بود که شبیه سازی های شما به آن پایبند خواهند بود.
اما ممکن است به کنترل هر فریم نیاز نداشته باشد.
حلقه بازی شما ممکن است شبیه مثال ما یعنی پیدا کردن تفاوتها باشد و بر اساس رویدادهای ورودی باشد.
یا به زمان ورودی و شبیه سازی شده نیاز داشته باشد.
حتی شاید کاملاً بر اساس چیز دیگری حلقه شود.
جاوا اسکریپت توسعه داده شده و آخرین نسخه های آن خوشبختانه توسعه یک حلقه اصلی کارآمد و یک بار در هر فریم را آسان می کند.
البته، بازی شما فقط به همان اندازه که می سازید بهینه می شود.
تفاوت بازی تحت وب با Webgl
برخی از افراد فرمت تحت وب را با Webgl اشتباه می گیرند.
تفاوت اساسی بین این دو فرمت وجود دارد.
وب جی ال فرمتی است که می توان آن را به عنوان یک خروجی در نظر گرفت که توضیحات آن در بالا داده شد.
یعنی به عنوان مثال بازی که با موتور یونیتی ساخته می شود، می تواند خروجی وب جی ال نیز مانند سایر پلتفرم ها داشته باشد.
اما یک بازی تحت وب، بازی ای است که از صفر تحت زبان های برنامه نویسی وب مانند: java script, html, css و … ساخته می شود.
تفاوت اصلی که در این دو فرمت وجود دارد در موارد زیر می باشد:
۱- زمان و پیچیدگی پیاده سازی
این یک پارامتر نسبی است و وابسته به تیم توسعه دهنده دارد؛ اما معمولا بازی سازان با یک انجین بازی سازی کار می کنند؛ به همین خاطر نوشتن بازی تحت وب می تواند برای آن ها پیچیده تر و زمان بر تر باشد.
۲- سرعت
می توان بزرگ ترین و مهم ترین مشکل وب جی ال در مقایسه با تحت وب را در سرعت آن دانست.
بازی هایی که تحت وب هستند به مراتب سرعت لود بالاتری را نسبت به وب جی ال دارند؛ زیراکه از همان اول برای وب بهینه سازی شده اند؛ اما بهینه سازی یک بازی تحت انجین به شدت باید بهینه شود و در نهایت نیز با تمامی بهینه سازی ها نمی تواند به سرعت یک بازی تحت وب باشد.
۳- کیفیت
تفاوت بعدی در کیفیت است.
به علت بحث سرعت یک بازی وب جی ال را باید بسیار بهینه کرد و این بهینه سازی ها در مواقعی باعث کاهش کیفیت نیز خواهد شد.
همچنین بازی های خروجی گرفته شده به صورت webgl معمولا به صورت full screen نیز نیستند و همین امر نیز مشکل ساز است.
4 تا از بهترین بازی های تحت وب
4- 2048
یکی از بهترین بازی های تحت وب که در این بازی باید محل قرار گیری عددها را تغییر دهید و با جمعشان به عدد 2048 برسید.
بازی 2048 پیشتر برای سیستم عاملهای اندروید و iOS عرضه شده بود و اکنون شاهد نسخه تحت وب آن نیز هستیم.
3- slither
از بازی های به شدت اعتیاد آور که در این بازی تحت وب باید کنترل مار را به دست بگیرید و به آن غذا بدهید.
همچنین در این حین باید از خطرات موجود دوری کنید و مار را سالم نگه داری کنید.
2- Burnin Rubber 5
این یک بازی ماشین سواری می باشد که در این بازی شما دارای یک ماشین جنگی باید
به تقابل با رقبای خود بپردازید و آن ها را از سر راه برداشته و امتیاز کسب کنید.
1- Zula
زولا یک بازی ایرانی در سبک سوم شخص شوتر می باشد که به شدت در بین ایرانیان درخشیده است و توانسته طرفداران بسیار زیادی را به خود جذب کند.
بازی زولا یک بازی با گرافیک نسبتا قابل قبول است که به صورت آنلاین می باشد و دارای تنوع بسیار بالایی از سلاح ها و تجهیزات نظامی است.
این بازی را معمولا با سری بازی های کانتر مقایسه می کنند و می تواند تجربه ی هیجان انگیزی را به شما بدهد.
جمع بندی
وب یک پلتفرمی می باشد که از گذشته و ابتدای بازی های ویدیویی تا کنون بوده است.
اما قطعا نسبت به سایر سیستم عامل ها از محبوبیت کمتری برخوردار است.
همچنین تعداد بازی هایی که برای سیستم عامل های متفاوت منتشر شده است بسیار بیشتر از تعداد بازی های مربوط به سیستم عامل وب می باشد.
و این به علت معایب و محدودیت های وب می باشد که توضیحات آن گفته شد.
اما در کنار تمامی این موارد وب یکی سری مزایایی نیز دارد که می تواند برای برخی از سبک ها و گرافیک ها در بازی سازی بسیار جذاب و پر طرفدار باشد.
به عنوان مثال بازی های تخته ای – معمایی از سری بازی های پر طرفداری می باشد که بر روی بستر وب معروف شده اند و اکثریت آن ها از طریق وب قابل دسترس می باشد.
به همین علت بسیار مهم می باشد که شما چه بازی ای و با چه گرافیکی را روی این پلتفرم خواهید برد.
و مناسب بودن یا نبودن این پلتفرم کاملا وابسته به بازی شما می باشد.
مهرسا امینی
برنامه نویس ، انیماتور ، سئوکار
در زندگی رویاهات را دنبال کن