Home Technical Talk

Road modeling in AAA [bigger] games

why_pack
polycounter lvl 3
Offline / Send Message
why_pack polycounter lvl 3
Hello, I would like to know if there is some information or someone I could speak to about how people create/model roads/levels in games such as Forza Horizon or Need for Speed [or similar].

There is plenty of information on how to create simple roads, but very little about more complex areas such as complex terrain, intersections and transitions.

Thank you in advance :)

Replies

  • Xoliul
    Options
    Offline / Send Message
    Xoliul polycounter lvl 14
    Since that stuff is often tied strongly into gameplay and leveldesign, there are dedicated tools built into the engine for it. For Need For Speed it definitely is, I'm pretty much certain it is like that for Forza as well.

    Unreal 4 and Cryengine both have some support for basic roads. No crazy intersections and road merging though, I think, since that stuff is so complicated.
  • [Deleted User]
    Options
    Offline / Send Message
    [Deleted User] polycounter lvl 3
    Believe in Houdini power!

    www(dot)youtube.com/watch?v=DrJqjeNQdTU
    www(dot)youtube.com/watch?v=jOLhnwllpgs


    just saying... ;)


    EDIT: Sorry for links in this format but if I post them normally only one shows and second doesn't. Just replace
    (dot)
    
    with proper sign.
  • why_pack
    Options
    Offline / Send Message
    why_pack polycounter lvl 3
    I will have to model for an custom engine, which doesn't have any roadtools at the moment. I have done some things like this before, but getting some more complex stuff was very very labor intensive, almost everything had to be done by moving single vertices which made my head blow. So i'm looking for some sort of techniques or at least a confirmation that there is no smarter way of doing this at the moment.

    As for Houdini, I think it shows pretty low quality results for what I'm going for and it seems to be more pre-vis or archtecture focused
  • [Deleted User]
    Options
    Offline / Send Message
    [Deleted User] polycounter lvl 3
    Quality that you can achieve in Houdini is totally your personal choice. It's all about interactivity in viewport. If you make a tool that throws million poly models around like crazy, you will bog down your system fast. When you finished creating your road system you could bake it down, so low quality model could be replaced by higher quality model.

    The more complex model the less chance that you will get effect you want. Engine tools use simple geometry for their systems too.
    ...I think it shows pretty low quality results for what I'm going for...

    Can you show the effect you are aiming for?
  • why_pack
    Options
    Offline / Send Message
    why_pack polycounter lvl 3
    I think that the best example would be.... eh... GTAV. In that game there is a lot of roads that are very seamlessly integrated into the game's terrain. Another great example is Forza Horizon 2 which also does some similar things. The Idea is to build open levels with quite a few roads on them while still having playability and smooth transitions from road to terrain. Basicaly, racing game level.
    GTA-V-PS4-Screenshot-12.jpg
    Forza-Horizon-2_04.jpg
    iVzTBQQV5XbxL.PNG
  • [Deleted User]
    Options
    Offline / Send Message
    [Deleted User] polycounter lvl 3
    I don't see any complex system in what you showed. It looks nice only because it's shaded and textured. Otherwise it's a pretty simple geometry everywhere.

    Those guys made their ow road system in Houdini => https://vimeo.com/116087676

    Other procedural examples of using Houdini for game development:
    http://freek3d.com/downloads/Freek_Hoekstra_Graduation_final_report_Final_PRINTED.pdf
    http://freek3d.com/downloads/Procedural_Railroad_Creation_Hoekstra_Freek.pdf


    What you will get from Houdini is limited only by how good you are with it.
  • why_pack
    Options
    Offline / Send Message
    why_pack polycounter lvl 3
    "What you will get from Houdini is limited only by how good you are with it."

    This really doesn't answer any of the questions I have. Technically, people can create levels that look better than GTA or Crysis games with milkshape or blender. Also, I didn't mean it about the software, but rather the videos you have shown.

    What I really want to know is how to deal with the problems that occurs when creating environments such as these. How to texture the roads so you don't waste lots of resources, how to connect them without obvious texturing and modeling seams. How to do marking, should I do it on road textures, which means a loss in vram or rather decals, that will add up geometry and will cause rendering problems [clipping] How to deal with terrain. How to handle a scene when there is a road, bridge, dirt road and some terrain. All of this might seem very simple, but in a production, can cause a lot of problems if it's done without proper knowledge which I am seeking.
  • huffer
    Options
    Offline / Send Message
    huffer interpolator
    I don't know about the automatic generation part, but on texturing I had good results using a three way blend material in ue4 (or microblend in other engines):

    - one super clean tileable 512px asphalt texture, plus more for burnt rubber or sandy/dirty variations (thess could be even smaller). Each has albedo, normal, etc.

    - 2 or 3 detail maps, 4k x 512px, grayscale, that mask the white dividers, or tyre marks, or general dirt. They could fit on one file (each channel a mask) The road is just a box shaped spline unwrapped so it's 512px tall and 8 times or more wide (it can tile horizontally indefinitely).

    - tile the asphalt texture something like 16 times on U, 4 times on V and use the detail maps to blend with the dirty variations - you can even tint the asphalt white or yellow to get the dividers.

    - so the detail maps break the tile-ness of the asphalt and you could further mix with vertex colors to combine the detail maps between them. You could have one mask with all the different signage arrows and just vertex paint where you want the sign to show.

    - even if the masks are low res compared to the size of the road you get your texture resolution from the tileable maps inside the masked areas.

    I'm not sure how correct this is though, but it's how I assume it's done. For intersections I think you have to build modules with their own masks.
  • Lamont
    Options
    Offline / Send Message
    Lamont polycounter lvl 15
    To the OP: What engine are you using? If you don`t have a dedicated tool for making roads you`re going to have to get your hands dirty. Your first question was how do they do it in those AAA games. It was directly answered above. They have a AAA game solution: dedicated tools. Your next question(s) deal more with HOW to make roads in general, which you should have asked in the first place. ;)


    Making roads for games like Forza/GTA/NFS usually have tools in the engine. 6 years ago I used an engine that had basic road generating tools. I had to follow guidelines to make the intersections, but the roads were click and drag, nothing close like GTAV, boring intersections... It modified the terrain height data to make the roads flush and apply proper texture for road edges. The tools were not so good, but were better than the other option: doing it by hand.

    Other way is to do it in 3DS Max/Maya/Blender/LW/XSI/??? , break it down into chunks (size of chunk determined how your engine deals with loading lots of assets) and export that. Find clever locations and ways to break up the assets/cover seams. You will need to load your terrain first to make sure it matches. Even with dedicated tools making roads that match with terrain is not easy.

    Houdini seems to be the way to go. Your terrain needs to be made WITH the road, and it seems Houdini can do that.

    As for Houdini, I think it shows pretty low quality results for what I'm going for and it seems to be more pre-vis or archtecture focused

    Honestly. Take. A. Look. At. Houdini.
    Technically, people can create levels that look better than GTA or Crysis games with milkshape or blender.
    This is true. But your problem is creating roads with the terrains shape in mind. And as far as I know, Milkshape and Blender can`t do that.

    You are asking questions that should go to the programmer dealing with this stuff/creating the shaders. We don`t know what the engine you are using can do. Just work within the space dictated by the engineers/engine, how you deal with those limitations is up to you and what quality you can put out.

    If you are willing to share what the engine can do in regards to rendering, what shader(s) you have access to, then a better answer can be provided.
  • Praglik
    Options
    Offline / Send Message
    Praglik polycounter lvl 9
    huffer wrote: »
    I don't know about the automatic generation part, but on texturing I had good results using a three way blend material in ue4 (or microblend in other engines) (...)


    I use Unreal Engine 4 on a daily basis and that's how we proceed indeed.
    Imagine you're just texturing a big quad, with all your logic/tiling inside the shader itself. The you bend this quad in-engine, duplicate it along a spline and that's it.

    There's even a tutorial from Epic Games about this specific feature in UE4:

    [ame]https://www.youtube.com/watch?v=wR0fH6O9jD8[/ame]
  • [Deleted User]
    Options
    Offline / Send Message
    [Deleted User] polycounter lvl 3
    Praglik wrote: »
    I use Unreal Engine 4 on a daily basis and that's how we proceed indeed.

    Houdini Engine for UE4 is coming... just saying. The traces of it are already in existing Houdini builds.

    If anyone is interested in giving a chance to Houdini and would like to use Houdini Engine power directly (without baking o disk in Houdini) inside their engine that doesn't have support for it yet (if ever), you can implement it yourself. The API is very easy and source code of plugins for Unity/Maya is available for free to everyone, so it's very easy to integrate it within you engine of choice. As long as you know your engine API of course.

    Using Houdini Engine is better because you can then take advantage of, for example, prefabs instancing in Unity. Baking it in Houdini to disk will give you not the best optimized geometry.
  • why_pack
    Options
    Offline / Send Message
    why_pack polycounter lvl 3
    Hey, thanks for the advice :) I talked a lot with colleagues about this. Seemingly, modeling part is kind of still a bit blurry, but we know how to texture the roads in our engine and how to deal with the tiling. We will use floating geometry [for tiling parts], decals [bounding box, placed in engine editor] and vertex colors. Some testing shows that we can get away with it without much of the performance hit. Still, we will have to figure out how to deal with intersections, bridges and other more complex things. So if you have some advice on how to deal with it, please please please write here or send me an P.M. Thank you.

    As for houdini, we talked about it and right now it's not exactly a smart move to spend money on new software which our team will have to learn. If it's unclear, we are quite professional team and know how to build all of the stuff I have listed, but the thing is, we are looking for a way to build it smarter, faster and less destructively.
Sign In or Register to comment.