You can assign materials to curves just like you would on any mesh with a few limitations.
Just create multiple material slots and in Edit Mode pick a vertex and press Assign to apply it to the complete corresponding spline. Only limitation is you can only apply one single material per spline, not per segment.
Under the Properties Window > Object Data (Curve) > Texture Space you can turn on Use UVs for basic simple automated UV coordinates generation.
They are limited in that they stretch for longer segments and give uneven texture density, but will do for basic stuff.
Anyway if you want to export this for a game engine I guess there is really no way around converting to mesh and manually unwrapping it properly. You may keep the original object as curve in case you need to go back and edit something, do the conversion on a duplicate for safe keeping.
After conversion to mesh the basic Automatic UVs are preserved, so you have somewhere to start. If these are enough check if they are also preserved when exporting the file to a game engine.
Also have in mind that if your Blender lags after converting your curves to mesh there may be too much geometry, and that it will also likely cause problems in the game engine. Consider simplifying your curve geometry before converting to mesh.