Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Unreal Engine demo app #110

Open
reinterpretcat opened this issue Dec 3, 2016 · 7 comments
Open

Implement Unreal Engine demo app #110

reinterpretcat opened this issue Dec 3, 2016 · 7 comments

Comments

@reinterpretcat
Copy link
Owner

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.

@reinterpretcat reinterpretcat changed the title Implement Enreal Engine demo app Implement Unreal Engine demo app Dec 3, 2016
@RaceTheMaSe
Copy link

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
Copy link

RaceTheMaSe commented Jan 1, 2017

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
Copy link
Owner Author

reinterpretcat commented Jan 1, 2017

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
Copy link

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
Copy link
Owner Author

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:

  • Covering with unit tests essential functionality which is unique for unreal engine project
  • Integrate these unit tests into current CI environment (see travis script)
  • Restructure unity and unreal engine projects to use the same resources from unity and unreal engine (e.g. textures, mapcss)
  • Push down common functionality as much as possible from unity library to native (e.g. downloading data, tile controller, etc.). This is the most difficult part which requires some investigation but it will allow us to spend significantly less time on writing duplicate functionality for unity/UE projects.

What do you think?

@RaceTheMaSe
Copy link

  • What test framework should be used? Unreal has its own Automation and Test framework (https://docs.unrealengine.com/latest/INT/Programming/Automation/) and you are using Boost Unit tests IIRC.
  • Also I have no experience with Travis CI yet, but it doesn't look to complicated
  • Ressources in Unreal need to reside in the /Content folder to be detected. So one solution would be symlinks or copy scripts from a common ressource folder
  • Pushing down common functionality is a great idea! Both Unix and Windows socket libraries need to be implemented to be able to run on all major platforms.

@reinterpretcat
Copy link
Owner Author

reinterpretcat commented Mar 17, 2017

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants