Category Archives: gamedev

Making of my mini zine business card

I am attending a few gamedev and non-gamedev events this month and I decided to make and hand a different business card this year. After attending BIG Festival in São Paulo/Brazil and meeting some great people and games this week, I thought it would be cool to write a ‘making of’ of my business card, due to the positive feedback I received from people during the event.

This is an unusual topic for me to write because, heck, I am not even a graphic designer or illustrator, what could one learn from it? Hopefully, something :)

The business card

First of all, the finished business card:

MinizineBusinessCard01The finished business card.

Whatcha Mean, What’s a Zine?

From the pictures above, you can notice that the business card is not ‘the regular one’. While I do have a formal business card that I have been using for some time, this one is actually a mini zine disguised as business card. For those unfamiliar with the term ‘zine’:

“A zine is a handmade magazine or mini-comic about anything you can imagine: favorite bands, personal stories, subcultures, or collections.”

Taken from the book “Whatcha Mean, What’s a Zine?” by Mark Todd and Esther Pearl Watson.


Having a career as software engineer/game programmer and teaching related subjects as a professor, I get the impression that people tend to forget that I can really enjoy arts and handcraft stuff :)

MinizineBusinessCard02Giving digital a break (one of my first attempts to bind a sketchbook).

So, yeah, I like technology and tech stuff but the right side of my brain also wants to be fed from time to time. And usually it does not want to consume manga stuff. I know there are plenty of great stuff in that genre and I like some dozen works, but even though I am a Brazilian born Japanese and have the same surname as Naruto’s creator, the art style (and storytelling) that I like the most are very different.

If I had to pick up a couple of publishers so you can have an idea of what I like and read, I would definitely say Drawn & Quarterly and Fantagraphics. But I would also have to say that there are many zines of known and not-so-known artists, many found via graphic novel anthologies, Etsy, Storenvy, Carbon Made and so on.

MinizineBusinessCard03Some zines from my collection.

Most zines I have uses staples to attach the pages together, but ‘Chicago’ from my friend Batha (see picture above) was the first one that I saw that uses one sheet and one cut to create an 8-page zine, which is the method I chose for my business card.


I already had an idea in my mind of what I would like to include in the mini zine but I sketched the thumbnails so I could visualize it on paper. In doing so, I noticed that the page where I mention my personal games would be better to appear before my company, so the last thing the reader would see inside the zine would be my company info. Not only that, but the page spread would make more sense.

MinizineBusinessCard04Thumbnails for the mini zine.

I also numbered the thumbnails so it would guide me by the time I would draw the pages.


The drawings were made on one A4 75 gsm sheet, folded and cut as an 8-page mini zine.

MinizineBusinessCard05Drawing only the pages that would have drawings.

In this first pass, I only drew pages 2 to 5, since page 1 would be filled with a stamp, page 6 with my company logo, page 7 with a blurred image and page 8 with my website URL.

Drawing was done using a 2B pencil and final artwork using Micron 01. After that I scanned the page and brought the image into Gimp.

Side note: I always use the following scratch paper that I numbered some time ago as a reference when I create 8-page mini zines.

MinizineBusinessCard06Reference for 8-page mini zines.

More drawings

After checking the scanned image in Gimp, I redrew myself for page 3 since I did not like the first drawing, wrote the details that would go in the whiteboard in page 2 and lettered ‘NDA’ to put in page 7.

MinizineBusinessCard07Second pass of drawings.

Digital composition

With everything in digital form, I started making the final composition in Gimp, scaling down the drawings, repositioning and rotating elements, and so on. The idea was that the mini zine would be printed in A5 instead of A4 size.

I painted all strips with a light grey and added white to places that should be highlighted. The only exception was the first strip from page 4, which has a gradient background and some vertical lines, using some manga language.

In the first version of the card I added black lines like most comic strips but removed them during the printing process, as they were not matching the paper folds (something I have to work for the next batch of cards).

MinizineBusinessCard08First version of the mini zine: only drawings, light grey/white and black lines.

Then I added texts above white rectangles with rounded corners, some game screenshots, my company logo and a QR code (created using Some parts near the borders were cut/scale down after print tests.

MinizineBusinessCard09Final version of the mini zine.


After the mini zine was digitally done, the next step was to print it in A4 paper, cut in half (each A4 paper resulted in two copies of the mini zine), and fold and cut each half to assemble the mini zine.

MinizineBusinessCard10Mini zine printed.

Stamping the cover

The final step was to stamp the cover of each copy with a rubber stamp I created some time ago.

MinizineBusinessCard11Rubber stamp and tools I used to create it.

Rubber stamping was another source of inspiration. Unfortunately, rubber stamping is too boring in Brazil (or I might not be looking at the right places); the only ones that I see are those ‘date’, ‘paid’, office stamps or birthday, kids and ‘grandma’ stamps that lack personality. Nothing compared to Japan, where you can find really cool rubber stamps everywhere (really, everywhere).

Side note: if you ever go to Japan, you can create your own ‘Collect rubber stamps’ side-quest!

MinizineBusinessCard12‘Collect rubber stamps’ side-quest in Japan.

MinizineBusinessCard13Me me me. All mini zines with stamped cover.

Final words

MinizineBusinessCard14Handcraft and its imperfections.

It was very fun to create this mini zine business card. A few times I thought that it could be somewhat risky to use it, since it is more informal and handmade (hence it has lots of imperfections).

At least in the first event I used it, people seemed to like it and did not mind the imperfections. Most of them told me ‘it is cool!’, ‘might be hand-made but easily remembered’, and ‘very creative!’, so I think for some events I might use it instead of my ‘regular’ business card.

If you know other people/companies that have similar business cards or that do not follow ‘standard business cards’, please share in the comments below! I googled to check if there were other examples and could only find Will Blanton’s.

Thank you for reading everything and I hope you enjoyed it!

PS: Maybe next year I will have an smartphone app disguised as business card or start handing out floppy disks with my info inside. Who knows :)

Be Sociable, Share!

Promoção da Packt (2000th book)

Packt2000thBookEsses dias recebi outro press release da editora Packt, com uma promoção “compre um (e-book) e leve outro” em comemoração ao lançamento de número 2000 (!).

Segue press release (em inglês).

Packt Publishing celebrates their 2000th title with an exclusive offer – We’ve got IT covered!

Known for their extensive range of pragmatic IT ebooks, Packt Publishing are celebrating their 2000th book title `Learning Dart’– they want their customers to celebrate too.

To mark this milestone Packt Publishing will launch a ‘Buy One Get One Free’ offer across all eBooks on March 18th – for a limited period only.

Packt is one of the most prolific and fast-growing tech book publishers in the world. Originally focused on open source software, Packt contributes back into the community paying a royalty on relevant books directly to open source projects. These projects have received over $400,000 as part of Packt’s Open Source Royalty Scheme to date.

Their books focus on practicality, recognising that readers are ultimately concerned with getting the job done. Packt’s digitally-focused business model allows them to quickly publish up-to-date books in very specific areas across a range of key categories – web development, game development, big data, application development, and more. Their commitment to providing a comprehensive range of titles has seen Packt publish 1054% more titles in 2013 than in 2006.

Here are some of the best titles across Packt’s main categories – but Buy One, Get One Free will apply across all 2000 titles:
Web Development
Big Data & Cloud
Game Development
App Development

Be Sociable, Share!

Jogo: Cross The River

Can you help the young boy cross the river with his pets, safe and sound?
That should be easy, but he can only take one pet at a time with him. And,
unfortunately, the dog and the cat do not get along. The same is true for
the cat and the parrot.

What steps will you take?

Find out the answer in this 'river crossing puzzle' based mini-game!

O que era pra ser um exemplo simples de lógica e checagem de condições if-then-else para aulas de programação, acabou virando um mini-game. Achei que valeria a pena incrementar o exemplo e o resultado, depois de aproximadamente 24hs de trabalho, você pode conferir no link abaixo:

Decidi que o visual deveria ser simples, mas não ficar nos famosos retângulos e stick-figure (ou sprites de terceiros). A primeira coisa que me veio à cabeça foram jogos de consoles 8-bit (Master System e NES). Tentei algo no estilo e optei por usar a paleta de cores do NES. Depois acabei adotando a resolução 256×240, a mesma do console. No final, achei que 256×240 era uma resolução pequena e acabei dobrando a mesma, mas mantendo o mesmo visual. O áudio tinha que ser consistente então tentei seguir a linha.

Pretendo falar um pouco mais sobre esse mini-game num post futuro, por enquanto só queria compartilhar o link do jogo por aqui.

O que você achou do mini-game?
Comentários, críticas (construtivas) e sugestões são sempre bem-vindos!

Be Sociable, Share!

Análise de livro: Ouya Unity Game Development (Packt Publishing)

BookOuyaUnityGameDevelopmentNo momento em que escrevo essa análise (dezembro de 2013), o livro “Ouya Unity Game Development” é o único livro sobre o assunto e está dividido em sete capítulos. O público-alvo são programadores iniciantes que têm certa familiaridade com a Unity, embora o autor explique conceitos básicos (assim, os que não estão acostumados com a ferramenta conseguem acompanhar sem problemas).

O primeiro capítulo comenta brevemente sobre a história dos jogos, a fim do leitor entender o contexto do Ouya. Em seguida, no capítulo 2, o autor explica como configurar a máquina de desenvolvimento: como obter e instalar o Android SDK e NDK, o Ouya SDK, como conectar o Ouya no computador e a configuração necessária para trabalhar com o plug-in da Unity (disponibilizado pela empresa Ouya).

O projeto desenvolvido no livro é um clone simples de Sokoban em 3D e seu desenvolvimento é explicado nos capítulos 3 a 5. Nesses capítulos, o autor também comenta sobre suporte ao controle do Ouya (que é simples de usar). O framework de monetização do Ouya é discutido no capítulo 6, que explica sobre como configurar e gerenciar compras assim como o que é necessário mudar no jogo (por exemplo, destravar níveis após pagamento) e configurar no site do Ouya. Por fim, o autor discute alguns tópicos sobre suporte multi-plataforma.

É um livro curto com aproximadamente 100 páginas. Metade dele é relacionado ao Ouya e a outra metade discute desenvolvimento em Unity com C#. Apesar desse livro ser o único disponível no mercado, é possível encontrar muita informação na documentação oficial do Ouya (recomendo checar a conta do github do Ouya).

Sobre Unity, o leitor deve aprofundar mais se quiser criar bons jogos com a ferramenta. A editora possui outros títulos sobre a ferramenta que explicam tópicos mais avançados e recomendo verificá-los.

Na minha opinião, o livro poderia explorar mais detalhes sobre performance, compressão de texturas no Ouya, como incluir suporte a múltiplos controles e o que fazer quando um deles é desconectado, e assuntos do tipo, ao invés de usar metade do livro para explicar um projeto Unity (que independe de plataforma-alvo, com exceção do suporte ao controle do Ouya). Talvez o autor pudesse focar também no desenvolvimento para Ouya usando outras tecnologias como Cocos2d-x, Libgdx, GameMaker, etc. além da Unity. Uma comparação dessas tecnologias seria bem útil, listando os prós e contras para diferentes gêneros de jogos.

No geral, o livro cobre o essencial para começar e a abordagem adotada (metade Ouya/metade Unity) é compreensível; o leitor terá um pacote completo para começar a desenvolver pro Ouya (e possivelmente outros dispositivos Android) e não precisará de outro livro para seguir o conteúdo. No entanto, novamente, para tópicos intermediários/avançados, é muito recomendado verificar outros livros e referências.

Link para a página do livro no site da editora.

Be Sociable, Share!

Análise de livro: Instant HTML5 2D Platformer (Packt Publishing)

BookInstantHTML5PlatformerEsse é o primeiro livro da série “[Instant]” da Packt que leio (existem vários livros da mesma série) e de cara você percebe que o livro consiste de uma série de “receitas” sequenciais (não sei se outros títulos da série possuem a mesma estrutura).

O livro foca em desenvolver de maneira progressiva um framework HTML5/JavaScript para jogos 2D, usando um jogo de plataforma como exemplo. Discute o básico como elemento canvas, sprite e animação, input, parallax, física (colisão e pulo), inimigos e objetos, áudio e GUI. Cada receita é composta de duas seções: “How to do it” e “How it works”. A primeira seção possui uma abordagem passo-a-passo para implementar um determinado tópico, com código, enquanto a segunda seção explica um pouco mais sobre o código previamente apresentado.

Conforme mencionado no livro, o autor assume que o leitor já possua conhecimento em HTML e JavaScript (básico para intermediário) e foca apenas no código apresentado no livro. Apesar de não explicar as tecnologias, acredito que o texto e código sejam fáceis para entender e acompanhar, assim como portar o código para outra tecnologia, se você quiser.

Minha opinião sobre o livro é dividida; isto é, ele cobre vários aspectos para começar a desenvolver um jogo 2D, mas não vai além do básico: a seção “How it works” explica o código e inclui pouca teoria; não há nenhuma explicação detalhada sobre o tópico e nem são mencionados eventuais problemas que o leitor pode encontrar. Exemplos: como tocar uma música de fundo em loop? Todos os navegadores suportam áudio? Em um jogo de plataforma (gênero do livro), como lidar com plataformas flutuantes ao invés de definir o jogador numa posição fixa no eixo Y? O jogo em HTML5 roda igual no desktop e em smartphones?

Poderiam existir duas seções adicionais, “There’s more” (mais detalhes teóricos e de implementação) e “See also” (referências para aprofundar os estudos ou mesmo libs JS que poderiam ajudar o desenvolvimento), que já vi em outros livros da mesma editora.

Gostei que o código-fonte aplica orientação a objetos e possui gerenciadores (ObjectManager e AnimationManager). Realmente oferece um ponto de partida para um framework de jogos, apesar de existirem alguns bugs, como uso de frameWidth e frameHeight ao invés de texture.width/.height no AnimationManager.BoundingBox (depois que enviei uma errata pelo site, o autor corrigiu essa parte).

Esse é um bom livro se você é novo em desenvolvimento de jogos e quer começar a desenvolver em HTML5/JS, mas tenha em mente que, por causa da abordagem “short, fast, focused guide” (conforme mencionado no site do livro), você terá que procurar por informações detalhadas em outro lugar.

Link para a página do livro no site da editora.

Be Sociable, Share!

Promoção de fim de ano da Packt (e-books por USD5)

PacktUSD5BonanzaRecebi um press release da editora Packt, que publica e-books e livros impressos sobre diversos assuntos de computação (incluindo desenvolvimento de jogos), informando sobre uma promoção de fim de ano chamada “eBook Bonanza”: de 19/12/2013 até 03/01/2014, qualquer e-book ou vídeo-aula da editora por apenas USD5.

Vi que há vários livros sobre diferentes tecnologias para jogos, como: AndEngine (engine de Android), Cocos2d-X, CryEngine, HTML5, SFML, SDL, UDK, Unity, XNA, entre outros. Para Unity tem vários, inclusive vídeo-aula. Para artistas, há vários livros de Blender, incluindo um escrito pelo brasileiro Allan Brito (Blender 3D Architecture, Buildings, and Scenery). Achei um de ZBrush, um de Mudbox e um de modo também.

Eu, em particular, gosto dos livros de OpenGL (inclusive notei que pre-order também estão na promoção, tem um sobre GLSL lá).

Segue press release (em inglês) com link para mais informações:

Packt’s $5 eBook Bonanza is back!
Following on from the success of last year’s festive offer, the publisher will be celebrating the holiday season with an even bigger $5 Bonanza.

From December 19th, customers will be able to get any eBook or Video from Packt for just $5. This sale covers every title in the 1700+ range and customers can grab as many as they like until January 3rd 2014 – more information is available at

Be Sociable, Share!

A Tétrade Elementar (Jesse Schell) ou os elementos básicos de um jogo

ElementalTetradAo realizar um estudo sobre game design, referenciei o trabalho de Jesse Schell, o ótimo livro “The Art of Game Design: A Book of Lenses” (lançado no Brasil pela Elsevier sob o título “A Arte de Game Design: o livro original”). Um conceito legal que ele descreve é a Tétrade Elementar (Elemental Tetrad), composta pelos quatro elementos básicos de um jogo: mecânica, história, estética e tecnologia (segundo o autor).

Schell indica que um elemento não é mais importante que o outro, pois cada um suporta o outro, e deve (ou deveria) estar presente em todos os jogos. Basicamente, temos o funcionamento do jogo (mecânica), a sequência de eventos (história), o áudio-visual e emoções (estética) e a mídia (tecnologia), sendo a estética o elemento mais visível para o jogador e tecnologia o menos visível.

Com essa relação, ele mostra a figura da Tétrade Elementar. Para aqueles que algum dia precise reproduzí-la (como eu precisei), estou deixando para download o arquivo que criei (MS PowerPoint 2007) para reproduzir a figura (contendo versão en-US e pt-BR). Por quê PPT? Porque achei que seria mais fácil e rápido aproveitar os recursos que o software oferecia para criar a figura, podendo posteriormente alterar texto, posição, tamanho, etc. sem muito trabalho. Sei também que muita gente que escreve artigos ou faz apresentações já possui e usa ferramentas similares.

Quem quiser se aprofundar mais no assunto, recomendo bastante o livro! Para a versão pt-BR, recomendo uma leitura cuidadosa, pois algumas traduções não ficaram boas (além de alguns erros aqui e ali).

Para download do PPT com a reprodução da figura, clique aqui.

Be Sociable, Share!

Análise de livro: Getting Started with C++ Audio Programming for Game Development (Packt Publishing)


Esse é um livro introdutório para desenvolvedores C++ (intermediário) que querem iniciar em programação de áudio, mais especificamente usando FMOD. O autor começa apresentando no primeiro capítulo alguns conceitos universais de áudio, como volume, pitch, frequência, bit depth e formatos de arquivos de áudio. Em seguida, introduz o FMOD e explica como adiciona-lo a um projeto (Visual Studio C++), como iniciar o FMOD, carregar e reproduzir áudio e verificar erros. Após essa introdução do FMOD, há um projeto para criar um simples gerenciador de áudio através de uma classe C++. No capítulo 3, o autor expande o gerenciador para incluir controle de áudio, isto é, playback, controle de volume, pitch, panning, agrupamento de canais.

Com o básico de áudio explicado, o autor parte para áudio 3D e como trabalhar com áudio posicional, reverb e efeitos no FMOD. Ao trabalhar com áudio posicional, o desenvolvedor precisa lidar com oclusão e obstáculos que afetam a maneira como o áudio é percebido pelo jogador. Este é um tópico que poderia ser explorado com mais detalhes pelo autor, pois ele comenta sobre o assunto em apenas duas páginas. O mesmo vale para efeitos via DSP (processamento de sinais digitais), que é comentado nas 3 últimas páginas do mesmo capítulo de áudio 3D.

A ferramenta FMOD Designer também é apresentada. É uma ótima ferramenta da Firelight Technologies (desenvolvedora do FMOD) para aqueles que são mais focados em design. O autor explica como criar eventos simples de som (como efeitos de passos e vidro quebrando), evento multi-trilha (passos interativos, motor de carro) e música interativa, além de como chamar os eventos via código. Para projetos maiores ou que precisam de algo além do controle básico de áudio, essa ferramenta é obrigatória (ou ao menos valerá muito a pena usa-la).

O último capítulo envolve programação de áudio em baixo nível, isto é, como trabalhar com os bytes de um arquivo de som digital – carregar, tocar, alterar propriedades, etc. Embora FMOD ainda seja usado para o controle de áudio, o leitor tem uma visão “por trás dos panos” sobre APIs de áudio de alto nível.

Com ~100 páginas, esse é um bom livro introdutório para desenvolvedores que não estão familiarizados com programação de áudio, principalmente porque não há muitos livros sobre o assunto (há alguns que focam em programação DirectSound/XACT, mas essas tecnologias parecem estar mortas -ou estão morrendo- e são apenas para plataforma Microsoft). É um livro de C++, mas desenvolvedores de outras linguagens (como C#) também podem se beneficiar do conteúdo, uma vez que o FMOD suporta outras linguagens. A decisão do autor em usar o FMOD é boa também: é uma tecnologia multiplataforma, suporta vários formatos de áudio e é adotado em vários jogos de sucesso, por empresas e game engines (como Unity e UE3). Eu já trabalhei em um jogo multiplataforma usando FMOD para áudio e os resultados foram muito bons.

Para iniciar com programação de áudio, acho que o conteúdo e tamanho do livro estão OK, embora o autor poderia se aprofundar mais em áudio 3D e efeitos via DSP (e incluir código de áudio 3D na classe gerenciadora de áudio; o código-fonte só está disponível para os capítulos 2, 3 e 6).

Vale a pena mencionar que o FMOD Studio não é discutido no livro e, para qualquer tarefa não relacionada a áudio (gerenciamento de janela, render e input), o autor usa o SFML (Simple and Fast Multimedia Library).

Gostaria de ver outro livro do autor/editora com assuntos mais avançados de programação de áudio, como mais detalhes sobre como trabalhar com áudio 3D (e suas implicações), efeitos DSP em tempo real, áudio dinâmico e performance. Seria bom também ver um projeto que inclui FMOD Designer (ou FMOD Studio) e código, não apenas exemplos no livro.

Be Sociable, Share!

Análise de livro: Windows Phone 8 Game Development (Packt Publishing)

No meu antigo blog, vez e outra fazia breves análises sobre livros de desenvolvimento de jogos e artbooks. Nesse novo blog, não cheguei a fazer nenhuma análise – até agora. Eu até poderia escrever sobre algum livro que tenho ou que comprei recentemente, mas… Bom, há alguns dias atrás, surgiu a oportunidade de eu escrever um review, pois a editora Packt Publishing me enviou a versão digital do Windows Phone 8 Game Development (Marcin Jamro) para avaliar. Espero que com essa análise, eu volte a escrever mais sobre livros.


Conforme a descrição do livro, este é um guia prático para desenvolvimento de jogos para Windows Phone 8. Diferente de alguns livros que apresenta um “Hello, World!” para cada tópico apresentado, o autor escolheu desenvolver o projeto de um jogo completo (apresentado no primeiro capítulo), que é incrementado a cada capítulo.

O autor mostra uma visão geral da plataforma Windows Phone 8, do ciclo de vida dos aplicativos, assim como das diferentes maneiras de desenvolver (managed, nativa e híbrida). A abordagem híbrida, usada no livro, me chamou a atenção, pois como desenvolvedor cross-platform acostumado com C++ (ou mesmo C#/XNA), acho interessante ter uma maneira mais fácil/rápida de criar a UI ao mesmo tempo em que é possível desenvolver nativo para performance e processamento mais pesado.

Nesse sentido, o livro usa um misto de C#, C++, C++/CX, XAML e Direct3D, algo que achei meio incomum. C# e XAML para UI, C++/CX e Direct3D para o core do jogo, com uma classe Direct3DInterop fazendo a comunicação entre código nativo e gerenciado.

A abordagem passo-a-passo é boa para iniciantes e há algumas dicas que podem economizar tempo de desenvolvedores com mais experiência (mesmo avançados que vêm de outras plataformas). Há um capítulo sobre o padrão de projeto MVVM (model-view-view model), aplicado ao jogo, e o último capítulo lida com a parte de publicação.

Sobre tópicos atuais, o livro trabalha com localização, mapas, geolocalização, web services e redes sociais (usando API’s do Facebook e Twitter). O jogo desenvolvido no livro também implementa leitor de RSS. Duas features que gostaria de ver rodando em aparelhos reais são realidade aumentada e reconhecimento de voz, pois pareceram ser fáceis de implementar.

Há duas coisas que poderiam ter no livro:
- Algumas features são implementadas só com código gerenciado: o autor poderia explicar brevemente como implementar nativamente ou dar direções (apesar que há alguns links no apêndice), ou mesmo implementar a versão nativa e disponibilizar no código-fonte do livro;
- Apesar de ser um livro de Windows Phone 8, poderia ter alguma discussão (ou comparação) sobre como cada feature do aparelho/SO está relacionado com os concorrentes (iOS e Android), pois atualmente é muito comum o lançamento de apps e jogos em diferentes SO’s e stores.

No geral, o livro cumpre o que promete e recomendaria para qualquer um que tem interesse em aprender a desenvolver jogos para Windows Phone 8.

Be Sociable, Share!

SBGames 2013, Post-mortem (Q&A)

Depois do último post-mortem, teve uma sessão de perguntas e respostas. Infelizmente a bateria do meu celular acabou e não foi possível gravar o final da sessão:

Renato Degiovani finalizou com algo como: “Se o seu jogo não está vendendo, o problema não é as pessoas, mas o seu jogo.”

Be Sociable, Share!