ნარდი – გამჭვირვალობა და უსაფრთხოება
რა არის სერვერზე დაფუძნებული მართვა?
სერვერი ამოწმებს თამაშის ყველა მოქმედებას. შენი მოწყობილობა მხოლოდ აჩვენებს თამაშის მდგომარეობას — ის ვერ შეცვლის ან ვერ იმოქმედებს შედეგებზე.
სერვერი აკონტროლებს:
- კამათლის გენერაცია
- სვლის ვალიდაცია
- ტაიმერის მართვა
მოთამაშე აკონტროლებს:
- როდის გენერირდება კამათელი
- ქვების გადაადგილება
როგორ გენერირდება კამათელი?
კამათლის ყველა გაგორება გენერირდება სერვერზე Rust-ის rand crate-ით:
- თითოეული კამათელი გენერირებს შემთხვევით რიცხვს 1-დან 6-მდე
- მიუკერძოებელი გაგორება — თითოეულ მნიშვნელობას (1-6) თანაბარი ალბათობა აქვს
- კრიპტოგრაფიულად დაცული RNG (ChaCha-ზე დაფუძნებული, იგივე კლასი, რასაც TLS იყენებს)
- ჩათესილია ოპერაციული სისტემის ენტროპიიდან — შემთხვევითობის ოქროს სტანდარტი
- იყენებს Rust-ის სტანდარტულ შემთხვევითი რიცხვების გენერატორს (rand crate v0.10)
წყაროს კოდის ნახვა
// engine/src/manager/dice_manager.rs
let value = rand::rng().random_range(1..=6);rand 0.10 — Rust-ის ყველაზე სანდო შემთხვევითობის ბიბლიოთეკა (500M+ ჩამოტვირთვა)
ვინ იწყებს პირველი?
სერვერი შემთხვევითად წყვეტს, რომელი მოთამაშე დაიწყებს პირველი:
- დამწყები მოთამაშის ასარჩევად იყენებს შემთხვევით ლოგიკურ მნიშვნელობას (true/false)
- თითოეულ მოთამაშეს ზუსტად 50% შანსი აქვს, რომ პირველმა დაიწყოს
- არცერთ მოთამაშეს არ აქვს უპირატესობა
რატომ არის ეს მნიშვნელოვანი?
- თაღლითობა შეუძლებელია — თამაშის მთელი ლოგიკა სერვერზე მუშაობს
- ყველა გადაწყვეტილება (კამათელი, სვლები, მოგება) მოწმდება სერვერზე
- შენი მოწყობილობა მხოლოდ იმას აჩვენებს, რასაც სერვერი ეუბნება
- სერვერი ჭეშმარიტების ერთადერთი წყაროა — შედეგებს ვერავინ მართავს
ფასიანი კონტენტი
ნივთები, როგორიც ჩაი და ქვების სკინებია, პირადი სტილისთვისაა.
- მოიპოვება თამაშით ან შეიძლება შეიძინო
- თამაშის შედეგებზე გავლენას არ ახდენს