I am rather surprised to experience a lack of documentation/guides on how to properly create a map for ARK.
Nobody (also not in all the outdated video “tutorials”) ever gets into that topic, besides the self-explanatory stuff.
I’ve picked together what i can from Twitch streaming sessions and would like to point some things out before i continue to walk in the dark. This might also comes in handy for other people, who want to get into map creation for ARK and wonder about these basic things.
I’ve basically created a test map with the size of the island (1x google search for the sizes). After fiddling arround with the landscape materials, I found out that there is a package for materials which includes all of such, which are used in the island, the center and scorched earth. In case you are new, here you go -> https://wiki.arkmodding.net/index.php/Universal_Landscape_Material
After setting up everything, I’ve cooked & exported the map (local, no upload). I then copy the modfiles, load them in ARK and get started on my map - but the performance is terrible.
This is an example what I meant - you basically need to create multiple landscapes and add them kinda together - that doesnt get mentioned anywhere.
And meanwhile i really wonder, is that the correct way? You create a bunch of levels with each a landscape inside and then fiddle them together to make it look like its one landscape? Or am i missing something bigger in this whole spaghetti workflow?
This question directly allows for a subquestion - while loading other maps one can observe that they are split into x_far and x_near. If i had a guess, x_near simply adds smaller meshes, rocks, grass and maybe some non-culling clutter - am I right about that or is there an even bigger scheme?
Here is the thing …
Ark uses level streaming, but, on a very very simple level. Yes they use “chunks” like level streaming, but, all levels are always loaded. They do not cull out. Your performance issue is possibly something other then the landscape itself (depending on the map res, 1k, 2k, 4k, 8k)
Ark uses 4.5.1 with some 4.7 features
Ark uses some really out of date assets
Ark uses some REALLY bad blueprint code, like, really bad
Ark uses little to no optimization in any area of the code/blueprinting
Ark uses 0 documentation (for its modders) and most, if not all, data is so far out of date its nearly worthless
^ we can argue that the functionality and issues are due to being so far out of date, and, using an edited version (to work for them) of the 4.5.1 source for UE4, the world will never know. Point is, you are doomed from day 1.
The foliage scheme > you are correct. Nothing more then a culling reason. Its setup wrong, for proper foliage culling, but, F it … its their design
I made a map, using the proper culling and design schemes and i was able to extend to replication bounds (1.2 mil x -1.2 mil X Y) and you would have never known things were culled out at any time. The trees just use LOD and stay in place (to cover that all the other foliage is missing). Its just a performance trick is all. Hide what users cant see from a distance to help unload and save on memory.
Making 100 maps and adding them, or, 1 map and using it, makes no real difference. I say this while biting my tongue due to its situational. I wouldnt ever load a 4k map in Ark, thats just asking for pain. 1k sure, anything less, might get a bit ugly on the eyes. Welcome to making maps - you think its bad in the first day, just give it time, it will get much worse. lol.
THANKS for clarifying these things to us, I can now die happy with the knowledge, that I am not a core problem of the general theme described above.
But let me lift the veil about something i dont quite get: In the editor my flat, unmodified simple grass terrain is rendering (zero complexity) with like 120fps, which obviously is the UE4 limit. I can start it via a PlayerStart component and run around all day long. I then load this exact map into ARK and get like 10-15FPS ~ find the error.
My crystall ball is all out of juice, so i randomly point my finger towards stuff and hope it would admit its culprity.
… Thats how i got the idea to just cut it into smaller versions of the map itself, even as it shouldnt make any different with like* zero complexity, a simple stretched plane with collision.*
Would love to see the setup and take a look at it. There has to be something else slowing it down that isnt being used in the editor. I assume when your getting 120 you are playing it via “play”, and, i assume you are getting 10-15FPS from playing in the actual game. This correct?
Are you running any other BPs?
Did you just drop your map in place of landscape in the island map?
did you add anything else to it?
whats the BP setup look like? did you use the day night cycle set?
is this literally a flat block with a player start and your having trouble loading it in ARK (outside the dev kit) ?
Sadly, from my experience, dev kit play /= what happens after you cook. I am not sure what the issue is between the dev and the cook.
I have no issues taking a look at what you are using right now. If you want to compress and send the mod over, i dont care either way.
Hi and thanks for your reply again!
I will try some other options and recreate it a few times from 0.
Tried that already yesterday, and somehow (even after deleting the physical files on the hard drive), it wont allow me to create a new landscape within a new map in the editor in the same mod-folder which I’ve used before. Really weird again … It just doesnt create a landscape, not even a very small one. Level streaming was activated beforehand in the level, because thats how TheIsland map did it (they do have a separate level layer for the landscape which is not the persistent top one).
This might be some weird caching problem or at least related to it, I will test further with a new mod directory after work when im home. This time ill try to add all the present generic post process volumes (weather, time, etc.) from TheIsland as well, but that cant possibly be the cause for this problem.
That is a great question.
There used to be some videos that were released, an entire series actually, but a few changes made and they dont apply very well. You can still use the old videos to get an understanding.
Really, the answer is: there isnt any.
Trial and error, jumping in and finding out whats broken and what works is the best way. It is up to the community to create it since WCS wont touch this stuff for some reason. Good place, i suggest, is the channels they have setup for yall. Like the discord channel and such. I use to hang out in the Valhalla one and ask questions. I worked with a few modders on my own stuff and got results (some good, some not great).
I made something a year and a half ago, and, honestly, i wouldnt touch this games modding with a 10ft pole.What took me days to accomplish in the ADK takes me maybe an hour in my own company work. I am not saying “dont do it”, but, the learning curve (and functionality and how bad this game is programmed) is massive. Good to get in and learn the “ins and outs” for the unreal engine, see how things work. We are all on 4.15 at this point, and 4.5.1 is so dated its painful to use once you learn the new stuff…
i digress …
there are no good tutorials - use the old ones. When you run into “this doesnt work” just ask in forums or Discord channel (discord is your best chance).
Open world level design in general is a pain in UE4 … I haven’t tried it in the devkit yet (nor do i have any interest to). I’ve been looking for proper tutorials on it, but haven’t found anything worth mentioning … just basic stuff.
You can create a “single landscape” map, then “export” the “heightmap” png and chop it up in photoshop or krita. If you do this though you’ll have to make sure each “map chunk” (or map tiles as they’re often called) is of the correct size, meaning you’ll have to scale your heightmap to size accordingly or else you’ll have weird artifacts on the edge of each of your landscapes (or even worse … you won’t be able to properly import the heightmap map chunks at all. Also make sure you’re importing the chunks through world composition, and not importing each chunk seperately. If you import them seperately then they’ll be “landscapes” instead of “landscape proxies”. With landscape proxies you’ll be able to edit your landscape tiles seamlessly with the landscape editing tools (if they’re just “landscapes” you’ll only be able to edit one landscape at a time which creates another problem). Once you load your landscape proxies in, you want to use the landscape flattening tool and set the “strength” to 0.0 go along your landscape edges and flatten them so the edges line up, otherwise you’ll have holes along the edge when players can see (and potentially get) under the map.
Something else that’s important to consider is the number of landscape “components” you’re using in your landscape. Each landscape component requires 1 drawcall, so the more components you have, the higher the performance drain on your system.
You can also “scale up” your landscape mesh which will further improve your performance. Be mindful when scaling up though, as the higher you scale your map the more “pointy” the landscape will be. I’m doing a “low poly” style game in UE4, so I’m using a map scale of 2000 instead of 100, which would look awful in a normal game, but it fits what I’m doing perfectly.
For me performance on a 504x504 map scaled 2000 (size wise that around a 10,000x10,000 map) allows me to get an easy 60+ fps on my old laptop, where as a standard 8k x 8k landscape at 100 scale slows my laptop to 10 - 20 fps. It would be easier for me to use a single landscape, but I ran into an issue with my foliage harvesting system that prevents me from harvesting from certain foliage instances once I have more than 30k-ish instances within the level (it starts returning -1 as the instance index from some hit results). So I need to use landscape tiles to lower the amount of foliage per level (this might be why ark loads their foliage in with the map tile chunks as well).
Dunno if any of that applies to what you’re seeking, but it may.