Проблематика отримання переваг за допомогою ботів і твінків

Проблематика отримання переваг за допомогою ботів і твінків

Написати дану статтю мене спонукала суперечка на просторах інтернету, а так само давно спостерігається безглузда боротьба з ботами в іграх і додатковими акаунтами, заводимими для того, щоб грати за другого персонажа, щоб дати перевагу своєму основному персонажу. Відразу скажу, що така проблема виникає тільки в низько інтелектуальних іграх. Більше того, можна сміливо стверджувати, де така проблема є - ця проблема виникає лише через те, що розробники не захотіли, не змогли зробити збалансовану та інтелектуальну гру. Просто подумайте, чим Вам допоможе новий акаунт, якщо Ви будете грати в шахи? Ну, скажіть Ви, шахи:Але принцип можна поширити і на всі інші ігри. Тоді мене запитали:

Як взагалі можна зробити гру, в якій два персонажа не мають переваг перед одним?

У розроблюваній мною грі «Кібер розвиток» це реалізовано, може ще не остаточно, але значною мірою. А тим кому дійсно цікава відповідь - читаємо далі...

Головне - жодних заборон на ботів і додаткові акаунти. Потрібно зробити так, щоб отримання переваг за допомогою ряду хитрощів, було економічно не вигідно. Почнемо з торгівлі, це відкриє нам двері...

Ключ таїться в торгівлі

Якщо зробити так, щоб персонажі не могли просто передати щось іншому, тоді все буде залежати від витраченого часу на кожного персонажа. І нарешті, якщо ти граєш за двох персонажів ти фізично не можеш витратити часу більше, ніж ти витрачав би на одного. Тому коли будеш грати за двох персонажів, ти створиш двох недоперсонажів, а не одного крутого.

Принцип № 1. Торгують не всі! Потрапляючи в гру, персонаж не може торгувати відразу між містами. Персонаж може тільки купити товар на ринку в тому місті, в якому знаходиться. Але спочатку у нього немає грошей. Щоб їх заробити він повинен, щось виробити і потім продати на ринку цього міста. Вже тут багато хитрощів відваляться. Якщо ти заводиш додатковий акаунт, ти починаєш виробляти все заново і без переваг. Но вот ты накопил за пару дней заветные 100.000 $ и тебе разрешили торговать, и даже больше, ты завел еще дополнительный аккаунт с новым персонажем и хочешь передать ему 100.000 $, чтобы развить твинка, чтобы потом он мог помогать основному персонажу.

Принцип № 2. Природний ринок! Найпростіший спосіб реалізувати природний ринок - це його не реалізовувати:Торгують тільки самі гравці. Але тут проблемка, у них немає спочатку грошей, а значить взагалі у віртуальному світі немає грошової маси. У деяких іграх гравцеві дають якусь стартову суму, а ще частіше роблять штучний ринок, коли гроші даються якимось урядом, який друкує гроші. Якщо дати стартову суму - вже є ризик: гравець заводить 1000 акаунтів і якщо в грі є моментальний ринок перекидає їх основному акаунту. Але таку примітивну схему ми нейтралізували вже принципом № 1. Гравцеві, щоб завести 1000 акаунтів, та годі навіть 5 - потрібен тиждень, щоб розвинути цих 5-х персонажів до рівня, щоб вони могли торгувати. Отже, не маючи джерел грошової маси ми не можемо створити природний ринок. Ми вводимо уряд, який друкує гроші. Але тут Ви могли б схопити мене за руку і сказати, що це штучний ринок. Не зовсім. Штучним він стане тоді, коли гроші будуть тільки видаватися, і головне видаватися не пропорційно. Ми ж зробимо так. Продукт вироблятимуть у грі деяку кількість хвилин. І якщо уряд буде скуповувати за ціною, яка буде пропорційно витраченому в грі часу, то ціна буде відповідати тому, скільки гравець витратив на гру часу. Тобто. у нашому прикладі з першого принципу, гравцеві буде без різниці або витратити час основним персонажем, щоб здобути 100.000 $ для другого персонажа, або витратити цей же час відразу другим персонажем. Це в разі, якщо скуповує віртуальний уряд, якщо ж вдалося здійснити операцію серед гравців, так ще краще - це в рамках правил гри.

Принцип № 3. Час швидкоплинний! Звичайно, коли ітерація в грі займає велику кількість часу, скажімо від години, то у гравця є час, щоб завести додаткового персонажа і керувати ними одночасно. Але якщо у тебе дія займає кілька хвилин, або максимум 20 хвилин. То як часто ти будеш встигати перемикатися між акаунтами? Скільки ти зможеш заводити одночасно?

Принцип № 4. Зробимо доп. персонажів елементом гри (дозволимо твінків)! І не просто вирішимо, а зробимо для них переваги. Наприклад, якщо з нового акаунта персонаж потрапляє у випадкове місто, і щоб основний персонаж мав можливість з ним торгувати, потрібно комусь із них накопичити коней і з'їхатися в одне місто. Ми ж дамо таку можливість відразу і зробимо це елементом гри, виду «знайти друга/колегу, яким сам же і будеш керувати». Таким чином, значна частина «хитриців» буде виведена на світ, ну а хто впертий, і хоче отримати переваги, буде терпіти великі незручності.

Йдемо далі в розвінчанні можливості отримати перевагу, якщо керувати одночасно кількома персонажами. Але резюмуємо те, що вже зроблено. Чесним гравцям ми дали перевагу перед «гравцям, які бажають переваг, одержуваних сумнівними способами» (десь я бачив непоганий для цього термін - багоюзер). Щоб стати багоюзером - потрібно чесно затратити час, щоб отримати можливість торгувати. Більше того між персонажами треба розриватися, тому що потрібно відстежувати стан кожного за короткий час. Торгуючи на природному ринку від «уряду» ти отримуєш суми пропорційні витраченому часу. Які можливості ще залишаються у багоюзера? Іноді в грі потрібні великі суми грошей або товари, які немає у основного персонажа, але є у інших в сумі. Є ще варіант, коли щось потрібно в конкретний момент як «ложка до обіду», і тоді потрібно швидко перекинути все, що у тебе є у різних персонажів до одного. Подивимося, як нейтралізувати і це.

Принцип № 5. Ціни на ринку підвищуємо вгору! Моментальний ринок є тільки при торгівлі в одному місті, а між містами треба робити замовлення і доставка товарів коштує коштів і часу. Але знаходиться в одному місті твинкам не вигідно. Міста відрізняються тим, які ресурси і як легко можна добути. Причому якщо є одне, іншого може не бути. Тому для успішного розвитку потрібно виробляти і торгувати в різних містах. Тепер якщо ти торгуєш між своїми персонажами, ти не можеш виставити за низькою ціною - купить уряд або інший гравець за порівняно не великі гроші. Тоді багоюзер йде на хитрість, твінк виставляє за підвищеною ціною якусь дурницю, і її купує основний персонаж. Тим самим передаються гроші твінку від основного персонажа. Другим етапом, основний персонаж за завищеною ціною виставляє товар, який хоче передати і твінк купує. Основний персонаж повертає свої гроші, а у твинка виявляється потрібний йому товар. Зазначимо, що щоб мати можливість завищити ціни багоюзер повинен був накопичити чесним способом потрібну суму готівки. Цим способом можна злити все цінне потрібному персонажу. Але на жаль, не вийде зробити це моментально, тому що перевезення між містами у щось обійдеться (тобто при передачі в одне місце отримаєш менше, ніж було в різних) і займе час.

Здавалося б ось воно багоюзер злив усе нажите посильною працею одному персонажу, і він повинен отримати перевагу. Але зауважимо, він злив тільки те, що сам же виробляв і заробив протягом гри. Його додаткові персонажі після зливу впали в рейтингу, а сумарно змін не відбулося. Залишилося зрозуміти, а чи дасть йому перевагу, збір товарів і готівки в одного персонажа.

Принцип № 6. Одна з цілей гри побудувати стійке виробництво! Ми зробимо простіше, те що зробив багоюзер оголосимо метою гри і дамо переваги тим, хто не приховує своїх доп. персонажів. Виділимо спеціальну роль у грі - ремісники. І зробимо їх за принципом бото-твінків. Дамо гравцеві можливість складати для них розпорядок виробництва на ігровий тиждень. Вони будуть автоматично без участі гравця створювати продукти, і зможуть за високими цінами перекидати результат за гроші від основного персонажа. Хтось їх буде постачати ліками, хто їжею. І те що робив багоюзер, тільки ширше буде елементом гри. Більше того, знову ж таки чесні гравці отримають перевагу.

Принцип № 7. А якщо хочемо закрутити гайки? А можна прикрити лавочку і по торгівлі за високими цінами. Як? Як продавець знаходить покупця? Один варіант, продавець виставляє те, що хоче продати. Другий варіант, покупець робить замовлення на те, що хоче купити. Припустимо ми реалізували тільки другий варіант. Якщо покупець виставить замовлення за маленькою ціною - він ніколи не отримає товар, тому що його раніше скупить уряд або гравці в роздріб. Тоді покупець буде виставляти замовлення за завищеною ціною, такої за якою уряд купувати не буде. Але у відповідь на таке замовлення він отримає 10-ок пропозицій. Якщо зробити так, що він не має права вибирати в кого саме він купить, то цілеспрямовано він ніколи товар не передасть.

Принцип «більше граєш - більше отримуєш» необхідно замінити на принцип «краще граєш - більше отримуєш»

Напевно зрозуміло, що якщо в минулому розділі ми нейтралізували багоюзерів, з можливістю отримувати переваги сумнівними методами, просто досить добре реалізувавши крафт і торгівлю, то ще можуть залишитися думки, що якщо замість самої людини будуть грати боти, то це може дати перевагу. Але в статті Гри як моделювання реальності я вже писав:

Є завдання, які не можливо прорахувати математично, програмно або взагалі якось з потрібною оптимальністю. Так от якщо така проблематика буде закладена в гру, то ні який план «прокачування», будь-який бот не зможе грати краще, ніж людина з його природним інтелектом.

Опишемо приклад того якого роду, коли завдання може виявитися не дозволеним для методів ШІ, а отже і для ботів.

Онтологічний граф

Всі продукти і способи їх отримання можна описати онтологічним графом. У ряді випадків він може бути досить складним, тобто сильно пов'язаним. Розгляньмо один приклад отримання «вогнища» і за допомогою нього більш вдосконаленого інструменту (кирка, сокира, пила).

Початок графа складають деякі предмети, які не вимагають нічого, крім зусиль агента з видобутку. Такі предмети виділені зеленим кольором - камінь і кремінь. Але ось вже колода вимагають не сировину, а дозвіл на вирубку. Такого роду дозволи, а також споруди (столярної майстерні, кухні) вимагають грошей. Дозволи та споруди отримуються/зводяться один раз і на відміну від сировини та інструментів не витрачаються. Гроші можна отримати продаючи якийсь товар на ринку. Чим складніший продукт, тим він дорожчий. Але спочатку агент змушений торгувати простими продуктами, оскільки не має можливості створювати більш складні.

На графі можна побачити один і той же предмет, але з різним ідентифікатором. Справа в тому, що можуть існувати кілька способів отримання продукту. Наприклад, "1. Колоди «і» 2. Колоди ", в першому випадку, для отримання колод не потрібно нічого, але колод виходить мало, а в другому, для більш швидкого отримання колод потрібна сокира. Проходячи за графом у зворотному порядку ми зможемо намітити наступний план дій: Колівна (2) - Сокира - Очаг - Залізна руда (6) - Дрова (109) - Кам «яна сокира - Кам» яна кирка - Бревна (1) - Кремінь - Камінь (63).

Проблематика

У загальному випадку, виникають різні варіанти отримання, які можуть займати різну кількість часу. Людина (природний інтелект, ЄІ) інтуїтивно досить швидко розуміє, що щоб більш швидко отримувати товари, спочатку потрібно створити більш досконалий інструмент, а не отримувати товари низькоефективними способами. Але людина, точніше її інтуїція досить слабо допомагає, якщо потрібно вибрати між двома досить складними варіантами отримання. Наприклад, що займе менше часу для видобутку колод, отримати спочатку сокиру, або отримати кирку для удосконалення видобутку залізної руди? Адже це вже залежить від конкретних цифр - часу отримання, кол-ва отриманого продукту обраним способом, поширеності сировини в місті, зусиль агента (витрат здоров'я, енергії, бадьорості, підтримки теплового комфорту тіла). Але граючи людина з часом абстрагується від точного розрахунку, і розуміє чи дійсно ті чи інші параметри серйозно впливають на результат.

А що ми маємо в даний момент щодо алгоритмів штучного інтелекту (ШІ)? Щоб було можливо тут використовувати будь-який з алгоритмів ШІ, ми будемо змушені побудувати т. зв. оціночну функцію (синоніми: функцію придатності, функцію корисності).

Якби онтологічний граф не мав би різних шляхів отримання продуктів, то нам було б достатньо скористатися т. зв. прямим і зворотним логічним висновком (глава 7). Але на жаль цього мало. Між різними шляхами нам необхідно вибирати. І тут нам доводиться формувати оціночну функцію. Підкреслюю оціночну функцію створює розробник ШІ для кожного конкретного завдання, ґрунтуючись на її формалізації.

Виникає питання, що якщо в разі логічного висновку ми знаємо як зручніше представляти знання, а саме все можна звести до онтологічного графу, то для того, щоб функцію придатності побудував би не розробник, а алгоритм ШІ на підставі онтології, ми не знаємо яким чином краще представляти знання. Можливо для формування оціночної функції так само має сенс побудувати якийсь граф, який буде описувати конкретні цифри, які впливають на вибір дії агента, а отже на формування оціночної функції.

Так от створення такого роду графа і його використання для формування оціночної функції і є основною проблематикою для поточного стану ШІ. І йдеться не про створення приватного графа, а про методологію подання знань, необхідних для формування оціночної функції у вигляді графа (назвемо його оціночний граф).

Індекс успіху

Ну і нарешті, покажемо як приміряти природний і штучний інтелект. Потрібно всього лише ввести якийсь індекс успіху в грі. Якщо цей індекс буде відображати величину прибутку за витрачений гравцем час на виробництво товарів (максимізація прибутку при мінімізації часу), то перемогти в грі «грубою силою» за принципом «більше граєш - більше отримуєш» не вийде. І тоді програмісти можуть займатися спортивним програмуванням, змагаючись, намагаючись зробити інтелектуального бота, а просто гравці можуть показати, що природний інтелект сильніший, таким чином, проводячи своєрідний тест Тьюрінга.

Крім того, такого роду індекс успіху, може бути корисний, якщо з якихось причин не хочеться закручувати гайки в боротьбі з альтернативними акаунтами. За динамікою цього індексу можна легко зрозуміти хто кого спонсорує, можливо це може відбуватися за не вмінням вести торгівлю, але тоді в грі легко ввести легенду, що «купець при не вмілій торгівлі позбавляється ліцензії», але тим самим багоюзери будуть постійно позбавлятися ліцензій на торгівлю. І зауважимо, ми перестаємо боротися на низькому рівні шляхом стеженням за IP гравця, а просто робимо гру інтелектуальною і в ній автоматично пропадають подібні проблеми.

COM_SPPAGEBUILDER_NO_ITEMS_FOUND