Author Archives: André Kishimoto

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!

Maya, Unicode, Python e erros

Você está usando o Maya 20XX, vai salvar ou exportar a cena e, de repente…
# Error: file: C:/Program Files/Autodesk/Maya2014/scripts/others/fromNativePath.mel line 90: UnicodeEncodeError: file C:\Program Files\Autodesk\Maya2014\bin\\ line 420: ascii #

Ou ainda:
# Error: file: C:/Program Files/Autodesk/Maya2014/scripts/others/fromNativePath.mel line 90: (unicode error) ‘ascii’ codec can’t encode characters in position 42-43: ordinal not in range(128) #

Como resolver esse problema? Possíveis soluções que encontrei:

  • Verifique se o local do seu projeto Maya (menu File | Project Window, Location) contém caracteres especiais (ex. ã, ç, ó). Caso contenha, altere-o para um diretório que não contenha caracteres especiais.
    Exemplo de local de projeto com caracteres especiais: c:\Trabalhos\Animação
  • Escreva o seguinte script Python dentro do Maya (menu Window | General Editors | Script Editor, aba Python):
    import sys

    E clique no botão Execute (CTRL+E ou menu Command | Execute) para definir que o Python use UTF-8 ao invés de ASCII.

O erro ocorre porque o script MEL (fromNativePath.mel) é usado internamente (somente no Windows) para que o caminho de um diretório use / (forward slash) ao invés de \ (backslash) e chama uma função do Python usando string em Unicode. Como o Python estava configurado para ASCII, o script dá erro.

Percebi que o erro também ocorre se você tenta salvar (ou exportar) a cena em um diretório que não tem caracteres especiais enquanto trabalha em um projeto Maya que contém caracteres especiais.

Be Sociable, Share!

Protótipo x GDD

“A functional prototype is worth a thousand GDD words.”
- André Kishimoto, 2014

Picture of a sticky note on my monitor.
(It used to be ‘pages’ instead of ‘words’, but I noticed that a thousand pages is just absurd — even thought there are GDD with 1000+ pages…)

Be Sociable, Share!

Day Against DRM

PacktDayAgainstDRM2014Recebi outra promoção da editora Packt, dessa vez relacionada com o #DayAgainstDRM. No dia 6 de maio (Dia Internacional Contra DRM), ela estará vendendo os e-books e vídeos por USD10.

Engraçado é o banner dizendo “Download, Keep, Share” (acho que pagar realmente vale só para uma minoria aqui no Brasil, enquanto a maioria prefere fazer exatamente o que o banner diz, não?)

Segue press release em inglês.

Packt celebrates International Day Against DRM, May 6th 2014

According to the definition of DRM on Wikipedia, Digital Rights Management (DRM) is a class of technologies that are used by hardware manufacturers, publishers, copyright holders, and individuals with the intent to control the use of digital content and devices after sale.

However, Packt Publishing firmly believes that you should be able to read and interact with your content when you want, where you want, and how you want – to that end they have been advocates of DRM-free content since their very first eBook was published back in 2004.

To show their continuing support for Day Against DRM, Packt Publishing is offering all its DRM-free content at $10 for 24 hours only on May 6th – that’s all 2000+ eBooks and Videos. Check it out at:

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!

Here is a Selfie C++ class example.

AKA Singleton (because “Selfie is so 2013″, people are saying).

// Ego.h
class Ego
  static Ego *Selfie();

  uint32_t GetLikes() const { return mLikes; }
  void Like() { ++mLikes; }

  uint32_t mLikes;

  Ego() : mLikes(0) { }
  Ego(const Ego&);
  Ego& operator=(const Ego&);
  ~Ego() { }

// Ego.cpp
Ego *Ego::Selfie()
  static Ego selfie;
  return &selfie;

// anywhere_you_go.cpp
#include "Ego.h"
Be Sociable, Share!

Windows Media Player, WM_MOUSEMOVE e seu aplicativo

Hoje me deparei com um comportamento estranho num projeto Windows nativo: no começo não tinha percebido, mas o aplicativo estava processando o movimento do mouse constantemente (cerca de 1,5 vezes por segundo). Na Win32 API, isso significa que o loop do aplicativo estava obtendo (do sistema) e despachando a mensagem WM_MOUSEMOVE, que passaria pela WindowProc do aplicativo. O pior é que o mouse estava parado e as coordenadas do mouse sempre vinham iguais.

Verifiquei se o mouse estava com problema e também desconectei dispositivos USB da máquina. Nada. Verifiquei se poderia ser bug introduzido no código depois de algumas alterações recentes e certifiquei que o loop do aplicativo estava correto. Aparentemente, o código estava OK.

Resolvi ver quais aplicativos e serviços estavam rodando no sistema e fui encerrando um por um. Estava ouvindo música no Windows Media Player e, assim que fechei o Media Player, meu aplicativo parou de processar o WM_MOUSEMOVE. Hum, quem diria.

Já percebeu que quando o Windows Media Player está tocando algum arquivo de mídia, o screensaver nunca é executado? Porém, quando o Media Player está aberto mas não está tocando nada, o screensaver chega a ser executado. Aí está a explicação tanto do comportamento do Windows Media Player vs Screensaver como do “bug” do meu aplicativo: o Media Player fica gerando a mensagem WM_MOUSEMOVE a todo momento (simulando que o mouse se movimentou), enquanto algum arquivo de mídia estiver sendo executado.

Fica a dica caso o seu aplicativo/jogo realize muito processamento em resposta ao movimento do mouse ou tenha alguma operação que dependa do movimento do mouse. Dependendo do quão crítico esse tipo de interferência seja para o seu projeto, é melhor responder ao movimento do mouse somente quando o mesmo se deslocar acima de um threshold.

Esse comportamento também é interessante para evitar que o screensaver seja ativado no meio de uma partida do seu jogo, por exemplo. Entretanto, não recomendo essa abordagem, principalmente para mobile, pois isso consumirá mais bateria do aparelho (acho melhor lidar com as interrupções do aparelho e com o ciclo de vida do aplicativo).

PS: antes que alguém me diga para usar outro aplicativo como Winamp ou VLC, vale lembrar que os seus usuários podem estar usando o Windows Media Player junto com seu aplicativo/jogo ou mesmo ter outros aplicativos que interferem de maneira similar ao comentado aqui.

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!