I am new to Unity, but like all other things I started on, the first thing I do is dive in head first. My idea for a new game is to create an RPG based in the middle ages with a little bit of modern tec thrown in. The story is still being written, it will take time as I plan to make it have multiple outcomes.
A big fan of Oblivion, I love the way the game loads scenes, and am wondering how I need to set up unity scenes in order to use this method (I believe that the map is divided into squares, and only as many squares as seen are loaded at one time). I think something like this is possible, but is only available in the Pro version of Unity. Despite this, i plan to develop this game on the pretense that it will eventually be finished on Unity Pro. On that note, what do i need to do when designing the map so that when it comes time to code it, the process is smooth. The main goal is to reduce loading screen usage and game lag.
At this point I am just making the visuals and terrain (which I am playing with) and am doing very little coding ( Most likely ill make an avatar so i can explore the world in real time).
Some info on how Oblivion works:
- The outside of oblivion is divided into tiles, i believe that only 9 of these tiles are rendered at any given time. (more if the landscape requires it).
- When you enter a city, the city is loaded and the outside becomes low detail models that cost little to render. If you go into a city or exit a city without using doors, the landscape is not detailed up close, and inside cities, the buildings are simply a few 2d walls with pictures on them.
- All house interiors and dungeons etc are rendered after a load screen (for houses this load time is small obviously due to the amount of room) this means that the outside walls are not rendered when inside the house.
New to Unity and starting with an Oblivion-like game? I won’t be the first person here to believe this is a bit ambitious! But, it’s also a good idea, after all Oblivion was critically acclaimed and sold a lot of copies so if you can get even close to that you’ll be doing alright.
However, I’d suggest scaling things back and starting on a much smaller project just to get a good feel of the entire Unity project lifecycle. There are so many things you’ll need to learn before being able to make something like Oblivion that your best bet is to start small and work your way up. Perhaps take one unique feature of your game idea and just develop that?
You’re correct about needing pro to do some of the occulsion stuff you mention with drawing the large world though I suppose you could write something yourself to dynamically load world tiles - not an easy task.
Good luck! 
Thanks peacemaker.
Actually I was always planning to start somewhat small before I get in over my head. I plan to first start designing small scale objects to get the hang of the interface, as I do have experience in photoshop and a few 3D programs.
After thinking about the whole tile idea, I thought the best way to implement this is to have the entire map mesh loaded (as I do not believe this takes a lot of resources) and then just load the individual objects and npcs only when they need to be loaded. This will help prevent any major confusion by splitting a terrain into 10,000 little parts.
If you can keep the scale of your game sensible then this is entirely possible and will save you a lot of misery, but you will not be able to do this with a world the size of Oblivion or Fallout 3 unless you know something that Bethesda doesn’t. If you can just use a single terrain you can also benefit from Umbra occlusion culling to handle performance issues. This won’t solve the problem with actually having that massive heightmap and associated textures in memory all the time, but it will keep your frame rate high.
If you really want a large world then you will have to split the terrain up into chunks/scenes and page them in and out dynamically. This is relatively easy, certainly a simpler task than actually programming the game logic and creating the art assets. One problem you will have is with AI, as they’re going to pop in and out of existance along with your terrain unless you can have them exist in the “master” scene. You then have an issue with collision, as the ground they’re standing on no longer exists when you page it out. You might have to generate a simplified collision mesh for each terrain object and keep that in memory when the terrain itself pages out if you need them to pathfind through areas that aren’t currently loaded.
I would say to start with a world not much larger than the default terrain size and forget about paging for now. Keep the heightmap resolution under 1024 for your own sanity to begin with, as the terrain editing in Unity 3 appears to be completely shafted and you’re going to get memory and performance issues every step of the way. Focus on the game itself and don’t get distracted with painting the terrain, because there’s a good chance that you’re going to have to start all over again multiple times as you learn more about how the terrain works. You can safely leave the terrain until last, and deal with it once your game is actually feature-complete.
The AI will be difficult. Oblivion does deal with the AI problem nicely though. I will definitely take a look and see if I cant figure out exactly what it does.
For starters I think a simple house on some terrain will be good. This will let me practice both keeping the npcs from falling into cyber space and have them follow the main character around obstacles and through doors. In addition i can practice the scene transition.