What Is All That Stuff
Those are packages. Unity divided up the engine into different packages, in part to help manage script reload time and let you choose features a la carte. It’s a good idea to look at a little bit of what these packages provide to see if it matches the kind of game you want. But after that, disable the packages you do not use.
Universal 2D
Universal 2D uses Unity’s 2D Renderer. The Built In project is the classic (pre-URP) way of rendering, which will eventually be deprecated. If you’re wanting to use 3D lights or have a special plan for rendering, then maybe Built-In is superior for this case.
The main reason to use the 2D Renderer is for 2D Lights and shadows. They’re faster than general URP for the specialty case of 2D lighting, but it’s not superior for every game type and case.
These lights integrate, for better and worse, with Sorting Layers. This fits most 2D games nicely. People can have performance problems, mostly from not understanding that 2D lights can overdraw, or from mismanaging their Sorting Layers creating many additional batches. There is an option on the 2D Renderer to reduce the Light Texture size which can greatly speed things up without noticeable visual loss.
A key point to understand is that 2D lights are painted in screenspace on top of everything. They don’t have knowledge of what objects are in front of or behind other objects and vice versa. The Frame Debugger will show you that the 2D Light Texture stage happens before any in-scene objects are drawn. This is important!
So if you have a top-down Rimworld-like game, then unless you’re doing something special (masking, layers, special light shapes) they will bleed through the walls. Likewise you couldn’t mimic Rimworld shadows with the built-in shadow system performantly; it’s not for that.
They were mostly developed wtih platformer (side view), or 2D top-down. You could make an Ori and the Blind Forest like game but not its sequel (due to 3D objects - you can’t combine w/ 3D objects well). They could theoretically be used for an isometric game but there are style constraints here and shadows won’t work exactly. Other styles of games, like Graveyard Digger, will not work; there is no individual light data passed to your shaders, just the Light Textures. I’m pretty sure this game uses the Built-In Renderer (see details in that post).
If you’re doing some kind of 2.5D game then perhaps normal URP is superior for you, especially if you can get away with opaque materials for your sprites - which probably means you have a pixelated-style game. I have a 2.5D isometric game using the 2D Renderer using 4 Sorting Layers; I hand-draw shadows so there’s not much of an issue.
All in all, try to create a vertical slice of what you want your game to look like. See if the 2D Renderer can make it work. If not, you’ll then face the choice of a custom solution, or changing your game’s visuals to better fit what it’s capable of.
As for performance considerations, it’s probably not too much of a concern either way unless you’ll have a lot of objects or many transparent layers. But transparent overdraw causes performance problems for reasons independent of the 2D Renderer. There’s no limit on the number of lights aside from the cost of drawing many lights in the Light Texture generation phase (see Frame Debugger).
Examples/Templates using the 2D Renderer
- Lost Crypt
- Dragon Crashers [also]
- Happy Harvest
- Case study: Tails of Iron by Odd Bug Studio