VPS-এ কি সত্যিই গেম খেলা যায়?
VPS-এ নিজে গেম খেলা যায় না, কারণ standard VPS-এ gaming GPU থাকে না। তবে অন্য খেলোয়াড়ের জন্য game server host করতে ছোট plan-ই প্রায়ই যথেষ্ট।
VPS-এ কি গেম খেলা যায়? সংক্ষিপ্ত উত্তর
VPS-এ কি গেম খেলা যায়? এই প্রশ্নের ক্ষেত্রে দুই ধরনের ব্যবহারকারী সম্পূর্ণ বিপরীত উত্তর পাবেন। আপনি যদি ভাড়া করা সার্ভারে নিজে গেম খেলতে চান এবং নিজের স্ক্রিনে সেই গেমের ছবি দেখতে চান, তাহলে একটি standard VPS তা করতে পারে না। কোনো configuration পরিবর্তন করেও এটি ঠিক করা যায় না। আপনি যদি এমন একটি game server host করতে চান, যেখানে অন্য খেলোয়াড়েরা connect করবে, তাহলে অর্থের তুলনায় VPS ভাড়া নেওয়া সেরা বিকল্পগুলোর একটি। এ ক্ষেত্রে একটি ছোট plan-ই প্রায়ই যথেষ্ট।
আপনার প্রয়োজন যদি hosting-সংক্রান্ত হয়, তাহলে সরাসরি game server-এর জন্য VPS বেছে নেওয়া অথবা VPS-এ Minecraft server চালানো বিভাগে যান। নিচের বিভাগগুলোতে কেন VPS-এ গেম খেলার দিকটি কাজ করে না তা ব্যাখ্যা করা হয়েছে, কারণ এই প্রশ্নের সরাসরি উত্তর মানুষ খুব কমই পায়।
কেন একটি standard VPS-এ GPU থাকে না
একটি standard VPS হলো shared host-এর একটি অংশ। এতে virtual CPU core, RAM, disk এবং একটি network port থাকে। host হলো একটি rack server। rack server-এ consumer graphics card থাকে না, কারণ gaming GPU (graphics processing unit) এমন desktop case-এর জন্য তৈরি, যেখানে নিজস্ব fan এবং বড় power budget থাকে। আপনার virtual machine একটি virtual display adapter পায়, যাতে boot console প্রদর্শনের জন্য একটি device থাকে। graphics সংক্রান্ত বিষয়টি এতটুকুই।
lspci | grep -i -E 'vga|3d|display'
ls -l /dev/driপ্রথম command-টি সাধারণত একটি লাইন প্রদর্শন করে, যেমন Cirrus Logic GD 5446 বা Red Hat, Inc. Virtio 1.0 GPU। এই device-গুলোর কোনো 3D engine নেই। দ্বিতীয় command-টি সাধারণত ls: cannot access '/dev/dri': No such file or directory ফল দেয়, কারণ কোনো program-এর খোলার জন্য direct rendering device থাকে না। প্রকৃত GPU instance-এ একই command card0 এবং renderD128 দেখায়।
Mesa এখনও llvmpipe, অর্থাৎ তার software renderer-এর মাধ্যমে আপনাকে OpenGL দিতে পারে। এটি প্রতিটি triangle CPU-তে render করে। একটি desktop বা পুরোনো 2D game-এর জন্য এটি যথেষ্ট। আধুনিক 3D title প্রতি সেকেন্ডে মাত্র কয়েকটি frame-এ চলে। তখন CPU এমন একটি কাজে ব্যস্ত থাকে, যেটিতে এটি সবচেয়ে কম দক্ষ। ফলে game logic-ও ধীর হয়ে যায়।
রিমোট প্লেতে input latency কেন সবচেয়ে বড় সমস্যা
রিমোট প্লে একটি loop-এর মতো কাজ করে। আপনার key press সার্ভারে যায়, সার্ভার একটি frame render করে, সেই frame-কে video হিসেবে encode করে আবার পাঠায়, তারপর আপনার client সেটি decode করে screen-এ দেখায়। প্রতিটি ধাপে কয়েক মিলিসেকেন্ড সময় লাগে, এবং সব ধাপের সময় যোগ হয়।
The data behind this chart
[
{
"label": "Input capture and send",
"typical_ms": 5
},
{
"label": "Network round trip",
"typical_ms": 15
},
{
"label": "Frame render on the server",
"typical_ms": 12
},
{
"label": "Hardware video encode",
"typical_ms": 8
},
{
"label": "Decode and display on the client",
"typical_ms": 15
},
{
"label": "Sum of the stages above",
"typical_ms": 55
}
]এর মধ্যে মাত্র 15 ms network round trip-এ ব্যয় হয়। কাছাকাছি server বেছে নিয়ে আপনি মূলত এই অংশটিই কমাতে পারেন। বাকি সময় pipeline-এর নিজস্ব খরচ, এবং server কোথায় আছে তা এতে প্রভাব ফেলে না। Game নিজে কোনো কাজ শুরু করার আগেই এই ধাপগুলো মিলে 55 ms delay তৈরি করে। এগুলো একই region-এ থাকা client-এ hardware encoder দিয়ে streaming করার সাধারণ প্রকাশিত পরিমাপ। এগুলো কোনো একটি machine থেকে নেওয়া measurement নয়। তাই এগুলোকে সমস্যাটির সামগ্রিক কাঠামো হিসেবে দেখুন।
এই delay একটি feedback loop-এর মধ্যে পড়ে। আপনি mouse সরান, ফলাফল দেখেন, তারপর সংশোধন করেন। অতিরিক্ত delay হলে প্রতিটি সংশোধন দেরিতে পৌঁছায়। ফলে আপনি target অতিক্রম করে ফেলেন এবং আবার সংশোধন করতে হয়। Turn based game, strategy game, management sim এবং card game এই delay সহজেই সহ্য করতে পারে। Shooter, fighting game, rhythm game এবং racing game পারে না।
Jitter এবং packet loss ভিন্নভাবে ক্ষতি করে। কোনো video stream retransmission-এর জন্য অপেক্ষা করতে পারে না, কারণ ওই packet-এর frame ততক্ষণে দেরিতে পৌঁছে যায়। তাই loss-এর প্রকাশ pause হিসেবে নয়, blocking artifact বা frozen picture হিসেবে দেখা যায়। এই কারণেই remote desktop-এর জন্য এটি উপযুক্ত tool নয়। VNC (virtual network computing) এবং সাধারণ RDP (remote desktop protocol) TCP-এর মাধ্যমে পরিবর্তিত rectangle পাঠায়। প্রতি সেকেন্ডে 60 বার সম্পূর্ণ পরিবর্তিত একটি screen এই প্রক্রিয়াকে retransmission-এর stream-এ পরিণত করে।
একটি বাস্তব cloud gaming box-এর জন্য যা প্রয়োজন
এটি সঠিকভাবে তৈরি করা সম্ভব। একসঙ্গে চারটি জিনিস প্রয়োজন।
- datacenter card-সহ একটি GPU instance, কারণ provider বৈধভাবে ভাড়া দিতে পারে এমন একমাত্র ধরনের GPU এটিই।
- NVENC-এর মতো একটি hardware video encoder। NVENC হলো NVIDIA-এর built-in encoder। Software encoding-এ CPU time বেশি লাগে এবং বিলম্ব বাড়ে।
- desktop-এর পরিবর্তে game-এর জন্য তৈরি একটি streaming pair। Server-এ Sunshine এবং client-এ Moonlight হলো প্রচলিত open source পছন্দ।
- আপনার নিজস্ব metro region-এ একটি server, কারণ round trip-এর latency দূরত্বের ওপর নির্ভর করে। Fibre-এর মধ্যে signal-এর গতি আলোর গতির কাছাকাছি।
এরপর খরচ হিসাব করুন। GPU instance-এর বিল hourly rate অনুযায়ী হয়। তাই মাসজুড়ে চালু রাখলে খরচ জানতে hourly rate-কে 730 দিয়ে গুণ করুন। August 2026 অনুযায়ী US dollar-এ এটি মাসে তিন অঙ্কের খরচ। এক বছরের মধ্যে ওই অর্থে সরাসরি একটি console কেনা যায়। এর ওপর game licence-এর খরচও দিতে হবে। একটি GPU VPS আসলে কী দেয় এবং GPU hour ভাড়া নেওয়ার break-even হিসাব-এ সংখ্যাগুলো বিস্তারিত দেখানো হয়েছে।
আপনি যদি শুধু খেলতে চান, commercial cloud gaming service-গুলো ইতিমধ্যেই আপনার কাছাকাছি datacenter থেকে এই একই stack চালায় এবং licensing-এর বিষয়টি মিটিয়ে রাখে। একটি শহরে থাকা একটি VPS এই কাজের জন্য তৈরি network-এর সমকক্ষ হতে পারে না।
অ্যান্টি-চিট ও লাইসেন্সিং বাধা: যা বাকি থাকে
একটি নিখুঁত GPU সার্ভারও বিভিন্ন নিয়মের সীমাবদ্ধতায় পড়ে। Windows 11-এ Riot-এর Vanguard-এর জন্য TPM 2.0 (trusted platform module) এবং Secure Boot প্রয়োজন। এটি virtual machine-এর ভিতরে চলতে অস্বীকার করে। তাই ভাড়া নেওয়া cloud hardware-এ Valorant চালু হবে না। Easy Anti-Cheat এবং BattlEye-ও hypervisor শনাক্ত করতে পারে। এগুলো ব্যবহার করা কয়েকটি game virtual machine block করে বা এ কারণে ban দেয়। এটি ইচ্ছাকৃত ব্যবস্থা। cheat developer-রা নিজেদের tooling আড়াল করতে virtual machine ব্যবহার করে। তাই virtual machine-এ game না চালানো game-এর জন্য কম খরচের একটি সুরক্ষা ব্যবস্থা।
এর ওপর licensing-এর বিষয়টি যুক্ত হয়। NVIDIA-এর GeForce driver licence datacenter ব্যবহারে সীমাবদ্ধতা আরোপ করে। এই কারণে provider-রা desktop card নয়, datacenter card ভাড়া দেয়। নিজের মালিকানাধীন নয় এমন hardware-এ Windows চালানোর অনুমতি দেয় এমন licence প্রয়োজন। একটি copy কোথায় চালানো যাবে, তা storefront-এর terms নির্ধারণ করে। এসবের যেকোনো একটি সমস্যা আলাদাভাবে সামলানো সম্ভব। কিন্তু সবগুলো একসঙ্গে থাকলে হাতে তৈরি cloud gaming rig-এ মানুষ যে competitive game-গুলো চালাতে চায়, তার বেশিরভাগই চালানো যাবে না।
শুধু CPU-নির্ভর VPS-এ যা ভালোভাবে চলে
এবার অন্য ধরনের ব্যবহারকারীর কথা বলা যাক। একটি dedicated game server কখনও কোনো frame render করে না। এটি game world-এর simulation চালায়, প্রতিটি player-এর input প্রয়োগ করে এবং network-এর মাধ্যমে state update ফেরত পাঠায়। Rendering করে player-দের নিজস্ব machine। Rendering না থাকায় GPU-এর প্রয়োজন হয় না। তাই যে box-এ game খেলা যায় না, hosting-এর জন্য সেটিই উপযুক্ত।
- Minecraft, Valheim, Terraria, Factorio, Rust, Project Zomboid এবং headless server build প্রকাশ করে এমন অধিকাংশ title-এর dedicated server।
- Voice chat। একটি Mumble server একই ছোট plan-এ game server-এর পাশে চালানোর মতো যথেষ্ট হালকা।
- Plain HTTP-এর মাধ্যমে mod ও map download, এবং player-রা কে online আছে তা দেখার জন্য ব্যবহৃত web panel।
- Matchmaking, stats, leaderboard, Discord bot এবং এগুলোর পেছনের database।
- নির্ধারিত সময়ে world backup, যা server-এর বাইরে সংরক্ষিত হয়। এতে save নষ্ট হলে পুরো map নয়, সর্বোচ্চ এক ঘণ্টার অগ্রগতি হারাতে হয়।
RAM সাধারণত প্রধান সীমাবদ্ধতা। অনেক game-এর ক্ষেত্রে core count-এর চেয়ে single-core speed বেশি গুরুত্বপূর্ণ, কারণ Minecraft বা Factorio server-এর প্রধান simulation tick একটি thread-এ চলে। চারটি দ্রুত core-এর plan আটটি ধীর core-এর plan-এর চেয়ে ভালো হতে পারে। CPU-এর তুলনায় player count বাড়লে bandwidth-এর ব্যবহার বেশি বাড়ে। Provider-রা transfer-এর পরিমাণ সীমাবদ্ধ করে। তাই plan বাছাইয়ের আগে allowance দেখে নিন।
প্রয়োজনীয় port খুলুন। মনে রাখবেন, game-এর অধিকাংশ traffic TCP নয়, UDP (user datagram protocol) ব্যবহার করে।
sudo ufw allow 25565/tcp
sudo ufw allow 27015/udp
sudo ufw statusufw status-এর পাশে ALLOW ব্যবহার করে প্রতিটি rule তালিকাভুক্ত করা উচিত। এখানে port খোলা থাকা সত্ত্বেও server-এ পৌঁছানো না গেলে provider-এর control panel-এ আলাদা network firewall আছে কি না দেখুন। কারণ machine-এর ভেতরের rule তার সামনে থাকা filter-এর ওপর কোনো প্রভাব ফেলে না।
আপনার উপস্থিতি ছাড়াই server চালু রাখুন। একটি systemd unit বা Docker restart policy reboot-এর পরে server আবার চালু করে। boot-এর সময় নিজে থেকে চালু হওয়া একটি compose stack সাধারণ পদ্ধতি। এর সঙ্গে নির্ধারিত সময়ে server-এর বাইরে backup রাখুন, যাতে disk নষ্ট হলেও world file টিকে থাকে।
VPS-এ হোস্ট করার আগে কীভাবে পরীক্ষা করবেন
আপনার খেলোয়াড়দের কাছে latency কত হবে, তা সার্ভারের প্রতিক্রিয়া ভালো লাগবে কি না নির্ধারণ করে এবং এটি পরিমাপ করা যায়। পছন্দের region-এ একটি test address দিতে provider-কে বলুন। এরপর এই command-গুলো সার্ভার থেকে নয়, কোনো খেলোয়াড়ের network থেকে চালান।
ping -c 20 203.0.113.10
mtr -r -c 100 203.0.113.10ping-এর শেষে rtt min/avg/max/mdev = 18.4/19.1/24.6/1.2 ms-এর মতো একটি summary line থাকে। শেষ সংখ্যাটি jitter। কম jitter-সহ স্থির average, ওঠানামা করা কম average-এর চেয়ে গেমে ভালো অনুভূতি দেয়। mtr প্রতিটি hop-এ packet loss দেখায়। শুধু শেষ line-এর loss পড়ুন, কারণ মাঝের router-গুলো তাদের নিজস্ব ICMP (internet control message protocol) reply-কে সর্বনিম্ন অগ্রাধিকার দেয় এবং প্রায়ই এমন loss দেখায়, যা প্রকৃত network traffic-এ হয় না।
এরপর host অতিরিক্তভাবে oversubscribe করা হয়েছে কি না পরীক্ষা করুন।
vmstat 1 5st column-টি steal time। এটি হলো আপনার virtual CPU run করার জন্য প্রস্তুত থাকা সময়ের সেই অংশ, যখন physical host সেই CPU cycle অন্য guest-কে দিয়েছে। সেখানে নিয়মিত non zero value থাকলে plan page-এ যা-ই লেখা থাকুক, load-এর সময় আপনার tick rate ওঠানামা করবে। Steal time এবং noisy neighbours-এ এটি কীভাবে পড়তে হয় তা ব্যাখ্যা করা হয়েছে। এক বছরের জন্য commit করার আগে সংগ্রহ করার বাকি সংখ্যাগুলো নিজে VPS benchmark করা-এ ব্যাখ্যা করা হয়েছে।
দুটি প্রশ্নের সরাসরি উত্তর
আপনি যদি খেলতে চান, তাহলে নিজের কাছে থাকা হার্ডওয়্যারে গেম চালান, অথবা গেম streaming-এর জন্য তৈরি কোনো service ব্যবহার করুন। সাধারণ কাজের VPS গেম render করতে পারে না, আর GPU instance-এর খরচ hardware কেনার চেয়েও বেশি হতে পারে; তবু anti-cheat ব্যবস্থার সঙ্গে সেটি খাপ খায় না। আপনি যদি host করতে চান, তাহলে VPS ভাড়া নিন। কম খরচে এটি সত্যিই উপযোগী, এবং game night-এর মাঝের সময়ে একই server-এ অন্য কাজও চালানো যাবে।
FAQ
আমি কি VPS-এ Steam ইনস্টল করে আমার গেম খেলতে পারি?
আপনি Linux VPS-এ Steam client ইনস্টল করতে পারবেন এবং এটি গেম download করবে। সমস্যা হয় গেম খেলার সময়। একটি standard plan-এ GPU থাকে না। তাই 3D title-গুলো প্রতি সেকেন্ডে কয়েকটি frame-এ CPU rendering-এ নেমে যায়। অনেক আধুনিক গেম supported renderer ছাড়া start-ই হয় না। যেটুকু render হয়, সেটি আপনার screen-এ stream করতে গেলে তার সঙ্গে encode ও network delay-ও যোগ হয়। Steam Remote Play আপনার মালিকানাধীন একটি বাস্তব gaming machine থেকে stream করার জন্য তৈরি। তাই ওই machine-এ graphics card আছে বলে এটি ধরে নেয়।
GPU VPS থাকলে কি আমার মালিকানাধীন যেকোনো গেম খেলতে পারব?
এতে rendering সমস্যা দূর হয়। অন্য সমস্যাগুলো দূর হয় না। আপনার hardware encoder, Moonlight-এর মতো low-latency client এবং এমন একটি server প্রয়োজন, যেটি যথেষ্ট কাছে যাতে round trip ছোট থাকে। মূল বাধা হলো anti-cheat। Riot-এর Vanguard virtual machine-এ চলতে অস্বীকার করে। Easy Anti-Cheat এবং BattlEye hypervisor শনাক্ত করতে পারে। তাই competitive shooter গেম খেলা সম্ভব নয়। Single-player এবং ধীরগতির গেমই বাস্তবসম্মত ব্যবহার। তবে এর মাসিক খরচ স্থানীয় hardware-এর দামের চেয়ে বেশি হতে পারে।
দশজন বন্ধুর Minecraft server-এর জন্য কত বড় VPS প্রয়োজন?
দশজন player-এর vanilla Java server 2 vCPU এবং 4 GB RAM-এ স্বচ্ছন্দে চলে। -Xmx3G দিয়ে JVM (Java virtual machine)-কে প্রায় 3 GB দিন এবং বাকি memory operating system-এর জন্য রাখুন। কারণ আপনি যত byte ব্যবহারের অনুমতি দেবেন, JVM ততটাই ব্যবহার করবে। Kernel-এর page cache-এর জন্যও memory প্রয়োজন। বড় modpack হলে হিসাব বদলে যায়। শুধু heap-এর জন্য 6 GB থেকে 8 GB পরিকল্পনা করুন। Faster single core-যুক্ত plan বেছে নিন, কারণ মূল world tick একটি thread-এ চলে।
Remote desktop স্বাভাবিক মনে হয়, কিন্তু গেমে তা হয় না কেন?
Desktop একবারে screen-এর ছোট একটি অংশ পরিবর্তন করে। কোনো window redraw 100 ms দেরিতে এলেও সাধারণত তা চোখে পড়ে না। গেম প্রতি সেকেন্ডে বহুবার প্রতিটি pixel পরিবর্তন করে এবং আপনার হাতের মাধ্যমে একটি feedback loop বন্ধ করে। VNC এবং সাধারণ RDP পরিবর্তিত rectangle-গুলো TCP-এর মাধ্যমে পাঠায়। ফলে ক্রমাগত পরিবর্তনশীল screen retransmission ও stall তৈরি করে। সঠিক video stream ব্যবহার করলেও input delay থেকে যায়। Aim করার সময় আপনি মূলত এই delay-ই অনুভব করেন।