Home Technical Talk

Procedural Generation in Unity, Tri Limits, Texture Memory, Etc?

madmuffin
polycounter lvl 7
Offline / Send Message
madmuffin polycounter lvl 7
I asked the Unity forums but I figured I would also check with Polycount since you're my favorite 3D community.

I don't know a lick of programming so bare with me as I misuse all the wrong terms and stuff here and get everyone confused as to what I'm trying to explain, but if anyone has any extensive experience in Unity with randomly generating maps and things, your expertise is what I am looking to pick your brain about.

Basically we have to write a workflow/design/technical document thingy for the artists to keep all their styles and stuff inline with everyone else's work, that's no problem art wise, the issue is we aren't sure what Unity's technical limitations are, like tris, texture memory, steaming, loading and unloading textures (that's a thing right?) without pauses or load screens. The sort of things I need to find out are:

-How many textures at what dimension (512x512, 1024x1024 etc) can it load at a time without bogging down if the game has no 'load screens', all the art assets are loaded and unloaded as necessary? Do they even load/unload as necessary? Basically I'm just asking how many unique objects can we realistically expect to have around the player at a time without lag and stuff.

-Even with backface, occlusion, frustum culling, and distance LODs, (note: I have no idea what most of that means) how many tris can we reasonably expect to be able to have rendering at a time? Obviously all the models and things are highly optimized as much as we can but we don't want to find out half way down the road that we've been modeling like half as high or twice as high as we should have been.

There are probably more things I am forgetting about/don't even realize are critical information to know. Basically if you had to write an all inclusive technical manual for artists that tell them how big/small props can be and what to do with what now, what are the key information that is must have to be included?

If you're wondering anything else just ask, I'll try to provide any additional information if it means you can help me answer these questions.

Replies

  • Ben Apuna
    Options
    Offline / Send Message
    What's your target platform? Low end netbook? or web browser with ancient Intel integrated graphics chip? or iPad2?, or some sort of Android device?, high end gaming PC?

    I'm sure the answers would vary greatly depending on the answer to that question.

    Even with the answers you will get, you should do your own tests as your game will likely have unique performance bottlenecks specific to it just like every other game.

    Sorry, I wish I could've been more helpful :(

    EDIT:

    Maybe these will help

    Game From Scratch - A Question of Power...

    AltDevBlogADay - Performance Anxiety
    AltDevBlogADay - Performance Anxiety 2 You're Doing it Wrong

    Unity - iPod Mobile Triangle budget
  • madmuffin
    Options
    Offline / Send Message
    madmuffin polycounter lvl 7
    Good point those are important things to know aren't they!

    -Its aimed at PC but that's the question isn't it, what end of PC should be the target. I was thinking the end result would be graphically comparable to something like original HL2 or maybe GTA4/Prototype. I imagine we'd want it to look nice but not require everyone and their grandmother to buy a new rig just to play it though.

    I'll check out your links later though and get back to you, I'm at work on break at the moment.
  • osman
    Options
    Offline / Send Message
    osman polycounter lvl 18
    Like Ben Apuna said, it all depends on your target platform and game too.

    If you say that you are expecting it to be like HL2 or maybe GTA4 then find out what those games had as limits. And what your polycount should be for characters/props/etc. Also how big the maps should be, and how many (dynamic/static) objects will there be on screen.

    As for limits, Unity has very few hard limits, most of it depends on other things. For example, the max texture size depends on the videocard the user has. So you as a developer have to do a little research to decide which ones you want to support.

    As for how many texture you can have loaded at the same time? Again, depends on the end users hardware(memory). How much you SHOULD have? That's up to you to test and experiment.

    Does unity stream textures? Yeah, they have asynchronous loading of asset bundles, but you can always write your own custom streaming too, if the default one doesn't suit you. There is also this virtual texturing plug-in: http://www.insidious.pt/#amplify

    I don't think you'll find much useful information by asking a very broad question, so I would suggest setting up a test project, trying to achieve the target goal in a simple map. And then asking specific questions on how to optimize it to reach your goal. There is simply too much to think about I think :)
Sign In or Register to comment.