Roman Shuvalov: "Se me ocurrió la idea de hacer un render 3D del mapa de OpenStreetMap"



Roman Shuvalov es un desarrollador de juegos independiente con sede en Togliatti que lanzó Generation Streets a principios de este año, basado en datos de OpenStreetMap. No hace mucho, abrió parte del código de su proyecto. ¿Por qué lo hizo, cómo apareció el juego y por qué la elección recayó en OSM? Roman contó todo esto en una entrevista.



- ¿Cómo y cuándo se enteró del proyecto OpenStreetMap?



- Sucedió hace unos 5 años, en 2014-2015, cuando buscaba soluciones que permitieran a los usuarios crear mapas para sus propias necesidades. En ese momento, ya tenía un pequeño proyecto web: un mapa de carreteras y caminos del bosque de Togliatti. Se hizo en el servicio Yandex.Maps, sobre el fondo estándar del cual se superpuso una capa vectorial con los objetos que necesitaba. Por cierto, esta capa se hizo sobre la base de las pistas GPS registradas por mí y los miembros de nuestro club de ciclismo. Era un poco como un mapa de calor de Strava. En algún momento, me di cuenta de que quería algo más y comencé a pensar en cómo actualizar mi tarjeta.







Como resultado, aprendí sobre OpenStreetMap. Cuando lo vi por primera vez, me sorprendió mucho: me llamó la atención la increíble apertura y flexibilidad del proyecto. No solo pude usar libremente sus datos iniciales, sino también participar en la elaboración del mapa, que fue muy importante para mí.



Gradualmente, usando las pistas GPS que tengo, rendericé el bosque de Togliatti y la infraestructura asociada en OSM . Después de que hice mi propio render, se puede ver en el mapa de bicicletas de la región de Samara.... Su peculiaridad radica en el hecho de que incluso a escalas pequeñas (a partir de 10) se muestran caminos y otros objetos que pueden ser útiles para un ciclista. Mientras que en las representaciones estándar en la escala 10 e incluso 12, el mapa tiene un nivel de detalle bastante bajo, lo que es especialmente notable cuando se intenta construir una ruta en bicicleta a través de campos y bosques.





Mapa de bicicletas de la región de Samara. Los pequeños senderos y asentamientos son visibles incluso a gran escala.



- ¿Por qué terminaste quedándote en el proyecto? Después de todo, podrían dibujar solo las pistas que necesita y eso es todo.



- Dibujar un mapa en OSM es una actividad peligrosa, ya que es increíblemente adictiva, entonces es difícil detenerla. ¿Cómo suele suceder? Marqué el camino, pero vi que había un edificio cerca, pero no estaba en el mapa. Adicional. Entonces me di cuenta de que todavía debe haber una acera y un camino detrás de ella ... Te impulsa la sensación de belleza: quieres que todo sea hermoso, y no solo en el lugar donde vives, sino en todas partes. Por eso me quedé en el proyecto. Es cierto, ahora no dibujo tanto como solía hacerlo, pero sigo lentamente haciendo que OSM sea más preciso. Básicamente, corrijo pequeñas inexactitudes o actualizo el mapa: agrego nuevos objetos que aparecen gradualmente en la ubicación que me interesa.



- ¿Por qué le interesa la cartografía? Aún así, un pasatiempo bastante inusual.



- Probablemente, esto provenga de un deseo interno de saber qué hay a tu alrededor, y mucho más allá de lo que tus ojos pueden ver. Y siempre tuve este sentimiento. Recuerdo que ya en la escuela secundaria experimenté con GIS, por ejemplo, escribí una aplicación en Delphi (entonces solo podía programar en ella) que construía un mapa tridimensional de la región de Samara. Además, en ese momento no había conjuntos de datos abiertos, o simplemente no sabía nada sobre ellos, y por lo tanto tomé los datos de elevación de un atlas de papel ordinario. Lo escaneé y construí un modelo 3D usando algún complemento. Por eso he tenido interés en la cartografía, o más bien en la visualización del mundo circundante, durante mucho tiempo.



- Hablemos de su juego 3D, Generation Streets, que se basa en datos de OSM. Como nació ella



- Notaré de inmediato que he estado desarrollando juegos desde 2010. En cuanto a este juego en particular, hace unos años, por accidente, se me ocurrió la idea: hacer una representación tridimensional de un mapa OSM. Y todo el planeta a la vez. Observé proyectos similares ya existentes ( F4map , OSM Buildings ), pero, desafortunadamente, ninguno de ellos me satisfizo, son demasiado esquemáticos. Quería un render más realista: con texturas, restos visuales en forma de árboles, linternas, etc. En una palabra, con ese sinsentido que no solemos advertir, pero sin el cual el mundo no parece vivo.







- ¿Y cómo empezaste a desarrollarte?



- De la búsqueda de un método para el procesamiento masivo de datos, ya que quería hacer todo el planeta de una vez. Me tomó mucho tiempo. Al principio intenté hacer esto a través de una base de datos basada en osm2vectortiles . Pero no funcionó porque tenía una computadora débil.



Al final, me decidí por dos pequeños programas: Osmconvert y Osmfilter . Para su trabajo, no se requiere elevar la base de datos. Toman datos OSM en formato PBF y le permiten cortar las piezas deseadas a través de parámetros de línea de comando. Así, tuve la oportunidad de cortar todo el planeta en mosaicos sin problemas innecesarios.



Pero inmediatamente me encontré con lo siguiente: el formato PBF no es del todo conveniente para generar renderizado tridimensional y, por lo tanto, fue necesario convertirlo en un formato adecuado para esto. Para hacer esto, tuve que escribir varias utilidades auxiliares, cuyo código fuente ya he presentado bajo una licencia gratuita en GitHub. Se basan en parte en la biblioteca ogr2ogr .



Como resultado, logré crear mi propio formato de mosaico vectorial, que, creo, es muy conveniente para leer dentro del renderizador y generar modelos 3D. Además, le permite combinar mosaicos en archivos grandes, lo que simplifica su almacenamiento. Gracias a esta función, no tengo miles de millones de archivos, sino solo unos pocos cientos.







- ¿Por qué decidió crear su propio formato? Supongo que ya hay soluciones listas para usar.



- Sí, tienes razón: ya existen formatos listos para usar, incluidos los vectoriales, por ejemplo, de Mapbox, pero la cuestión es que están enfocados en una imagen plana, bidimensional. Y tienen una característica desagradable: si un edificio golpea la unión de las baldosas, entonces se corta. Para mí, esto era absolutamente inaceptable, ya que para luego poder hacer un modelo 3D del edificio, tenía que estar completo. No había una solución preparada para este problema. Creo que nadie se ha encontrado con esto antes. Así que decidí hacer algo por mi cuenta.







- ¿Puedes compartir tus estadísticas sobre el juego? ¿Qué son las reseñas?



- Desde publicaciónjuegos en Steam (acceso temprano - octubre de 2018, lanzamiento "completo" - febrero de 2020) fue descargado por aproximadamente 3 mil personas. Para este tipo de juegos, el indie es bastante bueno. También es importante considerar el siguiente punto: el juego tiene una jugabilidad pobre. E inmediatamente me di cuenta de que en el marco de este proyecto no podría hacerlo más divertido. Por tanto, es lo que es.



El principal interés de este juego es que el usuario tiene la oportunidad de descargar un territorio interesante para él en el planeta Tierra y volar allí. La mayoría de los juegos no tienen esta opción. Por ejemplo, quienes viven en Nueva York se alegran habitualmente de que se haya lanzado otro juego en el que esta ciudad se ha recreado con suficiente detalle. Y es poco probable que aquellos que viven en Togliatti esperen el juego creado en las ubicaciones de su ciudad. Eso es exactamente en lo que apuesto.



Pero como muchos, además de la posibilidad de descargar su propia ciudad, también esperaban un juego cuidadosamente diseñado, recibí varias críticas negativas sobre esta parte. Son bien merecidos. Inicialmente estaba listo para esto, ya que mi juego no se trata de jugabilidad, no importa lo extraño que pueda sonar, sino de visualización de datos y la capacidad de volar a cualquier parte del mundo.







- Tu juego usa datos OSM. ¿Es posible editarlo a través de él?



- Inicialmente, quería incrustar el editor OSM, pero después de un pequeño experimento decidí no hacerlo. Durante un tiempo, los usuarios tuvieron la oportunidad de realizar modificaciones. Estas ediciones no fueron directamente a OSM, se "asentaron" en la base de datos local. Resultó que los jugadores estaban lejos del mundo OSM y, por lo tanto, reaccionaron de manera muy irresponsable al mapa. Ahora estoy pensando en deshabilitar incluso este editor experimental y enviar a todos los que quieran ir a JOSM.



- Por lo que tengo entendido, abriste el código de tu juego y lo publicaste con una licencia abierta. ¿Por qué hiciste esto? ¿Fue esta decisión difícil de tomar?



- No abrí todo el juego, solo el código responsable de generar modelos 3D. En primer lugar, lo hice para compartir mi trabajo con la comunidad, ya que sentía cierta deuda con él, porque yo mismo usaba código abierto, escrito por otros programadores. En segundo lugar, lo más probable es que ya no realice cambios serios en este producto, pero al mismo tiempo asumo que puede ser de interés para alguien e incluso alguien se comprometerá a desarrollarlo. En tercer lugar, quiero que se utilice mi código y que ayude a las personas a resolver sus problemas. Verá, habrá más proyectos relacionados con el renderizado 3D, y tal vez incluyan mi ciudad natal de Togliatti.







- ¿Qué le gusta de OSM?



- Me gusta la licencia abierta y la capacidad de obtener datos, no solo mosaicos listos para usar. Por ejemplo, hice un videojuego. Ningún otro servicio de mapas me permitiría hacer esto tan fácilmente. Como mínimo, tendría que ponerse en contacto con los desarrolladores y solicitar los datos iniciales. Y no estoy seguro de que los gigantes de la industria me hubieran encontrado a mitad de camino. Inmediatamente tomé y descargué todo el planeta e hice todo lo que necesitaba con él.

También me gusta que cualquiera pueda participar en el proyecto y hacer que el mapa sea más preciso. Editor de JOSMno tan dificil. Y al mismo tiempo, no necesita esperar hasta que sus ediciones sean aceptadas o aprobadas; tan pronto como las envíe, estarán inmediatamente en la base de datos principal, lo que significa que puede usarlas inmediatamente para sus necesidades. Por ejemplo, actualice el mapa en su navegador.



- ¿Que es no gustar?



- Abundancia y etiquetas no sistemáticas. Esto no siempre es bueno. Además, es hora de pensar en algo con compensaciones. A veces abres una ciudad y te das cuenta de que una persona la pintó sin tener en cuenta este matiz. Y no sabe qué hacer: ¿transferir todo o seguir dibujando en el offset incorrecto? Por supuesto, entiendo que el mundo es imperfecto, hay que superar algunos problemas. En términos generales, OSM tiene más ventajas que desventajas.



- ¿Qué se haría mejor?



- Me gustaría ver un buen editor web. Sí, ya existe un iD , pero está dirigido a principiantes. Quiero algo más cómodo. Además, me parece que sería mucho mejor si los objetos dentro del OSM estuvieran de alguna manera relacionados entre sí. Ahora bien, si se realizan cambios en la forma del edificio o en la posición de la carretera que pasa cerca, este cambio no afectará a los objetos vecinos de ninguna manera. Incluso si después del cambio, por ejemplo, la carretera comenzó a pasar por encima de la casa. Todavía no sé cómo se puede implementar exactamente una interacción de este tipo, pero me gustaría que estuviera disponible la información sobre las dependencias. Entonces, por ejemplo, las rutas de transporte público no se interrumpirían si se editara la carretera. Supongo que esto hará que los datos de OSM sean aún más convenientes para la edición y su uso posterior.



- ¿Utiliza OSM en su vida personal? ¿Para el trabajo? Además del juego.



- En la vida diaria, el uso de navegadores móviles OruxMaps y maps.me . Ambos están fuera de línea, es decir, te permiten trabajar con el mapa sin Internet, sus mapas están basados ​​en OSM. Lo que me gusta de OruxMaps es que también te permite usar tus propios mapas en formato vectorial mapsforge .



- ¿Qué consejo tienes para los principiantes? O aquellos que solo están pensando: involucrarse con el proyecto o no.



- Si está usando cualquier navegador móvil basado en OSM, considere comenzar a hacer el mapa que está usando, aún más preciso. Después de todo, muchos simplemente no saben que el mapa se puede editar directamente desde el teléfono.

Para aquellos que ya están familiarizados con OSM e incluso trazando un poco, el primer y principal consejo: antes de editar el mapa, lea WikiOSM . Casi todo está ahí. Esto le evitará muchos errores y también le permitirá adoptar la cultura del mapeo y ser más consciente de su responsabilidad con aquellos que luego usarán el mapa que está editando. Nunca olvide que los datos de OSM se utilizan en una gran cantidad de proyectos y, por lo tanto, siempre trate de mantener un alto nivel de calidad de los datos ingresados.



- ¿Qué dirás al final de la conversación?



- Tan fuerte como suena, en este momento OSM es el único proyecto cartográfico abierto y gratuito en el mundo. Es una alternativa independiente a los servicios cartográficos comerciales. Por eso es necesario participar en él y desarrollarlo de todas las formas posibles. Después de todo, si OpenStreetMap deja de existir, todos nos veremos obligados a utilizar mapas comerciales en los términos que alguien nos imponga. Y puedes olvidarte del uso gratuito de geodatos.






Los participantes rusos de OpenStreetMap se comunican en el chat de Telegram y en el foro .

También hay grupos en las redes sociales VKontakte , Facebook , pero principalmente publican noticias.



→ ¡ Únase a OSM!






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




All Articles