|
Post by nerdares on Feb 16, 2017 3:12:55 GMT
Currently debating on which method I should use for my game For those who don't know what this is: Additive loading - The map gets loaded by chunks
- Allows for 1 huge map
- Terrain is split into multiple pieces (referred to as tiles)
- The only tiles that will load will be the ones that the player will see. Terrain tiles that the player does not see will be unloaded.
- Each terrain is split as their own scene and are loaded/unloaded based off player position and where they are looking
Level-based loading - Think of the game Fable. Every time you go to a new region, like from Bowerstone to Brightwood, it technically loads a new level and now you're in Brightwood
- Or you can think of Skyrim. Everytime you go into a house, it loads a new level. Take that idea and apply it to loading different regions
- Terrains are not necessarily divided up into tiles, there are essentially just independent game levels
Advantages (+) Disadvantages(-) of additive loading
- (+) Intuitive for driving around vehicles across the entire map
- (-) complex terrain loading procedure needed to prevent performance drop
- (+) great for tons of players to play together in one map
- (-) terrain's have to be seamless
Advantages (+) Disadvantages(-) of level-based loading - (+) HUGE difference in performance compared to additive
- (+) You can extend the map by just adding a new level (say you included a new DLC which puts in a new region)
- (-) Doesn't make sense to make the game have more than 4 player co-op. Regions should not be that big. (2-4km^2)
- (-) Driving around vehicles would seem a bit off. It would be annoying to keep having to load to the next region.
- (+) Terrain design doesn't have to follow up or depend on the other levels
My game is going to be a story based game, with 4 player co-op max. I am really leaning to level-based loading but the driving con really threw me off. I really wanted driving, but then again, IDK it seems like a problem having to drive around and load each level as you go, instead of smooth additive loading. This is a major con that is really stumping me. Additive loading just seems like a big performance crash and level designing will be a pain. Which one should I go for?
Games that are additive : GTA V (Although it is part MMO), Dead Island (Great example of a game I am trying to make that follows an additive approach w/ driving)
Games that are Level-Based : Fable (Performance is VERY GOOD)
|
|
|
Post by Invector on Feb 16, 2017 13:29:29 GMT
For your type of game (vehicle + coop) the better choice looks like additive load, otherwise you would be in trouble to syinc vehicles and player on different parts of the map, separating by a loadscreen
|
|
|
Post by sickscore on Feb 16, 2017 13:41:40 GMT
+1 additive
|
|
|
Post by jrackley on Feb 17, 2017 4:27:21 GMT
Its Val again This same question is the beast that we have been dealing with for over nine months now, and I have to say that additive is really great, BUT.....you will need to add other "tricks" to your arsenal in order to pull it off without dealing with a whopping 12 FPS lol. If you have a very large game, with a lot of prefabs, textures, weather systems, and foliage, your going to need to consider these tools: uNature - This will run the grass off of the GPU, and it boosts the frame rates considerably. Unity grass is pretty ewwww when it comes to performance. The other nice thing about uNature, is its ability to use multi-brushes and paint as many grasses as you want with one brush. He just implemented the ability to use the program with trees (just received the update). altTree - This program turns all your trees into super performance saving billboards and LOD's. Works amazing with speed tree. The only thing is that it is still in beta, so expect some bugs and updates here and there. It does have an annoying hiccup when you first load a scene where the frames will drop down to like 3 FPS for a few seconds until the trees are loaded into the scene. You can bypass this by having the scene load (loading screen) for a few extra seconds before the level actually shows to the player. UniStorm - Awesome weather system program. Does rain, snow, seasons, night and day, grow cycles, everything. I love it. Granite for Unity - This one is a bit confusing, but its a texture streaming program. This program basically allows you to use super high resolution textures, in unlimited amounts; and improves your performance. World Streamer - I describe this as the ultimate in occlusion culling(thats incorrect, but thats just how I roll). This will optimize the living heck out of your game. It takes everything off of your GPU and CPU and uses your hard drive to stream your game. This program is unbelievably annoying to start using, but once you do, you will see just how much it can help you. Aquas - This is my favorite water program so far, much better than any standard Unity water (yuck). As far as water goes, your going to take a hit, no matter what system you fiddle with. So far, this one is my favorite. Also, remember to design your terrain with occlusion culling in mind. I know that the terrain generators make the terrain for you, according to your specifications, but grab your erosion brush, and make sure you have some mountains separating areas, walls, etc. The better you pre plan your terrain, the less headache you will have later. (i've scrapped around 5 completed terrains due to newbie error). Right now, here are the generators that get the most props: Gaia World Creator Map Magic (my favorite of the bunch.....i love it......just love it) Each of them have their good and bad points, most add ons are compatible with the three, and there are really great tutorials for all three of them as well. Now, the creator of Gaia (Adam Goodrich) is super active in the community. I don't like Gaia, but I love his other programs. He makes GeNa (which is a cool advanced spawning program) and Pegasus (an easy to use camera flyover system - for cutscenes, demos, etc). I also need to add in here that asset choices are super important as well. For example, 3DForge is usually one of the first asset packs that people purchase. Its amazingly detailed, super easy to use, and........it kills your frames. Destroys them actually. If you load into one of his demo scenes, you will find that your in a small 250 x 250 terrain, with seven or so houses (without interiors), a couple of trees, limited grass, and other objects; and your frame rate is around 35 FPS. That is horrible. Even with basic frustrum culling, your frames should be waaaaay higher than that on such a tiny terrain. With appropriate LOD's, and texture mapping, i'm sure that the frames would be better, but seriously.........I don't have time for all that when there are other great asset packs that are already super optimized. Also, if you have mountains in your scenes that you are going to modify, don't forget to pick up a tri planar shader in the asset store. Actually, you will use the shader for anything you want to stretch out without it looking gnarly. Im sorry that I have been so long winded, but long story short......go for the additive terrains. Your frames are going to be yuck until you optimize the level, but it's worth it in the end. Lot's of programs to add into your project, but you will love the end result Happy game making.
|
|
|
Post by jrackley on Feb 17, 2017 4:31:48 GMT
Actually, you need to look at world streamer like right now. It sounds like it is going to answer your question for you
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Feb 17, 2017 4:36:18 GMT
So since if might be 4 players max, what are you going to use for networking? I know some solutions might have different ways of syncing players positions on terrain.
|
|
|
Post by Invector on Feb 17, 2017 13:32:10 GMT
Those are some GREAT tips Val Thanks for sharing with us
|
|
|
Post by nerdares on Feb 18, 2017 2:16:16 GMT
So since if might be 4 players max, what are you going to use for networking? I know some solutions might have different ways of syncing players positions on terrain. That's a good question, although unfortunately I have not worked with networking before of any sort (I am an absoulte noob at it) and I haven't considered it yet. Right now my main focus is to get a GUI done and wait for the shooter. While waiting for the shooter, I'm also working making some characters too
|
|
|
Post by nerdares on Feb 18, 2017 2:18:36 GMT
Actually, you need to look at world streamer like right now. It sounds like it is going to answer your question for you I'm actually trying to create something VERY similar right now. World Streamer is great but I wanted to make my own. I'm just having a lot of difficulty on how to get started, there aren't really any tutorials for this out there. I have a thread in this section about my additive level streamer right now
|
|
|
Post by jrackley on Feb 18, 2017 4:42:57 GMT
Thanks Invector Im not experienced with anything game making. I have only been doing this for 9 months, so quite frankly......I don't know anything compared to any of you guys. Plus, i'm not a coder at all (thats all Jeremy) so I tend to keep out of the forums as I am not qualified to do much of anything on here. But, if I can help any other new users with what I have learned, I am all for it. Nerdares - that is really cool that your going to have a go at making something so complex. I can barely comprehend how world streamer even works, and I have to watch the tutorial over and over again to get it even sort of working correctly; so, if you can actually create the same thing....holy cow.
|
|
|
Post by nerdares on Feb 18, 2017 18:55:05 GMT
Thanks Invector Im not experienced with anything game making. I have only been doing this for 9 months, so quite frankly......I don't know anything compared to any of you guys. Plus, i'm not a coder at all (thats all Jeremy) so I tend to keep out of the forums as I am not qualified to do much of anything on here. But, if I can help any other new users with what I have learned, I am all for it. Nerdares - that is really cool that your going to have a go at making something so complex. I can barely comprehend how world streamer even works, and I have to watch the tutorial over and over again to get it even sort of working correctly; so, if you can actually create the same thing....holy cow. I don't think it's too hard, right now my main concern is how they determine which terrains to specifically load based off player position. In my case I take the coordinates of the terrain tiles and then serialize them. There, I can compare player position with each terrain tile coordinate and load each tile repectivly
|
|
|
Post by shadex on Apr 3, 2017 22:09:00 GMT
Currently debating on which method I should use for my game For those who don't know what this is: Additive loading - The map gets loaded by chunks
- Allows for 1 huge map
- Terrain is split into multiple pieces (referred to as tiles)
- The only tiles that will load will be the ones that the player will see. Terrain tiles that the player does not see will be unloaded.
- Each terrain is split as their own scene and are loaded/unloaded based off player position and where they are looking
Level-based loading - Think of the game Fable. Every time you go to a new region, like from Bowerstone to Brightwood, it technically loads a new level and now you're in Brightwood
- Or you can think of Skyrim. Everytime you go into a house, it loads a new level. Take that idea and apply it to loading different regions
- Terrains are not necessarily divided up into tiles, there are essentially just independent game levels
Advantages (+) Disadvantages(-) of additive loading
- (+) Intuitive for driving around vehicles across the entire map
- (-) complex terrain loading procedure needed to prevent performance drop
- (+) great for tons of players to play together in one map
- (-) terrain's have to be seamless
Advantages (+) Disadvantages(-) of level-based loading - (+) HUGE difference in performance compared to additive
- (+) You can extend the map by just adding a new level (say you included a new DLC which puts in a new region)
- (-) Doesn't make sense to make the game have more than 4 player co-op. Regions should not be that big. (2-4km^2)
- (-) Driving around vehicles would seem a bit off. It would be annoying to keep having to load to the next region.
- (+) Terrain design doesn't have to follow up or depend on the other levels
My game is going to be a story based game, with 4 player co-op max. I am really leaning to level-based loading but the driving con really threw me off. I really wanted driving, but then again, IDK it seems like a problem having to drive around and load each level as you go, instead of smooth additive loading. This is a major con that is really stumping me. Additive loading just seems like a big performance crash and level designing will be a pain. Which one should I go for?
Games that are additive : GTA V (Although it is part MMO), Dead Island (Great example of a game I am trying to make that follows an additive approach w/ driving)
Games that are Level-Based : Fable (Performance is VERY GOOD)
The project i am working on involves a 32k x 32k world map, and multiple dungeon's / caves / etc. The approach i have been using is that i use Gaia to create the terrain (which takes forever to setup correctly). I use World Streamer to stream the over-world. I am using realistic water for water, and a random dungeon generator for the majority of my dungeons as i want replayability. First off, World steamer is the solution if you want driving in your game. Sectr is absolutely great and even more optimized HOWEVER it specializes in loading room by room, not large chunks of terrain. My suggestion is that you use world streamer to load larger chunks based on the speed the character (or car) is moving. The main things of note is to precisely control the terrain settings through testing. You need to know how low you can set stuff like the heightmap resolution, detail distance, etc. Thing is, this isn't a binary choice. Use additive for the over world, use level based loading any time you transition into a town, city, dungeon or cave. Hell in the main city i plan to load the level once you leave the main over world map, and switch to another smaller streamed (additive) map for the City with 256 unity chunks so i can go crazy with detail. There are few disadvantages to additive, and it's usually not speed, it's lack of being able to configure multiple settings for a map (without heavy scripting). Those disadvantages are uniquely offset just by standard level loading when the settings need to be changed. If you ever get a chance play "The Forest" It does this beautifully. They stream the world, and level load the caves, using the entrence to the cave to start loading the level, giving it the perception of a seemless world.
|
|
|
Post by tharindu on Apr 4, 2017 3:07:19 GMT
@ jrackley Interesting that 3DForge exterior kit doesn't give you much performance. I have both exterior and interior kits but never used them properly since I am looking into game mechanics these days. What optimized assets would you recommend for a medieval game ? I've learned not to go with Manufactura K4's assets either. Performance killing in the best possible way, but lovely props.
|
|
|
Post by jrackley on Apr 4, 2017 5:09:28 GMT
K4 does make some great assets, but yeah, they can kill your frames; although, i'm not so sure that it's his assets, but rather, the particle effects and scene set up in his demo's that are doing it. I use K4's rocks packs, and they work really well, and they are really easy to swap textures and normals on (I did read that he has almost zero support though, which is sad). I do recommend Medieval World Creator. Everything in his asset packs are super optimized (including LOD's for everything). He also has the interiors separate for everything so that you can set a trigger on the exterior door, and then load into the interior. His stuff looks very nice as well. Polypixel also makes really optimized assets that you can change really easily. I found that I only get frame drops with 3D Forge's exteriors. The interiors are fine, and so are all the separate prefabs, but, holy cow, if I try and make a city with the exterior parts, I get like 6FPS. Even in his demo scene, we only get 30FPS, and it only has around 8 houses with no interiors, and a small 250 terrain. It's strange. I did build the catacombs with all 3D Forge assets, and I get great frames in it; but, I made sure to take occlusion into account, and I set it up so that it could occlude large areas out.
|
|
|
Post by tharindu on Apr 4, 2017 13:30:16 GMT
K4 does make some great assets, but yeah, they can kill your frames; although, i'm not so sure that it's his assets, but rather, the particle effects and scene set up in his demo's that are doing it. I use K4's rocks packs, and they work really well, and they are really easy to swap textures and normals on (I did read that he has almost zero support though, which is sad). I do recommend Medieval World Creator. Everything in his asset packs are super optimized (including LOD's for everything). He also has the interiors separate for everything so that you can set a trigger on the exterior door, and then load into the interior. His stuff looks very nice as well. Polypixel also makes really optimized assets that you can change really easily. I found that I only get frame drops with 3D Forge's exteriors. The interiors are fine, and so are all the separate prefabs, but, holy cow, if I try and make a city with the exterior parts, I get like 6FPS. Even in his demo scene, we only get 30FPS, and it only has around 8 houses with no interiors, and a small 250 terrain. It's strange. I did build the catacombs with all 3D Forge assets, and I get great frames in it; but, I made sure to take occlusion into account, and I set it up so that it could occlude large areas out. Thanks for the tips. Will look into the assets you mentioned. It's strange on 3DForge exteriors though. Have you tried contacting the author ? The guy is super helpful . I will drop a few more houses around and try to see what it does to my FPS. Incidentally what are your specs ? I use a bit of a low end desktop. 4 gigs ddr3 ram , i5 4590 on a R9 280X graphics card. Ancient by today's standards lol
|
|