Wednesday, September 28, 2011

Comparação de Engines

Hoje me pediram para fazer uma lista de tecnologias de jogos que alunos tinham que aprender. Dei essa resposta. Concordam?

Unity 3D
Principal engine hoje no mercado. Tomou todo o espaço que antes era da Torque (da garagagames.com que fechou as portas). Tem um modelo de negócio muito interessante pois usa o modelo de receitas normal de licença mas também possui uma App Store. Na App Store é possível comprar módulos para incremetar a engine mas também modelos, levels, textures, sprites, etc. Tem um fórum bem ativo e uma documentação vasta apesar de ser um pouco deficiente.

É mais voltado para jogos 3D, mas com as extensões já existente faz o papel de uma engine 2D numa boa.

Se a idéia é um jogo multi-plataforma a Unity é a única que faz um trabalho decente para ter o jogo, com mais ou menos o mesmo código, em Mac, PC, Web, iPhone e Android.

Utiliza Javascript como principal linguagem de Script mas também pode ser programada em C# ou um dialeto de Python chamado Boo. Usa a plataforma Mono como plataforma de execução.

Para jogos Mobile também é uma das melhores opções pois as demais engines (como a Ansca Corona, que é bastante popular) não da suporte a chamadas nativas no iOS o que dificulta (em alguns casos impossibilita) a comunicação com API como o Openfeint ou da Flurry que são essenciais para transações in game (maior fonte de receita atualmente desses jogos).

Flash
É ainda a principal ferramenta para jogos Web. A grande maioria dos jogos de Facebook são feitos em Flash. Tem a curva de aprendizado menor de todas e também pode ser usada para criar versões PC, Mac com bastante facilidade. A principal facilidade é a integração entre os assets de arte que é bem mais fácil que nas outras engines (como a Unity).

O grande problema do Flash ainda é a performance. Com pouquíssimas otimização de hardware (não usa a placa de vídeo direito e se for Flash 9 ou menos, não usa de jeito nenhum) fazer um jogo em Flash que rode em FPS decente (acima de 15 pelo menos) requer uma experiência legal e a curva de aprendizado é longa.

Se a idéia é um jogo Web ou Desktop, é uma boa pedida. Principalmente usando Wrappers como o Zync que gera os executáveis para qualquer lugar. Se for um jogo 2D é a melhor opção (com renderização simples: lógica e rede podem ser intensos).

Unreal
É a principal engine AAA do mercado. A maioria dos grandes jogos para Console usam, principalmente os FPS. Antes tinha uma licença impossível para qualquer desenvolvedor Indie (centenas de milhares de dólares) mas agora possui uma versão student e versões mais simples dado a concorrência de coisas como a Unity. É possivelmente a melhor opção para um jogo AAA para quem nunca fez um.

A curva de aprendizado, como era esperado, é imensa. É totalmente não recomendado para qualquer projeto que não seja realmente uma coisa profissional de vários anos de desenvolvimento. Usar num jogo casual é como matar uma barata com uma bomba atômica. Apesar de funcionar, aprender a fazer uma bomba atômica é bronca.


XNA
Não é uma engine mas sim uma plataforma de desenvolvimento da MS. É interessante como possibilidade de treinamento e usada em todos os jogos indies para Xbox 360. É muito interessante também pois possibilita o uso do Kinect (é possível testar no PC).

Existe também a possibilidade de fazer para Windows nos Mobiles e nas Tablets. Para apostar nesse caso o ideal é já baixar o Developer Preview do Windows 8 e mandar bala já nele. Ainda não se sabe o que se esperar desse mercado, mas muita gente tá apostanto bastante.

Wednesday, September 14, 2011

jogos e a agenda digital do governo



a agenda digital que o governo começa a montar prevê banda larga pra muita gente, principalmente para as escolas. banda larga somente não é o suficiente, é necessário também conteúdo de interesse nacional para que essa banda seja usada da melhor maneira.

jogo, como ferramente de educação, é um dos conteúdos que o governo pretende ajudar a distribuir. veja: 

da matéria, "A desoneração do IPI para uma quantidade tão grande de consoles vai exigir contrapartidas dos principais fornecedores. Os fabricantes Microsoft, Sony e Nintendo teriam pedido a redução do imposto, que tem alíquota de 50% sobre o valor dos aparelhos. As três empresas dominam esse mercado e, segundo Görgen, fazem uma espécie de barreira de entrada aos desenvolvedores nacionais. Por isso, serão definidas contrapartidas. Uma das medidas em estudo trata do estímulo à instalação de laboratórios dessas multinacionais no Brasil."

a medida "instalação de laboratórios" é boa? como isso vai ajudar a fomentar uma indústria nacional? uma boa contra partida para o mercado, dos desenvolvedores (e espero que a ABRAGAMES esteja engajada nisso para fornecer boas alternativas) é forçar que a localização e o QA desses jogos sejam feitos por aqui.

A localização de um jogo é de extrema necessidade para que o mesmo não só tenha todos os textos traduzidos para a língua local mas também adaptado a cultura local. Muitas vezes um desenvolvedor estrangeiro insere no jogo elementos que não serão bem recebido em outras culturas. É muito comum jogos com elementos religiosos terem sua arte modificada para se adequar ao mercado de países orientais por exemplo. 

O jogo Fruits Inc, da Manifesto, teve alguns elementos "não-green" como inseticidas em fazendas que foram bem recebidos por certos públicos e criticados em outros.

Para a empresa que faz a localização os benefícios são diversos. Além do ganho financeiro, por fazer o serviço em si, muitas vezes a empresa terá acesso ao código-fonte de programação e arte para fazer as modificações possibilitante o aprendizado. 

Existe também a possibilidade para as empresas que fizerem os serviços com sucesso e profissionalismo de criar reputação com os principais publicadores internacionais e daí partir para parcerias mais lucrativas e duradouras para criação de partes de jogos, como o outsourcing de arte e programação bem comuns no meio, como de jogos inteiros totalmente produzidos no país.

Por fim, torcer pra que a coisa seja levada a séria, não só pelos políticos. nós desenvolvedores e gamers precisamos fazer a nossa parte. evitando coisas como:

the strange case of the casual gamer - part 2


our last [first] post in this series ends like this:

Casual gamer, as any audience, brings expectations and experiences. Which experiences they bring? What can we assume they already know? Who are they and what should we know about them to properly create a game that adresses their needs?

A good game teaches skills with high perceived value for the player. That is the subject of the next post in the series...

so, now it's time for the second post. the one that talks about the perceived value for the player... our post, just like this other one, is based on Nick Fortugno article. so the casual gamers we are talking about, at least for now, are the ones that plays casual downloadable games from internet portals. Who are they?

Basically moms. Moms that like to read Stephen King, for instance. And that is why you see lots of terror themed, hidden object, games in top 10 lists of portals. Couldn't be further from the the typical male teenager or young adult hardcore player that buys console games... to illustrate that Nick says that
Most hardcore gamers have dedicated hardware to fulfill their needs. From the last post we learned that the audience brings experiences and expectations. An interface full of commands and complicated controls using a specific controller or even a keyboard are ok for a hardcore gamer. For AAA developers that is also a problem. we are not talking about experience only, they come with expectations too. See the hardcore gamer in the previous image? He has all that dedicated hardware and he expects that the game supports it(special controls, multiple monitors, addon creation, ...) !

On the other hand, our hands, casual gamers came to games first as internet users. They did not, still don't, think about computer as a game-playing device as much as a web-surfing device.
AJ Kelton makes a nice list of things Nick says about the experience and expectations that comes with casual gamers. One of the things that I see as very important, and exemplifies perfectly what we are trying to state, and Kelton don't talk about it is the left button rule. The left button rule states that the only input allowed is the mouse and only moving it and clicking with the left button.

As Nick says, "One clear point is that casual gamers came to games first as internet users [...] the dominance of the left mouse button is unsurprising given the way that casual gamers were first exposed to games". 

Surfing the web doesn't require anything other than clicking the left button of the mouse! Casual games have evolved a lot from their first hits with more strategy, new genres and even going social massive multiplayer. But, the left button rule stand strong after 10+ years...

This leads us to one of Nick's conclusions: "Casual games appeal to all kinds of players, particularly non-gamers, which creates a set of particular concerns and constraints that influence the design of these games". So: mechanics must be intuitive, interfaces must be clear and achievements is prized over struggle. 

After these whole text what do you think is of high perceived value for casual gamers. Comments?

Since Nick's article in 2008, these so-called casual games evolved and gone multiplatform. They are now all over facebook, with social games, and cell phones in mobile games for iPhone and Android (not to mention in tables like the iPad). That is the subject of the next post... games as services.

Saturday, September 3, 2011

the strange case of the casual gamer

based on the #EE_Cin series of articles that are basically powerpoint slides commented, i've decided to comment some of the presentations I give every now and then...

i will start with the strage case of the casual gamer that talks how the market starts and who are these so called casual gamers. with mobile and social games the term casual is much broader now and pretty much everybody is a casual gamer. casual games were a very narrow niche that become mainstream... how that happened? i'll try to explain in this series of posts.
the presentation is based on a text by Nick Fortugno, former lead game designer of Playfirst (Diner Dash). the text is a chapter in the book Game Usability: Advancing the player experience.

Diner Dash is one of the few games that got 5 stars in Gamezebo, the single most important critic site of casual games. So, Nick is someone to be listened, or read in this case...

So, to start: What do we need to know about casual gamers to make a good casual game?
A good game should be intuitive to be easy to learn, challenging enough to make the player feels he is learning new things all the time and utimately fun so it can be called a game.

How can we do that?

Most studies about fun in games will relate these concepts. The most important thing is the right amount of challenge. If the challenge is too low, the player won't learn anything new and feels bored. If the challenge is too high he won't be able to perform the task and learn something in the process. The right amount of challenge will invariably lead the player to the flow channel.

Daniel Cook in his article The chemistry of game design in gamasutra creates a model in which "The player is entity that is driven, consciously or subconsciously, to learn new skills high in perceived value. They gain pleasure from successfully acquiring skills."

In summary, Daniel Cooks says, what we already said with different words, that for our game piece to be intuitive, easy and fun it should constantly teach new skills so he can gain pleasure from that activity. To design such a game Cook creates the concept of Skill Atom. A skill atom is diagramed as the following image:
Every time the player makes an action the computer then simulates the impacts of that action in the environment then gives somekind of feedback to the user. After the feedback the model of the game inside the player's head is update to incorporate some new skill. The following image is an example of a real skill atom from the jumping action in Mario games.



The full skill chain for Tetris can be found here.

So, according to Daniel Cook the assumption we make about which skills the gamer already mastered, or partially mastered, before playing our game for the first time is a crucial decision.

Casual gamer as any audience, brings expectations and experiences. So, which are these experiences from casual gamers? What can we assume they already know? Who are they and what we should know about them to properly create a game that adresses their needs?

A good game teaches skills with high perceived value for the player. That is the subject of the next post in the series...

Thursday, September 1, 2011

being a game designer...

i've been reading, once again, the book Rules of Play by Katie Salen and Eric Zimmerman. It's a good book, recommended to anyone aspiring to be a game designer.

the second chapter is called The Design Process, which is iterative (the process, not the chapter). according to the authors, and i agree: "designers learn best trough the process of design, by directly experiencing the things they make".

the sentence ultimately means that the single most important task a game designer has during the process of creating a game is PLAYING the game he is creating. that lead us to a question a ask anyone that comes for a game designer job interview: How much do you play?

a decent game designer can't play less then four hours a day. why? during the process of making a game, the game designer will be playing the game over and over again for hours troughout months of development, most of this time the game will be an unbalanced, ugly and full of bugs piece of crap.

the funny thing is that, at least in my experience, three quarters of the people postulating a game design position can't even say the last game they played.


so, if you want to be a game designer start playing. play the same game over and over again. pay attention to every single detail. know what is right and what is wrong about the game. learn what makes it a good game and what makes it a sucessful game. then, when you go to an interview you can tell everything about it and make sure the person who is interviewing you gets you are simply passionate about what you are talking about...