Composição Visual - Princípios básicos de Design

September 22nd, 2009

Eis umas dicas de composição e design para você empregar em qualquer material que venha a desenvolver, seja ele um cartão de visita, um folder, uma página inicial de um site ou até mesmo uma simples capa de relatório. Com alguns princípios a seguir, veremos como pode ser simples e fácil organizar e deixar nosso material mais atraente.

Princípio 1 - Proximidade

Princípio de ProximidadeSeu principal propósito é organizar os elementos, agrupando os itens que estiverem relacionados. Varie os espaços entre esses grupos para indicar a proximidade ou ligação entre eles. No exemplo, iniciamente temos muitos elementos separados. Evite-os, pois deixam os olhos perdidos, à procura de todas as informações. Aplicando o princípio da Proximidade, conseguimos organizar e facilitar a ordem de leitura, agrupando os elementos relacionados.

Princípio 2 - Alinhamento

Princípio de AlinhamentoSeu propósito é organizar e unificar o material. Cada elemento deveria ter alguma conexão visual com outro, para aumentar a sensação de unidade, mesmo que estejam fisicamente afastados. No exemplo, inicialmente temos dois tipos de alinhamentos, e o texto parece afastar-se da imagem à qual se refere. Aplicando o princípio do Alinhamento, criamos uma ‘linha invisível’ à partir da imagem, relacionando e unificando todos os elementos. Evite aplicar mais de um alinhamento e principalmente, o Centralizado, a menos que você precise criar uma apresentação formal. Ele é uma espécie de ‘porto seguro’: use-o de maneira consciente, e não por que todos o usam.

Princípio 3 - Repetição

Princípio de RepetiçãoSeu propósito é unificar e acrescentar interesse visual. O recurso da Repetição pode ser usado com vários tipos de elementos: cores, tipologias, linhas, formas, pesos; eles fortalecem a identidade, sendo essencial em documentos de várias páginas. No exemplo, colocando o telefone também em negrito como no título (repetição), nosso olhos oscilam entre eles após a leitura, unificando o material. Evite repetir em demasia (tenha parcimônia rs!) para não deixar o material visualmente poluído com elementos excessivos, cansando e confundindo o leitor.

Princípio 4 - Contraste

Princípio de ContrasteSeu propósito é organizar e acrescentar interesse visual. Assim como a Repetição, o Contrataste também pode ser feito com vários tipos de elementos: cores, tipologias, linhas, formas, pesos; ele atrairá o olhar. Mas atenção, evite ter parcimônia, pois para que os constraste surtam efeito, faça-os de maneira forte e marcante - tais elementos devem ser bem diferentes entre si. No exemplo, deixamos os avisos mais chamativos dando-os mais peso. A caixa preta também marca mais o título, e repetindo-a no final, criamos limite e reforçamos esse contraste.

Dicas para Textos

Por fim, algumas dicas referentes ao alinhamento e distribuição de textos:

  • Textos em duas linhas: A segunda linha sempre deve ser maior que a linha anterior;
  • Textos em três ou mais linhas: Deve-se tentar buscar um conjunto equilibrado na quebra de cada linha;
  • Textos em Pé: Devem estar dispostos sempre na ordem ascendente ou descendente. Evite o último exemplo, ele dificulta bastante a leitura, pois o cérebro terá de lidar com diferentes volumes entre as letras (ex. M e I).
  • Utilização de texto na vertical

Espero que essas dicas auxiliem na criação visual de futuros materiais, mais organizados e atraentes. Muito obrigado e até a próxima - Felipe Fernandes Lessa

Referências

Aulas da prof. Márcia Okida – coordenadora do curso de Produção Multimídia da Universidade Santa Cecília e o livro “Design para quem não é Designer - 2ª Edição” – Robin Willians.

Fase de Concepção - AOO

November 24th, 2008

Após uma abordagem geral da análise e projeto orientados a objetos no artigo anterior, hoje vamos entrar em detalhes na fase de concepção do processo unificado (RUP).

A fase de concepção corresponde à primeira etapa do processo unificado, nela devemos gerar alguns artefatos para estudar a viabilidade do sistema. Nessa fase que vamos decidir se o sistema deve ser desenvolvido do zero, se podemos utilizar algo pronto e adaptar ou ainda se devemos desistir do mesmo, esta última acontece, na maioria das vezes, por não se chegar a um acordo entre a empresa desenvolvedora e o cliente com relação a custo ou outros fatores.

Essa fase não deve durar muito tempo, pois geralmente nela não se tem um contrato firmado entre as partes envolvidas.

No processo unificado (RUP) a fase de concepção tem algumas similaridades com a fase de iniciação do PMBoK (Project Management Body of Knowledge), pois ambas estudam o escopo inicial do projeto. O PMBoK possui dois processos na fase de iniciação, a proposta e o termo de abertura. Os artefatos da fase de concepção do RUP, que vamos ver mais adiante, ajudam a definir quais informações irão nesses documentos, por isso essas fases andam em paralelo em uma organização que deseja trabalhar tanto com o RUP, como metodologia de desenvolvimento, quanto o PMBoK para gerência de projetos.

O primeiro artefato da concepção é a descrição geral do projeto, ou sumário executivo. Nesse documento, o analista faz uma breve descrição do sistema, contendo os interesses do cliente, não é necessário descrever detalhadamente o funcionamento dos processos nessa fase, bastam uma ou duas páginas. As entrevistas iniciais com o cliente podem ajudar a elaborar esse documento e a identificar os requisitos do sistema.

Com a descrição geral feita, precisamos identificar os requisitos do sistema, tanto funcionais como não-funcionais. A diferença básica entre esses dois grandes grupos de requisitos é que nos funcionais, definimos O QUE o sistema DEVE fazer e nos não-funcionais, COMO o sistema DEVE fazer.

Alguns artefatos opcionais que podem ser fundamentais, dependendo do sistema, são:

  • Glossário: Definição de termos utilizados para evitar conflitos entre aquilo que o analista quis dizer e o que o cliente realmente entendeu;
  • Análise de riscos: Esse é um artefato muito importante para identificar possíveis riscos que possam acontecer durante o projeto. Devem ser levados em consideração, a possível causa, a probabilidade e o impacto. O PMBoK possui uma seção que trata somente sobre esse assunto, ele divide o gerenciamento dos riscos em seis processos: o planejamento da gestão de riscos, a identificação, a análise quantitativa e qualitativa, o planejamento de resposta aos riscos identificados e o monitoramento e controle;
  • Protótipo e provas: Pode haver a necessidade de elaborar alguns protótipos de telas para esclarecer requisitos estão pendentes. Lembrando que esse procedimento deve ser realizado se tiver tempo disponível e se for realmente necessário.

O levantamento de requisitos nesse momento deve ser focado apenas com os requisitos que compõem os principais processos da empresa. Os requisitos funcionais podem ser classificados em evidentes, aqueles que o usuário interage diretamente, e ocultos, em que não existe o conhecimento explícito do usuário.

Provavelmente os requisitos funcionais terão alguma particularidade que deve ser identificada nos requisitos não-funcionais, que são restrições do sistema. Esses requisitos podem ser classificados por obrigatoriedade, sendo obrigatório ou desejado, e por permanência, sendo permanente ou transitório.

Os requisitos não-funcionais ainda podem ser classificados por atributos:

  • Usabilidade: Consistência na interface, ajudas, estéticas, materiais para treinamento, acessibilidade, fatores humanos, etc;
  • Confiabilidade: Tratamento de falhas, possibilidade de previsão, não erros de programação;
  • Desempenho: Velocidade, eficiência, precisão, tempo de recuperação, tempo de resposta, uso de recurso, etc;
  • Configurabilidade: O que pode ser configurado pelos usuários do sistema;
  • Suportabilidade: Extensibilidade, adaptabilidade, compatibilidade, instalação, regionalização;
  • Interface: Arquitetura da informação;
  • Segurança: Permissões de usuários do sistema;
  • Implementação: Linguagem, banco de dados, componentes, sistemas operacionais, etc;
  • Empacotamento: Forma de entrega do sistema;
  • Físicos: Material, peso, tamanho;
  • Legais: Assessoria jurídica, cumprimento de leis;

Com os principais requisitos identificados, precisamos agora organizá-los. É nesse momento que os casos de uso de alto nível são descobertos, aqui devemos identificá-los atribuindo a eles os atores envolvidos e suas referências com os requisitos.

As referências cruzadas são usadas para garantir a rastreabilidade dos requisitos, tornando muito importante quando nos deparamos com a mudança dos requisitos, uma situação muito comum na maioria dos projetos. Através desse procedimento temos como saber o impacto que aquela mudança vai ocasionar, e criar um plano para tratar essa situação.

A organização dos requisitos também deve ser feita através das funções de conceitos, nesse caso pode ser necessário elaborar um modelo conceitual preliminar, para associar os conceitos.

Outra organização que deve ser feita é a das consultas e relatórios, que, na maioria dos casos, são as mais importantes, mas também as mais simples. Aqui devemos listar as consultas mais complexas e suas referências cruzadas.

É bom lembrar que o processo unificado trabalha com ciclos iterativos, a partir da fase de elaboração, por isso devemos planejar esses ciclos já na fase de concepção. Esse planejamento contém alguns itens importantes como, a estimativa de esforço, que pode ser feita utilizando técnicas de análise por pontos de função (APF) ou análise por casos de uso (UCP).

No planejamento também devemos ter em mente os casos de uso mais importantes, para priorizar seu desenvolvimento no ciclo iterativo. Podemos levar em consideração dois pontos importantes, o grau de complexidade e o grau de importância dos casos de uso.

Craig Larman, o pai da AOO (Análise Orientada a Objetos), criou algumas perguntas para ajudar no escalonamento dos casos de uso, são elas:

  • Representa impacto direto na receita?
  • Processo primário na linha de negócio?
  • Requer suporte à persistência e provoca impacto no projeto de arquitetura?
  • Oferecem rapidamente quantidade significativa nas informações?
  • Funções de alto risco, críticas com relação ao tempo ou complexas?

Conforme as respostas das perguntas, temos como escalonar os casos de uso e priorizar o desenvolvimento.

Além disso, não podemos deixar de analisar os recursos disponíveis para o projeto, por isso é necessário a criação de um cronograma de execução e custos, que deve conter a duração dos ciclos iterativos. É recomendado que nesse momento sejam utilizadas técnicas de gerenciamento de tempo previstas no PMBoK.

Agora você deve estar pensando que são elaborados muitos documentos antes mesmo de começar o desenvolvimento. Com certeza, dependendo do projeto, alguns desses documentos não precisam ser feitos, mas precisamos ter em mente, que isso tudo é feito para garantir a qualidade do projeto, o tempo gasto agora é mais barato do que o tempo gasto na fase de construção do sistema.

Acaba por aqui nossa fase de concepção, em um próximo artigo estarei mostrando as próximas fases do processo unificado. Até a próxima. ;)

Introdução ao Desenvolvimento de Jogos

May 14th, 2008

Quem nunca se perguntou como foi desenvolvido aquele jogo que tanto gostou? ou nunca ficou imaginando como poderia ser divertido se tivesse um jogo com a sua ideia? Se você levantou a mão em alguma dessas perguntas, provavelmente você não é o público alvo desse artigo.

O objetivo desse artigo é guiar aquele que quer criar seus jogos em casa e também quem deseja trabalhar na área.

Mercado Internacional: A indústria internacional de jogos está crescendo muito a cada dia, e desde 2003 ela ja rende mais que a indústria de filmes. A previsão para os próximos 5 anos é que a área cresça 20% ao ano. Só no ano de 2007, foram movimentados 50 bilhões de dolares.

Estamos na sétima geração de videogames, na última geração temos: Sony Playstation 3, Microsoft Xbox 360 e Nintendo Wii em consoles, e: Playstation Portable (PSP), Nintendo DS e Celular para portáteis.

Mercado Nacional: Os impostos de fabricação de hardware no Brasil são os maiores de todo o mundo, chegando a 80% e também de produto industrializado (IPI) chega a 50%. Isso faz com que poucas empresas fabriquem seus consoles no Brasil, obrigando as lojas a importarem os consoles de outro país, atividade que também sofre 30% de imposto de importação (II).

Outro assunto que também é pertinente, é o consumo de produtos alternativos que totalizam 94% do mercado nacional. Podemos dizer que isso é uma consequência, e não a causa da falta de investimento no país.

Ideia de um jogo: Basicamente o jogo nasce de uma ideia, seja ela qual for, e a ideia pode ser:

  • Um conceito original estabelecido por alguem, isso quer dizer que é uma ideia nova e jamais vista;
  • Uma sequência ou remake de algum jogo já existente;
  • Um jogo baseado em uma história já existente, por exemplo: filmes, desenhos e história em quadrinhos;
  • Uma simulação de jogos não eletrônicos, por exemplo: cartas, boliche e tabuleiro.


Áreas de atuação: Para trabalhar com jogos, não necessáriamente temos que ser programadores, aliais, hoje em dia a área mais carece das demais funções. Podemos listar as principais e fundamentais em um jogo comercial:

  • Diretor: Quem tem a visão completa do jogo como um negócio, quem fará a administração dos recursos humanos e financeiros, análise de previsão e resultados obtidos;
  • Produtor: Responsável pela administração do orçamento de produção, publicidade necessária para o jogo ter visibilidade, distribuição das cópias para os locais apropriados e campanha de marketing;
  • Roteirista: Criação do roteiro e história do jogo;
  • Designer: Quem identifica os aspectos, características, jogabilidade, interação com o jogador a ser desenvolvida, tecnologias e recursos que serão utilizados e a criação de Storyboards incluindo fases, mundos, ambientes e personagens baseando-se sempre no roteiro desenvolvido. Essa é a função mais importante em desenvolvimento de jogos;
  • Artista: Responsável por desenhar, modelar, pintar e animar todos os elementos descritos pelo designer;
  • Programador: Desenvolvimento e codificação da engine, codifica todos os elementos para que realizem todas as tarefas descritas pelo designer, utilizam kits de desenvolvimento no caso de consoles e engines/apis no caso de computadores.

Storyboard: É uma criação de desenhos imóveis, palavras e instruções tecnicas que descrevem cada cena do jogo.

Distribuição: Para jogos de console, a fabricante faz uma prévia análise do jogo antes de fabricar as cópias, podendo ser rejeitado e ter que ser sujeito a alterações para ser analisado novamente. Após a aprovação definitiva, a fabricante envia uma grande quantidade de cópias à desenvolvedora para que sejam distribuídas.

Custos: Os custos do desenvolvimento de um jogo são altos, e podem ser dividos em:

  • Licenciamento do console: A desenvolvedora paga para a fabricante do console a utilização de sua plataforma. Esse custo é calculado por cópia vendida;
  • Desenvolvimento: O custo da mão de obra especializada, funcionários ou terceiros que irão trabalhar no desenvovimento do jogo;
  • Publicidade: O jogo precisa ser divulgado, mídias como internet, revista e até televisão podem ser utilizados. Esse custo também é da desenvolvedora;
  • Outras licenças: Algumas licenças de software ou bibliotecas utilizadas cobram por unidade vendida, outras cobram por licença de desenvolvimento. Esse custo terá que ser previamente calculado para não haver nenhuma surpresa no fim do projeto;
  • Operacionais: Custos para manter a equipe trabalhando em algum lugar, funcionários não necessáriamente envolvidos no desenvolvimento do jogo, mas que são necessários para manter a ordem e a estrutura funcionando, transporte de cópias também deverão entrar na conta.

Desenvolvimento nas plataformas atuais: Cada uma plataforma possui seu kit de desenvolvimento proprietário e pago, porém além do computador existem outras alternativas para desenvolver jogos para essas plataformas:

  • Microsoft Xbox 360: Possui seu kit de desenvolvimento profissional, porém com alternativa grátis chamada Microsoft XNA Studio Express, podendo ser desenvolvidos jogos para PC e para Xbox, pode ser baixada no link: http://www.microsoft.com/xna;
  • Sony Playstation 3: A plataforma da Sony é uma das mais fechadas, que possui seu kit de desenvolvimento com custo alto. Porém a ultima novidade é que sairá um concorrente para a ferramenta da Microsoft, XNA chamada Phyre Engine que possibilitará usuários a criarem seus jogos utilizando toda a potência do Playstation 3;
  • Sony Playstation Portable: Também como o Playstation 3, o Portable da Sony também é bem fechado e o desenvolvimento gratuito nessa plataforma é feito de maneira ilegal através de ferramentas criadas por usuários que utilizam falhas do console para rodar esse tipo de aplicativo;
  • Nintendo Wii: A nintendo também possui o seu kit de desenvolvimento profissional, e devido as duas maiores concorrentes estarem brigando pelo desenvolvimento gratuito começaram rumores de que o Wii também terá a sua ferramenta para usuários;
  • Nintendo DS: Assim como o PSP, o console portátil da Nintendo não possui qualquer tipo de ferramenta para usuários desenvolverem jogos ou aplicativos sem utilizar o kit oficial;
  • Computador: A plataforma PC é a mais aberta, e possui uma quantidade muito grande de opções para desenvolvimento não só de jogos amadores como profissionais de baixo ou nenhum custo.
  • Celular: O desenvolvimento de jogos e aplicativos para celular cresceu muito devido a evolução rápida desses dispositivos, hoje também é possivel criar jogos em 3D para celulares. As duas plataformas mais utilizadas é a Symbian e o Java (JME), porém a microsoft anunciou que será disponibilizada na versão 3.0 do XNA a opção de desenvolvimento de jogos para plataforma Windows Mobile.

Ferramentas para desenvolvimento para PC:

Para desenvolver jogos para PC, temos a opção de utilizar diretamente as APIs gráficas (DirectX e OpenGL) porém teremos que re-desenvolver muita coisa, gastando muito tempo. A opção mais viável é utilizar engines prontas e disponíveis para cada parte do Game, essas engines variam de qualidade, linguagem, facilidade, preço e complexidade. Cabe a nós testa-las e encontrar a engine que mais se adeque as necessidades do Game. Segue uma lista de engines para cada parte:

Engines gráficas:

Engines físicas:

  • ODE (http://www.ode.org), engine de física totalmente open e free nativa em C++, simples e fácil de usar;
  • Newton (http://www.newtondynamics.com), engine de física muito completa e fácil de usar nativa em C++, uso profissional pago;
  • Ageia (http://www.ageia.com), engine de física também muito completa e fácil de usar nativa em C++, recentemente comprada pela Nvidia, uso profissional pago.

Engines sonoras:

Após relacionar as engines que iremos utilizar, basta escolher a IDE C++ preferida para iniciar o desenvolvimento:

Ferramentas para desenvolvimento rápido de Games:

Uma alternativa rápida para quem não possui uma equipe ou tempo para desenvolvimento são ferramentas que possuem um pré-formato de game ou funcionalidades. Essas ferramentas reunem várias engines e disponibilizam um framework para o desenvolvimento rápido de um Game. Segue alguns exemplos:

Ferramentas para desenvolvimento para Celular:

Para desenvolver em JME, basta baixar o EclipseIDE (http://www.eclipse.org) junto com o plugin EclipseME (http://www.eclipseme.org) e o Java Wireless Toolkit da Sun (http://java.sun.com/products/sjwtoolkit/). Com esses aplicativos instalados, você irá possuir uma estação completa de desenvolvimeto e emulação de aplicativos e games em JME. A grande maioria dos dispositivos móveis de hoje possuem suporte a JME.

Cursos em São Paulo:

  • Senac: www.senac.br
  • Impacta: www.impacta.com.br
  • Alpha Channel: www.alphachannel.com.br

Graduação em São Paulo:

Considerações finais:

Para quem estiver interessado em desenvolver e publicar seus jogos, participe da comunidade GameDev-BR (http://www.gamedev.com.br). Lembre-se: nada cai do céu, os jogos de hoje são frutos de muito estudo e dedicação. Não desista nas primeiras tentativas, pois normalmente são frustrantes. Continue.

Clique aqui para ver um trecho da minha palestra e clique aqui para assistir a matéria sobre jogos 3D no olhar digital.

Sobre o autor:

Luiz Pestana, 24 anos, é arquiteto de softwares e programador de jogos. Sócio da ZAP Trade (http://www.zaptrade.com.br) idealizou e criou recentemente a divisão ZAP Games (http://www.zapgames.com.br) para jogos corporativos e de entretenimento.