MASSIV. Middleware pro tvorbu online her



Podobné dokumenty
TÉMATICKÝ OKRUH Softwarové inženýrství

Distribuovaný systém je takový systém propojení množiny nezávislých počítačů, který poskytuje uživateli dojem jednotného systému.

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou

Microsoft SharePoint Portal Server Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR

Jednotlivé hovory lze ukládat nekomprimované ve formátu wav. Dále pak lze ukládat hovory ve formátu mp3 s libovolným bitrate a také jako text.

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

Common Object Request Broker Architecture

Softwarové komponenty a Internet

ové kampaně Byznys CRM s.r.o.

Semináˇr Java X J2EE Semináˇr Java X p.1/23

java remote method invocation Kateřina Fricková, Matouš Jandek

Load Balancer. RNDr. Václav Petříček. Lukáš Hlůže Václav Nidrle Přemysl Volf Stanislav Živný

Komponentový návrh SW

Versiondog Co je nového

Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb:

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

STUDIJNÍ MATERIÁL PRO TECHNICKOU CERTIFIKACI ESET Business Edition, ESET Remote Administrator

Vzdálený přístup k počítačům

Internet a zdroje. (ARP, routing) Mgr. Petr Jakubec. Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17. listopadu

UAI/612 - Cloudová Řešení. Návrh aplikací pro cloud

nástroj pro jednoduchou správu a vedení agendy studentských počítačových sítí na kolejích SU OPF Karviná Ing.

Správa probíhá v přehledné webové konzoli.

Souborové systémy Mgr. Josef Horálek

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

Systémy pro sběr a přenos dat

MBI - technologická realizace modelu

IMOSI - MODELACE A SIMULACE LEARN 2013 správně možná špatně

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

Úvod do Web Services

VÝZVA K PODÁNÍ NABÍDKY. Ukládání, zálohování a archivace dat

Obsah. Poděkování 11 Úvod 13 Zpětná vazba od čtenářů 15 Errata 15 Konvence použité v knize 15. Spolupráce v malé firemní síti 17

Source Defender. PPJ semestrální projekt. Martin Přeták, ARI

Příloha: Dodatečné informace, včetně přesného znění žádosti dodavatele o dodatečné informace

Název prezentace 1. Poskytovatel garantovaných služeb NDC včetně kybernetické bezpečnosti ve státní správě

Adaptabilní systém pro zvýšení rychlosti a spolehlivosti přenosu dat v přenosové síti

Komunikace. Úrovová architektura protokol. Úrovová architektura protokol (2) Pednášky z distribuovaných systém

Tvorba informačních systémů

Identifikátor materiálu: ICT-3-03

Datová úložiště v MetaCentru a okolí. David Antoš

GIS Geografické informační systémy

UŽIVATELSKÉ ŠKOLENÍ LOTUS NOTES

Připojení k internetu pro domácnosti

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Návrh softwarových systémů - mobilita. Jiří Šebek (B6B36NSS)

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

Formy komunikace s knihovnami

Projekt JetConf REST API pro vzdálenou správu

IT 3. Projekt centrálního zálohovacího systému v ČSOB Pojišťovně. Michal Mikulík. špička v každém směru

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

Microsoft Windows Server System


Programování II. Třídy a objekty (objektová orientovanost) 2018/19

Replikace. Pro a proti replikaci. Vztah ke škálovatelnosti (1)

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009

Integrace datových služeb vědecko-výukové skupiny

DATOVÁ ARCHIVACE. Principy datové archivace a její výhody při migraci na SAP HANA. Štěpán Bouda Business Consultant

MXI řešení nabízí tyto výhody

Copyright 2012 EMC Corporation. All rights reserved.

Zabezpečené vzdálené přístupy k aplikacím případová studie. Ing. Martin Pavlica Corpus Solutions a.s. divize Security Expert

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování.

Vyšší odborná škola a Střední průmyslová škola, Šumperk, Gen. Krátkého 1

LINUX - INSTALACE & KONFIGURACE

Publikování map na webu - WMS

DNS, DHCP DNS, Richard Biječek

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

Matematika v programovacích

Data Protection Delivery Center, s. r. o. JEDNODUCHOST, SPOLEHLIVOST a VÝKONNOST. DPDC Protection. zálohování dat

STRUČNÝ NÁVOD K POUŽITÍ

Optimalizaci aplikací. Ing. Martin Pavlica

Dominik Vymětal. Informační technologie pro praxi 2009, Ostrava

5. Směrování v počítačových sítích a směrovací protokoly

Software pro vzájemné sdílení polohy

TSM for Virtual Environments Data Protection for VMware v6.3. Ondřej Bláha CEE+R Tivoli Storage Team Leader. TSM architektura IBM Corporation

EXTRAKT z české technické normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě

GOOGLE APPS FOR WORK. TCL DigiTrade

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP.

Servisně orientovaná architektura Základ budování NGII

Konzistentnost. Přednášky z distribuovaných systémů

Wonderware Historian 10.0

NSS - Cache 5. LECTURE MARTIN TOMASEK

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

6 Objektově-orientovaný vývoj programového vybavení

Enterprise Mobility Management

Tisková řešení. EIP přidaná hodnota, kterou přidáte Vy sami. Září Aleš Povolný, Xerox CZ

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Úvod 9

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Architektury informačních systémů

Základy datových vazeb Silverlightu. Funkce Silverlightu 2. Podpora jazyků a technologie.net Framework

Architektury informačních systémů

Dual-stack jako řešení přechodu?

Triky s OpenSSH. 4. listopadu Uvedené dílo podléhá licenci Creative Commons Uved te autora 3.0 Česko.

Institut teoretické informatiky (ITI) na FI MU

Sdílení a poskytování dat KN. Jiří Poláček

Microsoft Windows Server System

Část IV - Bezpečnost 21. Kapitola 19 Bezpečnostní model ASP.NET 23

1. DATOVÉ SCHRÁNKY OBECNÝ PŘÍSTUP K DATOVÉ SCHRÁNCE DATOVÉ ZPRÁVY... 3

Wonderware Historian. Příklady vícevrstvých architektur. Jiří Nikl, Tomáš Mandys Pantek (CS) s.r.o.

Administrační rozhraní Drupalu

Transkript:

MASSIV Middleware pro tvorbu online her

Obsah prezentace Úvod Prostředky poskytované Massivem Využití jádra Massivu v Demu Zhodnocení projektu Prezentace Dema

Úvod Část 1.

Tým projektu Massiv Zahájení projektu: říjen 2001 Vedoucí projektu: Ing. Petr Tůma, Dr. Řešitelé: Štěpán Vondrák - stoupik@users.sourceforge.net Marek Vondrák - markoid@users.sourceforge.net Petr Tovaryš - boovie@users.sourceforge.net Ondřej Pečta - octa@users.sourceforge.net Marek Švantner - marekus@users.sourceforge.net Martin Havlišta - hafik@users.sourceforge.net

Cíl projektu Systém pro tvorbu online multiplayer her Online hry Běh 24 hodin denně Perzistence Interaktivnost Mnoho hráčů

Základní charakteristiky Massivu Distribuovanost Svět může být simulován více servery Objektovost Svět se sestává z objektů, které mohou mezi servery volně migrovat Statická data Správa a distribuce dat, která se příliš často nemění

Komu je Massiv určen Middleware pro nekomerční sféru Nezávislí vývojáři Open Source Přenositelnost Win32, Linux Nelze předpokládat nasazení serverů na jediné lokální síti

Součá části projektu Massiv Jádro Objektově orientovaný distribuovaný systém Zdrojový kód knihovny Nástroje pro překlad Demo Jednoduchá ukázková online hra Demonstrace použití prostředků jádra Nástroje pro konfiguraci a správu Dema

Prostředky poskytované Massivem Část 2.

Distribuovanost Servery rozptýleny libovolně po síti Potenciálně velké latence Nepředpokládá se statické rozdělení herního světa, které by minimalizovalo komunikaci mezi servery Automatická a transparentní distribuce objektů Bez nutnosti ruční administrace Tři druhy uzlů Simulační servery, klienti, datové servery

Nasazení Massivu

Bezpečnost Šifrování dat mezi každými dvěma uzly Autentizace pomocí RSA klíčů Symetrické šifrování při přenosu dat Omezená práva klientských uzlů Klienti nemohou přímo měnit stav simulace, pouze zasílat požadavky speciálním objektům

Objektový model Managed objects Objekty automaticky spravované systémem Příslušné třídy se píší v C++ Musí se dodržovat zvláštní pravidla Speciální datové typy Popis tříd v IDL (Interface Definition Language) Serializace, introspekce, RPC Povolen přímý přístup na lokální objekty Lokální garbage collector

Migrace Každý objekt vlastněn právě jedním uzlem Migrace objektů Základní forma komunikace Adresáti migrace jsou objekty Objekt = zpráva Základní prostředek běhu simulace Běh Massivu řízen událostmi Doručení migrace = událost

Replikace Použití: Přenos dat nutných pro prezentaci světa na klienty Optimalizace komunikace mezi servery Objekt může být replikován na libovolný počet uzlů Kopie (částí) objektů určené výhradně pro čtení Automaticky udržované v aktuálním stavu

Migrační a replikační skupiny Systém ke skupinám přistupuje jako k celku Objekty v migrační skupině jsou vzájemně lokální Základní prostředek pro zajištění efektivity v distribuovaném prostředí s velkými latencemi Příslušnost do skupiny určována dynamicky Příklady skupin: Dynamické datové struktury (spojový seznam) Postava hráče s celým inventářem

Vzdálené volání metod Implementace pomocí migrací Asynchronní RPC Doručení lze načasovat na konkretní simulační čas Možnost získání výsledků volání Synchronní RPC Neblokuje doručování ostatních událostí

Další funkcionalita jádra Archivace konzistentního stavu světa Nenarušuje plynulost běhu simulace Stahování dat na pozadí Data se mohou měnit za běhu simulace Hierarchické uspořádání dat Použití: konfigurační soubory, textury, modely Vyvažování zátěže serverů

Využití jádra Massivu v Demu Část 3.

Demo Ukázková 3D aplikace Využití všech prostředků poskytovaných jádrem Ukázky řešení základních situací a problémů online her pomocí prostředků Massivu spíše než základ pro reálné hry

3D Mapa Simulovaný svět tvořen mapou, po které se pohybují hráči Mapa rozdělena na sektory Každý sektor může být na jiném serveru Sektory nejsou data objekty, ale managed objekty Modifikace terénu v reálném čase (kopce, údolí) Změny prezentovány klientům pomocí replikace

Sektor (1) Výšková mapa (kopce, údolí) Rozdělena na 8x8 čtvercových polí Každé pole má vlastní materiál (tráva, skála,...) Obsahuje entity Pohyblivé: postavy hráčů, ovce Nepohyblivé dekorace: stromy, tráva, budovy

Sektor (2) Sektor a všechny entity, které obsahuje, tvoří jedinou migrační skupinu Všechny operace v rámci sektoru vždy lokálně a rychle Sektor může manipulovat přímo s entitami Přesun sektoru na jiný server přesune i všechny jeho entity

Pohyb entit Uvnitř sektoru jako u nedistribuované aplikace Mezi sektory Odpojení entity z aktuálního sektoru Rozdělení migračních skupin Migrace k novému sektoru Napojení na nový sektor Spojení migračních skupin

Replikace Každý objekt rozdělen na dvě části Veřejná část replikující se na klienta Obsahuje data nutná pro prezentaci Privatní část Obsahuje vše pro vlastní logiku hry Rozdělení umožňuje Přenášet jen minimum potřebných dat Zvyšuje bezpečnost Klientské aplikace nevidí strukturu serverových objektů

Sektory a entity Sector ClientSector Entity Entity ClientEntity ClientEntity Migrační skupina Replikační skupina pro klienty

Zhodnocení projektu Část 4.

Výhody a nevýhody objektového Klady modelu Použití C++ vysoká efektivita Obecnost objektového modelu Použítí nemusí být omezeno pouze na online hry Zápory Z důvodu velkých latencí mezi servery nejsou k dispozici aktuální dupliky objektů při pádu serveru je nutno provést restart ze zálohy

Co šlo dobře Abstraktní model doručování zpráv Není rozdíl mezi zprávou a objektem Jednoduchá implementace RPC Plné využití C++ a STL Mnoho vlastností navíc, které nebyly v plánu Synchronní RPC a vyjímky Garbage collector

Co šlo špatně Nepřesný návrh Mnoho změn až v průběhu vývoje Ladění Více serverů a klientů znesnadňuje využití standardních debugovacích technik Mnoho vlastností navíc, které nebyly v plánu

Prezentace Dema Část 5.

Prezentace Dema Data download Predikce pohybu Editor Konzole Chat

Data download Všechna statická data (textury, modely) implementována jako datové objekty Umožňuje spustit klienta s minimálními daty Přenos dat až když je potřeba (rychlost stahování volitelná) Pokud model není k dispozici, je použit náhradní (zástupný) model

Editor Za běhu simulace umožňuje Editovat výškové mapy (modelování krajiny) Měnit druhy povrchu (materiály) Přidávat, mazat a přesouvat entity Měnit vlastnosti objektů (změna modelů dekorací) Editor přístupný pouze pro privilegované klienty (administrátoři)

Predikce pohybu Data přenášena ze serveru na klienta jen několikrát za sekundu Pro plynulou prezentaci klient provádí predikci pohybu

Replikace entit Veřejná část: ClientEntity Pozice na mapě Typ (postavy hráčů, ovce, dekorace,...) Model tags Určují model, který se použije na prezentaci entity Privátní část: Entity Napojení na aktuální sektor Data pro pohyb entity po mapě

Replikace sektoru Veřejná část: ClientSector Výšková mapa a materiály Explicitní seznam entit není potřeba Entity se replikují automaticky, neboť jsou ve stejné replikační skupině jako ClientSector Privátní část: Sector Seznam entit Na klienty se replikuje pouze část mapy V definovaných intervalech požadavek na replikaci sektorů v blízkosti hráče Při odpojení klienta zrušení všech požadavků