Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Розрахунок витрат на розробку модифікованого алгоритму 77

Розрахунок витрат на розробку модифікованого алгоритму 77




Сторінка10/17
Дата конвертації16.03.2017
Розмір0.82 Mb.
1   ...   6   7   8   9   10   11   12   13   ...   17

3.2 Архітектури збереження і управління даними

Архітектура зберігання і управління даними визначає, де зберігаються дані і яким чином вони можуть бути поновлені.

Гібрид (від лат. hybrida – помісь) - результат природного чи штучного схрещування між двома організмами різних таксонів.

Агрегація або агрегування (лат. aggregatio «приєднання») - процес об'єднання елементів в одну систему.

Зберіга́ння - дія за значенням зберігати; технологічний процес.

У централізованій архітектурі (рисунок 3.2 а) один вузол керує всіма об'єктами. Централіованая архітектура являє собою базу даних, яка підтримує гру цілісною впродовж усього часу виконання.

а) централізована; б) розподілена



Рисунок 3.2 – Архітектури зберігання і управління даними.
У розподіленій архітектурі, навпаки, кожен вузол керує своєю частиною об'єктів (рисунок 3.2 б), через це з'являється необхідність підтримування цілісності. Вузол містить копії об'єктів вузлів, в яких він зацікавлений.

Власний об'єкт вузла називається первинною копією (primary), копія об'єкта іншого вузла – вторинної копією (replica) або проксі (proxy). Ці терміни можна віднести і до розподіленої, і до централізованої архитектурам [14].

Централізо́вана держа́ва - держава, підкорена єдиній центральній владі.




3.3 Алгоритми синхронізації

Алгоритми синхронізації (consistency maintenance algorithms) оперують над подіями. Подія змінює стан будь-якого об'єкта, внаслідок чого можуть видалятися одні об'єкти і виникати інші об'єкти та події. Подія може бути створено локально (наприклад, гравець використовував предмет), або бути отриманою від іншого вузла. Вузлом (node) називається файл гри що виконується і працює на комп'ютері користувача.

Стан гри – це стан об'єктів, що становлять ігровий світ на певний момент часу.

Алгоритми синхронізації створюють упорядкування подій, тобто «слідкують», щоб всі події виконувалися в порядку їх виникнення на всіх вузлах. Виходячи з цього, алгоритми синхронізації можна розділити на консервативні (conservative) і оптимістичні (optimistic).

Консервативні алгоритми не дозволяють порушити цілісність стану гри з самого початку – події не виконуються до тих пір, поки не буде гарантована цілісність.

Оптимістичні алгоритми створюють взаємодію відразу при виникненні, що не гарантує цілісність, а при її порушенні (що, до того ж, слід виявити) використовується відкат (rollback) до моменту виникнення події. Потім виконується сама подія і всі наступні за нею.

Таким чином, при використанні оптимістичних алгоритмів взаємодії між об'єктами відбуваються з найменшою затримкою, але процес відкату може викликати роздратування у гравців. Очевидно, що зі збільшенням затримки сигналу, ймовірність порушення цілісності зростає, так само зростає і ймовірність необхідності відкату [15].

3.3.1 Консервативні алгоритми

Алгоритм синхронізації Lockstep (LS) [13] працює по протоколу «зупинися-і-жди»: вузол чекає повідомлень від інших вузлів, потім прораховує наступний кадр, шле повідомлення і знову чекає.

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

Ймові́рність (лат. probabilitas, англ. probability) - числова характеристика можливості того, що випадкова подія відбудеться в умовах, які можуть бути відтворені необмежену кількість разів. Імовірність є основним поняттям розділу математики, що називається теорія імовірностей.

Роздратування - неприємний психічний стан, що характеризується такими ефектами, як дратівливість та відволікання від свого свідомого мислення. Це може призвести до таких емоцій, як розчарування та гнів.

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

У разі взаємодії між первинною і вторинною копіями проводиться асинхронний виклик віддаленої процедури (RemoteProcedureCall, RPC). Віддалений вузол, який є власником вторинної копії, «застосовує» зміни на своїй первинній копії об'єкта і відсилає змінений стан іншим вузлам. Цей алгоритм називається PairwiseRapidAgreement.

Наприклад, якщо один гравець стріляє в іншого гравця, то вузол першого шле RPC другому. Після отримання виклику другий вузол віднімає значення нанесеної шкоди з поля «здоров'я» об'єкта гравця і відсилає іншим вузлам оновлений стан зміненого об'єкта.


3.3.2 Оптимістичні алгоритми

DeadReckoning  пересування безперервне, але його можливо оновлювати тільки дискретно. До того ж завжди існує затримка і одержувані дані є застарілими. Отже, необхідний спосіб побудови безперервної траєкторії з дискретних оновлень і передбачення майбутньої траєкторії.

Таким способом є DeadReckoning (DR). Він полягає в обчисленні траєкторії об'єкта (у вигляді швидкості і положення в просторі), грунтуючись на відомій раніше траєкторії, швидкості і часу, коли відома траєкторія була актуальною.

Траєкто́рія - лінія, яку описує матеріальна точка, що рухається в просторі.

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

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

DR дозволяє передбачати траєкторії об'єктів, таким чином приховуючи затримку сигналу (через що його також називають передбаченням (prediction)). Звичайно, існує межа передбачення, що залежить від необхідної чутливості гри.

Як алгоритм синхронізації, DR – це поєднання передачі та передбачення стану. Іншими словами, кожен вузол обмінюється з іншими вузлами даними про траєкторії первинних копій і передбачає траєкторії вторинних. У централізованій архітектурі сервер виробляє передачу стану, а клієнти - передбачення.

Дані про траєкторію можуть передаватися або в кожному повідомленні, або по перевищенню порога помилки, залежно від передбачуваності траєкторії. Перший спосіб найкраще підходить для індетермінованої траєкторії, наприклад, пересування гравця, а другий – для детермінованої траєкторії, наприклад, польоту ракети або кулі.

Передбачення може бути засноване на інтерполяції або екстраполяції, залежно від необхідної точності.

Веб-се́рвер (англ. Web Server) - це сервер, що приймає HTTP-запити від клієнтів, зазвичай веб-браузерів, видає їм HTTP-відповіді, зазвичай разом з HTML-сторінкою, зображенням, файлом, медіа-потоком або іншими даними.

Інтерполяція - в обчислювальній математиці спосіб знаходження проміжних значень величини за наявним дискретним набором відомих значень.

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

Було запропоновано безліч способів поліпшення точності передбачення, наприклад, алгоритми.Вони грунтуються на плануванні посилки оновлень траєкторії (messagescheduling) і проставленні тимчасових міток (timestamping).

Відтво́рення - слово, яке, в залежності від контексту застосування набуває різних значень.

Планування - це заздалегідь намічений порядок дій, необхідних для досягнення поставленої цілі. Планування - оптимальний розподіл ресурсів для досягнення поставленої мети.

Для установки тимчасових міток необхідна синхронізація годин між вузлами, що є важким завданням зважаючи неточності внутрішнього годинника ПК і різноманітних затримок в Інтернеті.

В цілому, оптимістичні алгоритми досить складні і все ще знаходяться в «незрілому» стані, незважаючи на активне вивчення багатьма науковими групами [15, 16].

1   ...   6   7   8   9   10   11   12   13   ...   17



  • 3.3 Алгоритми синхронізації
  • 3.3.1 Консервативні алгоритми
  • 3.3.2 Оптимістичні алгоритми