Home Technical Talk

Some questions regarding game pipelines...

jordank95
polycounter lvl 8
Offline / Send Message
jordank95 polycounter lvl 8
When to texture in a game pipeline?
Working on a large sidescroller game with some friends. Just trying to plan out things and figure out when we should start texturing? Right now we have 1 of the 4 levels all done with refined assets and just plain grey color on everything. We first designed the level with a basic blockout, then I went over and replaced those blockouts with mostly refined assets. Most assets just need tiling textures/trim sheets while some things need to go through baking process. But most of the assets are done or need another final pass to be "finished". All the other levels have totally different themes, so they dont share really many assets. So my question is, when should textures go in? Should we put lighting in first? Should we finish out ALL the other levels before starting to texture one of the levels? Whats the usual pipeline here? Assuming lighting should go in first? Does any of this matter and just whatever we feel is best? 

When to model with metrics?
Our sidescroller is a pretty organic nature-like game and nothing really snaps together, but thats just how we made our game. There wasnt really any need to make anything snap together. With that said, I've still been making assets to metrics, even though I dont use any snapping of modular assets in game. Assuming this is good practice? Any reason to model something to 4x2 meters for example, if we're not using any snapping in game?

Grouping in 3D program vs Prefabs/Blueprints?
I've made blueprints/prefabs in the past to populate my environments. But I've come across a few instances where just making the "group" in Maya is faster and easier. For example, making 3 different wooden structures  - why not just make those 3 wooden structures in Maya opposed to building the prefab in Unity? If its done in Maya, it becomes 1 mesh = less drawcalls. When should I be making prefabs out of my assets?

Thank you for your help!

Replies

  • poopipe
    Options
    Offline / Send Message
    poopipe grand marshal polycounter
    WRT the last one. 

    Profile it before making the call usually it'll be one material = 1 draw call,  not 1mesh = 1 draw call
  • Alex_J
    Options
    Offline / Send Message
    Alex_J grand marshal polycounter
    When to texture?


    I think batching things by disciplines makes more sense for a large scale production. For a small team, it seems like moving from one complete, playable iteration to the next makes more sense. This way you are continually reevaluating your entire workflow because you perform an entire loop of the process at a time.

    In other words, validate your pipeline by building world 1 scene 1 to completion. Not polished but MVP. Now you'll have a good idea about the entire workflow, and when you start over and build world 1 scene 2, you can improve the process a bit.

    Another reason I don't think it's good idea to save texturing for too late is because it's an important part of the art. The way you write a script might change because of something you learn from seeing the completed whole. So the sooner you can start seeing the completed whole, the better.


  • Eric Chadwick
    Options
    Offline / Send Message
    Yes, make one playable level, or a portion of one level, to final quality. This is called a vertical slice.

    Helps stakeholders, investors, and team members all understand what the game should look and feel like.

    Also helps iron out art pipeline. How much detail is needed. What are the weak points of the pipeline. Etc.

    About organic vs modular, you may run into problems later if you are making all unique content. If you need to change anything later (a common problem), it becomes a real pain in the ass, once you have a decent amount already built. Inflexible.
  • jordank95
    Options
    Offline / Send Message
    jordank95 polycounter lvl 8
    Yes, make one playable level, or a portion of one level, to final quality. This is called a vertical slice.

    Helps stakeholders, investors, and team members all understand what the game should look and feel like.

    Also helps iron out art pipeline. How much detail is needed. What are the weak points of the pipeline. Etc.

    About organic vs modular, you may run into problems later if you are making all unique content. If you need to change anything later (a common problem), it becomes a real pain in the ass, once you have a decent amount already built. Inflexible.
    Sorry I should have been more specific, I am making all modular pieces that are reused all over the game, but just none of them snap together at all. So I was mainly wondering if there is any point to making a platform, for example, a specific 4x2 meters. That same platform (and other platforms different sizes) is used in a lot of places, just nothing snaps together. Assuming metrics are mainly just used so things can snap? Any other reason? Or can I literally just wing it with the size if theres no grid snapping?

    And thanks about the other points, that all makes sense. I know of vertical slices, so thats a great idea. Thanks again
  • jordank95
    Options
    Offline / Send Message
    jordank95 polycounter lvl 8
    When to texture?


    I think batching things by disciplines makes more sense for a large scale production. For a small team, it seems like moving from one complete, playable iteration to the next makes more sense. This way you are continually reevaluating your entire workflow because you perform an entire loop of the process at a time.

    In other words, validate your pipeline by building world 1 scene 1 to completion. Not polished but MVP. Now you'll have a good idea about the entire workflow, and when you start over and build world 1 scene 2, you can improve the process a bit.

    Another reason I don't think it's good idea to save texturing for too late is because it's an important part of the art. The way you write a script might change because of something you learn from seeing the completed whole. So the sooner you can start seeing the completed whole, the better.


    All makes sense! I think this is what we are thinking of doing. Will iron out problems when we get to the other areas.
  • jordank95
    Options
    Offline / Send Message
    jordank95 polycounter lvl 8
    poopipe said:
    WRT the last one. 

    Profile it before making the call usually it'll be one material = 1 draw call,  not 1mesh = 1 draw call
    Wouldnt it be 1 mesh and 1 material = 2 draw calls? Maybe Im a bit confused on how draw calls work...
  • poopipe
    Options
    Offline / Send Message
    poopipe grand marshal polycounter
    No, and yes you are. 

    On most  semi modern engines material count is the main performance issue - the specifics are engine dependent but most will batch objects that share textures and shaders into one "draw call" (which isn't really a thing but let's go with it)

    This is one reason why it's a good idea to atlas groups of related objects onto the same texture page 
  • jordank95
    Options
    Offline / Send Message
    jordank95 polycounter lvl 8
    poopipe said:
    No, and yes you are. 

    On most  semi modern engines material count is the main performance issue - the specifics are engine dependent but most will batch objects that share textures and shaders into one "draw call" (which isn't really a thing but let's go with it)

    This is one reason why it's a good idea to atlas groups of related objects onto the same texture page 
     OK, so let me see if I understand this correctly - lets say I have a forest Im making and 10 of those assets use the same tiling wood texture. That would be 1 draw call for those 10 "batched" assets and another draw call for the material?
  • sprunghunt
    Options
    Offline / Send Message
    sprunghunt polycounter
    jordank95 said:
    poopipe said:
    No, and yes you are. 

    On most  semi modern engines material count is the main performance issue - the specifics are engine dependent but most will batch objects that share textures and shaders into one "draw call" (which isn't really a thing but let's go with it)

    This is one reason why it's a good idea to atlas groups of related objects onto the same texture page 
     OK, so let me see if I understand this correctly - lets say I have a forest Im making and 10 of those assets use the same tiling wood texture. That would be 1 draw call for those 10 "batched" assets and another draw call for the material?
    This depends on the engine. You get automatic object batching by texture in unity. But in unreal you need to manually group objects together to get the same effect. 

    here's the info on Unity's batching:
    https://docs.unity3d.com/Manual/DrawCallBatching.html

    and info on the unreal system
    https://software.intel.com/en-us/articles/unreal-engine-4-optimization-tutorial-part-2#inpage-nav-1-6
  • poopipe
    Options
    Offline / Send Message
    poopipe grand marshal polycounter
    Assuming they're set up in the most batching friendly way (which is not necessarily the most performant) you will get one draw per material - the number of assets is irrelevant. 

    In practice things like Lodding, what other materials are on screen, transparency, skinning etc. can break batching so you can't unequivocally state that you'll get a 1:1 relationship between anything. 




Sign In or Register to comment.