სერვერისთვის Java და Bedrock ერთი თამაშის ორი ვერსია არ არის. ისინი ცალკე პროგრამებია, სხვადასხვა ენაზე დაწერილი, სხვადასხვა პროტოკოლით მოლაპარაკე სხვადასხვა პორტზე, სამყაროებს სხვადასხვა ფორმატში ინახავს და სხვადასხვა რამით ფართოვდება. არასწორის არჩევა მიგრაციაა და არა პარამეტრი. მოკლე პასუხი: თუ შენი მოთამაშეები კონსოლებზე, ტელეფონებზე ან Microsoft Store ვერსიაზე არიან, გჭირდება Bedrock ან ხიდი. თუ ისინი დესკტოპზე არიან და გინდა plugin-ები, ტერიტორიის დაცვა, უფლებები და მთელი ინსტრუმენტების ეკოსისტემა, გჭირდება Java. თუ ორივე ტიპის მოთამაშე გყავს, უმეტესი ჯგუფისთვის პრაქტიკული პასუხია Java სერვერი Paper-ით, რომლის წინ Geyser და Floodgate დგას - და ეს პოსტი პატიოსნად ამბობს, რას იძლევა და რას არ იძლევა ეს.
ორი პროგრამა და არა ორი გამოცემა#
განსხვავებები სტრუქტურულია და არა კოსმეტიკური. ეს ცხრილი მთელი არგუმენტია შეკუმშული.
| Java Edition სერვერი | Bedrock Dedicated Server | |
|---|---|---|
| რა არის | jar, რომელსაც JVM უშვებს | ნატიური ბინარი, bedrock_server |
| მუშაობს | ყველაფერზე, რაზეც Java არის | მხოლოდ Linux x86-64 და Windows |
| ნაგულისხმევი პორტი | 25565 TCP | 19132 UDP (და 19133 IPv6-ისთვის) |
| მოთამაშეები | დესკტოპ launcher | კონსოლი, მობილური, Windows 10/11, Fire მოწყობილობები |
| ფართოვდება | plugin-ებით, mod-ებით, datapack-ებით | add-on-ებით და scripting API-ით |
| დისტანციური ადმინისტრირება | RCON, არჩევითი და ჩაშენებული | არ არის. მხოლოდ კონსოლის შეყვანა |
| სამყაროს ფორმატი | Anvil region ფაილები (.mca) | LevelDB |
ნაგულისხმევი max-players | 20 | 10 |
| ვერსიების ტოლერანტობა | შენ ირჩევ, როდის განაახლო | კლიენტები ავტომატურად განახლდება და სერვერმაც უნდა გაჰყვეს |
ამ ცხრილში ორი მწკრივი დანარჩენებზე მეტ ზიანს აყენებს. ARM-ისა და macOS-ის არარსებობა Bedrock-ისთვის ნიშნავს, რომ სერვერის ბინარი იმაზე უფრო ძუნწია, სად ცხოვრობს, ვიდრე Java jar. და კლიენტები ავტომატურად განახლდება: Bedrock მოთამაშის ტელეფონი ან კონსოლი თავისით განახლდება, და როცა პროტოკოლი იცვლება, ისინი ვერ შემოდიან, სანამ სერვერიც არ განახლდება. Java სერვერს შეუძლია წელიწადი 1.20.1-ზე იჯდეს და მოთამაშეები უბრალოდ ამ ვერსიას აინსტალირებენ launcher-იდან. Bedrock სერვერი გამოშვებების უწყვეტ რბოლაშია, რომელსაც ვერ აკონტროლებს.
ვინ თამაშობს, ის წყვეტს#
ყველაფერი დანარჩენი მეორეხარისხოვანია. ჰკითხე ჯგუფს, რა აქვს.
- კონსოლები - Xbox, PlayStation, Switch. Bedrock და მხოლოდ Bedrock. კონსოლისთვის Java კლიენტი არ არსებობს და არასოდეს იარსებებს. ასევე გაითვალისწინე, რომ კონსოლის კლიენტებს UI-ში თვითნებური სერვერის მისამართის აკრეფა არ შეუძლიათ; მესამე მხარის სერვერზე შესვლა ნიშნავს DNS გადამისამართების დამხმარეს იმავე ქსელში ან ერთ-ერთ ტელეფონის აპს, რომელიც ასეთს გთავაზობს. Windows-ის, მობილურისა და Fire კლიენტებს აქვთ უბრალო Add Server ღილაკი მისამართისა და პორტის ველით.
- ტელეფონები და ტაბლეტები. Bedrock.
- დესკტოპის მოთამაშეები, რომლებმაც თამაში Minecraft.com-იდან იყიდეს. ორივე, რადგან ყიდვა Windows-ზე Java-სა და Bedrock-ს შეიცავს. რომელს უშვებენ ჩვეულებრივ, ეს ღირს, რომ იკითხო.
- ვინც mod-ებს იყენებს ან plugin-ები უნდა. Java. ეს ახლოც არ არის.
პატიოსანი ფორმულირებაა, რომ Bedrock გამოცემაა იმ ადამიანებისთვის, რომლებმაც გამოცემა არ აურჩევიათ, და Java - იმათთვის, ვინც აირჩია. ოჯახის სერვერი ორი უფროსისა და სამი ბავშვისთვის ტაბლეტებზე Bedrock სერვერია. გადარჩენის თემი ტერიტორიის დაცვით, ეკონომიკით და Discord ხიდით Java სერვერია. ჯგუფი, რომელიც ნახევრად ასეთია და ნახევრად ისეთი, საინტერესო შემთხვევაა, და Geyser მისი პასუხია.
პორტები, მისამართები და ხალხის შემოშვება#
Bedrock UDP-ს იყენებს. Java TCP-ს. ეს ერთი ფაქტი უფრო მეტ „სერვერი მუშაობს, მაგრამ ვერავინ შედის“ ticket-ს იწვევს, ვიდრე ყველაფერი დანარჩენი ერთად, რადგან ერთზე დაწერილი firewall წესი მეორეზე არაფერს აკეთებს. გეიმ სერვერის პორტები ახსნილი ზოგად შემთხვევას ფარავს, ხოლო TCP vs UDP გეიმ სერვერებისთვის - რატომ იყოფა თამაშები ასე.
| პორტი | პროტოკოლი | ვინ იყენებს |
|---|---|---|
25565 | TCP | Java Edition-ის თამაშის ტრაფიკი |
25565 | UDP | Java query პროტოკოლი, თუ enable-query=true |
25575 | TCP | Java RCON, თუ enable-rcon=true |
19132 | UDP | Bedrock-ის თამაშის ტრაფიკი და მისი query |
19133 | UDP | Bedrock IPv6-ზე |
მისამართი მეორე ნახევარია. Java კლიენტები SRV ძებნას აკეთებენ, რითაც არასტანდარტულ პორტზე მყოფ სერვერზე პორტის გარეშე შიშველი დომენის აკრეფით შეიძლება შესვლა - ჩანაწერის ფორმატისთვის იხილე SRV ჩანაწერები Minecraft-ისთვის. Bedrock კლიენტები SRV ჩანაწერებს არ მიჰყვებიან. Bedrock მოთამაშეს ჰოსტი და პორტი ორ ცალკე ველად უნდა მიეცეს, ამიტომ სუფთა play.example.com-ის გვერდით მაინც 19132 უნდა აკრიფოს, თუ სერვერი ნამდვილად default-ზე არ უსმენს. გაითვალისწინე ეს პორტის არჩევისას და თავად A ჩანაწერისთვის იხილე დომენის მიბმა გეიმ სერვერზე.
პანელზე დაფუძნებულ ჰოსტზე ყოველი გეგმა აღნიშნავს, რამდენი პორტის allocation აქვს, და აქ Minecraft გეგმებს ერთი მოყვება. მეტს Network ჩანართზე ამატებ, რასაც აკეთებ, როცა Java listener-ის გვერდით Bedrock listener გინდა, ან web რუკა, ან query და RCON ცალკე ნომრებზე.
კონფიგურაცია: ორი server.properties ფაილი#
ორივე სერვერი თავის პარამეტრებს ფაილში ინახავს, რომელსაც server.properties ჰქვია, და ორ ფაილს თითქმის არაფერი აქვს საერთო. გასაღებების კოპირება Java გიდიდან Bedrock კონფიგურაციაში მთელი შუადღის დაკარგვის პოპულარული გზაა.
server-port=25565max-players=20view-distance=8simulation-distance=6online-mode=truewhite-list=falseenable-rcon=falsespawn-protection=16server-port=19132server-portv6=19133max-players=10view-distance=32tick-distance=4online-mode=trueallow-list=falsedefault-player-permission-level=membermax-threads=8Bedrock-ის რამდენიმე შენიშვნა, რომელიც გასაღებების სახელებიდან არ ჩანს:
- `view-distance` ნაგულისხმევად `32`-ია, რაც უზარმაზარია და პირველი, რაც დატვირთულ სერვერზე უნდა შეამცირო.
tick-distanceსიმულაციის რადიუსია და ნაგულისხმევად4-ია, დიაპაზონით 4-დან 12-მდე - ის Java-სsimulation-distance-ის ექვივალენტია და უკვე კონსერვატიულია. - `allow-list` ახალი სახელია იმისა, რასაც ადრე
white-listერქვა, და ფაილიallowlist.json-ია და არაwhitelist.json. ძველი გიდები ძველ სახელებს იყენებს. - `default-player-permission-level` იღებს
visitor,memberანoperator-ს. ოპერატორებიpermissions.json-ში დგება, Xbox Live XUID-ით და არა სახელით. - `max-threads` worker thread-ებს ზღუდავს;
0ნიშნავს გამოიყენე ის, რაც მანქანას აქვს.
Java-ს ops.json-ს, whitelist.json-ს, banned-players.json-სა და banned-ips.json-ს პირდაპირი Bedrock ექვივალენტები აქვს permissions.json-სა და allowlist.json-ში, მაგრამ იდენტიფიკატორები განსხვავდება: Java ანგარიშის UUID-ებს იყენებს, Bedrock - XUID-ებს. ყველა `server.properties` გასაღები ახსნილი Java ფაილს სრულად ფარავს.
Plugin-ები, add-on-ები და რას თმობს თითოეული მხარე#
აქ ორი ეკოსისტემა შედარებადი აღარ არის.
Java-ს აქვს Bukkit-იდან წარმოშობილი plugin-ები, რაც ხუთმეტი წლის დაგროვილი ინსტრუმენტებია: უფლებები, ტერიტორიის დაცვა, block-ების ლოგირება rollback-ით, ეკონომიკები, web რუკები, anti-cheat, profiler-ები, Discord ხიდები. ისინი მხოლოდ სერვერის მხარეს მუშაობს, ამიტომ მოთამაშეები მოდიფიცირების გარეშე კლიენტით შედიან. ცალკე მას აქვს mod-ები, რომლებიც თავად თამაშს ცვლის და ყველა მოთამაშეს პაკეტის დაყენებას აძალებს. და აქვს datapack-ები, რომლებიც plugin სერვერებზეც მუშაობს და vanilla-ზეც. Paper, Fabric თუ vanilla ამ დაყოფას ფარავს, ხოლო plugin-ები, რომლებიც ღირს დაყენება - მოკლე სიას, რომელიც თავის ადგილს იმსახურებს.
Bedrock-ს აქვს add-on-ები: behaviour pack-ები და resource pack-ები, რომლებიც behavior_packs/-სა და resource_packs/-ში ჩაიგდება და თითო სამყაროზე world_behavior_packs.json-ით ირთვება. მათ შეუძლიათ ტექსტურების შეცვლა, ბალანსის გადაკეთება, ერთეულებისა და ნივთების დამატება და - scripting API-ის მეშვეობით, რომელიც JavaScript-ია behaviour pack-ის შიგნით - გასაკვირად ბევრი ნამდვილი ლოგიკის გაკეთება. რასაც ვერ აკეთებენ, სერვერის ადმინისტრატორისთვის საჭირო რაღაცეების უმეტესობაა. არ არსებობს ოფიციალური ტერიტორიის დაცვის სისტემა, გრიფინგის rollback, სამ დონეზე მეტი უფლება, ეკონომიკის framework.
არაოფიციალური სერვერის პროგრამა Bedrock-ისთვის არსებობს - PocketMine-MP და Nukkit დიდი ხნის განმავლობაში მუშაობენ - და ისინი plugin API-ს გვთავაზობენ. მახე ისაა, რომ ორივე პროტოკოლს თავიდან ახორციელებს, რაც ნიშნავს, რომ ყოველი განახლების შემდეგ ოფიციალურ გამოშვებებს ჩამორჩება და ყველა vanilla ფუნქციას არ ახორციელებს. ეს გონივრული გაცვლაა minigame ქსელისთვის და ცუდი - გადარჩენის სამყაროსთვის.
ასე რომ, პატიოსანი შეჯამება: Bedrock გაძლევს სერვერს, რომელზეც ნებისმიერს შეუძლია ნებისმიერიდან შესვლა და ძალიან მცირე კონტროლს იმაზე, რაც მასზე ხდება. Java გაძლევს სრულ კონტროლს და ყველა კონსოლის მოთამაშეს გამორიცხავს.
ზომა, წარმადობა და რა ღირს თითოეულის გაშვება#
Bedrock C++-ზეა დაწერილი და Java - არა, და ეს მეხსიერების რიცხვებში ჩანს. არ არსებობს heap-ის მოსარგებად, garbage collector-ის დასაკონფიგურირებლად, -Xmx, რომლის შეცდომაც შეიძლება. Bedrock სერვერი რამდენიმე მოთამაშისთვის კმაყოფილია 1-დან 2 GB-მდე; იმავე ჯგუფს Java-ზე 2-დან 4 GB-მდე უნდა, როცა JVM-ის საკუთარ ხარჯს ითვლი.
| მოთამაშეები | Bedrock | Java (Paper) |
|---|---|---|
| 2-5 | 1-2 GB | 2 GB |
| 10-20 | 2-4 GB | 4 GB |
| 20-40 | 4-6 GB | 6-8 GB |
ეს ცხრილი ისე ნუ წაიკითხავ, რომ „Bedrock უფრო იაფია, გაუშვი Bedrock“. მეხსიერების სხვაობა ერთი დონეა, ხოლო ინსტრუმენტების სხვაობა ყველაფერია. სადაც Bedrock ნამდვილად იგებს, ძალიან პატარა ბოლოა: ოჯახის სერვერი ტაბლეტის ზომის მოთამაშეთა რაოდენობით თითქმის არაფერზე მუშაობს.
ორივე შემოფარგლულია ერთი სიმულაციის thread-ით და იმით, რამდენი სამყაროა ერთდროულად ჩატვირთული, ამიტომ მორგების ინსტინქტები გადადის, თუმცა გასაღებების სახელები არა. შეამცირე view distance, სანამ მეხსიერებას იყიდი; ეს ორივე მხარეს მართალია. რამდენი RAM სჭირდება Minecraft სერვერს Java არითმეტიკას სრულად შეიცავს, და მსჯელობის უმეტესობა heap-ის ნაწილის გარეშე Bedrock-ზეც ვრცელდება.
Geyser და Floodgate: ხიდი და მისი ხარვეზები#
Geyser Bedrock პროტოკოლს Java პროტოკოლად თარგმნის, ამიტომ Bedrock კლიენტებს Java სერვერზე შესვლა შეუძლიათ. Floodgate მის გვერდით დგას და ამ მოთამაშეებს Java ანგარიშის გარეშე შემოუშვებს. ერთად ისინი მიზეზია, რატომ ხვდება შერეული ჯგუფების უმეტესობა Java-ზე.
Geyser მუშაობს როგორც plugin Paper-ზე, როგორც plugin Velocity-ის ან BungeeCord-ის proxy-ზე, როგორც mod Fabric-ზე ან NeoForge-ზე, ან ცალკე თავის მანქანაზე. plugin გზა ყველაზე მარტივია: ჩააგდე jar plugins/-ში, გაუშვი ერთხელ config.yml-ის დასაგენერირებლად, დააყენე bedrock.port და ავთენტიფიკაციის რეჟიმი, გადატვირთე. Floodgate-ს სჭირდება key.pem, რომელიც Geyser-თან იზიარება, და ნაგულისხმევად ის Bedrock მომხმარებლის სახელებს წერტილით პრეფიქსავს, რომ Java სახელებს არ დაეჯახოს. პრაქტიკული მოთხოვნა ჰოსტზე დამატებითი allocation-ია: Geyser-ს Java სერვერის TCP პორტის გარდა UDP 19132 სჭირდება, რომელიც Network ჩანართზე ემატება.
რასაც ის არ აკეთებს, და თითოეული უნდა გატესტო, სანამ რამეს დაჰპირდები:
- Mod-ები არ ითარგმნება. Geyser vanilla Java პროტოკოლს ლაპარაკობს. Forge ან Fabric სერვერი მორგებული შიგთავსით ამ გზით მიუწვდომელია.
- მორგებული ნივთის მოდელები და plugin-ის ზოგი ინტერფეისი უხეშია. ინვენტარის მენიუს plugin-ები, მორგებული თავები და resource pack-ით მართული ნივთის ხელოვნება „ჩემს ტელეფონზე არასწორად გამოიყურება“-ს ჩვეულებრივი წყაროებია.
- მოძრაობა განსხვავდება. Bedrock-ის მოძრაობისა და block-ების დადების წესები Java-ს წესებს არ ემთხვევა, და მოძრაობაზე დაფუძნებული anti-cheat plugin-ები Bedrock მოთამაშეებზე ცრუ დადებითს იძლევა, სანამ მათთვის არ მოირგებ.
- Resource pack-ები ცალკე pipeline-ია. Java resource pack Bedrock-ის არ არის, ამიტომ ვიზუალური პარიტეტი ორის მოვლას ნიშნავს.
არცერთი ეს არ ხდის მას ცუდ იდეას. მეგობრების ჯგუფისთვის, სადაც სამი Xbox-ზეა, ის ნამდვილად სწორი პასუხია. საჯარო სერვერისთვის, რომელიც Bedrock მოთამაშეებს გაპრიალებულ გამოცდილებას ჰპირდება, დათვალე რეალური ტესტირების დრო. Geyser და Floodgate დეტალურად კონფიგურაციას ეტაპობრივად გადაივლის.
სამყაროები მათ შორის არ გადადის#
Anvil და LevelDB დისკზე განსხვავებულია და იმაში, რისი გამოხატვაც შეუძლიათ. სამყაროს საქაღალდის ერთიდან მეორეში კოპირება არ შეგიძლია, და კონვერტერები, რომლებიც არსებობს, დანაკარგიანია.
ხალხი იყენებს Chunker-ს, ბრაუზერზე დაფუძნებულ კონვერტერს, და Amulet-ს, დესკტოპ სამყაროს რედაქტორს. ორივე რელიეფსა და block-ების უმეტესობას გადაიტანს. რაც ჩვეულებრივ არ გადარჩება:
- Command block-ები და ფუნქციები. ბრძანების სინტაქსი გადაფარავს, მაგრამ იგივე არ არის, და ყველაფერი ჭკვიანური გადაწერას მოითხოვს.
- Plugin-ისა და mod-ის მონაცემები. ტერიტორიის დაცვა, მაღაზიები, დალოგილი block-ები და მორგებული ნივთები ბაზებსა და NBT-ში ცხოვრობს, რომლის შესახებაც მეორე გამოცემას წარმოდგენა არ აქვს.
- Block-ები შესაბამისობის გარეშე. ორი გამოცემა რამდენიმე block-სა და block state-ზე განსხვავდა, და კონვერტერი რაღაც გონივრულს ირჩევს.
- ერთეულისა და ინვენტარის NBT-ის კიდურა შემთხვევები. სახელდებული ნივთები, მორგებული potion-ები და ყველაფერი, რაც plugin-მა ხელით ჩაწერა.
კონვერტაცია მიიჩნიე ცალმხრივ მიგრაციად ხელით შეკეთებით შემდეგ და არა სინქრონიზაციად. გადააკეთე ასლი, გაიარე მნიშვნელოვანი შენობები და ორიგინალი სამყარო სამუდამოდ შეინახე. Backup-ები, რომლებიც მართლა აღდგება ჩვევაა, რომელიც ამას გადარჩენადს ხდის, და ღირს დაწყებამდე ჩაკეტილი backup-ის აღება და არა ასლი იმავე საქაღალდეში.
დროულად გადაწყვეტის სხვა მიზეზი: ვერსიების რბოლა. Java სერვერი განახლდება, როცა შენ აირჩევ, პროცედურით და rollback-ით. Bedrock სერვერი განახლდება, როცა Mojang გამოუშვებს, რადგან კლიენტებმა უკვე განახლდნენ.
FAQ#
შეუძლიათ Bedrock და Java მოთამაშეებს ერთ სერვერზე შესვლა?
ნატიურად არა - ისინი სხვადასხვა პროტოკოლია. მუშა გზაა Java სერვერი Geyser-ითა და Floodgate-ით, რომელიც Bedrock კავშირებს თარგმნის. ამას მეორე, UDP პორტი და ვიზუალური თავისებურებების მიმართ გარკვეული ტოლერანტობა სჭირდება და mod-ებს გამორიცხავს, მაგრამ შერეული მეგობრების ჯგუფისთვის კარგად მუშაობს.
Bedrock სერვერი უფრო იაფია გასაშვებად, ვიდრე Java?
ოდნავ. JVM heap არ არის, ამიტომ პატარა Bedrock სერვერი 1-დან 2 GB-ში ეტევა, სადაც Java-ს 2-დან 4 GB უნდა. სხვაობა ჩვეულებრივ ერთი დონეა, რაც ნაკლებია, ვიდრე ჟღერს იმასთან შედარებით, რისი გაკეთებაც სერვერზე შეიძლება.
რატომ ვერ ხედავს ჩემი Xbox სერვერს?
კონსოლის კლიენტებს თვითნებური სერვერის მისამართის ველი არ აქვთ. მოთამაშეები ან იმავე ქსელში DNS გადამისამართების დამხმარეს იყენებენ, ან ტელეფონის თანმხლებ აპს, რომელიც მას გთავაზობს, ან Realm-ს. Windows-ის, მობილურისა და Fire კლიენტებს ჩვეულებრივი Add Server ვარიანტი აქვთ host-ისა და პორტით.
TCP უნდა გავხსნა თუ UDP?
Java არის TCP 25565-ზე. Bedrock არის UDP 19132-ზე, და მისი IPv6 listener UDP 19133-ზეა. არასწორი პროტოკოლისთვის დაწერილი წესი ყველაზე გავრცელებული მიზეზია, რატომ იწყება სერვერი კარგად და ვერავინ აღწევს მას.
შემიძლია ჩემი Bedrock სამყარო Java-ში გადავიყვანო?
კონვერტერით, როგორიცაა Chunker ან Amulet, უმეტესად. რელიეფი და ჩვეულებრივი block-ები გადარჩება. Command block-ები, მორგებული ერთეულის მონაცემები და ყველაფერი, რაც plugin-მა ან add-on-მა ჩაწერა, - არა. გადააკეთე ასლი, გულდასმით შეამოწმე და ორიგინალი შეინახე.
Bedrock-ს plugin-ების მხარდაჭერა აქვს?
ოფიციალურად არა. Add-on-ები - behaviour pack-ები, resource pack-ები და scripting API - თამაშის შეცვლის მხარდაჭერილი გზაა, და ისინი შიგთავსს ბევრად უკეთ ფარავს, ვიდრე ადმინისტრირებას. მესამე მხარის სერვერის პროგრამა, როგორიცაა PocketMine-MP და Nukkit, plugin-ებს გვთავაზობს ოფიციალურ გამოშვებებზე ჩამორჩენის ფასად.




კომენტარები
სრულიად ანონიმურად: ანგარიშის, ელფოსტის და cookie-ის გარეშე. ინახება მხოლოდ სახელი, ტექსტი და დრო - სხვა არაფერი. ბმულების რაოდენობა ლიმიტირებულია.