Distribuição digital de conteúdo


Caso você não tenha se escondido embaixo de uma pedra nos últimos 10 anos, deve ter percebido a importância que a distribuição digital de conteúdo tem conquistado na indústria de jogos. Mas, sabemos quais os impactos positivos e negativos disso?

Em minha infância, durante a “era” Master System, Mega Drive e Super Nintendo, não havia outro jeito: se você queria jogar um jogo, precisava comprá-lo ou locá-lo. Naquela época já havia até mesmo a temida “pirataria”, mas era bem menos popular do lado do consumidor final, já que se tratava da venda de cartuchos não-originais dos jogos. Com a popularização da Internet e dos emuladores, entretanto, quase todos os jogos daqueles consoles (e de tantos outros) tornaram-se disponíveis pela Internet. Bem, podemos dizer que este foi o “lado ruim” da distribuição digital de conteúdo, que facilitou a distribuição dos jogos e conteúdos relacionados por canais não oficiais, prejudicando a lucratividade da indústria dos jogos.

Por outro lado, a distribuição digital de conteúdo reduziu custos (ao eliminar intermediários na distribuição), facilitou acesso aos jogos (jogos podem ser adquiridos em qualquer lugar do mundo tão logo são liberados) e até mesmo permitiu mais facilmente o reúso de títulos antigos. Durante minha infância, os cartuchos mais baratos de SNES custavam cerca de R$ 30,00 (considerando-se a inflação, o mesmo jogo custaria hoje uns R$ 60,00!), mas hoje, alguns dos mais incríveis títulos daquele console encontram-se disponíveis para compra digital por menos de R$ 15,00. Com isso, a indústria de jogos expande um pouco mais seus lucros, o que aumenta as chances de sucesso de pequenas software houses, e ainda promove um pouco da cultura dos títulos antigos à nova geração.

A distribuição digital também trouxe outros inconvenientes. Quem não lembra de jogos da série Tekken com personagens destraváveis na medida em que você atingia certas metas ou completava o jogo um número de vezes? Pois é, hoje muitos jogos da PSN possuem personagens que são disponíveis somente como DLC, isto é, você precisa comprar à parte. Enfim, você compra o jogo e deveria adquirir tudo o que há nele, mas descobre que metade do elenco de personagens jogáveis só estará disponível caso compre os mesmos. Para certos casos, eu até concordo com a venda de conteúdo em formato DLC, mas há certos casos em que isso pode prejudicar a experiência de jogo daquele que não pode comprar todo aquele “conteúdo extra”.

E se observarmos os MMOG (massive multiplayer online games), aí veremos um modelo de negócio que tem dado muito certo apoiado na distribuição digital: o jogo em si e o acesso ao servidor são gratuitos (free-to-play), entretanto há certos itens do jogo que você somente pode adquirir comprando. A não aquisição do item não prejudica sua experiência de jogo, mas a aquisição pode torná-la ainda mais rica por oferecer certas funcionalidades ou benefícios.

A verdade é que não há como voltar atrás quanto à distribuição digital de conteúdo. Basta observar que as grandes first parties (detentoras de patentes dos consoles) Microsoft, Sony e Nintendo concentram cada vez mais esforços em suas “redes sociais para jogadores” e na oferta de conteúdo para os mesmos. E para você, meu amigo, qual a sua opinião a respeito da distribuição digital de conteúdo na indústria dos jogos?

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Powered by user: A importância da geração de conteúdo por usuário

Podemos dizer que a indústria dos jogos também foi afetada pelo conceito de web 2.0, isto é, um ambiente mais colaborativo. Se no passado tínhamos muitos jogos com geração de conteúdo procedural, a palavra de ordem hoje é geração de conteúdo por usuário.

A geração de conteúdo procedural

A geração de conteúdo procedural foi uma ideia genial: antes dela, se você quisesse um jogo com cinquenta cenários diferentes, teria que criar manualmente os cinquenta cenários diferentes – e tudo isso deveria ser criado pela equipe de desenvolvimento do jogo.

Imagine então o que aconteceria caso a equipe desejasse criar um jogo com inúmeras possibilidades diferentes? 200 cenários, por exemplo, o que aconteceria? Eles teriam 4x mais trabalho não?

Geração de conteúdo procedural é o processo de geração de conteúdo (cenários, gráficos, músicas, efeitos sonoros, diálogos, etc.) de forma automatizada a partir de certas regras, definidas em procedimentos (procedures).

Desta forma, se eu quiser desenvolver um jogo de estratégia onde possamos ter inúmeras áreas para batalhas, posso definir um procedimento que calcula qual deveria ser o layout do cenário a partir de certos parâmetros e, dadas as regras sobre como o relevo deveria se desenvolver, posso ter em questão de segundos (ou mesmo em milésimos de segundo) um mapa totalmente novo.

A ideia é genial, o problema é a dificuldade para validar tais objetos gerados proceduralmente: como garantir que, para um parâmetro qualquer, o cenário seja realmente jogável?

Outro problema é a repetitividade: como são gerados sem seguir determinados objetivos de game design, é bem provável que tais cenários tornem-se, rapidamente, cansativos, “iguais demais”.

A geração de conteúdo por usuário

Geração de conteúdo por usuário não é uma ideia realmente nova: trata-se tão somente de dar ao jogador ferramentas suficientes para que ele mesmo possa criar novos cenários, novos gráficos ou até mesmo missões completamente novas, com novos objetivos totalmente distintos!

Tudo começou com jogos que ofereciam ferramentas para edição de mapas e, hoje, já encontramos jogos que oferecem sistemas de scripting para que o jogador possa “programar” sua própria modificação do jogo, ou MOD, como se tem convencionado chamar.

Unindo a geração de conteúdo procedural e por usuário, temos então um arsenal completamente novo – o “jogo ganha vida”, passando a crescer de forma totalmente independente da equipe de desenvolvimento do jogo.

Podemos citar, por exemplo, Warcraft 3, um jogo para o qual ainda hoje se desenvolvem novos mapas, sendo o mapa de DoTA um dos mais famosos – tão inovador que originou vários outros jogos do mesmo estilo!

Em meio a tudo isso, temos uma pergunta…

Qual o novo papel do Game Designer?

Se o próprio jogador é capaz de criar novos mapas, novos “jogos” a partir de tais ferramentas, qual deve ser o papel do Game Designer nesse novo cenário?

O Game Designer ainda apresenta a tarefa de Level Design, entretanto passa a assumir também um papel muito mais importante: definir ferramentas que sejam realmente usáveis pelos jogadores e capazes de criar uma experiência totalmente nova, até mesmo diferente daquela esperada pela própria equipe de desenvolvimento – como ocorrera com certas modificações, como Counter Strike e o DoTA, como falamos anteriormente.

Diferente do que se pode imaginar, dar poder ao jogador não reduziu o poder do Game Designer, muito pelo contrário, acrescentou novos desafios que precisam ser encarados a fim de levar a indústria dos jogos a um novo nível, onde a figura do jogador passa a mesclar-se com a figura do desenvolvedor, do distribuidor, etc.

Enfim, estamos dando mais poder a quem o deseja – e isso só tem trazido benefícios a todos. :-)

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

A síndrome do jogo favorito tem cura?

Em qualquer comunidade de estudantes e desenvolvedores de jogos, é incrível o número de pessoas que desejam criar um MMOG (massive multiplayer Online Game) como sendo seu primeiro jogo. Parece um ímã, uma atração inevitável: a pessoa é iniciante, portanto tem que escolher logo o que há de mais complexo!

Na verdade, isso é bastante natural, tendo-se em vista o fato de que MMOG é o tipo de jogo que agrada um grande número de pessoas hoje. Antes da popularização dos MMOGs, eram os FPS (first person shooters) os jogos considerados de maior sucesso, tanto dentre as escolhas dos iniciantes, quanto dentre os jogadores, seguidos de RTS (real time strategy) e tantas outras siglas, formando uma grande sopa de letrinhas.

A escolha por tais gêneros é movida pelos seguintes argumentos:

  • Trata-se do gênero favorito da pessoa como jogadora e todos sempre ouvem que trabalhar naquilo que se gosta é uma das melhores formas de ser realmente produtivo;
  • Não se sabe ainda a real complexidade que há em cada gênero ainda, então se torna difícil saber o quão complexo será o desenvolvimento;
  • Há também uma certa superestimação acerca de nossas capacidades: em nossos primeiros passos, estamos tão certos de que somos capazes de qualquer coisa, que para nós poderíamos construir o Cristo Redentor usando somente um gigantesco bloco de pedra e uma lixa de unhas!

Entretanto, vale salientar que “grandes fracassos levam a grandes frustrações, mas pequenos sucessos trazem uma grande motivação”. Em outras palavras: é preferível começar-se por um projeto muito mais simples e ir gradualmente avançando a começar por um MMOG, tropeçar e não conseguir levantar-se mais.

Lembro-me de ter feito, em meus primeiros passos, vários demos de jogos diferentes: um “pacman” sem fantasmas a perseguir o jogador, um mini-jogo de corrida, alguns space invaders, etc.

Posteriormente, tudo evoluiu, defini mais claramente a plataforma em que desenvolvo até hoje (a plataforma Flash) e comecei a criar jogos mais sofisticados (que agora sim passei a chamar de jogos!), como jogos de nave no estilo R-Type, jogos de corrida com visão top down, jogos de cartas, etc.

Bem, aonde estou hoje? Meus últimos projetos foram vários tipos de jogos de tabuleiro, jogos multiplayer como Buraco, Damas, Botão e Texas Hold’em Poker e o meu último projeto já se encaixa melhor na definição de MMOG, uma vez que se trata de um mundo persistente onde jovens podem construir seu avatar e interagir com outros usuários, seja por meio de jogos, seja por meio de atividades sociais.

Quanto tempo levou para ir “de uma ponta a outra”? Cerca de 12 anos, num processo bastante gradual que, apesar de aparentemente lento, para mim foi mais do que satisfatório – motivo pelo qual sempre recomendo fazer o mesmo, “devagar e sempre”.

E se você deseja fazer a mesma coisa, há algumas poucas coisas que podem ser feitas para acelerar um pouco o processo de aprendizado:

  • Comece pelo mais simples e aumente a dificuldade aos poucos! Você descobrirá que aquele snake game que você achava tão bobo enquanto jogador não é tão fácil assim de criar, no fim das contas, e aprenderá muito com isso;
  • Um bom livro vale mais que 1000 artigos de uma página ou duas! Se você puder adquirir um livro que guia passo a passo como desenvolver um determinado tipo de jogo que esteja tentando fazer agora, esta pode ser uma excelente ideia, pois você aprenderá muito mais por meio da leitura de um livro, que já está organizado para seu aprendizado, do que procurando artigos dispersos na Internet a fim de montar o conhecimento como se fosse um quebra-cabeças;
  • Não baixe livros, compre livros! Tenho percebido que quanto mais livros baixamos, menos lemos! Em contrapartida, um livro comprado em algum momento será lido, tendo em vista o fato de que gastamos dinheiro no mesmo e não queremos “perder aquele dinheiro”, além disso, a leitura de um livro impresso é muito melhor do que a leitura de um livro em um computador;
  • Participação em cursos também pode ser interessante! Cursos possuem uma atuação até mesmo mais direta que o livro, uma vez que passamos a ter um instrutor a nos orientar, a acompanhar os nossos passos;
  • Termine tudo o que você começa! Se você começou a fazer uma clone do Mario e começou a ter muitas dificuldades, continue, desistir somente não é a melhor ideia. Jogos não terminados não contam a seu favor!

A ideia é essa, amigo leitor, e lembre-se: fuja da síndrome do jogo favorito. Apesar de parecer legal em uma primeira instância, você perceberá que algo bem mais gradual o levará realmente a seu objetivo. Pular etapas raramente vale a pena…

Hmmmm… E você, amigo leitor, está com a síndrome do jogo favorito? Deixe-me examiná-lo: abra a boca e diga “ah!”. :-)

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Material do curso de Métodos e Técnicas de Pesquisa

Estou agora disponibilizando nesta página o material gerado e apresentado pelos alunos do mestrado em Ciência da Computação para a disciplina Métodos e Técnicas de Pesquisa, ministrada pelo prof. Dr. Henrique Nou Schneider.

Seguem abaixo as apresentações trabalhadas como aulas expositivas (ou baixe todas as apresentações de uma só vez clicando aqui):


Tema da aulaFormato PPT/PPTXFormato PDF
10 – Pesquisa Quantitativa e QualitativaDownloadDownload
11 – Modalidades de PesquisaDownloadDownload
12 – Tipos de Pesquisa CientíficaDownload
13 – Técnicas de Pesquisa – Documentação e EntrevistaDownload
14 – Técnicas de Pesquisa – História de Vida, Observação e QuestionárioDownload
15 – Aspectos Técnicos da Redação – parte 1DownloadDownload
16 – Aspectos Técnicos da Redação – parte 2 Download

E abaixo, os position papers escritos pelos alunos sobre o livro Filosofia da Ciência e da Tecnologia, de Regis de Morais (ou baixe todas os position papers de uma só vez clicando aqui):


Nome do aluno
Christiano Santos
Janisson Souza
Saulo Galilleo
Fernanda Passos
Felipe Vieira
Luiz Marcus Santos
Rafael Jacaúna
Rafael Jacaúna
Jovan Júnior
Edvan Sousa
Marcos Pereira
Fernando Teles
Leonardo Bezerra
Gabriel Araújo
Roberto Pizzi

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Material do curso de Programação Declarativa

Hoje apresento-lhes o material de suporte que utilizei na disciplina de Programação Declarativa. Ministrei-a no último semestre de aulas na Universidade Federal de Sergipe, mais especificamente em 2011/2.

Nessa disciplina, abordamos tanto o paradigma da programação funcional, quanto o paradigma da programação lógica, e devo dizer que foi um verdadeiro desafio para mim, não somente porque já não estudava Haskell (programação funcional) há mais de cinco anos, como também porque tudo o que eu sabia de Prolog resumia-se a uma ou duas aulas que tive durante a disciplina de Inteligência Artificial, ou seja, um desafio e tanto para elaborar todo o conteúdo enquanto aprendendo, e tudo isso durante um período letivo que já havia começado atrasado!

Durante a mesma, elaborei todo o material em apresentações para Microsoft Powerpoint (formato PPT), bem como escrevi os códigos-fonte dos exemplos em arquivos separados.

Bem, no fim das contas, acredito que o curso foi muito bem aplicado e muitos aprenderam este paradigma tão diferente da programação imperativa, nossa “velha amiga”.

E aqui está a apresentação composta por todos os slides usados em aula (um total de 305 slides :) ) em formato PPT mais os arquivos com códigos-fonte:

Material do curso de Programação Declarativa

Abaixo encontra-se a estrutura das aulas (em outra oportunidade espero publicar aqui artigos com o conteúdo textual de cada uma dessas aulas, mas acho que vai demorar bastante até que eu tenha tempo para fazer isso!):

  • Aula 01 – Paradigmas da programação
    • Programação imperativa
      • Programação estruturada
      • Programação orientada a objetos
      • Programação concorrente
    • Programação declarativa
      • Programação funcional
      • Programação lógica
      • Programação restritiva
    • Linguagens de programação multiparadigma
  • Aula 02 – Introdução à programação funcional
    • O que é uma função?
    • Exemplos de funções
    • Tipos de dados
    • A linguagem Haskell
    • Hugs 98
    • WinHugs
    • Exemplo de programa
    • Exercícios
  • Aula 03 – Tipos básicos e definições
    • Booleanos / lógicos
    • Inteiros
    • Caracteres
    • Fracionários
    • Indentação do código
    • Sobrecarga
    • Identificadores
    • Palavras reservadas
    • Exercícios
  • Aula 04 – Projetando e escrevendo programas
    • Eu sei exatamente o que preciso fazer?
    • Quais tipos de dados são necessários?
    • Que informações já possuo?
    • Posso dividir o problema em partes menores?
    • Posso usar recursão para resolver meu problema?
    • Exercícios
  • Aula 05 – Tuplas, listas e strings
    • Tuplas
    • Listas
    • Strings
    • Declaração de tipos
    • Funções genéricas
    • Exercícios
  • Aula 06 – Definições locais
    • Definições locais
    • Cláusula where
    • Expressão let
    • Escopo
  • Aula 07 – Funções sobre listas
    • Definições por casamento de padrões
    • A construção case
    • Recursão primitiva sobre listas
    • Exercícios
  • Aula 08 – Padrões de computação e funções de alta ordem
    • Padrões de computação sobre listas
    • Mapeamento (mapping)
      • A função map
    • Filtragem (filtering)
      • A função filter
    • Redução (folding)
      • A função foldr1
      • A função foldr
    • Funções de alta ordem
  • Aula 09 – Funções como valores
    • Definição a nível de função
    • Composição de funções
    • Cuidados com as composições
    • Expressões definindo funções
    • Notação Lambda
    • Aplicação parcial
    • Seção de operador
    • Currying e Uncurrying
    • Exercícios
  • Aula 10 – Polimorfismo e classes de tipos
    • Polimorfismo paramétrico e sobrecarga
    • Função de ordenação – caso 1
    • Classe de tipos
    • Função de ordenação – caso 2
    • Definição de uma classe e de uma instância
    • Exercícios
  • Aula 11 – Tipos algébricos
    • Por que tipos algébricos?
    • Introduzindo tipos algébricos
    • Tipos enumerados
    • Tipos produtos
    • Tipos alternativos
    • Definição geral de um tipo algébrico
    • Derivando instâncias de classes
    • Tipos algébricos recursivos
    • Construtores infix
    • Tipos algébricos polimórficos
  • Aula 12 – Tipos abstratos de dados
    • Por que tipos abstratos de dados?
    • Exemplo de um TAD
    • Introduzindo newtype
    • Instanciando classes
    • Exercícios
  • Aula 13 – Avaliação preguiçosa
    • Definição
    • Exemplos
    • Pontos-chave da avaliação preguiçosa
    • Cálculo para casamento de padrões
    • Cálculo para guardas
    • Cálculo para definições locais
  • Aula 14 – Introdução à programação lógica
    • O que é programação lógica?
    • Exemplos de inferência
    • Bases da programação lógica
    • Aplicações
    • Vantagens e desvantagens
    • A linguagem Prolog
    • Instruções em Prolog
    • Exemplo de programa e consulta
    • Variáveis em Prolog
    • Formas de declaração de fatos
    • Observações sobre declaração de fatos
    • Formas de consultas
    • Operadores
    • Conjunção
    • Disjunção
    • SWI-Prolog
    • Comandos trace e notrace
    • Exercícios
  • Aula 15 – Recursividade
    • Introdução
    • Operador cut ( ! )
    • Comando fail
    • Operador not
    • Exercícios
  • Aula 16 – Listas
    • Introdução
    • Manipulando listas
    • Predicado member
    • Predicado append
    • Predicado length
    • Exercícios
  • Aula 17 – Aritmética
    • Série de exercícios envolvendo cálculos aritméticos

Apesar de serem enumeradas aqui como sendo 17 aulas, algumas delas requereram mais de um dia de aula e cada dia de aula na verdade são duas horas-aula, totalizando assim as 60 horas-aula da disciplina de Programação Declarativa.

Se você gostou deste artigo, que tal...

Material do Curso de Programação 1

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Usabilidade

Pela definição da International Organization for Standardization (ISO), usabilidade é a extensão na qual um produto pode ser usado por usuários específicos para alcançar objetivos específicos com efetividade, eficiência e satisfação em um contexto de uso específico.

Segundo Dr. Henrique Nou Schneider, a usabilidade está relacionada aos estudos de ergonomia e da IHC, sendo diretamente ligada ao contato do usuário com a interface. Desta forma, é a capacidade do software permitir que o usuário alcance suas metas de interação com o sistema, oferecendo a ele facilidade de aprendizagem em um nível de utilização eficiente e apresentando poucos erros, limitando a necessidade de memorização da informação pelo usuário, elevando assim seu grau de satisfação.
Para Schneider entre os atributos da usabilidade têm-se:

  • Facilidade de Aprendizado: o sistema deve ser fácil de aprender de tal forma que o usuário consiga rapidamente explorá-lo e realizar suas tarefas com ele;
  • Eficiência de uso: o sistema deve ser eficiente a tal ponto de permitir que o usuário, tendo aprendido a interagir com ele, atinja níveis altos de produtividade na realização de suas tarefas;
  • Facilidade de memorização: após certo período sem utilizá-lo, o usuário não freqüente é capaz de retornar ao sistema e realizar a sua tarefa sem a necessidade de reaprender como interagir com ele;
  • Baixa taxa de erros: em um sistema com baixa taxa de erros, o usuário é capaz de realizar tarefas sem maiores transtornos, devendo o sistema recuperar-se de erros automaticamente, caso ocorram;
  • Satisfação subjetiva: o usuário deve considerar agradável a interação com o sistema e sentir-se subjetivamente satisfeito com ele.

A figura abaixo apresenta como se dá a aceitabilidade de um sistema pelo usuário, dividindo-se os valores necessários para atingir esse nível em aceitabilidade social e aceitabilidade prática. Pode-se verificar assim a importância da usabilidade e de seus cinco atributos na aceitabilidade prática de um sistema.


Estrutura hierárquica da aceitabilidade de um sistema

Ergonomia e Usabilidade em Jogos Casuais

A fim de melhor compreendermos a importância da Ergonomia e da Usabilidade em ICH, podemos estudar a aplicação das mesmas em um ramo que estudo bastante, o desenvolvimento de jogos casuais.

Segundo pesquisadores como Braga et al (2006), com os primeiros jogos, surgiram formas de controle com poucas opções de entrada de dados e interfaces gráficas bem simples, o que garantia o aprendizado dos mesmos por meio do método “tentativa-e-erro” de forma bem intuitiva e simples.

Entretanto, de acordo com a evolução histórica dos jogos eletrônicos, percebe-se que a entrada de comandos (joystick, teclado, mouse, etc.) diversificou-se tanto quanto a sua estrutura quanto a sua forma de uso, a fim de atender às necessidades dos diferentes gêneros dos jogos.

Além disso, as interfaces gráficas dos jogos tornaram-se mais sofisticadas e complexas, como forma de melhor prover novas opções e informações ao usuário.

Percebe-se assim que os jogos vêm se tornando cada vez menos ergonômicos e usáveis (BRAGA et al, 2006).

Desta forma, somente um grupo de pessoas, conhecidas como jogadores hardcore, podem tirar o máximo da interação com os jogos uma vez que estão acostumados aos mais diversos tipos de jogos, uma vez que estes ocupam uma boa parte de sua vida.

Entretanto, há alguns tipos de jogos que, ao serem projetados, visam atingir não somente os indivíduos supra citados, mas também os jogadores casuais: pessoas que gostam de jogar por prazer, mas que não o possuem como atividade de lazer primária.

Neste período de intensa disseminação tecnológica, os jogos para esse tipo de jogadores podem ser divididos em quatro grupos de acordo com o meio em que se desenvolve ou finalidade do mesmo: mobile games, jogos para TV digital, webgames e advergames.

Com a massificação do uso do celular, este se tornou uma forma de oferecer ao seu usuário entretenimento em qualquer lugar a qualquer hora em que ele assim deseje. Os mobile games são, portanto, uma forma de atender à demanda crescente por diversão.

Já o desenvolvimento da TV digital vem incentivando pesquisas para compreender-se todas as potencialidades com o advento da mesma. Uma das novas possibilidades é oferecer novos elementos lúdicos com maior interação entre o usuário e o programa do que aquela oferecida por simples filmes ou novelas.

Os webgames nasceram da disseminação da Internet e da exigência dos internautas por novo conteúdo, uso de mídias muito mais interativas e lúdicas por meio da grande Web.

Com a popularização dos jogos eletrônicos, surge uma nova forma de merchandising: o uso de jogos como forma de divulgação de uma marca e/ou produto. Os advergames buscam, através do entretenimento, apresentar ao usuário algum tipo de publicidade.

Observa-se então que, devido a natureza destes jogos, que um jogo casual precisa ser o mais ergonômico e usável possível, seja devido a limitações existentes na entrada de dados e na interface gráfica (caso dos celulares e da TV digital), seja de forma a atrair a atenção do jogador a fim de divulgar a sua propaganda (advergames) e oferecer o máximo de simplicidade em sua jogabilidade. Motivo este que leva os jogos casuais a buscarem utilizar-se de uma entrada de dados muito mais simplificada, interfaces gráficas com ótima visibilidade e uma estrutura interna do jogo que seja facilmente compreendida pelo usuário.

Outro fator importante é a curva de aprendizado de um jogo: quanto melhor ela for, mais usável ele será ao longo do tempo em que for jogado, sendo assim esta uma outra grande preocupação no desenvolvimento dos jogos casuais (BRAGA et al, 2006).

[Conteúdo pertencente ao Material do curso de Interação Humano-Computador]

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Ergonomia – Parte 2

De acordo com a IEA, os domínios de especialização da ergonomia são:

  • Ergonomia física: está relacionada às características da anatomia humana, antropometria, fisiologia e biomecânica em sua relação à atividade física. Os tópicos relevantes incluem o estudo da postura no trabalho, manuseio de materiais, movimentos repetitivos, distúrbios músculos-esqueléticos relacionados ao trabalho, projeto de posto de trabalho, segurança e saúde;
  • Ergonomia cognitiva: refere-se aos processos mentais, tais como percepção, memória, raciocínio e resposta motora conforme afetem as interações entre seres humanos e outros elementos de um sistema. Os tópicos relevantes incluem o estudo da carga mental de trabalho, tomada de decisão, desempenho especializado, interação homem computador, stress e treinamento conforme esses se relacionem a projetos envolvendo seres humanos e sistemas;
  • Ergonomia organizacional: concerne à otimização dos sistemas sócio-técnicos, incluindo suas estruturas organizacionais, políticas e de processos. Os tópicos relevantes incluem comunicações, gerenciamento de recursos de tripulações (CRM – domínio aeronáutico), projeto de trabalho, organização temporal do trabalho, trabalho em grupo, projeto participativo, novos paradigmas do trabalho, trabalho cooperativo, cultura organizacional, organizações em rede, tele-trabalho e gestão da qualidade.

Porém, projetar objetos que melhor se adeqüem ao formato do corpo humano e a corrigir a postura dos usuários são uma das aplicações mais comuns da Ergonomia. Exemplos comuns incluem cadeiras projetadas para evitar que os usuários sentem em posições que tenham um efeito nocivo na coluna vertebral e a escrivaninha ergonômica que oferece uma gaveta ajustável para o teclado, uma tampa principal com altura ajustável e outros elementos que podem ser modificados pelo usuário.

Ergonomia é assim muito mais ampla do que olhar o lado psicológico e anatômico do ser humano, apesar da psicologia dos seres humanos ser, também, um elemento chave nesta ciência.

Esta porção psicológica da ergonomia é usualmente referida como Fatores Humanos ou Engenharia de Fatores Humanos nos Estados Unidos da América, enquanto Ergonomia cognitiva é o termo usado na Europa. O entendimento do projeto em termos de carga de trabalho mental, erro humano, a maneira como seres humanos percebem o ambiente que os cerca e, muito importante, as tarefas que eles executam, são todos analisados pelos ergonomistas.

Segundo Schneider (s.d.), a ergonomia cognitiva, de interfaces e de concepção possui grande importância no desenvolvimento de softwares para melhor se adequarem às necessidades do usuário. Uma vez que se levam em consideração diversos aspectos sobre a capacidade de adaptação do software e o modelo mental construído pelo usuário, faz-se necessário o emprego de uma equipe transdisciplinar.

Schneider (s.d.) assevera que no estudo da capacidade ergonômica de um software, deve-se observar quatro princípios básicos:

  • Visibilidade: Indica que as ações pretendidas correspondem às realizadas. Ou seja, refere-se à escolha das informações que devem ser visíveis ao usuário e organização da mesma, de forma a facilitar a compreensão. Assim, apenas as coisas necessárias têm que estar visíveis. A falta de visibilidade pode levar um software ao fracasso, pois a falta da mesma torna os softwares difíceis de serem operados, causando desinteresse aos usuários;
  • Affordance: Indica que as ações percebidas são na realidade as propriedades reais dos objetos. Ou seja, refere-se à capacidade de o usuário compreender o funcionamento de um componente do sistema pela forma como o mesmo se apresenta, sem necessidade de explicações. Bom affordance faz com que os softwares tenham uma interface mais enxuta, pois as informações relativas às explicações sobre determinados objetos não são necessários, pois eles já são auto-explicativos;
  • Mapeamento: Indica o relacionamento entre as entidades e seus movimentos e resultados. Logo, um objeto é fácil de ser usado quando existe um conjunto visível de ações possíveis e os controles exploram mapeamentos naturais;
  • Feedback: Fornece ao usuário, no dispositivo de saída, informações sobre o estado das ações por ele executadas. Ou seja, a resposta é retornada pelo sistema ao usuário devido a uma ação executada. Assim, a falta de feedback pode confundir o usuário.

Para Borges (s.d.), algumas regras devem ser seguidas para a boa manutenção da ergonomia de um sistema:

  • Esforço Mínimo do Usuário: visa reduzir o número de ações a serem desempenhadas pelo usuário, sendo delegadas tais atividades ao sistema, evitando falhas;
  • Memória Mínima do Usuário: busca uma curva de aprendizado acelerado, de forma que o uso do software possa ser aprendido facilmente e com o mínimo de informações a serem memorizadas;
  • Frustração Mínima: o sistema deve facilitar a execução das tarefas do usuário, removendo possíveis empecilhos e oferecendo a informação necessária para que toda ação seja bem sucedida;
  • Maximizar o uso de padrões e hábitos: busca facilitar o aprendizado, reduzir a quantidade de informações a serem memorizadas e minimizar o esforço do usuário;
  • Máxima tolerância para diferenças humanas: o sistema deve adequar-se aos diferentes perfis de usuários;
  • Máxima tolerância para mudanças ambientais: o sistema deve suportar mudanças do ambiente de hardware/software com um mínimo de esforço do usuário;
  • Notificação imediata de problemas: capacidade do sistema de notificar o usuário sobre problemas atuais ou futuros de forma clara e coerente;
  • Controle máximo de tarefas pelo usuário: sempre que possível, o usuário deve ter total controle sobre a seqüência de execução das tarefas;
  • Apoio máximo às tarefas: o sistema deve ser auto-suficiente quanto à capacidade de oferecer as informações necessárias para a conclusão de uma tarefa.

[Conteúdo pertencente ao Material do curso de Interação Humano-Computador]

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Ergonomia – Parte 1

A Ergonomia é a ciência que se preocupa com a relação homem-trabalho e respectivos problemas relativos à saúde e segurança no trabalho. Ao mesmo tempo, a publicidade de produtos “ergonomicamente corretos” tem invadido o mercado. Assim, impõe-se saber distinguir o “joio do trigo” e, sobretudo, quando e onde é necessária uma ação ergonômica e quem a pode levar a efeito. Há, pois, que desmistificar a ergonomia e dá-la a conhecer, sobretudo, àqueles que são responsáveis pela concepção de sistemas (de trabalho ou utilitários) ou pela organização do trabalho.

Em termos gerais, pode-se dizer que a ergonomia visa a adaptação das tarefas ao homem. Quer se trate de um produto para consumo público ou de um posto de trabalho, a ergonomia oferece vantagens econômicas através da melhoria do bem-estar, da redução de custos e da melhoria da qualidade e produtividade. Assim, a concepção de qualquer produto ou sistema deve integrar critérios ergonômicos desde a fase de projeto, de forma a assegurar a sua eficiência.

Os ergonomistas, ao projetarem equipamentos, produtos, estações de trabalho e sistemas, objetivam maximizar o conforto, a satisfação e o bem-estar, garantir a segurança e minimizar os custos humanos do trabalho e a carga física, psíquica e cognitiva do operador.

Resulta, conseqüentemente, um segundo objetivo, que é permitir ao homem utilizar da melhor maneira e por mais tempo possível suas experiências, habilidades e potencialidades.

A ergonomia visa adaptar o trabalho ao homem, com relação ao ambiente físico em que este se desenvolve. Seu foco é, portanto, antropocêntrico. Sua ação pode ter igualmente efeitos econômicos – aumentando a qualidade da produção, o rendimento do trabalho, a produtividade do sistema – mas uma ação que vise apenas objetivos econômicos é uma ação de organização e não uma ação ergonômica.

Assim, cumpre-se fazer esta distinção:

  • Por um lado, porque os conhecimentos e técnicas colocados em prática na empresa não permitem, por si só, distinguir aquilo que pertence à Ergonomia, daquilo que faz parte da organização do trabalho e mesmo da engenharia;
  • Por outro lado, para recordar que a vocação da Ergonomia é de estar, primacialmente, a serviço do homem no trabalho.

Em termo etimológico, a palavra ergonomia deriva do grego ergon (trabalho) e nomos (normas, regras, leis).

E, como definição oficial, pode-se apresentar a da Associação Internacional de Ergonomia (IEA) adotada em agosto de 2000:

“A Ergonomia (ou Fatores Humanos) é uma disciplina científica relacionada ao entendimento das interações entre os seres humanos e outros elementos ou sistemas, e à aplicação de teorias, princípios, dados e métodos a projetos a fim de otimizar o bem estar humano e o desempenho global do sistema.”

A ergonomia é, assim, definida como uma ciência aplicada, na medida em que o seu objetivo – a atividade humana, quer seja profissional ou utilitária – nunca está desligado do contexto em que se insere nem dos objetivos em vista. Estes, prendem-se geralmente com a eficácia das ações, não perdem de vista a segurança e o conforto dos atores, podendo afirmar-se que este triângulo formaliza os objetivos da ação ergonômica, ou seja, a otimização das interações homem-sistema. Para alcançar este objetivo geral, a Ergonomia preconiza dois tipos de abordagem:

  • Uma ação sobre os sistemas, processos ou produtos, no sentido de torná-los adequados às características do homem e ao seu modo de funcionamento, eliminando todos os fatores de constrangimento, risco ou nocividade;
  • Uma ação sobre o homem através da formação, no sentido de torná-lo apto para a realização das tarefas que lhe são atribuídas e de prepará-lo para as transformações do trabalho decorrentes da evolução
    tecnológica (CASTRO, 2002, p. 43).

Trata-se, assim, de estudos referentes ao conforto, utilização, organização e documentação do software objetivando facilitar e aperfeiçoar o trabalho do usuário junto ao computador.

Desta maneira, os ergonomistas contribuem para o planejamento, projeto e a avaliação de tarefas, postos de trabalho, produtos, ambientes e sistemas de modo a torná-los compatíveis com as necessidades, habilidades e limitações das pessoas.

Portanto, a Ergonomia é uma área orientada para uma abordagem sistêmica de todos os aspectos da atividade humana. Para dar conta da amplitude dessa dimensão e poder intervir nas atividades do trabalho, faz necessário que os ergonomistas adotem uma abordagem holística de todo o campo de ação da área, tanto em seus aspectos físicos e cognitivos, como sociais, organizacionais, ambientais etc. Freqüentemente esses profissionais intervêm em setores particulares da economia ou em domínios de aplicação específicos. Esses últimos caracterizam-se por sua constante mutação, com a criação de novos domínios de aplicação ou do aperfeiçoamento de outros mais antigos.

[Conteúdo pertencente ao Material do curso de Interação Humano-Computador]

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Uma Introdução à Interação Humano-Computador

Definindo Interação Humano-Computador

Segundo Baecker e Buxton (1987), Interação Humano-Computador (IHC) é “o grupo de processos, diálogos e ações através do qual um usuário humano emprega e interage com um computador”.

Para a Association for Computing Machinery (ACM): “Interação Humano-Computador é uma disciplina que se preocupa com o projeto, avaliação e implementação de sistemas de computadores para o uso humano”.

A IHC é uma área multidisciplinar que não está voltada somente para o estudo de computação ou do ser humano, mas que envolve ciência da computação e psicologia, dentre outras, e que está voltada para a aplicação do conhecimento dessa série de áreas para a obtenção de interfaces “amigáveis” possibilitando a comunicação do homem com o objeto de estudo da computação: o computador. Em outras palavras, IHC deve oferecer o meio mais adequado para que o usuário consiga maximizar sua experiência na interação com o computador, apesar de suas limitações e/ou restrições de tecnologia existentes.

Diferenciando interação e interface

Há dois termos que são usados indistintamente, mas que são diferentes: a Interação e a Interface. O campo de atuação da interação em IHC é tudo que ocorre durante a comunicação do homem (a realização de tarefas) e o computador. Já o conceito de interface é o componente (software) que mapeia as ações do usuário quando este solicita certo processamento ao sistema, através de uma aplicação e apresentação dos resultados pelo mesmo. Assim, a interação envolve, além da interface, o ambiente físico onde o trabalho é desenvolvido.

Encontram-se problemas de interface na maioria das aplicações atualmente, apesar de os projetistas investirem horas com a mesma, em virtude da não preocupação de quem as construiu com os fatores humanos: a percepção visual, a psicologia da leitura e o modelo mental do usuário.

Como um usuário recebe informações e executa tarefas

A habilidade do usuário no processo de obtenção de uma informação de um sistema interativo envolve três dos seus sentidos: a visão, a audição e o tato. A maioria das interações humano-computador ocorre através da visão. Os usuários processam e interpretam a informação visual para, a partir dos seus modelos mentais, extrair o conhecimento. Logo uma especificação apropriada de comunicação visual é o  elemento chave de uma interface “amigável”. Mas, ainda hoje muito da informação apresentada aos usuários é feita de forma textual, não se preocupando nem mesmo em facilitar a exibição dessa informação.

A informação é armazenada de duas formas possíveis  na memória humana: ou pela memória de curta duração, que possui, obviamente, capacidade de armazenamento e recordação limitados, ou pela memória de longa duração que é onde reside o conhecimento humano. Dessa forma o projetista de IHC deve se preocupar como as informações e estrutura da interface irão afetar esses tipos de memória. Caso contrário, corre-se o risco de se ter um sistema de difícil utilização por parte do usuário, perdendo em competitividade com outros que atendam a esses requisitos.

Além disso, a interface deve ser especificada de modo que o usuário possa desenvolver heurísticas (procedimentos, regras e estratégias) que tendem a ser específicas do domínio do conhecimento, devendo permanecer consistentes nas diferentes fases de interação, pois a maioria das pessoas não aplicam raciocínio indutivo ou dedutivo quando se deparam com um problema, além de terem de ser baseadas no conhecimento de problemas similares.

Nos tópicos a seguir abordar-se-ão as três preocupações fundamentais de Interação Humano-Computador: a Ergonomia, a usabilidade e a acessibilidade.

[Conteúdo pertencente ao Material do curso de Interação Humano-Computador]

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Material do Curso de Interação Humano-Computador

Olá a todos! Após um longo tempo sem publicações de novos conteúdos didáticos (peço desculpas a todos, mas não estou mais atuando como professor, mas sim como desenvolvedor de jogos em tempo integral :-) ), decidi por organizar vários escritos meus e “montar um curso” de Interação Humano-Computador.

Àqueles que desconhecem, Interação Humano-Computador trata-se de uma disciplina que busca analisar como melhor adequar as ferramentas tecnológicas às necessidades e ergonomia do homem. Sendo assim, busca-se oferecer conforto e melhor produtividade por meio da adequação da máquina ao homem.

Vale salientar que podemos aplicar os princípios de IHC não somente ao hardware, à “parte anatômica” dos equipamentos, mas sim na forma como a pessoa interage com o mesmo a fim de concluir uma tarefa. É assim que podemos estudar Interação Humano-Computador para aplicar a dispositivos eletrônicos, desktop softwares, websites, etc.

Espero desta forma vir a preencher possíveis lacunas ou ao menos tentar trazer um pouco de minha experiência profissional para aqueles que estão interessados em tal assunto.

Os artigos do curso serão elaborados e publicados gradativamente aqui, infelizmente sem data prevista para cada uma delas, já que o estarei fazendo em minhas horas vagas.

Por sorte, tenho material suficiente para a parte inicial, que estarei extraindo da monografia que escrevi em conjunto com meu amigo Frederico Santos do Vale.

Aula 1 – Uma Introdução à Interação Humano-Computador

Aula 2 – Ergonomia – Parte 1

Aula 3 – Ergonomia – Parte 2

Aula 4 – Usabilidade

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS