Não sei o que aconteceu comigo em não ter divulgado esse contest, já que vejo propaganda dele todo dia (talvez tenha sido por isso?). É mais um contest de gamedev que começou em fevereiro e vai até julho de 2008 e tem muitos, muitos prêmios! Já vi projetos de brasileiros concorrendo no contest.
Há prêmios de US$100,00 toda semana (escolha do público), além dos ‘big prizes’, como US$12.500,00, licenças de ferramentas Intel no valor de US$2.296,00, membership da IGDA, entrada pra GDC 2009 (all-access, que custa US$2.000,00!) e Austin GDC.
Algo que me chamou a atenção, inclusive me lembrando para publicar um texto sobre o contest no blog: “By July 1, 2008, enter a special coding or game design tip into the contest as an entry and be eligible for special judges’ prizes. These prizes include a Dell* Alienware* high-end gaming laptop (estimated value $2,000) and an Intel® Core™ 2 Extreme quad-core 45nm processor (estimated value $1,000).”
Ou seja, dando uma dica sobre código ou game design, você também participa do contest, sendo que as melhores dicas escolhidas por um júri especial valerão aos autores um notebook Alienware e um processador Intel Core 2 Extreme quad-core. Sei que tem leitores desse blog que podem participar nessa categoria!
Há dois meses atrás minha namorada me enviou um link de Stanford contendo um texto de Steve Jobs. Não vou comentar sobre o texto, apenas indico (ou insisto) a sua leitura. É uma daquelas coisas que queria compartilhar com quem lê esse blog mas acabei me atrasando em escrever sobre o mesmo.
Pois é, a notícia já é meio antiga (um mês em tempos de internet já é coisa velha, não?) e acabei esquecendo de postar para os interessados: no início do ano foi liberado o código-fonte do SimCity (o primeiro, não vá pensar que é o código-fonte do SimCity Societies!). Sob licença GPL, essa versão agora se chama Micropolis - título original do jogo - e não faz referência nenhuma ao SimCity para proteção da IP que agora é da Electronic Arts.
Em relação ao original, parece que a principal mudança é a linguagem, de C para C++ com Python e também a exclusão do desastre de avião, após o 9/11.
A Conitec lançou a versão 7.07 do GameStudio A7, com novas features como pós-processamento e coleção de shaders, um visualizador de shaders interativo, melhorias nos editores e novas funções da engine.
Outro post para os programadores. Dessa vez, venho descrever um probleminha que encontrei no porting de um jogo infantil de PC (feito em Director) para mobile (Java ME) e como solucionei o mesmo. O porting foi de um simples jogo de corrida, com um personagem controlado pelo jogador e outro pelo computador, sem nenhuma Inteligência Artificial avançada (nem intermediária, podemos dizer). Segue uma imagem do jogo:
O problema era referente a colisão do carro com as bordas das pistas, que são irregulares, e também com o oponente. Usar bounding boxes não produzia resultados satisfatórios, como vocês já devem ter percebido. E como os carros possuem 12 direções diferentes, usar AABB (axis-aligned bounding box) para eles também não era a solução. Então, tomei a seguinte decisão: os carros usariam OBB (oriented bounding box) e a colisão das bordas das pistas seriam definidas através de segmentos de reta.
Para os carros, como as direções/ângulos deles já estavam pré-definidas, não precisei recalcular de tempos em tempos o OBB de cada um, o que facilitou tanto na questão de código como de performance. Pré-defini um array de coordenadas (x,y) para cada direção do carro, que seriam adicionadas à posição (x,y) atual de cada carro. Para a pista, também usei valores pré-definidos, isto é, um array contendo as coordenadas (x,y) de todos os pontos que formam os segmentos de reta. A imagem abaixo mostra o jogo com meu ‘debug info’ ativado:
E uma screenshot sem imagem alguma do jogo, somente com informações de colisão, posição dos carros e caminho para o carro controlado pelo computador seguir. Note que não preciso ter as imagens do jogo para que o o mesmo seja jogável (embora precisei das imagens para definir as retas de colisão e caminho).
O que significa esse monte de linhas? Vamos lá… As retas e pontos em vermelho indicam o caminho que o carro controlado pelo computador deve seguir. IA super-ultra-mega-avançada! Tão avançado que o computador nem desvia do jogador (o jogo original era assim). Nada mais é que um path following…
As retas em amarelo são as retas de colisão para que o jogador não saia da pista. Na verdade eu uso o (x,y) de cada ponto para construir a reta e calcular a colisão. Em verde estão indicados os OBB dos carros. Opa! Mas há duas retas em verde que se cruzam. Fazem parte dos OBB dos carros? Não, essas retas indicam os setores da pista.
Eu dividi a pista em setores para diminuir a quantidade de checagem de colisão a cada quadro. Caso contrário, o processador precisaria calcular muita, mas muita colisão, deixando a performance do jogo lá na pqp. Verifico colisão apenas com os segmentos de reta de cada setor onde o jogador se encontra e, caso o oponente esteja em outro setor, não verifico colisão com ele.
Minha explicação foi clara? Para fechar o post, deixo o código que escrevi para a checagem de colisão entre os segmentos de reta, que foi o ‘core’ da implementação. O comentário está em inglês (já que trabalho com noruegueses) mas creio que dê para entender:
// int _11x means line 1, point 1, x
// int _11y means line 1, point 1, y and so on...
public boolean checkCollision(int _11x, int _11y, int _12x, int _12y, int _21x, int _21y, int _22x, int _22y) {
// equation of line 1 -> (_11y - _12y) * x - (_11x - _12x) * y = -(_11x * _12y) + (_12x * _11y);
// equation of line 2 -> (_21y - _22y) * x - (_21x - _22x) * y = -(_21x * _22y) + (_22x * _21y);
// We have two lines, AB and CD
// r1 = you should use point A into CD equation
// r2 = you should use point B into CD equation
// If the sign of r1 and r2 are different, then AB cross CD
// Then you should do the same for points C and D into AB equation
int line1R1 = (_11y - _12y) * _21x - (_11x - _12x) * _21y + (_11x * _12y) - (_12x * _11y);
int line1R2 = (_11y - _12y) * _22x - (_11x - _12x) * _22y + (_11x * _12y) - (_12x * _11y);
int line2R1 = (_21y - _22y) * _11x - (_21x - _22x) * _11y + (_21x * _22y) - (_22x * _21y);
int line2R2 = (_21y - _22y) * _12x - (_21x - _22x) * _12y + (_21x * _22y) - (_22x * _21y);
return( ((line1R1 >= 0) != (line1R2 >= 0)) && ((line2R1 >= 0) != (line2R2 >= 0)) );
}
É raro eu publicar algo sobre programação neste blog, não é? Acho que na verdade este é o primeiro post de programação que não é link para algum site com dicas, técnicas ou algoritmos. Nesse breve texto, o que quero expôr são três coisas que uso no dia-a-dia. Embora básicas, nem todo mundo sabe de suas existências ou não está acostumado a usá-las no código. Portanto, se você pegar algum código meu, é provável que você encontre o seguinte:
1) Operador shift-left << e shift-right >>
Todos falam que divisão é uma operação cara para o computador, certo? Então porque não usar operadores de deslocamento de bits? Algo que uso bastante em jogos é calcular a metade da largura da tela, mas ao invés de realizar uma divisão por 2, faço um shift-right por 1.
// idem à screenWidth / 2
int halfScreenWidth = screenWidth >> 1
Pense no shift-right como uma divisão por 2^n. Como usei o valor 1 no exemplo, estou realizando uma divisão por 2^1 = 2. Caso eu precisasse de 1/4 da largura da tela, faria screenWidth >> 2.
Já o shift-left é como uma multiplicação por 2^n. Mas e se eu precisar multiplicar um número por 13? Qual número que 2 elevado a esse número resulta em 13? Nenhum. Então decompomos o 13 em potências de 2:
Em algumas linguagens de programação sei que não existem tais operadores para incremento/decremento de variáveis, mas em C/C++, Java (e ActionScript) eles existem.
Creio que o código abaixo é comum em alguns projetos:
// Supondo que já declaramos um int counter = 0;
counter ++;
if(counter < 10) {
counter = 0;
}
O operador ? pode substituir o if, como no código abaixo:
// Supondo que já declaramos um int counter = 0;
counter = (counter >= 10) ? 0 : counter + 1;
Pense assim. Eu quero zerar a variável counter quando ela chegar ou passar de 10. Enquanto isso não acontece, aumento seu valor de um em um. O ternário ? é como uma pergunta: “A variável counter é maior ou igual a 10? Sim, então zera ela. Não? Então aumente seu valor.” Ou seja, quando a condição antes do símbolo de interrogação for verdadeira, use o valor antes dos dois pontos. Quando for falsa, use o valor depois dos dois pontos.
Note que com o operador ? verifico se counter é maior ou igual a 10, dada a ordem de execução do código.Admito que minha explicação não está detalhada e talvez seja melhor você fazer uma pesquisa para entender melhor esses conceitos. Mas espero que para os iniciantes em programação eu tenha trazido um conhecimento a mais.
Atualização: leia o primeiro comentário do Vinícius nesse post, sobre os operadores ++ e — em C++. E uma coisa que ele mencionou e que eu acabei esquecendo de escrever aqui: eu acostumei a programar desse jeito (apesar que não é sempre que faço isso) porque comecei na época do MS-DOS em que realmente algumas otimizações eram válidas. Hoje há quem diga que certas otimizações ficam piores que as mesmas feitas por compiladores e eu não vou discordar disso :-). Mas mesmo assim, ainda temos aplicações em que fazemos coisas como nos velhos tempos (por exemplo, fixed-point math para dar suporte à celulares MIDP 1.0, já que não possuem float).
De volta ao report sobre o SBGames 2007, depois de uma eternidade! Não lembra como foi a primeira parte do report? Leia aqui.
Depois da confusão do vôo e hotel, hora de ir pra Unisinos. De acordo com a agenda do evento, o credenciamento e evento em si começariam às 8hs da manhã. Mas onde? Sorte minha que o Douglas foi um dia antes e já sabia que o evento era no prédio da Biblioteca Geral (só não sabíamos exatamente onde ficava esse prédio, mas daí foi só perguntar pro motorista do ônibus em que ponto parar). Aliás, um dia antes do SBGames teve dois pré-eventos, o GDS Game Development School e o Blender Pro, que acabei não participando.
Não lembro ao certo quanto tempo a gente levava pra ir do hotel (centro de SL) até a Unisinos, mas fomos de trem (da estação São Leopoldo até a estação Unisinos, que é apenas uma estação de distância) e ônibus circular Unisinos gratuito. Vamos aos gastos: R$1,50 cada passagem de trem. Usei esse trem cinco vezes, então gastei R$7,50 de condução.
Perto do prédio da biblioteca eu encontrei o Roger e (provavelmente) o pessoal da Gamecultura, então sabia que estava no lugar certo. Fui fazer meu credenciamento e pagar R$85,00 pela inscrição (estudante não-membro da SBC). Feito isso, hora de se deslocar para o prédio Padre Werner e assistir ao primeiro keynote speaker: Nelson Zagalo, de Portugal, apresentando “A diversidade emocional nos videojogos”.
Como chegamos um pouco atrasado na Unisinos e ainda tinha o credenciamento, acabei perdendo o comecinho da palestra, mas não muito. Uma palestra muito boa, onde Nelson apresentou algumas estatísticas sobre quais emoções são provocadas nas pessoas através de jogos, resultado do seu doutorado. Acho muito interessante e importante essa questão psicológica aplicada em jogos e como isso pode atrair e determinar o público de um título – assunto pertinente a todas as áreas de gamedev sim, desde o game design até a implementação.
Ficou claro que “tristeza” é praticamente nula nos jogos. Ok, para não ser extremamente rígido nessa afirmação, Nelson mostrou um trecho de Max Payne em que a família do protagonista é morta na sua frente por bandidos, como exemplo onde foi possível detectar tristeza nos jogadores. Vale frisar que Nelson estava analisando emoções em momentos interativos, isto é, se o jogo consegue passar uma emoção através de cinematics, Nelson considera que o resultado é o mesmo que um filme. No caso de Max Payne, houve uma mistura entre interação e cinematic.
Nelson concluiu que por ora os jogos ainda são incapazes de produzir “tristeza interativa”, o que acaba reduzindo o público-alvo (mulheres não atraídas por jogos) e diminui o interesse por causa dos momentos não-interativos. Ele explicou muito mais do que escrevi aqui, mas para fechar meus comentários sobre o primeiro keynote speaker, seguem duas pequenas anotações que fiz:
“Attachment, break it!”, ou seja, uma possibilidade de causar tristeza é criar um laço entre personagens e depois quebrar o mesmo. Basta pensar em como qualquer um fica acabado quando uma pessoa querida morre ou quando um relacionamento acaba.
“Sadness and love in movies are produced by touch; game example: Ico”. Se você não jogou Ico de PS2, faça um favor a si mesmo: jogue e analise este ótimo trabalho!
Apesar do palestrante ser português, tudo foi apresentado em inglês. Ainda bem, pois o outro keynote speaker português falou tudo em português de Portugal e não consegui compreender várias partes da apresentação! Ah, e para quem tiver interesse, visite o site de Nelson Zagalo.
Após o primeiro keynote, hora de coffee-break e de mais credenciamento. Os computadores com os jogos do Festival de Jogos Independentes estavam bem próximos da mesa de credenciamento e do outro lado do térreo estavam anexos os pôsteres e o estande da Google (com direito a cadastro e sorteios e um folheto sobre recrutamento para trabalhar na empresa). Por curiosidade, entre o estande/pôsteres e credenciamento, havia uma espécie de exposição da própria universidade sobre vários temas… O que chamou atenção do pessoal que estava comigo foi um mural falando sobre o Padre Rambo (?).
Depois do coffee-break resolvi ir para a trilha de Arte e Design (Papers AD1, 10:30-12:00). Na agenda, estavam marcadas três apresentações no Papers AD1, todas pelo pessoal da Universidade Federal de Pernambuco. Infelizmente, apenas a “Prototipagem rápida para avaliação de game design” foi apresentada, pois os autores dos outros dois papers não estavam presentes no evento. Esses imprevistos acontecem e acabam sendo muito ruins, afinal, como existem várias palestras acontecendo ao mesmo tempo, às vezes você deixa de ver uma que queria para ver outra e a que você escolhe não acontece pelo palestrante ter faltado. Com isso, a trilha AD acabou mais cedo e em seguida tivemos o intervalo para almoço.
Sobre a apresentação do Felipe Breyer, seguem algumas fotos e anotações. Talvez sejam meio inúteis para vocês, mas quem sabe não ajude em algo?
Etapas:
1. Conceito do jogo (texto puro)
2. 1a versão funcional (versão “porca”, poucas features)
3. Versão Alpha (features ok + bugs)
4. Versão Beta (menos bugs, balanceamento)
5. Gold
Tipos de prototipagem:
- Rápida “descartável”
- Reutilizável / Evolucionária
- Modular / Incremental
- Horizontal (escopo mais amplo, esboço)
- Vertical (uma feature implementada a fundo)
- Baixa fidelidade
- Alta fidelidade
A Unisinos tem várias opções para refeição, incluindo um refeitório dividido entre “estudantes” e “os que têm dinheiro” (ao menos foi esse tipo de comentário que ouvi por lá). Fui na de estudantes, claro. Uma refeição com o básico arroz-feijão-carne-salada por menos de R$4,00, nada mal. Fim de almoço, de volta pro evento. Dessa vez fui pra trilha de Computação assistir a um tutorial “Ambiente de Simulação de Jogos RTS com foco na Inteligência Artificial” de Vicente Filho (Tutorial C2, 14:00-15:30).
O que você pensa quando lê o título desse tutorial? E sabendo que o que você está prestes a assistir é um tutorial? Eu fiquei decepcionado, ainda mais sendo um tutorial de uma hora e meia. Achei que o palestrante iria falar sobre técnicas de IA em RTS, implementações, problemas, etc. Algo mais prático, mais voltado pro mercado. Mas na minha opinião o tutorial acabou sendo uma explicação do que seria o RTSCup. Certo, o que é o RTSCup? Leia a descrição no site do projeto. Por ser tutorial de Computação, achei que ia ver algoritmos, diagramas e linhas de código sobre IA. Mas o projeto é um ambiente de simulação de RTS. Ou seja, um simulador para que você possa fazer testes e benchmarks de técnicas de IA em jogos RTS e avaliar os resultados. Fiquei pensando até que ponto um simulador desses seria útil ou utilizado por uma empresa, isto é, uma ferramenta que não é in-house para avaliar técnicas de IA em RTS… Quão útil seria pra você?
Fim do “tutorial”, segui para a apresentação de papers de Computação com foco em GPU e NPC’s (Papers C3, 14:10-15:30). Consegui ver a apresentação do Esteban, “The GPU used as a Math Co-Processor in Real-Time Applications” e “Implementação de Suporte a Modelos de Personagem Não-Jogador em Dispositivos Móveis na Mobile 3D Game Engine” do pessoal da FURB. Papers sempre são resumidos, mas acredito que para quem nunca chegou a programar usando mais de um processador foi possível se ter uma idéia de como o paralelismo funciona. Já o paper (e conclusão) sobre NPC’s 3D em dispositivos móveis… Achei muito pouco prático. Afinal, usar modelos 3D prontos de Quake (MD2) em um celular foi uma escolha meio estranha – ainda há uma limitação chata de memória nos aparelhos móveis e MD2 não foi criado pensando em tais limitações. Usar esses modelos prontos para testes e concluir que desempenho é ruim e altamente inviável é meio que óbvio (eu acho). O que poderia ser feito é criar modelos mais low-poly ainda (focando no que realmente é usado em mobile) e aí sim realizar os testes e conclusões.
Mais um coffee-break. Em seguida, uma sessão de “Fast Foward Short Papers” com apresentações muito criativas e engraçadas. A idéia era que autores de short papers (pôsteres) divulgassem seus trabalhos em um minuto, para que os interessados nos assuntos ficassem cientes que tais trabalhos estavam dispostos perto do local do coffee-break.
Em seguida, o “Opening Session” ou abertura oficial do evento para então o segundo keynote speak do evento: Licínio Roque da Universidade de Coimbra falando sobre “Participatory Media and the Design of Games as Learning Contexts”. Essa eu fico devendo para todos (inclusive para mim), pois o cansaço e sono foram mais fortes e eu acabei viajando durante mais da metade da palestra. Sabe quando você tenta ficar acordado, mas não consegue prestar atenção e também fica “pescando” de tempos em tempos? Além disso, apesar dele falar tudo em português, era português de Portugal e tinha muita coisa que eu acabava não compreendendo. Com o sono pra ajudar, piorou.
Seguem duas fotos da parte inicial do keynote. O assunto é interessante (games 3.0); autoração de jogos colaborativa e distribuída com certeza deverá ter um lugar no futuro, bastando ver como crescem as comunidades de mod’s de diversos jogos. Claro que o conceito de games 3.0 vai além dos mod’s, mas… (acho que preciso pensar e pesquisar mais sobre isso para concretizar melhor meu ponto de vista hehe). Ah sim, Licínio apresentou o projeto Zarabatana, como case do conteúdo apresentado.
No final do dia, houve o lançamento de dois livros abordando jogos eletrônicos: “LEVEL UP! - A Aventura numa Comunidade Virtual de RPG” (Ivelise Fortim, Editora Giz Editorial, ISBN 978-85-9982-264-7) e “Game On: jogos eletrônicos na escola e na vida da geração” (Filomena Moita, Editora Alínea, ISBN 978-85-7516-215-6), além de estarem vendendo o livro “Jogos Eletrônicos: Construindo Novas Trilhas”.
Um livro que ensina programação Java para pessoas de qualquer idade, dos 11 aos 80 anos? Existe? Pelo que parece, sim. Essa é a proposta do livro eletrônico “Java Programming for Kids, Parents and Grandparents”, gratuito para download em formato PDF.
Acho que vale a pena dar uma olhada, mesmo quem já iniciou em Java. É de graça, ué! A leitura é de fácil compreensão, com bastante figuras (nem parece um livro técnico) e ao final do livro o leitor acaba criando um jogo clone de Pong.
Olá a todos! Após cinco dias fora de São Paulo (e sem acessar internet, ou seja, não li e-mails nem publiquei novidades no blog), estou de volta. Conforme o último post, eu estive no SBGames 2007, que ocorreu na Unisinos em São Leopoldo/RS.
Decidi dividir o report do evento nas seguintes partes:
1) Antes do evento: como foi sair de SP e chegar até o hotel onde fiquei hospedado em São Leopoldo;
2) Dia 1: dia de credenciamento, primeiro keynote speaker, primeiras impressões, conhecendo Unisinos e RS;
3) Dia 2: Soren Johnson e a IA de Civilization IV, papers, tutoriais, festa Abragames incluindo a premiação do Festival de Jogos Independentes;
4) Dia 3: cansaço, Sony (SCEA) no Brasil e fim de evento;
5) Após o evento: de São Leopoldo para Gramado, Gramado para Porto Alegre, Porto Alegre para São Paulo. Conclusões finais.
Acho que com essa divisão há um alívio tanto para quem for ler o report como para quem está escrevendo. Claro que para os leitores isso pode ser ruim porque vão ter que aguardar eu escrever o report inteiro (e não vai ser algo de um dia pro outro, já avisando de antemão).
Ok, começando: porque falar sobre a ida até o evento e não apenas do evento em si? Acho legal compartilhar a experiência para que aqueles que pretendem ir às próximas edições do SBGames já saibam o que pode acontecer antes, durante e depois do evento. Claro que coisas diferentes acontecem com pessoas diferentes, mas ainda assim qualquer ponto de vista e experiência é válido.
Em primeiro lugar, uma vez que o evento foi em São Leopoldo/RS e eu nunca tinha ido pra lá (nem pra qualquer cidade de RS), como me virar pra chegar até o local? Como durante o expediente não pude sair caçando agências e vôos, a melhor opção pra mim foi contatar a agência de turismo parceira do evento, a Pegatur. Liguei para saber valores, datas e horários e rapidamente recebi todas as informações via e-mail. Como ia com um amigo e outro já estaria em Porto Alegre, pedi cotação para apartamento triplo de hotel em São Leopoldo. Fui atendido durante toda minha estadia em RS pela Vanessa Morschel e não tenho nada a reclamar – fui sempre muito, muito bem atendido e ela ajudou bastante na viagem, inclusive com dicas para passeio.
Para se ter uma idéia de gasto referente transporte e estadia: o vôo de São Paulo para Porto Alegre (21:45-23:15) custou R$ 289,00 + taxa de embarque e por sorte consegui uma promoção da Gol de volta (POA-SP, 17:10-18:40) por R$ 100,00 + taxa de embarque, o que totalizou R$ 428,24 de transporte aéreo. A diária do hotel Lábor Executivo foi de R$ 137,50 (apto. triplo) – como ficamos 3 dias neste hotel, cada um pagou uma diária. A Vanessa também nos forneceu a opção de transfer (marcado para 00:20) do Aeroporto POA para o hotel em São Leopoldo por R$ 15,00 por pessoa. O total inicial então ficou R$ 580,74.
Mas, pra variar… O vôo de ida teve problemas devido a um “degrau” na pista do aeroporto de Congonhas (segundo o comandante do vôo, que fez até comercial sobre o Neston Aveia Plus antes de partir). Sim, aquele mesmo aeroporto em que há um tempo atrás o vôo TAM 3054 atravessou uma avenida e acabou se chocando com um prédio, explodindo e matando toda a tripulação e passageiros a bordo, além de outras pessoas presentes no local do acidente. Realmente, aquele aeroporto é uma porcaria, a pista muito mal conservada! Depois de mais de uma hora de atraso, checagem no avião e comentários bizarros do comandante (quando o avião passou novamente no degrau, ele soltou um “Vocês sentiram? Então, esse é o degrau que comentei há pouco tempo atrás, para quem duvidava de mim.”), fomos pra pista de decolagem. Quando finalmente íamos decolar, as turbinas desaceleraram e o comandante nos informou: “infelizmente passou-se um minuto das 23hs e portanto, por mandado da Justiça Federal, não podemos decolar e o vôo foi cancelado. Pedimos desculpas pelo ocorrido.” Pois é. Vôo cancelado pois agora é proibido decolagens após as 23hs no aeroporto de Congonhas. Pra contornar o problema, a empresa forneceu transporte até o aeroporto de Cumbica, em Guarulhos (cerca de 40 minutos de Congonhas). Só decolamos efetivamente quando já era quase 1h da manhã. Chegamos ao aeroporto de Porto Alegre as 03:30. Acabei perdendo o transfer até o hotel e tive que pegar táxi. R$ 80,00 divididos entre eu e meu amigo. Ou seja, mais R$ 40,00 nos gastos, além do atraso de mais de 4 horas. Ah sim, entrei no quarto só depois das 4h da manhã.
Como vi que ia perder o transfer, liguei para a empresa responsável pela van que iria nos levar até o hotel informando o problema do vôo e eles falaram que era pra eu pedir reembolso na Pegatur. Nem precisei fazer isso e no dia seguinte recebi uma mensagem da Vanessa pelo celular pedindo pra passar na agência para pegar o dinheiro referente o transfer perdido (a agência fica dentro da Unisinos). Com essas mudanças, o valor gasto no primeiro dia com transporte e estadia foi de R$ 605,74.
Quase 5hs da manhã, hora de dormir um pouco porque às 8hs começava o credenciamento do SBGames na Unisinos. E em que parte da Unisinos ocorreria o evento?
Quem lê este blog provavelmente tem interesse na área de entretenimento, seja o de jogos eletrônicos ou de animação/artes. Se este for o seu caso e quer estar mais por dentro da indústria nacional, vale a pena participar de eventos que acontecem em todo o país. Quando o assunto é jogos eletrônicos, “o” evento do país é o SBGames. Ao menos para desenvolvedores e profissionais (e indies) da indústria. O SBGames é um simpósio anual que foca nas técnicas computacionais e artísticas e discussões sobre o mercado. Em sua sexta edição, conta agora com mais uma trilha, “Jogos & Cultura”.
Serão 3 dias (07-09/nov) com diversas atividades em paralelo: tutoriais, apresentações de posters e papers, debates sobre mercado/educação e keynote speakers (esse ano incluindo Soren Johnson, falando sobre a IA do Civilization).
Vou estar presente no evento e tentarei fazer anotações, tirar fotos e vídeos para então publicar um report aqui no blog.