Skip to content

ব্রাঞ্চ: jrpm | সংস্করণ: jrpm-0.1.0 (tagged, 2026-08-14) বিল্ড আউটপুট: openttd-jrpm (এক্সিকিউটেবল ফাইলের নাম)

সংস্করণ সম্পর্ক ​

                        jgrpp-0.73.1 (সাধারণ পূর্বপুরুষ)
                        /                 \
        jgrpp ব্রাঞ্চ (63 কমিট)          pulsexlb px-patch (152 কমিট)
        ├ tracerestrict ইত্যাদি সাম্প্রতিক আপডেট      ├ jgrpp-decouple (ট্রেন ডিকাপলিং)
        ├ আমার ৫টি বৈশিষ্ট্য (d4c45740)                └ jgrpp-multitile-airport (মডুলার এয়ারপোর্ট)
        └ সংস্করণ নামকরণ jrpm-0.1.0 (425e7207)
                        \                 /
                        jrpm ব্রাঞ্চ (merge 71fe214c + সামঞ্জস্য cb9848b)

মার্জ বিষয়বস্তু ​

১. pulsexlb/OpenTTD-patches (px-patch সম্পূর্ণ ১৫২ কমিট) → ইতিমধ্যে মার্জড ​

বৈশিষ্ট্যব্যাখ্যাপ্রধান ফাইল
ট্রেন ডিকাপলিং (ডিকাপল)ট্রেন ডিকাপল/অ্যাটাচ: ডিকাপল অর্ডার, টোকেন স্থানান্তর, কাপলিং দৈর্ঘ্য/গতি সীমা, ডুয়াল লোকো, NewGRF কাপলিং, কাপলিং পাথফাইন্ডিং (YAPF/NPF), ডিকাপলের পর দুই ট্রেন স্বাধীন রুটিংtrain_cmd.cpp, order_cmd.cpp, order_gui.cpp, train.h, yapf/npf
মডুলার এয়ারপোর্ট (মাল্টিটাইল-এয়ারপোর্ট)মাল্টি-টাইল এয়ারপোর্ট সিস্টেম পুনর্নির্মাণ: এয়ার টাইপ সিস্টেম (air.h/air_type.h/newgrf_airtype.), PBS এয়ার ট্রাফিক কন্ট্রোল (pbs_air.), YAPF এয়ার পাথফাইন্ডিং, station.allow_modify_airports (এয়ারপোর্ট লেআউট পরিবর্তন), gui.default_air_type, মাল্টি-টাইল এয়ারপোর্ট স্প্রাইটair., pbs_air., aircraft_cmd.cpp (৩৬০০ লাইন পুনর্গঠন), airport_cmd/gui, station_cmd

কনফ্লিক্ট হ্যান্ডলিং: শুধু ২টি হেডার ফাইল কনফ্লিক্ট (aircraft.h / airport.h)——pulsexlb এভিয়েশন পুনর্গঠন ওয়ার্কস্পেসে রেফারেন্স নেই এমন মৃত টাইপ (VehicleAirFlags বিটসেট, AirportMovingDataFlag) মুছে ফেলেছে, pulsexlb পক্ষের ডিলিট নেওয়া হয়েছে, নিশ্চিত করা হয়েছে অন্য কোনো ফাইলে রেফারেন্স নেই।

২. Openttd-Cluster (ব্যবহারকারী Rust ক্লাস্টার প্রকল্প) → নির্বাচনী অনুকরণ ​

প্যাচব্যবস্থাপনাব্যাখ্যা
0006 vanilla-native-server (মাল্টি-ভার্সন ক্লায়েন্ট সামঞ্জস্য)✅ ইতিমধ্যে মার্জড (cb9848b7)jrpm সার্ভার একই সাথে jrpm / মূল jgrpp (jgrpp-) / pulsexlb (pxp) ক্লায়েন্ট গ্রহণ করে; NewGRF সংস্করণ এখনও কঠোরভাবে যাচাই করে
0001 revision-handshake / 0005 version-metadata✅ ধারণা ইতিমধ্যে গ্রহণ করা হয়েছেjrpm স্বাধীন tagged রিভিশন স্ট্রিং jrpm-0.1.0 ব্যবহার করে, মাল্টিপ্লেয়ার হ্যান্ডশেক jgrpp/pxp থেকে বিচ্ছিন্ন, "নতুন সংস্করণ সহজে মাল্টিপ্লেয়ার" বাস্তবায়িত
0007 parallel-download (HTTP থ্রেড পুল + Range চাঙ্ক, 30KB)📝 রেফারেন্স, মার্জ করা হয়নিএই প্রকল্পের F1 "ফাইল-লেভেল সমান্তরাল + মাল্টি-মিরর"-এর সাথে একই থিম এবং একই ফাইল পরিবর্তন করে; 0007-এর ট্রান্সপোর্ট লেয়ার থ্রেড পুল/চাঙ্ক ডাউনলোড F1-এর পরবর্তী উন্নতির দিক হিসেবে রেকর্ড করা হয়েছে
0002-0004 snapshot/command/FFI ব্রিজ📝 আর্কিটেকচার রেফারেন্সসম্পূর্ণ otc-engine Rust রানটাইম (FFI স্ট্যাটিক লিংক) এর উপর নির্ভরশীল, "দূরবর্তী সামগ্রিক ইন্টিগ্রেশন" প্যাচ-লেভেল মার্জ নয়; jrpm বর্তমানে বিশুদ্ধ C++ একক বাইনারি

৩. jrpm নিজস্ব (পূর্ববর্তী ৫টি বৈশিষ্ট্য, d4c45740) → ইতিমধ্যে jrpm ব্রাঞ্চে ​

সমান্তরাল ডাউনলোড (মাল্টি-মিরর + ৪টি সমবর্তী সেশন), স্বয়ংক্রিয় গ্রুপিং, নির্মাণ টুলটিপ, সম্পূর্ণ গেম-সচেতন AI (ScriptGlobal + GlobalAI), মিরর/কন্টেন্ট সার্ভার সেটিংস।

মাল্টিপ্লেয়ার নীতি ("নতুন সংস্করণ সহজে মাল্টিপ্লেয়ার") ​

  • jrpm একটি tagged সংস্করণ: IsNetworkCompatibleVersion রিভিশন স্ট্রিং সম্পূর্ণ মিল প্রয়োজন → jrpm ক্লায়েন্ট শুধু jrpm সার্ভারের সাথে মাল্টিপ্লেয়ার করে, jgrpp 0.73.x / pxp থেকে সম্পূর্ণ বিচ্ছিন্ন;
  • সার্ভার শিথিলতা: jrpm সার্ভার অতিরিক্তভাবে jgrpp-* ও pxp* ক্লায়েন্ট গ্রহণ করে (IsJgrppNativeNetworkRevision / IsPxpNetworkRevision, NewGRF সংস্করণ অবশ্যই মিলতে হবে);
  • তাই: jrpm সার্ভার হোস্ট খোলা = শুধু jrpm প্লেয়ার গ্রহণ (ডিফল্ট); পুরনো ক্লায়েন্টের সাথে সামঞ্জস্য প্রয়োজন হলে কনফিগারেশন পরিবর্তন ছাড়াই jgrpp/pxp প্লেয়ার গ্রহণ করা যায়।

বিল্ড ও যাচাইকরণ (ব্যবহারকারীর নিজস্ব মেশিনে নির্বাহ) ​

bash
# প্রথমবার (CMake + নির্ভরতা প্রয়োজন, COMPILING.md দেখুন)
cmake -B build ..
cmake --build build -j
# আউটপুট: build/openttd-jrpm.exe

যাচাইকরণ অগ্রাধিকার: ১. openttd-jrpm -v দেখায় jrpm-0.1.0; ২. একক খেলা শুরু করে ১-২ বছর চালান (মার্জ train/airport বড় পরিবর্তন ও存档 সংস্করণ allow_modify_airports ইত্যাদি নতুন কারণে bump হতে পারে); ৩. সার্ভার খোলার পর: jrpm ক্লায়েন্ট যোগ ✓; মূল jgrpp 0.73.x ক্লায়েন্ট যোগ করার চেষ্টা (প্রত্যাশিত: যোগ দিতে পারবে, NewGRF সামঞ্জস্যপূর্ণ হলে); ৪. ট্রেন ডিকাপলিং: ট্রেনে ডিকাপল/অ্যাটাচ অর্ডার যোগ করুন, ডিকাপলের পর দুই ট্রেন স্বাধীন রুটিং যাচাই করুন; মডুলার এয়ারপোর্ট: station.allow_modify_airports চালু করে এয়ারপোর্ট লেআউট পরিবর্তন করুন; ৫. পূর্ববর্তী ৫টি বৈশিষ্ট্য রিগ্রেশন (সমান্তরাল ডাউনলোড, স্বয়ংক্রিয় গ্রুপিং, নির্মাণ টুলটিপ, GlobalAI)।

জ্ঞাত ঝুঁকি ​

  • কম্পাইল করে যাচাই করা হয়নি: মার্জ+পরিবর্তিত কোড এই মেশিনে কম্পাইল করা হয়নি (কোনো টুলচেইন নেই), প্রকৃত মেশিনে প্রথম কম্পাইলে অনুপস্থিত ইন্টারফেস পরিবর্তন থাকতে পারে (বিশেষ করে aircraft/airport/train তিন সিস্টেমের বড় পরিবর্তন); -存档 সংস্করণ: px-patch SLV bump করতে পারে (M9-এ savegame version gate উল্লেখ আছে), jrpm存档 ও jgrpp 0.73.x存档 পারস্পরিক পাঠযোগ্য নাও হতে পারে (jgrpp নীতি অনুসারে, নিচের দিকে trunk存档 সামঞ্জস্যপূর্ণ);
  • মার্জ pulsexlb-এর সম্পূর্ণ ইতিহাস নিয়ে আসে, বৈশিষ্ট্য উৎস ট্রেস করতে git log --oneline pulsexlb/px-patch ব্যবহার করুন।

মার্জ লগ: 2026-09-28 (jgrpp-0.73.3 + px-patch 2609.x) ​

মার্জ কমিট: jgrpp ৯৪ কমিট (jgrpp-0.73.3 পর্যন্ত) + px-patch ১১৩ কমিট (pxp-2609.10-এর পরে পর্যন্ত)।

নতুন: pulsexlb থেকে — সড়ক যান পরিবহন (RoRo, বৈশিষ্ট্য দেখুন), ১২৮ কার্গো প্রকার (Uint128 CargoTypes, XSLFI_CARGO_TYPES_128 গেট), ডিকাপল/কাপল সংশোধন ব্যাচ ও সময়সূচি উন্নতি; jgrpp থেকে — অর্ডার ড্র্যাগ-অ্যান্ড-ড্রপ/ডাবল-ক্লিক, ডাবল-এন্ডেড শিপ (XSLFI_DOUBLE_ENDED_SHIPS) ও বহু সাধারণ সংশোধন।

মূল কনফ্লিক্ট হ্যান্ডলিং: pulsexlb-এর সেভলেয়ার পুরনো SLE_ ম্যাক্রো সিস্টেমে, অথচ jrpm/jgrpp 0.73.3 আধুনিক VarFileType/VarMemType + VarTypes-এ — saveload/ ও sl/-এর সব কনফ্লিক্ট আধুনিক সিস্টেমে পুনর্লিখিত এবং U128 সমর্থন যোগ করা হয়েছে (VarFileType::U128=13, VarMemType::U128, SLE_UINT128); jrpm-এর সংরক্ষিত 367/368 বজায় আছে, আপস্ট্রিমের নতুনগুলো 369/370-এ সরেছে; আপস্ট্রিম সেভগেম সামঞ্জস্য XSLFI_UPSTREAM_VERSION সাব-চাঙ্ক দিয়ে চলে; CT_VEHICLES স্ট্রিং নির্মাণ, grfid Label তুলনা, এবং autogroup + RORO_DEBUG_COMMANDS উভয় কনসোল ব্লক সংরক্ষিত।

অবস্থা: MinGW ninja বিল্ড পাস, আউটপুট build/openttd-jrpm.exe; নতুন গেম স্মোক টেস্ট পাস।


মার্জ লগ: 2026-10-07 (jgrpp 0.73.3+89 + px-patch 2610.3) ​

মার্জ কমিট: jgrpp-এর ২৩টি কমিট (jgrpp-0.73.3-এর পরে, 6318727b02 পর্যন্ত) + px-patch-এর ৫৫টি কমিট (pxp-2610.3, 4a4d0724b5 পর্যন্ত)।

নতুন: pulsexlb থেকে — ট্রেন ফেরি (জাহাজগুলো পুরো ট্রেন বহনের জন্য রূপান্তরিত হয়, নিবেদিত RAIL কার্গো CT_RAILVEHICLES, ওয়াগনভিত্তিক লোডিং), বৃষ্টি ব্যবস্থা (weather.cpp: এলোমেলো বৃষ্টির সময়কাল, ধীরে ধীরে বিশ্ব অন্ধকার হওয়া, জুম অনুযায়ী বদলানো বৃষ্টির ওভারলে; difficulty.rain বিকল্প; স্যান্ডবক্স চিট আবহাওয়া বাধ্য করে; আবহাওয়ার অবস্থা WTHR/XSLFI_WEATHER-এর সঙ্গে সেভ হয়), ডিকাপলের পর একই দিকে বেরিয়ে যাওয়া (অপর অংশের জন্য অপেক্ষা করে), প্রতিটি কার্গো হোল্ড ও প্রতিটি ওয়াগনের ধারণক্ষমতা দেখানো, RoRo বিকল্পে ট্রেন/গাড়ির সাইন বেছে নেওয়া, কাপলিং প্যাথফাইন্ডিংয়ের জাম কমানো (কার্গো যাচাই এখন প্রি-চেক ও ব্যর্থ হলে ব্যাকঅফ), এবং APK প্রকাশসহ অ্যান্ড্রয়েড বিল্ড; jgrpp থেকে — শক্তিশালী ধরনের StringID, সদৃশ কোম্পানির নাম সঠিকভাবে প্রত্যাখ্যান, উইজেটের পছন্দমতো আকার হিসাব, এবং আরও অনেক রিফ্যাক্টরিং ও সংশোধন।

মূল কনফ্লিক্ট হ্যান্ডলিং: বিল্ডে সবচেয়ে বড় বাধা ছিল Label/StringID-এর শক্তিশালী টাইপিং — jrpm-এর নিজস্ব কোডের সব ৪-অক্ষরের লিটারাল লেবেল স্ট্রিং কনস্ট্রাকশনে বদলে গেছে (CT_RAILVEHICLES{"RAIL"});afterload.cpp-এ রাস্তা ও ট্রাম ধরনের লেবেল তুলনা RoadTypeLabel{"ROAD"} আকারে হয়েছে; airport.cpp-এ খালি AirTypeInfo-এর স্ট্রিং ফিল্ড ব্যবহার করে STR_NULL; cheat_gui.cpp-এ STR_CHEAT_RAIN-এর switch শাখাগুলি ব্যবহার করে .base()। নতুন আবহাওয়া চাঙ্ক WTHR-এর পুরনো CH_TABLE টাইপ ChunkType::Table হয়ে গেছে; চিট টেবিলে jrpm-এর VarMemType ও InflationCheat সেন্টিনেল রাখা হয়েছে এবং নতুন বৃষ্টির চিট সারি যোগ হয়েছে; jrpm_watch_gui.cpp-এ SetStringTip(SPR_GOTO_LOCATION, …) কে SetSpriteTip করা হয়েছে; train_cmd.cpp-এ enable_decouple গেট ও desync ডিবাগ আউটপুট রাখা হয়েছে, সঙ্গে আপস্ট্রিমের সেই সংশোধন নেওয়া হয়েছে যা কেবল ট্রেনের সামনের অংশ সুইচ পার করলেই রিভার্স ঘটায় (if (v->IsMovingFront())) এবং একই দিকে বেরোনোর ফ্ল্যাগও নেওয়া হয়েছে; order_cmd.cpp-এ DecouplePart ভ্যারিয়েবল রেখে DrivingBackwards-এর নতুন TCF_NO_DRIVING_CAB-ভিত্তিক অর্থ গ্রহণ করা হয়েছে; deploy-docs.yml-এ VitePress বিল্ড ও GitHub Pages ডিপ্লয় থাকে, তেমনি README/.gitignore/.ottdrev-vc-এ jrpm-এর পরিচয়; SL_UPSTREAM_VERSION এখনও 368-এ (আপস্ট্রিম DoubleEndedShips) পিন করা, src/saveload/engine_sl.cpp-এর static_assert পাস করে, এবং jrpm-এর সংরক্ষিত 367/368 অপরিবর্তিত।

অবস্থা: MinGW ninja বিল্ড পাস (-j3), আউটপুট build/openttd-jrpm.exe; -D ডেডিকেটেড সার্ভার স্মোক টেস্ট পাস —

সর্বশেষ আপডেট: