Protótipo de motor de servidor de jogos online em massa. Autor: Daniel Presser Orientador: Francisco Adell Péricas



Documentos relacionados
PROTÓTIPO DE MOTOR DE SERVIDOR DE JOGOS ONLINE EM MASSA

13º Encontro / Cibercultura REALIDADES ALTERNATIVAS E AS NOVAS SOCIABILIDADES. O UNIVERSO DOS GAMES.

UniFAIMI União das Escolas do Grupo FAIMI de Educação

2 Engenharia de Software

Protótipo de ferramenta para monitoração de computadores utilizando o padrão de gerência WMI da Microsoft e a plataforma de desenvolvimento.

UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE SISTEMAS DE INFORMAÇÃO BACHARELADO

LEAS ONLINE: PROTÓTIPO DE UM JOGO DE MMORPG

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

SISTEMA PARA A ADMINISTRAÇÃO DE CORRETORES DE SEGURO

Implantação do Sistema de Controle de Tempos Nas Agências de Atendimento - TMA

CURSO DESENVOLVEDOR JAVA Edição 2010

DALUA: BIBLIOTECA PARA APLICAÇÕES DISTRIBUÍDAS

Problema: Solução: Vantagens da estruturação em Níveis: Introdução INTRODUÇÃO À ARQUITETURA DE COMPUTADORES. Introdução

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Análise e Projeto de Sistemas. O que é modelagem. O que é modelagem. Tripé de apoio ao desenvolvimento. Notação: UML. Ferramenta: Rational Rose.

Utilização de Sistemas Distribuídos em MMOGs (Massive MultiPlayer Online Games) Mauro A. C. Júnior

Diagrama de Estrutura Composta

Jogos Eletrônicos: mapeando novas perspectivas

Engenharia de Requisitos Estudo de Caso

Sistema de Banco de Currículos para o Simulador de Empresas LÍDER

PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO (PROENG) ASSESSORIA DE DESENVOLVIMENTO ASSESSORIA JURÍDICA

PORTABILIDADE NUMÉRICA UMA SOLUÇÃO ORIENTADA PELA SIMPLICIDADE, QUALIDADE E BAIXO CUSTO

Trabalho de Conclusão de Curso

Introdução a Banco de Dados. Aécio Costa

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

UML Unified Modeling Language. Professor: André Gustavo Bastos Lima

ESTUDO SOBRE AS LINGUAGENS DE PROGRAMAÇÃO HOSPEDEIRAS SUPORTADAS PELA FERRAMENTA HTML. Aluno: Rodrigo Ristow Orientador: Wilson Pedro Carli

Serviços do Cisco Connected Stadium Wi-Fi

Introdução ao RUP Rational Unified Process. por Denize Terra Pimenta Outubro/2004

Guia de utilização da notação BPMN

ANEXO I - TERMO DE REFERÊNCIA NÚCLEO DE EMPREENDIMENTOS EM CIÊNCIA, TECNOLOGIA E ARTES NECTAR.

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

SISTEMA WEBPARA EMISSÃO DE PEDIDOS ON-LINE APLICADO A UMA PAPELARIA. Eduardo Alex Thomsen Orientador: Wilson Pedro Carli

Ementário do Curso Técnico em Informática para Internet

GEOS GERENCIAMENTO DE ORDENS DE SERVIÇO.

Catálogo decursos. metodologiaadvance.com.br MAIS DE 50 OPÇÕES DE CURSOS! VEJA ABAIXO ALGUNS DELES: DESENVOLVIMENTO DE SITES PARA INTERNET

Banco de Dados Heterogêneos. Celso Antonio Colom bo Leandro Giaretta

ADMINISTRAÇÃO E SERVIÇOS DE REDE

Porque estudar Gestão de Projetos?


Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

SIMULADOR DE FUTEBOL EM AMBIENTE WEB

Catálogo de cursos 2016

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

CONSTRUÇÃO DE UM FRAMEWORK PARA O DESENVOLVIMENTO DE APLICAÇÕES WEB

Marcos Vinicios Marques Professor Cidão. Professor Marcelo Neves

Análise e Projeto de Sistemas

Utilizando os Diagramas da UML (Linguagem Unificada de Modelagem) para desenvolver aplicação em JSF

Avaliação de Desempenho de Sistemas

Projeto Disciplinar de Infra-Estrutura de Software ECOFROTA TRIBUNAL THEMIS

Oracle WebLogic Server 11g: Conceitos Básicos de Administração

Unidade II MODELAGEM DE PROCESSOS

Perfil Profissional do Módulo de Especialização Técnica em Java com Websphere e Rational

Projeto Disciplinar de Infra-Estrutura de Software SISCOP TORRE FORTE CONSTRUÇÕES LTDA.

1 Introdução. Componentes Usuários. Provedor de Serviços. Figura 1.1 Ambiente de oferecimento de serviços

3. Fase de Planejamento dos Ciclos de Construção do Software

Projeto Disciplinar de Infra-Estrutura de Software SISFTC COLIBRI FINANCIAMENTOS

Estrutura, Processos e Threads

Aluna: Vanessa de Mello Orientador: Everaldo Artur Grahl

Ambiente Virtual de Avaliações Utilizando Certificados Digitais. Fernando Gevard Acadêmico Paulo Fernando da Silva - Orientador

UFG - Instituto de Informática

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS. 2º TRIMESTRE Patrícia Lucas

Noções de. Microsoft SQL Server. Microsoft SQL Server

TRIBUNAL DE JUSTIÇA DO ESTADO DE MATO GROSSO

NT_D1216.SYS DRIVER DA CDA12/16 PARA WINDOWS NT 4.0

TechProf Documento de Arquitetura

Modelagem de Processos. Prof.: Fernando Ascani

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

SISTEMA DE SERVIÇOS DE INFRA-ESTRUTURA DA UFRGS

SOFTWARE DE INVENTÁRIO DE SOFTWARE DE EQUIPAMENTOS DE REDE UTILIZANDO SESSION MESSAGE BLOCK

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

Curso Superior de Tecnologia em Banco de Dados e Sistemas para Internet Disciplina: Projeto Integrador III Prof.: Fernando Hadad Zaidan

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO

Introdução ao Gerenciamento de Projetos. Prof. Ivan Bottger

SISTEMAS OPERACIONAIS

Mobile Command. Diego Armando Gusava. Orientador: Mauro Marcelo Mattos

Termos de Referência para Serviços especializados de consultoria Individual na área de Especialista em Planejamento Estratégico

Computador Digital Circuitos de um computador (Hardware)

Jogue no ambiente da mina, enfrente os desafios do dia a dia da lavra e conheça as funcionalidades do SmartMine.

Clóvis Diego Schuldt. Orientador: Prof. Wilson Pedro Carli

Overview Virtual TechKnowledge DBA Virtual DBA Virtual DBA Virtual on-demand DBA Virtual DBA Virtual DBA Virtual

UNIVERSIDADE ESTADUAL DA PARAÍBA CENTRO DE CIÊNCIAS E TECNOLOGIA DEPARTAMENTO DE QUÍMICA CURSO DE LICENCIATURA EM QUÍMICA LINDOMÁRIO LIMA ROCHA

Universidade Federal de São Paulo Comissão de Capacitação dos Servidores Técnico-Administrativos em Educação

Sistema Datachk. Plano de Projeto. Versão <1.0> Z u s a m m e n a r b e i t I d e i a s C o l a b o r a t i v a s

Unified Modeling Language. Diagramas de Implementação

Aula 03-04: Modelos de Sistemas Distribuídos

FUNDAÇÃO PARQUE TECNOLÓGICO DE SANTOS

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Apresentar os conceitos básicos da metodologia de desenvolvimento Processo Unificado, utilizando como aporte o Processo Unificado Rational RUP

Diretrizes de Qualidade de Projetos

Documento de Projeto de Sistema

Auditoria de Sistemas de Informação. Everson Santos Araujo

JavaServer Faces. Parte 2

Figura 5 - Workflow para a Fase de Projeto

UNIVERSIDADE REGIONAL DE BLUMENAU CURSO DE SISTEMAS DE INFORMAÇÃO. Natasha Zimmermann. Orientador: Wilson Pedro Carli

METODOLOGIA DE DESENVOLVIMENTO DE SISTEMAS

Análise de Pontos de Função. Por Denize Terra Pimenta

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

Disciplina de Banco de Dados Introdução

Transcrição:

Protótipo de motor de servidor de jogos online em massa Autor: Daniel Presser Orientador: Francisco Adell Péricas

Roteiro da Apresentação Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento do trabalho Conclusão Extensões

Introdução MMOG, Massive Multiplayer Online Games Jogados exclusivamente online, em mundos virtuais persistentes Sociedades virtuais Normalmente no estilo RPG (Role Playing Game) Problemas Crescimento acelerado Pouco tempo de pesquisa Custos elevados para manutenção do ambiente

Objetivos do trabalho Desenvolver um protótipo de motor genérico para servidores de jogos online em massa que sigam estilo RPG Permitir extensão do jogo através de scripts Utilizar arquiteturas e técnicas que visem a otimização do processamento no servidor Arquitetura de camadas Modelo publicador/assinante IOCP Linguagem de Scripts Lua

Jogos online em massa e RPG Jogos online em massa Caracterizados pelo grande número de jogadores num único ambiente virtual persistente MMORPG RPG online em massa Grandes mundos virtuais persistentes Jogadores interpretam papéis através de personagens do mundo virtual Existência de classes para os personagens Evolução dos personagens conforme enredo

Arquitetura de Camadas Visa divisão do servidor em camadas conforme suas responsabilidades Camada de sessão: controle da conexão e persistência dos dados dos jogadores Camada de localização: controle do ambiente do mundo virtual Camada cliente: interface do jogo com o usuário Camada de dados: armazenagem dos dados dos jogadores Camada alternativa: manter a aplicação da camada cliente atualizada

Arquitetura de Camadas Visão geral

Modelo Publicador/Assinante Visa divisão do mapa do mundo virtual em partes menores, para dividir o processamento no servidor Cada parte de mapa publica dois canais Interação: mensagens de interação do personagem com o ambiente e outros personagens (próximos) Ambiente: mensagens de mudanças no ambiente do jogo ao redor do personagem Clientes assinam os canais que os interessam, filtrando o conteúdo que desejam receber

Modelo Publicador/Assinante Visão geral

IOCP Input/Output Completion Port Gerenciamento eficiente de grandes volumes de conexões Através de uma fila, controla os eventos nas conexões Aplicação associa conexões à fila Aplicação aguarda eventos através de threads de trabalho Sistema operacional notifica aplicação sobre eventos nas conexões Aplicação acessa diretamente as conexões com eventos pendentes Exclusivo do Windows (a partir do NT)

Linguagem de Scripts Lua Interpretador e linguagem Implementada utilizando C Simples, leve, rápida e nacional Utilizada por grandes empresas (LucasArts, BioWare, etc) Sintaxe com características de C e Pascal Variáveis e funções definidas em qualquer parte do código Variáveis não tipadas Comunicação através de funções disponibilizadas pela aplicação e registradas no ambiente Lua

Principais requisitos Gerenciar conexões de usuários (RF) Gerenciar o mundo virtual configurável (RF) Disparar eventos conforme ações do usuários ou do ambiente virtual (RF) Permitir criação de scripts para os eventos disparados (RF) Permitir ao usuário locomover-se no mundo virtual e conversar com usuários próximos a ele (RF) Implementado em C++, utilizando banco MySQL e linguagem de scripts Lua (RNF)

Especificação UML (Unified Modeling Language) Diagramas de casos de uso Diagramas de atividades Diagramas de classes

Casos de uso Usuário

Casos de Uso Engenheiro de jogo

Diagrama de Atividades Visão geral da aplicação

Diagrama de classes Classes das camadas do servidor

Implementação Técnicas e ferramentas utilizadas Arquitetura de camadas simplificada em 4 camadas (cliente, sessão, localização e dados) Modelo publicador/assinante Publicadores: camada de localização Assinantes: camada de sessão IOCP Linguagem e interpretador de scripts Lua Visual Studio.Net 2003 e MySQL. Cliente de testes implementado no Borland Delphi 7

Implementação Interface das camadas Localização Sessão

Implementação Interface do cliente para testes e validação

Resultados e discussão De maneira geral, os resultados esperados foram obtidos Técnicas, ferramentas e modelos utilizados apresentaram resultados satisfatórios Extensibilidade comprovada pela definição dos scripts de ataque a outros personagens Intervalos entre mensagens e desempenho geral satisfatórios Não foi possível executar testes em grande escala

Conclusões Protótipo implementado atingiu os objetivos As técnicas e modelos utilizadas mostraram-se viáveis ao desenvolvimento de MMOGs Principais limitações do protótipo: Inimigos são apenas outros jogadores Não há ferramentas para as configurações de mapas e scripts Não há figura do administrador do jogo Gerenciamento de memória e sincronização dos processos não são eficientes

Extensões Criação de inimigos que não sejam outros usuários, como monstros Criação de ferramentas para o gerenciamento do servidor Alteração do esquema de mapas, para suporte de mapas mais complexos Otimização dos diversos processos Criação de versões para outras plataformas Utilizar tecnologias equivalentes ao IOCP

FIM