Roman Shuvalov: "Tive a ideia de fazer uma renderização 3D de um mapa do OpenStreetMap"



Roman Shuvalov é um desenvolvedor independente de jogos baseado em Togliatti que lançou Generation Streets no início deste ano, baseado em dados do OpenStreetMap. Não faz muito tempo, ele abriu parte do código de seu projeto. Por que ele fez isso, como surgiu o jogo e por que a escolha recaiu sobre a OSM - Roman contou tudo isso em uma entrevista.



- Como e quando você ouviu falar do projeto OpenStreetMap?



- Aconteceu há cerca de 5 anos - em 2014-2015, quando estava em busca de soluções que permitissem aos usuários criar mapas para suas próprias necessidades. Naquela época, eu já tinha um pequeno projeto na web - um mapa de estradas e caminhos da floresta Togliatti. Ele foi feito no serviço Yandex.Maps, sobre o fundo padrão do qual uma camada vetorial com os objetos de que eu precisava foi sobreposta. A propósito, esta camada foi feita com base em trilhas de GPS gravadas por mim e pelos membros do nosso clube de ciclismo. Era um pouco como um mapa de calor Strava. Em algum momento, percebi que queria algo mais e comecei a pensar em como atualizar meu cartão.







Como resultado, aprendi sobre o OpenStreetMap. Quando o vi pela primeira vez, fiquei muito surpreso: fiquei impressionado com a incrível abertura e flexibilidade do projeto. Pude não só usar livremente seus dados iniciais, mas também participar do desenho do mapa, o que foi muito importante para mim.



Gradualmente, usando as trilhas de GPS que tenho, renderizei a floresta Togliatti e a infraestrutura associada no OSM . Depois de fazer meu próprio render, ele pode ser visto no mapa de bicicleta da região de Samara... Sua peculiaridade é que mesmo em pequenas escalas (a partir de 10) são exibidos caminhos e outros objetos que podem ser úteis ao ciclista. Enquanto em renderizações padrão na 10ª e até na 12ª escala, o mapa tem um detalhe bastante baixo, o que é especialmente perceptível ao tentar construir uma rota de ciclismo através de campos e florestas.





Mapa de bicicleta da região de Samara. Pequenas trilhas e assentamentos são visíveis mesmo em grande escala.



- Por que você acabou ficando no projeto? Afinal, eles poderiam traçar apenas os caminhos de que você precisa e é isso.



- Desenhar um mapa no OSM é uma atividade perigosa, pois é incrivelmente viciante, então é difícil de parar. Como isso geralmente acontece? Marquei o caminho, mas vi que havia um prédio próximo, mas não estava no mapa. Adicionado. Então percebi que ainda deve haver uma calçada e uma estrada atrás dela ... e assim por diante. Você é movido pelo sentimento de beleza: você quer que tudo seja belo, e não apenas no lugar onde você mora, mas em qualquer lugar. Por isso fiquei no projeto. É verdade que agora não desenho tanto quanto antes, mas ainda lentamente continuo a tornar o OSM mais preciso. Basicamente, eu corrijo pequenas imprecisões ou atualizo o mapa - adiciono novos objetos que aparecem gradualmente no local de interesse para mim.



- Por que você se interessa por cartografia? Ainda é um hobby bastante incomum.



- Provavelmente, isso vem de um desejo interior de saber o que está ao seu redor, e muito mais longe do que seus olhos podem ver. E sempre tive essa sensação. Lembro que já no ensino médio fiz experiências com SIG, por exemplo, escrevi um aplicativo em Delphi (naquela época eu só podia programar nele) que construía um mapa tridimensional da região de Samara. Além disso, naquela época não havia conjuntos de dados abertos ou eu simplesmente não sabia nada sobre eles e, portanto, peguei os dados de elevação de um atlas de papel comum. Eu fiz a varredura e construí um modelo 3D usando algum plugin. Portanto, há muito tempo me interesso pela cartografia, ou melhor, pela visualização do mundo circundante.



- Vamos falar sobre o seu jogo 3D, Generation Streets, que é baseado em dados OSM. Como ela nasceu?



- Noto desde já que venho desenvolvendo jogos desde 2010. Quanto a este jogo em particular, há alguns anos, quase por acaso, surgiu a ideia - fazer uma renderização tridimensional de um mapa OSM. E todo o planeta de uma vez. Eu olhei para projetos semelhantes já existentes ( F4map , OSM Buildings ), mas, infelizmente, nenhum deles me satisfez - eles são muito esquemáticos. Queria um render mais realista: com texturas, detritos visuais em forma de árvores, lanternas, etc. Em uma palavra, com aquele absurdo que normalmente não percebemos, mas sem o qual o mundo não parece vivo.







- E como você começou a desenvolver?



- Da busca de um método de processamento de dados em massa, já que queria fazer o planeta inteiro de uma vez. Levei muito tempo. A princípio tentei fazer isso por meio de um banco de dados baseado em osm2vectortiles . Mas não funcionou porque meu computador estava fraco.



No final, decidi por dois pequenos programas: Osmconvert e Osmfilter . Para seu trabalho, não é necessário aumentar o banco de dados. Eles pegam dados OSM no formato PBF e permitem que você corte as partes desejadas por meio de parâmetros de linha de comando. Assim, tive a oportunidade de cortar todo o planeta em ladrilhos sem problemas desnecessários.



Mas eu imediatamente me deparei com o seguinte: o formato PBF não é totalmente conveniente para gerar renderização tridimensional e, portanto, foi necessário convertê-lo em um formato adequado para isso. Para fazer isso, eu tive que escrever vários utilitários auxiliares, cujo código-fonte eu já coloquei sob uma licença gratuita no GitHub. Eles são parcialmente baseados na biblioteca ogr2ogr .



Como resultado, consegui criar meu próprio formato de bloco vetorial, o que, eu acho, é muito conveniente para ler dentro do renderizador e gerar modelos tridimensionais. Além disso, permite combinar blocos em grandes arquivos, o que simplifica o seu armazenamento. Graças a esse recurso, não tenho bilhões de arquivos, mas apenas algumas centenas.







- Por que você decidiu criar seu próprio formato? Presumo que já existam soluções prontas.



- Sim, tem razão: já existem formatos prontos, inclusive os vetoriais, por exemplo, do Mapbox, mas a questão é que estão focados em uma imagem plana - bidimensional. E eles têm uma característica desagradável: se um edifício atinge a junção dos azulejos, ele é cortado. Para mim, isso era absolutamente inaceitável, pois para que mais tarde eu pudesse fazer uma maquete 3D do edifício, ele tinha que ser completo. Não havia uma solução pronta para esse problema. Eu acho que ninguém viu isso antes. Então, decidi fazer algo meu.







- Você poderia compartilhar suas estatísticas sobre o jogo? Quais são as críticas?



- Desde a publicaçãojogos no Steam (acesso antecipado - outubro de 2018, lançamento "completo" - fevereiro de 2020) foi baixado por cerca de 3 mil pessoas. Para este tipo de jogo, indie é muito bom. Também é importante considerar o seguinte ponto: o jogo tem jogabilidade ruim. E imediatamente percebi que no âmbito deste projeto não seria capaz de torná-lo mais divertido. Portanto, ele é o que é.



O principal interesse neste jogo é que o usuário tenha a oportunidade de baixar um território interessante para ele no planeta Terra e voar até lá. A maioria dos jogos não tem essa opção. Por exemplo, aqueles que vivem em Nova York regularmente se alegram com o lançamento de outro jogo em que esta cidade foi recriada com detalhes suficientes. E quem mora em Togliatti dificilmente vai esperar pelo jogo criado nas localidades de sua cidade. É exatamente nisso que aposto.



Mas como muitos, além da capacidade de baixar sua própria cidade, também esperavam uma jogabilidade cuidadosamente projetada, recebi várias críticas negativas nesta parte. Eles são bem merecidos. Eu estava inicialmente pronto para isso, já que meu jogo não é sobre jogabilidade, por mais estranho que pareça, mas sobre visualização de dados e a habilidade de voar para qualquer lugar do mundo.







- Seu jogo usa dados OSM. É possível editá-lo por meio dele?



- Inicialmente, eu queria incorporar o editor OSM, mas após um pequeno experimento decidi não fazê-lo. Por um tempo, os usuários tiveram a oportunidade de fazer edições. Essas edições não foram diretamente para o OSM, elas "se estabeleceram" no banco de dados local. Descobriu-se que os jogadores estão longe do mundo OSM e, portanto, reagiram de forma muito irresponsável ao mapa. Agora estou pensando em desligar até mesmo este editor experimental e mandar todos que quiserem ir para o JOSM.



- Pelo que entendi, você abriu o código do seu jogo e o postou sob uma licença aberta. Por que você fez isso? Esta decisão foi difícil de tomar?



- Não abri o jogo inteiro, apenas o código responsável pela geração dos modelos 3D. Em primeiro lugar, fiz isso para compartilhar meu trabalho com a comunidade, pois me sentia em dívida com ela, pois eu mesmo utilizava open source, escrito por outros programadores. Em segundo lugar, muito provavelmente, não farei mais alterações sérias neste produto, mas ao mesmo tempo suponho que pode ser do interesse de alguém e até mesmo alguém se comprometerá a desenvolvê-lo. Terceiro, quero que meu código seja usado e ajude as pessoas a resolver seus problemas. Veja, haverá mais projetos relacionados à renderização 3D, e talvez eles incluam a minha cidade natal, Togliatti.







- O que você gosta no OSM?



- Gosto da licença aberta e da capacidade de obter dados, não apenas blocos prontos. Por exemplo, fiz um videogame. Nenhum outro serviço de mapas me permitiria fazer isso tão facilmente. No mínimo, você teria que entrar em contato com os desenvolvedores e solicitar os dados iniciais. E não tenho certeza se os gigantes da indústria teriam me encontrado na metade do caminho. Imediatamente peguei e baixei o planeta inteiro e fiz tudo o que precisava com ele.

Também gosto que qualquer pessoa possa participar do projeto e deixar o mapa mais preciso. Editor JOSMnão é tão difícil. E ao mesmo tempo, você não precisa esperar até que suas edições sejam aceitas ou aprovadas - assim que você as envia, elas ficam imediatamente no banco de dados principal, o que significa que você pode usá-las imediatamente para suas necessidades. Por exemplo, atualize o mapa em seu navegador.



- O que há para não gostar?



- Abundância e etiquetas assistemáticas. Isso nem sempre é bom. Além disso, é hora de criar algo com compensações. Às vezes você abre uma cidade e percebe que uma pessoa a pintou sem levar em conta essa nuance. E você não sabe o que fazer: transferir tudo ou continuar desenhando no offset errado? Claro, eu entendo que o mundo é imperfeito, você tem que superar alguns problemas. De modo geral, o OSM tem mais vantagens do que desvantagens.



- O que seria melhor feito?



- Eu gostaria de ver um bom editor web. Sim, já existe um ID , mas é voltado para iniciantes. Eu quero algo mais confortável. Além disso, parece-me que seria muito melhor se os objetos dentro do OSM estivessem de alguma forma relacionados entre si. Agora, se alguma mudança for feita na forma do edifício ou na posição da estrada que passa por mudanças próximas, então essa mudança não afetará os objetos vizinhos de forma alguma. Mesmo que após a mudança, por exemplo, a estrada começou a passar por cima da casa. Não sei exatamente como essa interação pode ser implementada, mas gostaria que informações sobre dependências estivessem disponíveis. Assim, por exemplo, as rotas de transporte público não seriam interrompidas se a estrada fosse editada. Suponho que isso tornará os dados OSM ainda mais convenientes para edição e uso posterior.



- Você usa OSM na sua vida pessoal? Para trabalho? Exceto pelo jogo.



- Na vida diária, usando navegadores móveis OruxMaps e maps.me . Ambos estão offline, ou seja, permitem que você trabalhe com o mapa sem a Internet, seus mapas são baseados no OSM. O que eu gosto no OruxMaps é que ele também permite que você use seus próprios mapas em formato vetorial de mapsforge .



- Que conselho você daria para iniciantes? Ou aqueles que estão apenas pensando: se envolver com o projeto ou não.



- Se você estiver usando qualquer navegador móvel baseado em OSM, considere começar a fazer o mapa que você está usando, a propósito, com ainda mais precisão. Afinal, muitos simplesmente não sabem que o mapa pode ser editado diretamente do telefone.

Para quem já está familiarizado com o OSM e até mesmo com um pouco de gráficos, o primeiro e principal conselho é - antes de editar o mapa, leia o WikiOSM . Quase tudo está lá. Isso evitará muitos erros e também permitirá que você adote a cultura do mapeamento e fique mais ciente de sua responsabilidade para com aqueles que usarão o mapa que você está editando. Nunca se esqueça que os dados OSM são utilizados em um grande número de projetos, por isso sempre tente manter um alto nível de qualidade dos dados inseridos.



- O que você dirá no final da conversa?



- Por mais alto que possa soar, no momento OSM é o único projeto cartográfico aberto e gratuito do mundo. É uma alternativa independente aos serviços de mapeamento comercial. É por isso que você precisa participar dela e desenvolvê-la de todas as formas possíveis. Afinal, se o OpenStreetMap deixar de existir, todos seremos forçados a usar mapas comerciais nos termos que alguém nos imporá. E você pode esquecer o uso gratuito de geodados.






Os participantes russos do OpenStreetMap se comunicam no chat do Telegram e no fórum .

Também existem grupos nas redes sociais VKontakte , Facebook , mas principalmente publicam notícias.



Junte-se ao OSM!






Entrevistas anteriores:
, , , , , , , , , , , , , , , , , wowik, SviMik, , , , , , aka BANO.notIT, , , , , .




All Articles