Creating a very detailed open world city map

Hey Everyone,

Actually, we are trying to create our own open-world game with a specific and detailed city map. Our team has created a 2d map in AutoCAD. The map shows each and every detail (even the number of the land parcel.)

We would like to use that map for our game. What is the best workflow that you suggest?
Should we convert it into a 3d model using 3ds Max and directly import it into UE5.

Or should we create it manually in unreal engine 5 or is there any other workflow?

Please let us know the best workflow for this
Thanks

2 Likes

A workflow that converts to 3D using tooling that you know (Max is OK, or even AutoCad 3D might work) and exports some manifest of “asset name, position, orientation” that you can import into the world, would probably work best.

You will need to work with Datasmith and your CAD tool to figure out what the best way to get the data out would be. You’ll need to write some small amount of tooling for the Unreal editor to import your manifest and turn it into level actors and assets, potentially updating previously-imported actors/assets.

Finally, for workflow, you may want to split your world into sectors, where there’s a separate manifest for each sector. Some tag on the original data that you figure out would tell the system which object goes into which sector. That way, you can separate each sector into a separate sub-level/map, which is great both for level streaming, source control, and general sanity.

Beware that going from 2D footprint to believable, good looking, varied 3D models is a lot of work – potentially significantly more work than the initial work to make the 2D footprint outline (assuming that’s what you’ve made so far.)

Thanks for your help.

We were just wondering, instead of creating manifest file can we use the world partition feature in UE5?

Looking forward to hearing from you
Thanks

Those solve different problems.

The manifest file solves the problem of “in a particular area, which models should be loaded into Unreal, and where are they placed?”

The world partition feature solves the problem of “once things are placed in the world, given a particular area of interest, which things should be loaded/shown?”

The alternative to using a manifest file, is to manually import each mesh and manually type in the coordinates of where they go – or hand-place them.

It’s also possible to export all the houses for a particular area built into a single big mesh. And, with Unreal 5, Nanite could probably do an OK job of rendering that. But the workflow in general of that model will generally be more cumbersome, both for multiple people trying to edit nearby houses together, and for getting only changed/updated assets back into the level, without blowing everything else away.

Thanks for your answer. We really appreciate it.

To be more clear we are developing an open world metaverse. So right now we are trying to import a city map with only the land parcels, roads and landscapes (no buildings). Furthermore, we are trying to develop a builder tool using which a player can develop his own 3d digital building on a land parcel located in the city using 3d modular assets from our library.

Every digital asset created by the players would be stored on the blockchain

Are there any suggestions from you side regarding how to implement those features?

It would be very helpful
Thanks

It kinda doesn’t matter if you’re importing road spline actors, parcel actors, building actors, or other kinds of actors – you still want to manage them in some kind of partitioned space, and you still want some kind of art path that allows you to make some change upstream, and then re-import / re-build everything without losing changes made to other things. This requires developing your own tools / data path – that’s just the nature of the beast.

Personally, I’ve worked on four previous, well funded, metaverses, two of which still have plenty of users, so I think I have some experience to answer this :slight_smile:

I think a blockchain is a fantastic way of reaching distributed consensus among actors that don’t trust each other, with a defined minimum cost of cheating. It’s really quite elegant at doing that!

There are some costs associated with a blockchain, that make many applications, especially real-time applications acting on large volumes of data, wholly unsuited for blockchain applications.

Not only is the blockchain a very slow database, but it also has miniscule storage capacity.

You cannot reasonably store any amount of 3D asset data on the blockchain. The best you can do is store a hash of the data and reference URL to the data. This is how NFTs work today, but it has the obvious drawback that URLs rely on servers to be around forever, and if there’s one thing we know about the internet, it is that they aren’t.

Even if you delegate to something like IPFS, performance will be absolutely abysmal. Maybe if you built a distributed file system (bittorrent style) on top of all your players, with seed servers operated by you for backup, it could be made to work. But then we’re back to “relies on servers” again.

Not even the most advanced blockchain approaches (successors of NEO, ETH2, and so on) will come close to supporting what’s really needed. If you want your project to succeed as a product, and not just as a fundraising stunt, then I highly recommend you carefully benchmark what it is you really want to accomplish.

So, that is my advice: carefully choose the right technology for each task. That, and “make sure your art path supports incremental updates without bogging down build times or invalidating too much other stuff when editing a single thing.” Almost every game development project with 3D content ends up with the art path as the single biggest lever for success/failure. It’s really that important!

1 Like