Seattle Game Dev JS: Um olhar para trás e um passo em frente.
Em janeiro, nosso grupo de desenvolvedores de jogos HTML5 completou um ano. (Eles crescem tão rápido!) E é com esse marco em mente que gostaríamos de agradecer de coração a todos os nossos membros, patrocinadores e a todos que ajudaram a tornar nossas reuniões as incríveis pepitas cheias de conhecimento que são!
Este ano parece que será ainda melhor que o anterior. Começamos com uma queda de energia, seguida por uma recuperação e apresentação incríveis (apesar de não haver energia!) sobre Otimizações HTML5, da equipe mobile da Double Down. Nunca há um momento de tédio!
No ano passado, nosso grupo passou de 0 para 380 membros, uma grande conquista! A equipe Game Dev JS é uma comunidade diversificada, repleta de desenvolvedores, artistas, gamers, gerentes de programa, administradores de rede e entusiastas de JS de todos os tipos. Nosso membro desenvolvedor mais jovem tem apenas 13 anos! Mantendo sempre o conteúdo atualizado, os palestrantes animados e os membros engajados, conseguimos construir uma comunidade robusta – não teríamos conseguido sem vocês!
Se você se interessa por JS, o meetup é uma ótima oportunidade para se divertir, aprender algo novo, compartilhar algo que você sabe e conhecer personagens muito interessantes.
Principais Conclusões
- O Seattle Game Dev JS cresceu de zero para 380 membros em seu primeiro ano, baseado em uma mistura de palestras, demonstrações relâmpago e happy hours.
- A programação de 2012 do grupo abrangeu toda a pilha HTML5: renderização, truques de canvas, áudio, wrappers nativos, Windows 8 e arquitetura de servidor node.js.
- Uma comunidade como esta funciona porque permanece deliberadamente interdisciplinar — desenvolvedores, artistas, PMs e administradores de rede, todos em uma mesma sala.
- A melhor maneira de obter valor de um meetup é comparecer, fazer perguntas e, eventualmente, apresentar algo você mesmo.
- O planejamento para 2013 está aberto: queremos suas ideias de temas, sugestões de locais e propostas de palestrantes.
Por que um Grupo de Desenvolvedores de Jogos JavaScript é Importante
Quando iniciamos este grupo, “desenvolvimento de jogos HTML5” ainda era uma frase que fazia muita gente apertar os olhos. O elemento <canvas> era jovem, o desempenho do navegador era inconsistente e a ideia de que você poderia lançar um jogo real — não uma demonstração técnica — em JavaScript era tratada como uma novidade, e não como uma plataforma.
Um ano depois, essa conversa mudou completamente. A razão pela qual um meetup local é importante em um campo como este é que a documentação fica atrás da realidade.
Relacionado: — Arte, ferramentas e modelos prontos que vão direto para o seu projeto Unity.
Postagens de blog descrevem o que funcionou há seis meses. Palestras de conferências são polidas a ponto de serem abstratas. O que realmente faz um desenvolvedor avançar é sentar-se ao lado de alguém que resolveu exatamente o seu problema na semana passada — um canvas que engasga em um dispositivo específico, um elemento de áudio que não desbloqueia no mobile, um pipeline de build que trava com um pacote de assets grande.
Essa é a lacuna que o Game Dev JS preenche. Não é uma série de palestras. É uma sala cheia de pessoas que estão todas no meio de um problema, comparando notas.
O que Cobrimos em 2012
Aqui está um pouco do que cobrimos ao longo do ano:
Se você estiver comprando: — Mecanismo HTML5 sem código baseado em navegador que exporta para web, dispositivos móveis e desktop.
- Javascript Game Development: an Overview – Grant Goodale, Massively Fun
- Retained Mode Graphics Libraries – Kevin Moore, Pixel Lab
- Stupid Canvas Tricks – Dean Hudson, Massively Fun
- HTML5 port of Zepto Labs’ Cut the Rope – Joel Fillmore, Pixel Lab
- Challenges of building a native UIWebView application around an HTML5 webapp – Jeff Close, Adam Hardtke, Sean Stringer e Nate Vaughn, DDI
- Native wrapper technology: CocoonJS – Iker Jamardo, Ludei
- HTML5 game development for Windows 8 – Giorgio Sardo, Microsoft
- Game engine design around node.js and express.js – Dean Hudson e Mason Browne, Massively Fun
- Co+Pilot: a tool built using Javascript and a JQuery like syntax to allow users to make native apps – Myron Millin e David Whitlark
- Effective HTML5 Game Audio – Chris Khoo, Wappworks Studios
Todos esses tópicos e inúmeras palestras relâmpago e demonstrações de membros do grupo foram apresentados ao longo do ano. E, claro, também nos reunimos para o ocasional happy hour!
Um agradecimento muito especial à Double Down Interactive, Big Fish Games, GameHouse e The Makers Space por nos receberem!
Os Temas por Trás das Palestras
Olhando para trás nessa lista, alguns fios condutores ficam claros — e vale a pena nomeá-los, porque eles mapeiam quase exatamente as decisões que qualquer desenvolvedor HTML5 tem que tomar.
Renderização e a questão do modo retido. A palestra de Kevin Moore sobre bibliotecas gráficas de modo retido e os “Stupid Canvas Tricks” de Dean Hudson situam-se em lados opostos de uma verdadeira bifurcação arquitetônica. O desenho em canvas de modo imediato oferece controle total e overhead mínimo, mas você mesmo gerencia cada redesenho. Bibliotecas de modo retido (a linhagem que passa por frameworks como CreateJS, PixiJS e, posteriormente, Phaser) fornecem um gráfico de cena, hit testing e tweening prontos para uso — ao custo de uma camada de abstração entre você e a GPU. Nenhum dos dois está “correto”. A resposta certa depende se o seu jogo é um punhado de sprites ou um mundo complexo e com estado.
O problema do wrapper. Três palestras separadas — a sessão de UIWebView da DDI, a apresentação do CocoonJS de Iker Jamardo e o Co+Pilot — todas giraram em torno da mesma questão: como colocar um web app em uma loja de aplicativos? Em 2012, as opções eram aproximadamente:
| Abordagem | O que ela oferece | A contrapartida |
|---|---|---|
| Aplicativo web simples | Atrito zero, atualizações instantâneas | Sem presença em lojas, APIs de dispositivo limitadas |
| Wrapper WebView nativo | Distribuição em lojas, alguns hooks nativos | Teto de desempenho, incompatibilidade de UI com o chrome nativo |
| Wrapper acelerado (ex: CocoonJS) | Canvas acelerado por GPU, velocidade próxima à nativa | Dependência de fornecedor (lock-in), peculiaridades específicas da plataforma |
Essa tabela ainda é uma forma útil de pensar sobre a decisão hoje, embora as ferramentas específicas tenham evoluído.
Áudio. A palestra de Chris Khoo sobre áudio eficaz para jogos HTML5 foi, e continua sendo, um dos tópicos mais subestimados na área. O áudio é onde os jogos web quebram com mais frequência: políticas de reprodução automática, diferenças de suporte de codecs e a latência entre um gesto do usuário e o disparo real de um som. Se você está construindo um jogo hoje, reserve tempo real para o áudio — não é um problema de apenas “soltar um arquivo”.
JavaScript no lado do servidor. A palestra de Dean Hudson e Mason Browne sobre design de engines de jogo em torno de node.js e express.js foi um sinal precoce de que o servidor e o cliente poderiam compartilhar a mesma linguagem. Isso importa mais do que parece: código compartilhado para validação de estado do jogo, formatos de dados compartilhados e um único modelo mental em toda a stack.
Como aproveitar ao máximo um Meetup
Se você é novo nesse tipo de grupo — ou tem ficado apenas observando e ainda não apareceu — aqui estão os conselhos práticos que daríamos a qualquer pessoa.
- Venha com um problema específico. “Meu jogo está lento” gera simpatia. “Meu canvas perde frames quando desenho mais do que algumas centenas de sprites” gera uma resposta.
- Fale com a pessoa ao seu lado, não apenas com o palestrante. A palestra é a desculpa; a conversa no corredor é o valor.
- Faça uma lightning talk. Cinco minutos sobre algo que você aprendeu é a maneira mais rápida de se tornar alguém conhecido no grupo. Você não precisa ser um especialista — você só precisa ter resolvido uma coisa.
- Faça o acompanhamento. Troque informações de contato e envie, de fato, o link ou o snippet que você prometeu.
- Traga sua perspectiva de não desenvolvedor. Nossos artistas, PMs e administradores de rede fazem as perguntas que os desenvolvedores esquecem de fazer, e essas perguntas costumam ser as mais úteis na sala.
Construindo uma Comunidade Duradoura
Crescer de zero para 380 membros em um ano parece uma métrica de vaidade, mas o número que realmente importa é a retenção — quantas dessas pessoas voltaram. Algumas coisas que aprendemos sobre como manter viva uma comunidade técnica:
- Rotacione o conteúdo. Se cada reunião for um tutorial de canvas para iniciantes, seus membros experientes param de vir. Se cada reunião for otimização profunda de GPU, você perde os recém-chegados. Misture visões gerais, mergulhos profundos e demos.
- Mantenha a barreira para falar baixa. Lightning talks e demos de membros reduzem a pressão e revelam pessoas que jamais se voluntariariam para um slot completo.
- Alimente as pessoas, literalmente. Happy hours e refeições compartilhadas fazem mais pela coesão da comunidade do que qualquer quantidade de planejamento de agenda.
- Agradeça aos seus anfitriões publicamente. Double Down Interactive, Big Fish Games, GameHouse e The Makers Space nos cederam salas, e salas são o pré-requisito nada glamoroso para todo o resto.
- Torne-o acolhedor para todas as idades e origens. Nosso membro mais jovem tem 13 anos. Isso não é uma curiosidade — é um lembrete de que esta área tem uma barreira de entrada excepcionalmente baixa, e o grupo deve refletir isso.
Olhando para 2013
Parece ótimo, certo? Sobre o que você gostaria que falássemos em 2013? Onde você quer se encontrar?
Algumas direções sobre as quais estamos curiosos e adoraríamos a sua opinião:
- Desempenho e profiling móvel — como medir de fato para onde os frames estão indo, usando ferramentas de desenvolvedor do navegador e testes em dispositivos.
- Multijogador e networking — WebSockets, compensação de latência e as realidades complexas da sincronização em tempo real.
- Tooling e workflow — sistemas de build, pipelines de assets e como equipes pequenas entregam projetos sem um engenheiro de ferramentas dedicado.
- Física e colisão — quando usar uma biblioteca e quando escrever a sua própria.
- Acessibilidade e input — plataformas de teclado, toque e controle de movimento, e como suportar mais de uma sem dobrar o seu trabalho.
Responda abaixo com suas ideias ou tweet para @massivelyfun usando a hashtag #GameDevJS. Vejo você em breve!
Perguntas Frequentes
O que é o Seattle Game Dev JS?
É um grupo de meetup da região de Seattle para pessoas interessadas no desenvolvimento de jogos com JavaScript e HTML5. Ele reúne desenvolvedores, artistas, designers, gerentes de programa, administradores de rede e entusiastas de JS em geral para palestras, demos relâmpago e eventos sociais.
Preciso ser um desenvolvedor experiente para participar?
Não. O grupo mistura deliberadamente palestras de visão geral com mergulhos técnicos profundos, e os membros variam de um hobbyista de 13 anos a engenheiros profissionais em estúdios estabelecidos. Se você tem curiosidade sobre desenvolvimento de jogos em JS, você pertence a este grupo.
Como posso propor uma palestra ou sugerir um tópico?
Responda nos comentários deste post ou envie um tweet para @massivelyfun usando a hashtag #GameDevJS. Estamos procurando ativamente ideias de tópicos, sugestões de locais e propostas de palestrantes para 2013.
Que tipos de tópicos o grupo cobre?
Historicamente: técnicas de renderização e canvas, bibliotecas gráficas, wrappers nativos e distribuição em lojas de apps, áudio HTML5, desenvolvimento para Windows 8 e arquitetura de servidor node.js/express.js. Estamos interessados em expandir para profiling móvel, networking multijogador, tooling, física e acessibilidade.
Quem organiza as reuniões?
Fomos recebidos pela Double Down Interactive, Big Fish Games, GameHouse e The Makers Space, e somos gratos a todos eles. Se a sua empresa tiver espaço e quiser apoiar a comunidade local de desenvolvedores, adoraríamos entrar em contato.
Esse grupo é apenas sobre jogos?
O foco são os jogos, mas as habilidades se sobrepõem fortemente ao desenvolvimento geral de web e aplicativos — renderização de canvas, manipulação de áudio, wrappers nativos e arquitetura node.js, todos se aplicam muito além dos jogos. Muitos de nossos membros trabalham em projetos que não são de jogos.
Compartilhe isto: Twitter Facebook Google Pinterest Reddit
Leitura adicional
- HTML5 — Wikipédia
- Canvas element — Wikipédia
- Node.js — Wikipédia
- Meetup (service) — Wikipédia
Frequently asked questions
What is Seattle Game Dev JS?
It's a Seattle-area meetup group for people interested in JavaScript and HTML5 game development. It brings together developers, artists, designers, program managers, network admins, and general JS enthusiasts for talks, lightning demos, and social events.
Do I need to be an experienced developer to attend?
No. The group deliberately mixes overview talks with deep technical dives, and members range from a 13-year-old hobbyist to professional engineers at established studios. If you're curious about JS game development, you belong in the room.
How can I propose a talk or suggest a topic?
Reply in the comments on this post, or tweet @massivelyfun using the GameDevJS hashtag. We're actively looking for topic ideas, venue suggestions, and speaker pitches for 2013.
What kinds of topics does the group cover?
Historically: rendering and canvas techniques, graphics libraries, native wrappers and app-store distribution, HTML5 audio, Windows 8 development, and node.js/express.js server architecture. We're interested in expanding into mobile profiling, multiplayer networking, tooling, physics, and accessibility.
Who hosts the meetings?
We've been hosted by Double Down Interactive, Big Fish Games, GameHouse, and The Makers Space, and we're grateful to all of them. If your company has space and wants to support the local dev community, we'd love to hear from you.
Is this group only about games?
The focus is games, but the skills overlap heavily with general web and app development — canvas rendering, audio handling, native wrappers, and node.js architecture all apply well beyond games. Plenty of our members work on non-game projects. Share this: Twitter Facebook Google Pinterest Reddit <!-- citations:start --> Further reading - [HTML5](https://en.wikipedia.org/wiki/HTML5) — Wikipedia - [Canvas element](https://en.wikipedia.org/wiki/Canvas_element) — Wikipedia - [Node.js](https://en.wikipedia.org/wiki/Node.js) — Wikipedia - [Meetup (service)](https://en.wikipedia.org/wiki/Meetup_(serv
Aprenda a desenvolver jogos de acordo com sua programação
Cursos sob demanda cobrindo Unity, Unreal, C++, C# e programação de shader