Правични коцки, фер игра
Секој играч на табла што изгубил од дупли на последното фрлање се запрашал: дали овие коцки се чесни? Тоа е вистинското прашање за која било апликација за табла. Еве точно како се генерираат нашите коцки, зошто никој, вклучувајќи нѐ и нас, не може да ги накриви, и како и остатокот од играта се одржува чесен.
Проверете која било завршена игра сами
Зборовите се евтини, затоа еве го делот што можете сами да го извршите. Кога натпреварот ќе заврши, го откриваме неговото серверско семе, обврската што ја објавивме пред првото фрлање и секоја алка што двете страни ја објавија во текот на играта. Залепете го пакетот за откривање подолу или побарајте ја партијата по нејзиниот идентификатор: оваа страница повторно ја изведува секоја коцка од тој запис, со потполно истата пресметка што ја извршија нашите сервери, и ви покажува фрлање по фрлање дали зачуваните вредности се поклопуваат. Ништо од тоа не бара да ни верувате на збор: сметката е отворена и секој може да ја повтори. Единственото што оваа страница намерно не го прави е да додели зелена значка „докажливо чесно”, зашто чесно не би можела да ја заслужи. Таа никогаш не ги гледа вредностите што вашиот уред ги запишал и заклучил пред првото фрлање, а запис чиј синџир е целосно заменет со внимателен фалсификат се изведува овде исто толку беспрекорно. Тоа го исклучува само споредба бајт по бајт со она што вашиот уред го заклучил, а тие вредности ги има само вашата апликација. Затоа чесниот таван на оваа страница е „доследно”, а најсилната пресуда може да ви ја даде екранот „Провери” во апликацијата.
Коцки: докажливо чесни, фрлани на серверот
Секое фрлање во завршена онлајн партија настанува на нашите сервери за игра и е докажливо чесно, без притоа да мора да ни верувате на збор. Пред првото фрлање објавуваме обврска кон тајното семе од кое ќе излезат коцките, а апликациите на двајцата играчи се обврзуваат секоја на сопствен синџир; сето тоа се замрзнува во еден запис пред некој воопшто да фрли. Потоа секое фрлање троши по една свежа алка од синџирот на двете страни: играчот што е на ред ја објавува својата на почетокот на потегот, противникот ја пушта својата дури откако таа е заклучена, а коцката се изведува последна. Последниот непознат влез на која било коцка затоа е секогаш на спротивната страна од таблата. Почетните коцки не се исклучок: ниту една од нив не постои додека и двете страни не дадат свој придонес. Секоја коцка е затоа детерминистички резултат на вредности обврзани однапред: никој, ниту ние, не може да избере коцка, да ја замени со друга ниту тивко да ја фрли повторно. Ова е тврдење за вредноста на веќе фрлена коцка и застанува тука: дали партијата ќе биде откажана, дали пораката ќе стигне и кому му истекло времето, остануваат надвор од него. Алатката погоре повторно ја изведува секоја коцка од завршена игра од објавениот запис, пресметка што секој може да ја повтори. Она што не може е да потврди дека тој запис е вашата партија: за тоа се потребни вредностите што вашиот уред ги заклучил пред играта, а нив ги има само вашата апликација, па тој последен чекор се прави на екранот „Провери” во апликацијата.
Исто толку важно е каде се случува фрлањето. Коцките никогаш не се генерираат на вашиот уред, вашиот телефон само прикажува фрлање што серверот веќе го извршил. Таа единствена одлука во дизајнот ја уништува целата фамилија на измами со коцки: изменета апликација не може повторно да фрли, скок на доцнење не може да удвои фрлање, и ниеден трик на страната на клиентот не може да ѕирне во следниот број, зашто следниот број не стои на вашиот телефон за да биде прочитан: тој се изведува на серверот, и тоа дури откако двете страни ќе ја пуштат својата алка за тој потег.
И фрлањата никогаш не се прилагодуваат. Нема никаква „крива на ангажман”, нема механика на враќање, нема поттик за играчи во низа порази. Генераторот ниту знае ниту го интересира кој победува.
Таблата: проверена на секој потег
Чесните коцки малку би значеле ако самата табла можеше да се измести или да биде манипулирана, затоа играта работи на строг модел на серверски авторитет. Вашиот уред никогаш не му кажува на серверот како изгледа таблата, ја испраќа само вашата намера („помести го овој пул од полето 13 на полето 8”). Серверот го проверува тој потег според официјалните правила и официјалната табла; недозволените потези едноставно се одбиваат, што и да тврди изменетиот клиент.
Потоа доаѓа двојната проверка: со секое ажурирање на состојбата серверот емитува збиен отпечаток (хеш) на вистинската позиција на таблата. Вашиот уред го пресметува истиот отпечаток од својата локална табла и споредува. Ако се разликува дури и еден пул, клиентот ја отфрла својата копија и повторно се синхронизира од серверот. Двајцата играчи така во секој момент докажливо гледаат иста игра, десинхронизациите сами се исцелуваат во еден циклус, и нема прозорец во кој би можело да се игра на застарена или манипулирана табла.
Противниците: спарување Glicko-2
Чесноста е и за тоа против кого играте. Рејтинзите овде користат Glicko-2, современ наследник на Ело што ги следи и вашата играчка сила и довербата на системот во таа проценка, па новите играчи брзо се доближуваат до своето вистинско ниво наместо педесет игри да бидат скалила за други. Спарувањето ве поврзува со противници со споредлив рејтинг, а рангираните резултати по секоја игра се враќаат во системот.
Резултатот: кога победувате, надиграле сте себеси рамен. Кога губите, има нешто вистинско да се научи, обично во водичите за стратегија.
Како навистина се чувствуваат чесните коцки
Еве ја непријатната вистина: навистина случајните коцки изгледаат посериски отколку што повеќето очекуваат. Вистинската случајност создава четири дупли по ред, игри на влез против табла со едно поле и чуда во последното фрлање, токму со честотите што ги предвидува веројатноста. Фрлање со шанса 17/36 промашува двапати по ред почесто отколку во четвртина од случаите. Меморијата ги задржува скандалите и ја отфрла рутината, затоа секој искусен онлајн играч има приказна за „наместени коцки”, а ниедна статистичка ревизија овде ниту една не ја потврдила.
Ако сакате да ги калибрирате инстинктите, водичот за основи на веројатноста ги изнесува вистинските броеви: 36 комбинации, изгледи за погодок на секое растојание, шанси за влез од барот. Сознанието дека кој било определен број се појавува 11 пати од 36 ја претвора „невозможната несреќа” во „вторник”.
Сакате подлабока техничка верзија, класи на генератори, како функционира доказот commit-reveal и психологијата на „наместените” низи? Блогот го има тоа: како навистина функционира серверскиот RNG.
Нашата обврска
- Коцки генерирани на серверот, докажливо чесни: никогаш не се фрлаат на уред, никогаш не се приспособуваат за некој играч или ситуација и се изведуваат од влезови на кои двете страни се обврзуваат пред првото фрлање; кога играта ќе заврши, секоја коцка повторно се изведува од објавениот запис, а апликацијата потврдува дека партијата била ваша.
- Спроведување на правилата на изворот: секој потег го проверува серверот; изменетите клиенти не добиваат ништо.
- Непрекината проверка на таблата: проверка со хеш при секое ажурирање, самоисцелување при секое несовпаѓање.
- Спарување врз основа на вештина: рејтинзи Glicko-2 и спарување според рејтинг.
Чесните коцки значат дека единствената предност што останува на масата е вештината, а вештината може да се научи. Почнете со правилата, изострете ја со стратегија и испробајте ја во живо: масата подолу е бесплатна, во вашиот прелистувач, без инсталација.