Um plugin permite converter mapas de cidades reais em cenários de videogames

Que tal um Motoboy Simulator baseado nas ruas da cidade de São Paulo?

Matheus Gonçalves
Por
• Atualizado há 1 semana

Um desenvolvedor chamado Mike Fricker desenvolveu um plugin para importar mapas do OpenStreetMap, uma biblioteca de mapas de código aberto, para projetos do Unreal Engine 4. O que isso significa? Que será possível criar games com mapas de cidades reais, renderizando até mesmo detalhes das ruas e seus prédios — e com uma dificuldade bem menor que fazer tudo do zero.

Por exemplo, veja abaixo como ficariam Brooklyn e Manhattan, em Nova York, importados para um projeto do UE4:

Se a gente já fica maravilhado ao jogar GTA V, em sua versão aproximada de Los Angeles, ou Watch Dogs 2, em uma verdadeira homenagem a São Francisco, imaginem então se os mapas fossem réplicas fiéis das cidades e das regiões ao redor dessas metrópoles? Ou de praticamente qualquer outro lugar do mundo?

O passo a passo para importar os dados de uma localização que você quiser é simples. Abra o OpenStreetMap e use a ferramenta de pesquisa para navegar até seu lugar favorito no planeta Terra. Lunáticos e Marcianos ainda precisarão esperar a nova versão. Depois:

  • Clique no botão “Export”, na barra superior para entrar no modo de Exportação de mapas;
  • Use o zoom e o scroll para que a área desejada ocupe o quadrante no lado direito. Certifique-se de começar com algo razoável para que o tamanho do download não seja lá muito grande;
  • Quando tudo estiver pronto, clique no botão Export no lado esquerdo da tela. O OpenStreetMap vai gerar um arquivo XML e iniciar o download;
  • Se você receber uma mensagem de erro, pode ser que os servidores do OpenStreetMap estejam com muito tráfego para realizar sua requisição. Isso aconteceu comigo quatro vezes. Tente clicar na opção “Overpass API”, que vai tentar realizar o download de um servidor espelho;
  • Lembre-se de renomear a extensão do arquivo para “.osm”;
  • Você pode baixar arquivos XML com dados do OpenStreetMap de diversos outros sites, inclusive. Mas o plugin só foi testado com arquivos exportados diretamente pelo OpenStreetMap.

Por exemplo, daria pra importar um mapa de São Paulo e criar um jogo em suas ruas. Por que não?

Precisam de ideias? Que tal um Motoboy Simulator? Um jogo de gerenciamento urbano como SimCity, mas com capitais brasileiras? Jogos de esportes, como poder correr a São Silvestre, ou uma corrida de kart nas ruas do lado de casa? Ou andar de skate e fazer manobras em objetos que você vê todos os dias em seu bairro? Ou um jogo estilo de luta na pegada Taxi Driver vs. Uber Driver? Mentira, não façam isso.

Mas, falando sério agora, dá até para desenvolver um jogo de remodelamento urbano e fazer a simulação das modificações propostas. Ou um artista planejar seus grafites em paredes virtuais e apresentar para os proprietários ou órgãos competentes antes de ir à rua. Ou simulação e prevenção de catástrofes. Se a gente parar para pensar no potencial que isso pode ter, vamos encontrar muitas coisas legais.

Claro que ainda existem algumas limitações: para começar a brincar, é preciso ter instalado o Visual Studio e ter ao menos um projeto em C++ ou o código-fonte do Unreal Engine 4, e não dá para importar arquivos maiores que 2 GB (o que significa que você não vai conseguir importar o mapa da América do Sul inteira, por exemplo).

Também há alguns problemas conhecidos, como erros ao tentar importar variantes do XML OSM (que use delimitadores de aspas simples), a incompatibilidade com Blueprint scripting e, talvez o mais crítico pra mim, que é a falta de um mecanismo que gere as informações dos colisores nos prédios e objetos renderizados.

Se ficou confuso, colisores são usados para delimitar os objetos e colocar em prática aquela coisa de “dois objetos não podem ocupar o mesmo lugar no espaço”. Sabe quando você tá jogando e parte do corpo do seu personagem “entra” na parede? Então, é um bug de colisores.

Para corrigir isso seria necessário alterar o importador para gerar os assets da malha estática para os elementos geométricos do mapa. Aliás, segundo Mike, qualquer desenvolvedor está mais que convidado a colaborar com o projeto, que já está no GitHub. Basta procurar pela notação @todo dentro do código fonte, ou mesmo provendo feedback na área de problemas e bugs encontrados.

É apenas um primeiro passo, evidentemente. Esses códigos precisarão ser polidos antes de termos uma versão estável e comercialmente viável. Além disso, mesmo os computadores mais avançados ainda teriam sérios problemas de performance ao tentar renderizar um ambiente inteiro de uma cidade dessa magnitude. De qualquer forma, segundo o mano Moore, é só uma questão de tempo. Nem que seja na base do nanotubo de carbono.

Na pior das hipótese, estamos dando às inteligências artificiais mais uma maneira de aprender ainda mais sobre os ambientes nos quais nós humanos vivemos. Que mal isso poderia ter? Brincadeiras à parte, eu vejo bem mais benefícios possíveis nessa balança imaginária.

Feliz 2017 e seja bem-vindo ao futuro. De novo.

Receba mais notícias do Tecnoblog na sua caixa de entrada

* ao se inscrever você aceita a nossa política de privacidade
Newsletter
Matheus Gonçalves

Matheus Gonçalves

Ex-redator

Matheus Gonçalves é formado em Ciências da Computação pelo Centro Universitário FEI. Com mais de 20 anos de experiência em tecnologia e especialização em usabilidade e game development, atuou no Tecnoblog entre 2015 e 2017 abordando assuntos relacionados à sua área. Passou por empresas como Itaú, Bradesco, Amazon Web Services e Salesforce. É criador da Start Game App e podcaster do Toad Cast.

Relacionados