Home Technical Talk

real time distance coverage

polycounter lvl 12
Offline / Send Message
HAWK12HT polycounter lvl 12
Hi all, just wondering the best possible ways of making long distance coverage on mobile devices. Stuff you see in Asphalt 8 or in Real Racing 3.

Any links or guidance would be cool. (appologies in advance if this has been asked million times) I am still searching on my own thought I better ask for guidance along the way :)

Replies

  • Eric Chadwick
  • HAWK12HT
    Options
    Offline / Send Message
    HAWK12HT polycounter lvl 12
    Hey hi Thank you for this, have gone through this one before. What I am unable to find is the best possible way of making world that when you drive around actually takes a good 2 or 3 min time to cover it all yet giving the feel of speed like going 300k/h etc

    When it comes to baking the entire environment you get artifacts due to less texel density cause the enviro is way too big. Increasing texel density for lightmaps increases number of lightmaps generated (upto 7) and shadows still dont look sharp.
  • Eric Chadwick
    Options
    Offline / Send Message
    The feeling of speed is a lot about the way the camera FOV widens on acceleration, and motion blur helps a ton.

    Don't bake lightmaps for the terrain, only bake them for the track and close-by meshes. Or, adjust the lightmaps resolution to favor closeup things over far things.

    Make a vid of what you have so far. Can't give feedback without seeing what you've done so far.
  • HAWK12HT
    Options
    Offline / Send Message
    HAWK12HT polycounter lvl 12
    Thank you for your input Eric, will introduce FOV change on acceleration aswell. At the moment FOV changes on nos boost.

    Since Unity Terrain uses its own lightmap 1k slot I decided this time to model a 5k tri model of a terrain which is 100kx100k in size.

    Sure will post some screens when I get to office on Monday. In mean time you can check out this game we launched a month ago to get the idea of environments.

    https://play.google.com/store/apps/details?id=com.tenpearls.monstertruck.racing&hl=en

    https://itunes.apple.com/pk/app/monster-truck-racing-ultimate/id557124209?mt=8

    Again Thank you for your time cheers.

    P.S Please ignore the user reviews they belong to the old game, I worked on the newer version :D
  • HAWK12HT
    Options
    Offline / Send Message
    HAWK12HT polycounter lvl 12
    O_O Oh my God Eric just went to your site, that is some killer portfolio. Awesome

    Hope you wont mind me asking this but roughly how long time is given to you for making unity environments? We are doing it in max 20-22 days and one 3D person.
  • Eric Chadwick
    Options
    Offline / Send Message
    Hey thanks. Your time estimate sounds about right, although it takes longer if you include R&D time.

    The robot environments on my site were made by a team of artists and designers, so it's not really the same in terms of time.

    Also that was an extremely modular system of rectangular environments, whereas your Monster Truck game is a free-flowing naturalistic enviro. You can still re-use modular pieces for natural enviros, you just need a different layout system.

    Take another look at your reference, and compare it side-by-side with your last game. What's different? Careful UVs on the rocks, variety, a carefully-designed "flow" for the environment alongside the track (archway leads to vista leads to canyon leads to another vista, etc.), trees, distant lower-res mountains, skies, etc.
  • Eric Chadwick
    Options
    Offline / Send Message
    Wasn't easy to find a video of your game. You should put one on your website, and on the app store.

    [ame="http://www.youtube.com/watch?v=keqej6btuIY"]Monster Truck Racing - The Ultimate Challenge iPhone/iPad GamePlay - YouTube[/ame]

    The track here doesn't have good pacing, it takes too long to get to the interesting bits. The bridge for example is really way too long. A racing player needs something interesting to do every couple seconds. Again take a look at the competition you posted, Asphalt 8 seems to have good pacing. http://www.youtube.com/watch?&v=byfs6QnVNUg#t=29
  • HAWK12HT
    Options
    Offline / Send Message
    HAWK12HT polycounter lvl 12
    Hi, Thanks Eric. At work we are mostly looking at Asphalt 8 and RR3 but we dont have the timescale as their environments hence looking for best possible ways of making cool vistas in fastest possible time.

    Wow thanks for looking up for that video, I am suprised cause we didnt upload any. Sure will post it on our websits that is if management team wants it.

    Ok so here is what I have, Environment is divided into 3 parts (city, Industrial zone and nature) so making an entire terrain all around didnt seem like a good idea but I guess It should be this way as per this post I found at Unity forums

    http://answers.unity3d.com/questions/318861/unity-isnt-baking-the-lightmaps.html





    V1.jpg





    V3.jpg



    V4.jpg
  • HAWK12HT
    Options
    Offline / Send Message
    HAWK12HT polycounter lvl 12
  • HAWK12HT
    Options
    Offline / Send Message
    HAWK12HT polycounter lvl 12
    For what I have seen in RR3 and Asphalt8 is that they have massive environments and not in Unity (UDK Lightmass does not limit your texture size like unity and offers Landscapes which is just wow if you have used it. RR3 is Mint 3D engine)

    Last pic shows the problem clearly, empty space. I can manually make another terrain mesh to fill the gap but time will be lost. Make a manual photo edit of skybox and place distant scenery mountains etc which I ll try just now however I am pretty sure when I ll add Z Down image it ll look weird/ stretched out / out of proportions.

    OR making our own custom skybox (3D skybox) showing distant geometry but still ground plane will be an issue.

    Second last pic shows a much better area that I will cover with trees and rocks etc in the distance and near the track. Though what bugs me with this is the fact that you can still reach out to these areas quickly.

    Sort of a feel of distance is missing that hey there are mountains or tall buildings out there can I go there..nope you cant. Stuck with a catch 22, make every thing and take 6 months production time or find custom techy cheat ways.
  • HAWK12HT
    Options
    Offline / Send Message
    HAWK12HT polycounter lvl 12
    Screenshot_5_BF4.png

    Snow covered mountains on left looks part of the terrain but you cant go there yet it gives the sense of distance.
  • Eric Chadwick
    Options
    Offline / Send Message
    The player can never leave the track, correct? Then everything outside the track is just set dressing.

    A quick fix is to place the track in canyons, so you never see distant views. Then you could open it up now and then with a wide vista, and go back into a canyon. I'm reminded of the pod race in Star Wars.

    You can make large landscapes in Unity. The lightmapper will make multiple lightmaps to bake the lighting.

    You need to learn how to make pretty landscapes, using the splatting technique. This is blending 3-4 textures together by painting masks between them.
    http://wiki.polycount.com/CategoryEnvironmentTerrain
    Unity can certainly do this, do some searches.

    Your existing terrain has a terrible high-contrast texture on it. Find a good tiling rocky cliff texture, and blend it with a tiling grass texture, using a nice mask. For example, this is me just painting masks between four tiling textures...
    http://ericchadwick.com/img/mmo_speechlessmountain_comparison_01.jpg
    1. Small rocks
    2. Large cliff
    3. Grass
    4. Snow
  • HAWK12HT
    Options
    Offline / Send Message
    HAWK12HT polycounter lvl 12
    Player can go out side at certain cornering areas when they lose control.

    yea now I am realizing why most low budget / indie mobile games are so Claustrophobic in design.

    yup been there done that with splat maps, Unity default terrain does a wonderful job but only allows you to have 4 textures per splat map. Going above 4 means you ll kill performance on mobiles (though I ll do a benchmark of this too as to see how much we hit performance) Second thing with Unity terrain is soo long bake times at 20 texel resolution of Beast Lightmapping and Terrain taking up 1 whole 1 K texture of its own.

    Example is Monster Truck, did the job for us but at a price. Long bakes and not being able to push resolution cause then it ends up making 5 6 lightmaps at 1K. Low end Android device go kaput with too much textures. At the moment despite the lightmap scale issue I have texel resolution at 100 with high settings and get nice 3 lightmaps very fast with somewhat acceptable soft and crispy shadows. Now for final bake I ll do what you suggested, near objects get more res and far ones almost nothing.

    :D my bad I uped the levels in Photoshop way too much for images that is why it looks so horrible.

    Now the last thing in my mind is to ask a programmer to write a vertex painter that we can use just like default unity terrain engine but as many textures as we like.

    Even with splat mapping your screenshot you still hand painted the areas right? or was it like IDtech mega texture thing which I understand is that you drop one large mask between your textures and you are done. Without having to paint manually. Correct me if I am wrong.

    Again thanks a bunch its really helpful.
  • Eric Chadwick
    Options
    Offline / Send Message
    You don't need more than four textures. My example uses hand-painted mask for each of the four layers, only four pixels per meter or so, and hand-sculpted terrain. Hopefully it shows what's possible with limited toolsets.

    Splat mapping just refers to using two or more textures, tiled across the terrain like normal, but using a mask to blend between them. We used a RGB mask, with each channel masking a different layer, like 3 grayscale masks.
  • HAWK12HT
    Options
    Offline / Send Message
    HAWK12HT polycounter lvl 12
    4pixels per meter wooah and I assume its the same screen shot you showed, makes perfect sense when you look at the rock face behind trees it looks a bit stretchy but blends nicely overall. Limitations aye, going through UDK Terrain Doc for Unity project lol.

    Yeah 4 is enough for terrain but what my requirement in Monster Truck was to make road surface using 2 textures so I was left with 2 Textures for Terrain, since it was all dirt and rocky stuff and no road lines.

    Did you use custom mask in UDK or Unity? cause UDK would be a life saver for me all that friendly Node network drag n drop channels. Unity requires coder support all the time even for simple things as emmisive which in UDK is like so straight forward. (sorry for going off topic, but you know what I mean)

    Ok so I am gonna experiment with Panorama Exporter in 3DS Max, I am thining of making a super wide angle panorama which will make distant mountains so tiny etc and then make a cube map (skybox) and overlay it with current skybox texture and will see how it ends up.

    Hopefully it ll give the feel of distance in background while you are cruising on highway at high speeds.
  • Eric Chadwick
  • HAWK12HT
    Options
    Offline / Send Message
    HAWK12HT polycounter lvl 12
    Cool, checking it out.
  • HAWK12HT
    Options
    Offline / Send Message
    HAWK12HT polycounter lvl 12
    Ok so I did a test for skybox and immediately realized that the default skyboxes in gaming engines are working differently vs making your own. Unity default skybox shader lets you place all 6 textures and you just apply it to render settings, however applying it to a Box as your skybox mesh it creates a mess.

    I am trying to implement the default skybox mechanics (shaders included) to my own Box mesh (skybox) that way I can have multiple skyboxes creating layers of foreground and background all in textures rather than having it all cramped up in one texture which is the most common way of doing skyboxes.

    As for generating distance I might have to lower the scale factor of meshes slightly and also hope it ll solve the max scale issue of beast lightmap.
  • Eric Chadwick
    Options
    Offline / Send Message
    Yes, cubemaps are a unique beast. I put some more info here:
    http://wiki.polycount.com/CubeMap

    The cube textures have to be made with angular distortion, difficult to make by hand, better to use a rendering tool to add this. Also the cube itself has to be centered on your camera location, at all times, or you get a different kind of distortion. Also you get seams if not using Clamp uv address mode. Etc.

    A multi-layer skybox is usually better as domes/cylinders with transparency.

    Best way to light distant terrain is probably to bake the lightmaps in 3ds Max or Maya.
  • HAWK12HT
    Options
    Offline / Send Message
    HAWK12HT polycounter lvl 12
    Thank you so much for keep updating me with feedback :).

    Ok so I did the maths today for my scene again and well Terrain system is out the window and here is why. I made a Terrain 4kx4k units in Unity which you can take as 4000 meters and as per Unity forums 2k is the max you can go before you get float point errors. (this is for scene and not Terrain)
    My max scene is at 280k which when gets imported into Unity it auto downsizes to 2800 due to .01 scale factor (default unity) (280,000 / 100)
    well 280k units or 2800 meters is giving me the 2:20 minutes gameplay with fastest in game vehicle.

    Plus with that size and just block in geometry it took 20mins to bake at 10 resolution vs 100 resolution without terrain it did it in about 6 mins with decent shadows.

    So yea gonna make mesh terrain where needed, then make choke points which lead to other areas while hiding the ugly level gaps and surround the open areas with buildings and scenery where needed.

    Yea bake in 3DS seems good idea, though I just found out Day and Night cycle for Unity so excited about it too.

    Yup gone through cubemaps before though will try to understand the logic with horizontal layout and how they can help. Cheers
  • HAWK12HT
    Options
    Offline / Send Message
    HAWK12HT polycounter lvl 12
    Also just stumble across your thread. I went over my Level Design process a bit and I feel my track is a bit boring since its too long (plus you mention about pacing) and not having enough different routes for player to explore, since its a sprint mode you take the long route you lose you take right shortcuts you win. Simple reward and punishment.
    This brings up another technical challenge, how you make multiple paths merge nicely sort of making NFS style road work.

    For now the longer work around is to break the road in 2 Parts and design custom sections for blending things nicely (modular)

    Any ideas how to do it quickly

    http://www.polycount.com/forum/showthread.php?t=44754

    Like creating a shortcut on that curve of your road path
  • Eric Chadwick
    Options
    Offline / Send Message
    Well, like any other game, create a playable grayboxed blockout first. No art, so you can edit the paths quickly, and re-play. Put down your powerups, your jumps, etc. Get the flow working right. Doesn't matter what it looks like at this point.

    After you have a good fun flow to the track, then go back and start adding art.
  • HAWK12HT
    Options
    Offline / Send Message
    HAWK12HT polycounter lvl 12
    2800 units in Unity is just bad, yup did the blockout to get track shape.
    With just 8 copies of track (parallel ) just to experiment with lightmapping it ran out of max size allowed. Such a pain it is that even if size for geo can run fine on a device you are limited to Beast Lightmap scale.
    No wonder Asphalt 8 and Real Racing 3 are not made with Unity cause of the enormous scale these games have.
    Doing a 50% scale down to size of the enviro and have to lower the speed of vehicle a bit too.

    Point to note here is that this is only for enviros where you are not doing streaming and all fancy code stuff to gnerate endless terrains and what not.
    Refered to AngryBots scene and you can see how they set scale factors of meshes to get the results at 9.5 resolution of Beast.
Sign In or Register to comment.