Início » Games » Um plugin permite converter mapas de cidades reais em cenários de videogames

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?

Por
33 semanas atrás
Já conhece a nova extensão do Tecnoblog? Baixe Agora

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.

  • Wagner Sabor

    Caraca!!! Sensacional!!! São realmente possibilidades demais a serem exploradas, tanto na área de games quanto nos outros exemplos citados no texto, ou coisas que ainda nem passaram pelas nossas cabeças!!! Vou me inteirar deste assunto!

  • Diego F. Duarte

    Utilidades q enxergo:
    – simuladores de autoescola simulando o ambiente “real” da cidade
    – mapas de cs ambientados na cidade. E viva o CS:Uai, lol!

    • Johnny Walker Junior

      Esqueceu os simuladores de guerra urbana, Jogos tipo fly simulator e etc.
      Aliás, seria útil até para reengenharia urbana.

  • Roger Martins

    MUITO BOM!

  • Ramon Gonzalez

    Caramba, esse artigo podia ter sido tranquilamente incluído na tag “especial”. Muito bom!

    A ideia do Motoboy Simulator foi ótima tbm!! Eu jogaria!!

  • Fabio Lapuinka
    • Pô, cara, que legal isso!! Vc tem o passo-a-passo pra fazer essa importação do mapa no Blender em algum post? Bacana o projeto.

      • Fabio Lapuinka

        N’ao bem um passo a passo, mas a lista de coisas q vc precise…
        http://lapuinka.blogspot.com.br/2016/11/create-your-own-osrm.html

        vc tem q aprender a fazer um servidor de OpenStreet Maps antes… o blender tem um pluggin q vc baixa, da bastante trabalho, mas vc aprende um monte de conceitos.
        Tem q ter Hardware…

        • andre rizzo

          em que tipo de Hardware estamos falando aqui?

  • Maurício Eugênio

    coroi

  • Marcello Gomes

    O meu Unreal Engine não reconheçe a extensão .OSM, o que fazeR?