Awesome work, Nermin! I love to see my childhood game coming back to life by your hands.

I hope you are plannig to make this project public at some point;
I have some ideas for you that you could implement if you feel like:
RAIN IMPROVEMENTS:
- Procedural Vector Rain: I see that you are currently using 2D textures that totally ignore the rotation of the camera. You could code the rain as linear vectors randomized on X-Z axis, with fixed range lenght on Y axis, but still slightly randomized for realistic feel. This i think would slightly decrease GPU memory usage.
- Use a GPU collision check (depth buffer) so it stops raining 'inside' buildings or under tents
- Add a subtle refraction/fish-eye shader to the vectors for realistic water-lens look
- Set up global material parameters for wetness: Instead of using individual textures for wet feel, use a Global Parameter Collection. When it rains, use one slider to darken the albedo and crank the glossiness/specular across all materials globally. It creates a massive atmospheric shift for zero extra draw calls (maybe leave the really shiny armors as is, we don't want everyone to turn into C-3PO hehe)
SHADOWWWWS:
- Since the props (tents, stones, trees) currently look a bit "floaty". implement self-shadowing. If you use a day cycle, bake lightmaps at "X" degree intervals (to your own liking, or if you want to go super fancy every 1 degrees) and use linear interpolation between them. It looks like global illumination but runs "cheaper"
- Optimization (Instancing & LODs): For dense maps, use GPU Instancing for foliage and rocks. Pair this with a tight LOD
system so high-poly models swap to low-poly proxies at a distance. You can make this agressive, so when people zoom out to space, everything still renders nicely. I think most modern 3D modelling
programs already have automatic LOD generator tools. You can just use a script to
run all models through them.
- Ambient Occlusion (SSAO/HBAO) PLEASE PLEASE THIS IS THE BEST THING YOU CAN DO TO THE GAME
Other fancifying stuff:
- Atmospherics: Swap the old ugly linear fog for exponential squared fog and height-based fog. Try it, trust me!
- Eye candy: Footsteps. In
snow, mud, when stepping into water, perhaps in sand. Just a simple footstep texture/decal that the client renders a few meters behind our character.
And a bit technical bs, this would be primarily server side(i think):
- NavMesh for mobs: We all know right now
mobs get stuck in stuff, horses run through buildings, mobs go into places that are unreachable. Use some NavMesh system that blocks them from wandering off in the walls. Force them to take a proper path around things.
Keep up the great work! I'm already satisfied, i won't be mad if you don't implement these.
