reinterpretcat / utymap

Highly customizable library for procedural world generation based on real map data
Apache License 2.0
958 stars 151 forks source link

Implement Unreal Engine demo app #110

Open reinterpretcat opened 7 years ago

reinterpretcat commented 7 years ago

Theoretically, there is no problem with core library usage on this platform, but it requires new intermediate level implementation. It would be nice to have some at least simple example which demonstrates single tile loading from existing map data.

RaceTheMaSe commented 7 years ago

I am also very interested to get UtyMap working in Unreal Engine. Here is a little demo project to get one layer of the test case map loaded. Its just to show the way and how the Unreal build environment is setup. It could be moved to a plugin and needs a proper layer like your Unity library. It uses globbal variables, which should be avoided, but that needs a way to bind a class function to the Utymap API.

As the core library is C+11 code, could you propose a way to implement the Unreal layer to be as close to your Unity layer and I am happy to help implement it.

RaceTheMaSe commented 7 years ago

Today Epic's technical director for the Unreal Engine has release a "weekend project" of an OSM to Unreal importer. Hoepfully its useful to great performing Unreal Engine integration of UtyMap.

Repo: https://github.com/ue4plugins/StreetMap

Happy new year!

reinterpretcat commented 7 years ago

Thanks for sharing!

Screenshots look cool, but I briefly checked source code and personally I don't like his code style. In my opinion it will be quite difficult to maintain existing approach of OSM data processing:

https://github.com/ue4plugins/StreetMap/blob/master/Source/StreetMapImporting/OSMFile.cpp

My adopted mapcss is not ideal, but it encapsulates differences outside of C++ source code.

RaceTheMaSe commented 7 years ago

I made progress on the UnrealEngine integration! Its in a solid state to be looked at by you. I have learned a lot working on it. Please take a look and lets me know how to get it cleaner and better structured.

Branch: https://github.com/RaceTheMaSe/UtyMapUnreal.git

reinterpretcat commented 7 years ago

Cool! On your screenshoots it looks even better than on mine :-D At some point, it might make sense to integrate your work into utymap repository - the project structure already allows that with minor changes. Things to be considered before doing that:

What do you think?

RaceTheMaSe commented 7 years ago
reinterpretcat commented 7 years ago

General idea is to run automated tests for every commit (or pushed set of commits) to monitor build state: https://travis-ci.org/reinterpretcat/utymap

I chose boost unit test framework because boost libraries are already used by production code (mostly for parsing mapcss with boost spirit) and I'm trying to have as less dependencies as possible to simplify setup.

So far, I'm working hard to finish my current idea - some kind of full functional map control which supports zoom levels from orbit till ground. Will think about moving logic down after that.