
Infinite Pokémon কী?
Infinite Pokémon হলো TypeScript-এ তৈরি একটি চালানোযোগ্য প্রোটোটাইপ, যা স্থায়ী Pokémon-ধাঁচের পিক্সেল-আর্ট প্রাণী ধরার RPG। এর মূল পরীক্ষা হলো এমন একটি বিশ্ব, যা আপনি খেলার সঙ্গে সঙ্গে লেখা চালিয়ে যেতে পারে। একটি স্থানীয় AI হ্যারনেস আপনার অভিযানের রেকর্ড করা ইতিহাস ব্যবহার করে পরবর্তী স্থান, চরিত্র, কথোপকথন, বায়োমের পছন্দ এবং গল্পের সূত্র প্রস্তাব করে।
প্রকল্পটি AI-কে কর্তৃত্বপূর্ণ গেম-স্টেট নিয়ন্ত্রণ করতে দেয় না। চলাচল, সংঘর্ষ, যুদ্ধ, ইনভেন্টরি, অগ্রগতি এবং অন্যান্য গেমপ্লে নিয়ম সার্ভার দ্বারা প্রয়োগ করা হয়। কোনো AI প্রস্তাব বিশ্বে প্রবেশের আগে তাকে স্কিমা, মানচিত্র যাচাই এবং নির্ভরতা পরীক্ষায় উত্তীর্ণ হতে হয়। পরিদর্শন করা স্থানগুলো স্থির থাকে, আর খেলোয়াড়ের সামনে নতুন গন্তব্য তৈরি ও ক্যাশ করা যায়।
গুরুত্বপূর্ণ: Infinite Pokémon একটি পরীক্ষামূলক ফ্যান প্রকল্প, যা শুধুমাত্র শিক্ষামূলক ও অবাণিজ্যিক ব্যবহারের জন্য তৈরি। এটি কোনো অফিসিয়াল Pokémon পণ্য নয় এবং Nintendo, Creatures, GAME FREAK বা The Pokémon Company-এর সঙ্গে এর কোনো সম্পর্ক নেই।
চলমান বিশ্ব কীভাবে কাজ করে
- সার্ভারই কর্তৃত্বপূর্ণ থাকে। AI-এর পরামর্শ কোনো প্রশিক্ষককে সরাতে, জয় প্রদান করতে, সংঘর্ষ এড়াতে বা সরাসরি অগ্রগতি পরিবর্তন করতে পারে না।
- বিশ্ব বাস্তব ঘটনাগুলো রেকর্ড করে। প্রতিটি রান স্থানীয় SQLite ডেটাবেসে মানচিত্র, পছন্দ, NPC স্মৃতি, খেলোয়াড়, তৈরি করার কাজ এবং ঘটনাপঞ্জি সংরক্ষণ করে।
- Codex আসন্ন কনটেন্ট প্রস্তাব করে। হোস্টের স্থানীয় Codex প্রক্রিয়া একটি অপরিবর্তনীয় স্ন্যাপশট পড়ে এবং বর্তমান ইঞ্জিনের সঙ্গে সামঞ্জস্যপূর্ণ সীমাবদ্ধ প্রস্তাব তৈরি করে।
- যাচাই রানটাইমকে সুরক্ষিত রাখে। প্রস্তাবিত কনটেন্ট গ্রহণ করা যাবে কি না, তা স্কিমা ও মানচিত্র পরীক্ষা নির্ধারণ করে।
- চেকপয়েন্ট শাখা তৈরিতে সহায়তা করে। পুরোনো চেকপয়েন্ট থেকে চালিয়ে গেলে নিজস্ব ডেটাবেস, স্মৃতি এবং তৈরির প্রসঙ্গসহ একটি পৃথক শাখা তৈরি হয়।
সিস্টেমটি বর্তমানে ইচ্ছামতো AI-রচিত এক্সিকিউটেবল গেমপ্লের বদলে যাচাইকৃত, সিড করা মানচিত্র টেমপ্লেটের ওপর নির্ভর করে। হ্যারনেস নাম, বর্ণনা, NPC প্রোফাইল, সম্ভাষণ, বায়োম নির্বাচন, গল্পের সূত্র এবং সীমাবদ্ধ ভূখণ্ডের বৈশিষ্ট্য সরবরাহ করতে পারে। যাচাইকৃত পিক্সেল-আর্ট রেসিপি থেকে নতুন প্রাণী, আইটেম ও যানবাহনের ভিজ্যুয়াল রেন্ডার করা যায়, তবে বাইরে থেকে তৈরি ছবি আমদানি করার ব্যবস্থা নেই।
প্রধান বৈশিষ্ট্য
- রান-ভিত্তিক স্থায়ী মানচিত্র, ঘটনা, গল্পের পছন্দ এবং NPC স্মৃতি।
- সার্ভার-নিয়ন্ত্রিত চলাচল, সংঘর্ষ, যুদ্ধ, ইনভেন্টরি এবং অগ্রগতি।
- হোস্টের স্থানীয় Codex সংযোগ ব্যবহার করে একক-খেলোয়াড় অন্বেষণ।
- সীমিত পাঁচ-এলাকার টিউটোরিয়াল প্রিভিউ, যা কোনো মডেল কল করে না এবং কোনো টোকেন খরচ করে না।
- একসঙ্গে সর্বোচ্চ আটটি সংযোগ এবং সংরক্ষিত ৬৪ জন প্রশিক্ষকসহ হোস্ট-এবং-জয়েন মাল্টিপ্লেয়ার।
- ০ থেকে ৩ পর্যন্ত কনফিগারযোগ্য মানচিত্র প্রস্তুতির গভীরতা।
- একসঙ্গে ১ থেকে ৮টি ব্লক তৈরির জন্য কনফিগারযোগ্য ব্যাচ।
- অসম্পূর্ণ গন্তব্যের জন্য কিউয়ের অবস্থা, পুনঃচেষ্টা এবং বাতিল নিয়ন্ত্রণ।
- অপরিবর্তনীয় চেকপয়েন্ট এবং বিচ্ছিন্ন টাইমলাইন শাখা।
- দোকান, চিকিৎসা, বন্য প্রাণীর মুখোমুখি হওয়া, রুট প্রশিক্ষক, সাইকেল, নার্সারি এবং হাইব্রিড ডিম।
- ব্রাউজার, সোর্স-রান Electron ডেস্কটপ এবং ঐচ্ছিক Linux Docker ওয়ার্কফ্লো।
পূর্বশর্ত
স্বাভাবিক স্থানীয় ওয়ার্কফ্লোর জন্য Node.js 22.13 বা পরবর্তী সংস্করণ ইনস্টল করুন। Node.js 22.13 থেকে 22.15 পর্যন্ত সংস্করণ সমর্থিত, যদিও নতুন অনলাইন ব্যাকআপ API অনুপলব্ধ হলে ডেটাবেস ব্যাকআপ সাময়িকভাবে ব্লক করা SQLite VACUUM INTO ফallback ব্যবহার করে।
Docker ঐচ্ছিক। আলাদা করে কোনো গ্লোবাল Codex CLI ইনস্টল করার প্রয়োজন নেই, কারণ রানটাইম নির্ভরতায় Codex CLI 0.153.4 অন্তর্ভুক্ত রয়েছে। পুরোনো কোনো গ্লোবাল এক্সিকিউটেবল যেন সামঞ্জস্য পরিবর্তন করতে না পারে, সে জন্য ব্রিজটি প্রকল্পের স্থানীয় CLI-কে অগ্রাধিকার দেয়।
বিকল্প ১: AI সহায়ক দিয়ে সেটআপ
সবচেয়ে সংক্ষিপ্ত সেটআপ পদ্ধতি হলো Skills CLI দিয়ে রিপোজিটরির এন্ট্রি স্কিল ইনস্টল করা:
npx skills add Shellishack/infinite-pokemon --skill infinite-pokemon
এরপর Codex বা সামঞ্জস্যপূর্ণ কোনো AI সহায়ককে বলুন:
আমার জন্য $infinite-pokemon ব্যবহার করে গেমটি সেটআপ ও চালু করুন।
এন্ট্রি স্কিলটি এজেন্টকে অনুপস্থিত ফাইল ক্লোন করা, পূর্বশর্ত পরীক্ষা, নির্ভরতা ইনস্টল, প্রকল্প বিল্ড এবং এটি চালু করার ধাপগুলোতে নির্দেশনা দেয়। শুধু স্কিল ইনস্টল করলেই সফটওয়্যার চালু হয় না। রিপোজিটরির সোর্স প্রয়োজন; npx skills add infinite-pokemon কোনো সমর্থিত গ্লোবাল alias নয়।
ব্যবহারের আগে আপনি GitHub-এ এন্ট্রি স্কিলটি দেখে নিতে পারেন।
বিকল্প ২: ম্যানুয়ালি ইনস্টল ও চালানো
রিপোজিটরি ক্লোন বা ডাউনলোড করুন, এর মূল ডিরেক্টরিতে একটি টার্মিনাল খুলুন এবং চালান:
npm install
npm run build
npm start
http://127.0.0.1:8788-এ ব্যক্তিগত হোস্ট কনসোল খুলুন। Node-এর বিল্ট-ইন SQLite একটি পরীক্ষামূলক সতর্কবার্তা দেখাতে পারে; প্রকল্পের প্রত্যাশা অনুযায়ী এই সতর্কবার্তা স্বাভাবিক।
Codex সংযুক্ত করে বিশ্বে প্রবেশ করুন
- Single player নির্বাচন করুন।
- স্থানীয় সংযোগটি আগে যাচাই করা না হয়ে থাকলে Connect to Codex নির্বাচন করুন।
- প্রদর্শিত টোকেন-ব্যবহারের বিজ্ঞপ্তি পর্যালোচনা করে অনুমোদন করুন।
- অনুরোধ করা হলে প্রদানকারীর সাইন-ইন সম্পন্ন করুন।
- সংক্ষিপ্ত nonce যাচাই শেষ হওয়া পর্যন্ত অপেক্ষা করুন। সফল হলে গেমটি স্বয়ংক্রিয়ভাবে শুরুর মানচিত্রে প্রবেশ করবে।
যাচাইকরণ কোনো স্কিল লোড করে না বা ফাইল পড়ে না; এটি শুধু একটি nonce নিশ্চিতকরণ এবং ok প্রতিক্রিয়া চায়। সংযোগ স্থাপিত হলে, কনফিগার করা জেনারেশন গভীরতা অনুযায়ী কাছাকাছি ম্যাপগুলো ব্যাকগ্রাউন্ডে প্রস্তুত করা হয়। যাচাইকরণ, ব্যর্থ প্রচেষ্টা এবং ব্যাকগ্রাউন্ড জেনারেশন প্রদানকারীর বরাদ্দ ব্যবহার করতে পারে, এবং স্বাভাবিক প্রদানকারী সীমা ও বিলিং প্রযোজ্য থাকে।
একটি বৈধ সংযোগ পুনরায় ব্যবহার করা হয়। অনুমোদিত রান পুনরায় শুরু করার পর, গেমটি আরেকটি ছোট নিশ্চিতকরণ প্রম্পটের মাধ্যমে স্থানীয় সাইন-ইন পরীক্ষা করে। সেই পরীক্ষা ব্যর্থ হলে, ইন্টারফেস সংযোগের অপশনে ফিরে যায়।
টিউটোরিয়াল প্রিভিউ ব্যবহার করে Codex ছাড়াই খেলুন
প্রদানকারীর অ্যাক্সেস বা টোকেন ব্যবহার ছাড়াই মেকানিক্স পরীক্ষা করতে, Codex সংযোগ স্ক্রিনে Single player, তারপর Play tutorial preview নির্বাচন করুন।
প্রিভিউতে পাঁচটি প্রস্তুত করা বাইরের এলাকা এবং সেগুলোর ভেতরের ঘর রয়েছে:
- Willowbrook: একটি শহরের চত্বর, বাগান, Professor Fern-এর ল্যাব এবং একটি আলাদা বাড়ি।
- Whisperwood Trail: ঘন গাছপালা, আঁকাবাঁকা পথ, খোলা প্রান্তর এবং একটি রেঞ্জার কেবিন।
- Cloverbank River: ফুলের তৃণভূমি, একটি নদী, কাঠের সেতু এবং একটি বিশ্রামঘর।
- Sunbreak Coast: খোলা জলভাগ, তীরবর্তী পথ, বোর্ডওয়াক এবং একটি উপকূলীয় স্টেশন।
- Waystone Terraces: আঁকাবাঁকা জিগজ্যাগ পথ, পাথরের ধাপ, ভেঙে পড়া স্তম্ভ এবং একটি আর্কাইভ আশ্রয়কেন্দ্র।
প্রিভিউ কোনো মডেল কল করে না এবং নতুন ম্যাপ বা NPC পরিকল্পনা তৈরি করে না। এর সীমানায় Codex সংযুক্ত করে একই সেভ নিয়ে পূর্ণ অনুসন্ধান চালিয়ে যেতে পারেন। আপনার ট্রেইনার, উন্মোচিত ম্যাপ এবং টিউটোরিয়ালের অগ্রগতি সংরক্ষিত থাকে। প্রচার না করা পর্যন্ত প্রিভিউ সেভগুলো ব্যক্তিগত ও মূল বিশ্ব থেকে আলাদা থাকে; Codex সংযুক্ত ও যাচাই করার পরই মাল্টিপ্লেয়ার উপলভ্য হয়।
মৌলিক নিয়ন্ত্রণ ও গেমপ্লে
- WASD অথবা তীরচিহ্নের কী দিয়ে চলুন।
- কোনো NPC, সাইন, আইটেম বা ঘরের কম্পিউটারের ঠিক পাশে দাঁড়িয়ে, সেটির দিকে মুখ করুন এবং E অথবা Space চাপুন।
- তির্যকভাবে কাছাকাছি থাকলে ইন্টার্যাকশন করা যায় না।
- দৃশ্যমান ভবনের দরজার দিকে হাঁটুন, অথবা পাশের টাইল থেকে সেটির দিকে মুখ করে E চাপুন।
- পার্টি, ব্যাগ, ট্রেইনার প্রোফাইল, জার্নাল, ম্যাপ এবং সেভ মেনু খুলতে Escape অথবা START চাপুন।
- মেনু বন্ধ করতে আবার Escape চাপুন।
মানুষ, সাইন, বেড়া, দেয়াল এবং আসবাব চলাচলে বাধা দেয়। কোনো কিছুর সঙ্গে ইন্টার্যাক্ট করার সময় সেটির দিকে মুখ করুন, তার মধ্য দিয়ে হাঁটার চেষ্টা করবেন না। লম্বা ঘাসে বন্য প্রাণীর মুখোমুখি হওয়া যেতে পারে, ট্রেইনাররা চ্যালেঞ্জ দেয় এবং গাইডরা শিক্ষানবিশদের অনুশীলনের সুযোগ দেয়। ঘরের পরিচর্যাকারীরা আপনার দলকে সুস্থ করতে পারে।
আশ্রয়কেন্দ্রে একজন ব্যবসায়ী ও নার্সারি পরিচর্যাকারী থাকতে পারেন। আপনি সরঞ্জাম কিনতে, একটি Bicycle কিনতে, অথবা একটি হাইব্রিড ডিমের জন্য দুইজন level-5 সঙ্গীকে জোড়া দিতে পারেন। CODEX, NURSERY, RIDES এবং RECORDS-এর মতো অতিরিক্ত মেনুগুলো START থেকে পাওয়া যায়।
ম্যাপ জেনারেশন কনফিগার করুন
জেনারেশনের আচরণ সামঞ্জস্য করতে START → SESSION খুলুন। ম্যাপ জেনারেশনের গভীরতা নির্ধারণ করে হোস্ট কত দূর পর্যন্ত আগে থেকে বিশ্ব প্রস্তুত করবে:
- Depth 0: পৌঁছানোর সময় জেনারেট করুন।
- Depth 1: চারপাশের চারটি ম্যাপ প্রস্তুত করুন; এটিই ডিফল্ট।
- Depth 2: 12টি ম্যাপ প্রস্তুত করুন।
- Depth 3: 24টি ম্যাপ প্রস্তুত করুন।
সারি-বদ্ধ কাজ খেলোয়াড়দের সবচেয়ে কাছের ম্যাপগুলোকে অগ্রাধিকার দেয় এবং ক্যাশ করা ম্যাপ পুনরায় ব্যবহার করা হয়। যে গন্তব্যগুলো প্রস্তুত নয়, সেগুলো সম্পূর্ণ হয়েছে এমন ভান না করে প্রকৃত সারি বা জেনারেশন অবস্থা দেখায়। পুনরায় চেষ্টা ও বাতিল করার নিয়ন্ত্রণ রয়েছে।
জেনারেশন ব্যাচের ডিফল্ট আকার একসঙ্গে তিনটি ব্লক এবং এটি এক থেকে আট পর্যন্ত নির্ধারণ করা যায়। ধারাবাহিক জেনারেশন পছন্দ করলে বা একসঙ্গে চলা কাজ সীমিত করতে চাইলে এক বেছে নিন। বেশি গভীরতা ও সমকালীনতা আরও বেশি এলাকা প্রস্তুত করতে পারে, তবে এতে প্রদানকারীর ব্যবহার ও জেনারেশন কার্যকলাপ বাড়তে পারে।
সেভ, চেকপয়েন্ট ও শাখা তৈরি করুন
রান ও অপরিবর্তনীয় চেকপয়েন্ট পরিচালনা করতে START → SAVES খুলুন। SAVE নির্বাচন করলে একটি চেকপয়েন্ট তৈরি হয়। পুরোনো কোনো চেকপয়েন্ট থেকে চালিয়ে গেলে, মূল সময়রেখা পুনর্লিখন না করে গেমটি একটি আলাদা শাখা তৈরি করে।
প্রতিটি শাখার নিজস্ব বিশ্ব-ইতিহাস, NPC স্মৃতি, জেনারেশন প্রসঙ্গ এবং স্বয়ংক্রিয় সেভ ডেটাবেস থাকে। মূল রানে পরে ঘটে যাওয়া ঘটনাগুলো নতুন শাখায় স্মৃতি হিসেবে যুক্ত হয় না। ফলে মূল অভিযান ধরে রেখেই বিকল্প ফলাফল অনুসন্ধান করা সম্ভব।
ব্রাউজার সেভগুলো বর্তমান ব্রাউজার ও origin-এ সংরক্ষিত একটি opaque session token-এর সঙ্গে যুক্ত থাকে। hostname, scheme বা port পরিবর্তন করলে, অথবা ব্রাউজার স্টোরেজ মুছে ফেললে, অতিথি ব্রাউজার কোনো ট্রেইনারের সঙ্গে তার সংযোগ হারাতে পারে। গেমে ম্যানুয়াল recovery-key ইন্টারফেস নেই।
মাল্টিপ্লেয়ার সেশন হোস্ট করুন
- টাইটেল স্ক্রিন থেকে Multiplayer → Host session বেছে নিন।
- প্রয়োজনে হোস্টের Codex সেশন সংযুক্ত ও যাচাই করুন।
- অতিথির ঠিকানা খুঁজতে START → SESSION খুলুন।
- শুধু বিশ্বস্ত খেলোয়াড়দের সঙ্গে অতিথির গেম ঠিকানা শেয়ার করুন।
আপনি একা শুরু করে পরে Session মেনু থেকে Enable multiplayer নির্বাচন করতে পারেন। অতিথিরা Multiplayer → Join session নির্বাচন করে http://HOST_LAN_ADDRESS:8787-এর মতো কোনো ঠিকানা অথবা হোস্টের HTTPS URL লিখবে। ডাকনাম ঐচ্ছিক চরিত্র-টেক্সট, কোনো অ্যাকাউন্ট নয়।
শুধু হোস্ট Codex-এ সংযোগ করে এবং জেনারেশন বরাদ্দ সরবরাহ করে। অতিথিরা হোস্টের বর্তমান রান ও ইতিহাস ভাগ করে নেয়, কিন্তু নিজেরা কখনো Codex-এ সংযোগ করে না। Return to single player নির্বাচন করলে বর্তমান অতিথি সংযোগগুলো বন্ধ হয় এবং নতুন পাবলিক যোগদান প্রতিরোধ করা হয়, তবে সার্ভার-সাইড সেভ সংরক্ষিত থাকে।
দুটি নেটওয়ার্ক পোর্ট বুঝে নিন
0.0.0.0:8787হলো অতিথি গেম পরিষেবা। মাল্টিপ্লেয়ার সক্রিয় থাকলেই কেবল সর্বসাধারণের প্রবেশাধিকার চালু হবে।127.0.0.1:8788হলো Codex সংযোগ, জেনারেশন সেটিংস এবং ব্যাকআপ নিয়ন্ত্রণের জন্য ব্যক্তিগত হোস্ট কনসোল।
কখনো 8788 পোর্ট প্রকাশ্যে উন্মুক্ত বা রিভার্স-প্রক্সি করবেন না। Codex প্রক্রিয়া, ক্রেডেনশিয়াল ডিরেক্টরি বা হোস্ট API অতিথিদের জন্য উন্মুক্ত করবেন না। প্রক্সি বা টানেল ব্যবহার করলে শুধু 8787 পোর্টের অতিথি পরিষেবায় ফরোয়ার্ড করুন।
ইন্টারনেট হোস্টিংয়ের জন্য রিপোজিটরিতে একটি উদাহরণ Caddy কনফিগারেশন রয়েছে, যা শুধু 8787 পোর্টে প্রক্সি করে এবং WebSockets সমর্থন করে। একই-origin যাচাইয়ের জন্য প্রক্সিটিকে মূল Host হেডার সংরক্ষণ করতে হবে। স্বয়ংক্রিয় NAT traversal এবং হোস্টেড relay এতে অন্তর্ভুক্ত নয়।
ডেভেলপমেন্ট বা ডেস্কটপ সংস্করণ চালান
ডেভেলপমেন্টের জন্য TypeScript সার্ভার এবং Vite middleware একসঙ্গে চালান:
npm run dev
Electron হোস্ট উইন্ডো খুলতে প্রথমে প্রজেক্ট বিল্ড করুন, তারপর চালান:
npm run build
npm run desktop
Electron মোড হলো সোর্স-চালিত ডেস্কটপ শেল, প্যাকেজ করা ইনস্টলার নয়। এর জন্য PATH-এ Node.js থাকতে হবে, অথবা NODE_BINARY-এর মাধ্যমে একটি পূর্ণ পাথ দিতে হবে। ফুলস্ক্রিন চালু বা বন্ধ করতে F11 চাপুন, অথবা সরাসরি ফুলস্ক্রিন মোডে শুরু করুন:
npm run desktop:fullscreen
Linux-এর জন্য ঐচ্ছিক Docker সেটআপ
সরবরাহ করা Compose কনফিগারেশন Linux-এর Docker Engine-এর জন্য তৈরি এবং host networking ব্যবহার করে। এতে ইচ্ছাকৃতভাবে কোনো port mapping নেই, যাতে loopback প্রশাসনিক listener স্থানীয়ভাবে প্রবেশযোগ্য থাকে এবং bridge interface-এ স্থাপিত না হয়।
docker compose build
docker compose up -d
docker compose exec game node node_modules/@openai/codex/bin/codex.js login --device-auth
সার্ভার মালিক হিসেবে নিজেই প্রমাণীকরণ সম্পন্ন করুন। world-data ভলিউমটি /app/data-এর অধীনে world সংরক্ষণ করে, আর codex-private /home/node/.codex-এর অধীনে প্রমাণীকরণ ও কনফিগারেশন সংরক্ষণ করে। উভয় ভলিউম অক্ষুণ্ণ রাখুন এবং অ্যাকাউন্টের ক্রেডেনশিয়াল হিসেবে codex-private সুরক্ষিত রাখুন।
সার্ভারের ত্রুটি দেখুন:
docker compose logs game
docker compose stop ভলিউমগুলো সংরক্ষণ করে। world ধরে রাখতে চাইলে down --volumes চালাবেন না। README-তে Windows এবং macOS-এ এই Compose কনফিগারেশনের বদলে নেটিভ কমান্ড ব্যবহারের পরামর্শ দেওয়া হয়েছে।
আপনার World ব্যাকআপ ও পুনরুদ্ধার করুন
নেটিভ npm start ./data-এ ডেটা সংরক্ষণ করে। Electron তার application user-data অবস্থানের অধীনে একটি world ডিরেক্টরি ব্যবহার করে। একাধিক লঞ্চ পদ্ধতিতে একই world ব্যবহার করতে চাইলে INFINITE_DATA_DIR-এ একটি পূর্ণ পাথ সেট করুন।
দ্রুত অনলাইন ডেটাবেস ব্যাকআপের জন্য START → SESSION → World settings → Back up world খুলুন। ব্যাকআপটি backups/-এর অধীনে লেখা হয়। এতে ডেটাবেসের অবস্থা থাকে, তবে প্রতিটি context file, generation log বা ব্যক্তিগত Codex ক্রেডেনশিয়াল থাকে না।
সম্পূর্ণ আর্কাইভের জন্য:
- সার্ভার সঠিকভাবে বন্ধ করুন।
- প্রয়োজনে preview directory-সহ পুরো data directory কপি করুন।
- কপিটি একটি পৃথক ডিরেক্টরিতে পুনরুদ্ধার করুন।
- পুনরুদ্ধার করা ডিরেক্টরিতে
INFINITE_DATA_DIRসেট করুন। - প্রয়োজনে পুনরায় চালু করে Codex-এ পুনরায় সংযোগ করুন।
কখনো চলমান ডেটাবেস প্রতিস্থাপন করবেন না বা সক্রিয় SQLite WAL ফাইল থেকে আলাদা করবেন না। পুনরুদ্ধার করা world যাচাই না হওয়া পর্যন্ত মূল আর্কাইভটি রেখে দিন।
উপযোগী কনফিগারেশন ভেরিয়েবল
INFINITE_DATA_DIR: world ডেটাবেস, snapshot, log এবং backup।PORT: অতিথি গেম পোর্ট; ডিফল্ট8787।ADMIN_PORT: loopback host-console পোর্ট; ডিফল্ট8788।CODEX_EXECUTABLE: ঐচ্ছিক executable বাcodex.jsoverride; shell wrapper প্রত্যাখ্যান করা হয়।CODEX_HOME: ঐচ্ছিক, হোস্ট-মালিকানাধীন Codex প্রমাণীকরণ ও কনফিগারেশন ডিরেক্টরি।NODE_BINARY: Electron যে Node.js executable ব্যবহার করে।INFINITE_MAP_TIMEOUT_MS: প্রতি-map generation-এর সময়সীমা; ডিফল্ট180000এবং সর্বোচ্চ600000।
উন্নত টিপস
ব্যক্তিগতভাবে দূরবর্তী প্রশাসন ফরোয়ার্ড করুন
দূরবর্তী হোস্টে অপারেটরের ব্যক্তিগত shell থেকে Codex-এ প্রমাণীকরণ করুন:
node node_modules/@openai/codex/bin/codex.js login --device-auth
তারপর নিজের কম্পিউটার থেকে loopback প্রশাসনিক পোর্ট ফরোয়ার্ড করুন:
ssh -N -L 127.0.0.1:8788:127.0.0.1:8788 operator@your-server
স্থানীয়ভাবে http://127.0.0.1:8788 খুলুন। এই SSH সংযোগটি শুধু মালিকের প্রশাসনিক টানেল, সর্বসাধারণের গেম প্রক্সি নয়।
ইঞ্জিন পরিবর্তনের আগে টেস্ট স্যুট চালান
npm test
npm run build
npm run test:movement
npm run test:gameplay
npm run test:preview
npm run test:saves
npm run test:streaming
npm run test:variety
npm run test:e2e
npm run test:desktop
নির্ধারিত fixture-গুলো provider call ছাড়াই গেম মেকানিক্স পরীক্ষা করে। movement এবং gameplay browser check-গুলো প্রস্তুত preview ব্যবহার করে এবং কোনো Codex call না হওয়া নিশ্চিত করে।
প্রয়োজন হলেই রিসেট করুন
হোম-স্ক্রিনের Settings → Full game reset action-টি save পরিচালনার থেকে আলাদা। RESET দিয়ে নিশ্চিত করার পর এটি সব run, checkpoint, generated content, progress এবং game setting মুছে দেয়। এটি গেমের Codex approval-ও ভুলে যায়, যদিও Codex CLI-তে সাইন-ইন বজায় থাকে।
বর্তমান সীমাবদ্ধতা
Infinite Pokémon একটি সম্পূর্ণ প্রকাশিত সংস্করণ নয়, বরং একটি প্রোটোটাইপ। সীমিত স্টোরেজ, প্রদানকারীর সীমা, জেনারেশনের সময় এবং ইঞ্জিনের বর্তমান শব্দভাণ্ডারের কারণে জেনারেশনও সীমাবদ্ধ। টেরেইনে যাচাইকৃত টেমপ্লেট ব্যবহার করা হয়, আর AI ইচ্ছেমতো চালানো যায় এমন মেকানিক্স তৈরি করে না। ট্রেডিং, সম্পূর্ণ সার্ভিস-সেন্টার ও Dojo সিস্টেম, এবং বাহ্যিক ছবি-জেনারেশন থেকে ইমপোর্ট—এসব বর্তমান ফিচার নয়, ভবিষ্যৎ কাজ হিসেবে বর্ণিত হয়েছে।
একসঙ্গে আটটি সংযোগ এবং সংরক্ষিত 64 জন ট্রেইনারের মাল্টিপ্লেয়ার সীমা বাস্তবায়নগত সীমাবদ্ধতা; এগুলো ইন্টারনেট-স্কেল সক্ষমতার প্রমাণ নয়। ইন্টারনেটে হোস্টিংয়ের জন্যও অপারেটরকে প্রয়োজন অনুযায়ী ফায়ারওয়াল, DNS, HTTPS, ফরওয়ার্ডিং বা একটি ব্যক্তিগত টানেল কনফিগার করতে হবে।
উপসংহার
Infinite Pokémon একটি নির্ভরযোগ্য সার্ভার-নিয়ন্ত্রিত RPG কোরের সঙ্গে সীমাবদ্ধ AI-সহায়িত বিশ্ব সম্প্রসারণকে একত্র করে। টোকেন-মুক্ত প্রিভিউ দিয়ে শুরু করুন, আরও বিস্তৃত অনুসন্ধানের জন্য প্রস্তুত হলে Codex সংযুক্ত করুন, এবং বিকল্প ভবিষ্যৎ পরীক্ষা করতে চেকপয়েন্ট ব্যবহার করুন। মাল্টিপ্লেয়ার বা দূরবর্তী স্থাপনার ক্ষেত্রে হোস্ট কনসোল ও শংসাপত্রগুলো ব্যক্তিগত রাখুন, কেবল অতিথি-সেবা উন্মুক্ত করুন, এবং সম্পূর্ণ ডেটা-ডিরেক্টরির ব্যাকআপ সংরক্ষণ করুন।
সোর্স কোড, ডকুমেন্টেশন, বাস্তবায়ন-সংক্রান্ত নোট, দক্ষতা, কৃতিত্ব এবং ডিসক্লেমারের জন্য Infinite Pokémon-এর GitHub রিপোজিটরি দেখুন।
